Automazioni

Un’automazione (reaction nella terminologia di Freedomotic) é costituita da un trigger e da uno o più comandi eseguiti sequenzialmente all’interno di un thread dedicato in modo da garantire un’elaborazione parallela. Sia i trigger che i comandi sono definiti all’interno di file indipendenti dall’automazione e quindi possono essere utilizzati più volte.

Ad esempio:

  • Nome automazione: Scenario intrattenimento
  • Trigger: TV turns ON
  • Comando 1: Turn OFF Livingroom lights
  • Comando 2: Close Windows -> Close Blinds

Se la TV é accesa allora tutte le luci del salotto sono spente. Allo stesso tempo cominciano a chiudersi anche le finestre e infine vengono abbassate le tapparelle.

Anche le automazioni sono rappresentate da file XML collocati nella cartella FREEDOMOTIC_ROOT/data/rea. Di seguito é riportato il file XML relativo al precedente scenario.

<reaction>
<trigger>TV turns ON</trigger>
<sequences>
<sequence>
<command>Turn OFF Livingroom lights</command>
</sequence>
<sequence>
<command>Close Livingroom windows</command>
<command>Close Livingroom blinds</command>
</sequence>
</sequences>
</reaction>

Combinare più trigger nelle automazioni (condizioni extra)

Abbiamo visto come sia possibile creare delle automazioni del tipo  IF [é mattino] AND [la luce del soggiorno é accesa] THEN [fai qualcosa].

Le “condizioni extra” riguardano la componente “AND [la luce del soggiorno é accesa]” dove lo stato corrente di un oggetto presente sulla mappa é valutato prima di eseguire l’automazione. Non é ancora possibile gestire questa funzionalità tramite frontend ma solo modificando opportunamente il file XML contenuto nella cartella data/rea.

Ecco un esempio completo

“WHEN a door is clicked AND livingroom light is on OR kitchen light is on THEN switch the open state of the clicked door” (QUANDO un oggetto porta é cliccato E la luce del salotto é accesa OPPURE la luce della cucina é accesa ALLORA cambia lo stato dell’oggetto porta cliccato)

<reaction>
<trigger>When a door is clicked</trigger>
<conditions>
<condition>
<target>Livingroom Light</target>
<statement>
<logical>AND</logical>
<attribute>powered</attribute>
<operand>EQUALS</operand>
<value>true</value>
</statement>
</condition>
<condition>
<target>Kitchen Light</target>
<statement>
<logical>OR</logical>
<attribute>powered</attribute>
<operand>EQUALS</operand>
<value>true</value>
</statement>
</condition>
</conditions>
<sequence>
<command>Switch its open state</command>
<command>test</command>
</sequence>
</reaction>

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi