Automazioni

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>
  </reaction>
</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 O 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>

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi