Automazioni Home Assistant: conosciamo i Trigger

Automazioni Home Assistant: conosciamo i Trigger

In questa guida vedremo come usare le automazioni, elencando nel dettaglio tutti i tipi di Trigger, Condition e Action.

Premessa:

Prestare attenzione alla sintassi:

trigger: deve avere due spazi dal margine;

- platform: il trattino deve essere due spazi avanti alla ” t ” di  trigger: quindi sotto la ” i “;

E’ severamente vietato usare il tasto “TAB” in quanto causerebbe degli errori di sintassi.

Trigger:

Il Trigger è colui che aziona l’automazione, vi elenco e spiego tutti i tipi di Trigger che si possono usare.

1. homeassistant:

Con questo Trigger andiamo ad attivare un automazione quando lo stato di Home Assistant cambia, ovvero quando si avvia o si spegne.

Così l’automazione partirà quando Home Assistant si accende, cambiando event:  da  startshutdown l’automazione verrà eseguita poco prima di arrestarsi completamente.

2. state:

Con questo Trigger andiamo ad attivare un’automazione quando lo stato di una qualsiasi entità cambia.

In questo caso l’automazione verrà avviata dopo 1 ora 30 minuti e 50 secondi che io sono entrato in casa.

Questo può essere usato per tutte le entità, esempio:

3. numeric_state:

Con questo Trigger andiamo ad attivare un’automazione quando il valore di un’entità è superiore, minore o compresa tra un valore scelto da noi, ad esempio un sensore di temperatura.

In questo caso l’automazione si avvierà quando la temperatura sarà superiore di 19° ( above: ) e minore di 26° ( below: ).

Prendendo in considerazione un sensore di temperatura dotato di batteria, ad esempio quello Xiaomi possiamo andare a leggere e utilizzare il valore della batteria aggiungendo un  value_template: , questo può essere fatto con qualsiasi attributo, ecco un esempio sempre sul mio sensore temperatura della sala.

Quindi la mia automazione verrà avviata quando la percentuale della batteria è inferiore al 20%.

4. sun

Grazie a questo Trigger possiamo eseguire un automazione in base al sole: tramonto, alba o posizione.

Si può notare che  event: è impostato su  sunrise offset a -00:10:00, questo significa che l’automazione verrà eseguita 10 minuti prima dell’alba, se invece mettiamo  sunset al posto di  sunrise verrà eseguita 10 minuti prima del tramonto.

5. zone

Se abbiamo configurato un device_tracker e delle zone, ad esempio casa e lavoro, possiamo azionare un’automazione quando entriamo o usciamo da una di queste zone.

In questo caso quando entro in casa viene eseguita l’automazione, per far si che venga eseguita quando esco di casa in  event: bisogna sostituire  enter con  leave .

6. event

Gli eventi sono un punto fondamentale delle automazioni, in quanto ogni entità provoca un evento, ecco qua un link per alcuni tipi di eventi. Qui sotto lascio un esempio.

L’automazione verrà innescata ogni volta che il discovery (ricerca automatica dei dispositivi) rileva un nuovo dispositivo.

7. time

Chiunque vogliache qualcosa si accenda ad una qualsiasi ora o ogni tot. minuti, ecco che entra in azione il Trigger time.

Così facendo l’automazione si avvierà dopo 2 minuti e 30 secondi che passa un’intera ora.

Questo trigger si verificherà quando sono le 8 di sera.

Ed infine con questa sintassi, possiamo ciclare, ovvero eseguire l’automazione ogni 15 minuti.

8. template

Il Trigger template è il mio preferito in quanto è il Trigger più versatile, ma anche leggermente più complicato degli altri. Questo Trigger restituisce un valore booleano, quindi true (vero) o false (falso). A questo link trovate la documentazione per tutti i tipi di template. Qua lascio due esempi.

In questo modo quando il mio device_tracker entra in casa la variabile booleana diventa true (vera) e di conseguenza l’automazione si avvia. Ora un altro esempio più interessante.

Invece con questa sintassi andiamo a fare un confronto tra due entità, notiamo infatti l’operatore  != che significa “diverso”, quindi quando la temperatura impostata sul mio termostato in sala è diversa dalla temperatura rilevata dal sensore in sala la variabile booleana passa a true e l’automazione viene eseguita.

Ecco alcuni operatori: == (uguale),  > (maggiore),  < (minore), >= (maggiore uguale, vale anche per il simbolo minore),  && (AND, e).

9. mqtt

Se abbiamo dispositivi connessi via MQTT questo Trigger non può mancare, in quanto ci permette di eseguire l’automazione quando riceviamo una determinata stringa ad un determinato topic.

Quando viene inviata la stringa “on” al topic “cucina/luce/tavolo” l’automazione si avvia, possiamo anche non specificare il payload/stringa per avviare l’automazione ogni volta che qualsiasi stringa viene inviata a quel topic. Per esempio:

10. multipli

Possiamo anche concatenare più Trigger, e quando uno dei trigger si verifica l’automazione si aziona.

Prendendo in considerazione questi Trigger l’automazione si attiverà quando io rientro in casa oppure quando il sole tramonta, un azione interessante potrebbe essere di accendere la luce esterna.

Non preoccupatevi se alcune cose non vi sono chiare commentate, oppure aspettate i prossimi articoli dove spiego le Condition e le Action, ed alla fine di questi 3 articoli ne farò uno dedicato per mostrarvi un po’ di automazioni miste ed interessanti.

 

20 risposte

  1. Luca ha detto:

    Grazie Mattia, una guida davvero chiara, esaustiva e molto ben scritta; fa capire anche a principianti come me cosa sono le automazioni e come possono essere utilizzate!

    • Mattia ha detto:

      Grazie Luca, molto gentile.
      Voglio rendere il tutto più facile, soprattutto per i principianti.
      Mi hai dato la conferma che questo è possibile!!

  2. moreno ha detto:

    bravo scritto molto comprensibile

  3. Kristen ha detto:

    Hola! I’ve been reading your site for some time now and finally got the
    bravery to go ahead and give you a shout out from Austin Tx!
    Just wanted to mention keep up the fantastic work!

    I could not refrain from commenting. Very well written! I enjoy what you guys are usually up
    too. This type of clever work and exposure! Keep up the wonderful works guys I’ve incorporated you guys to my blogroll.
    http://www.cspan.net/

    • Mattia ha detto:

      Thank you so much Kristen, we appreciate that you like it. We do our best to explain in a simple way for newcomers, soon other articles on the automation series will be released. Do not miss them!!

      Thank you for mentioning us in your blogroll!!

  4. Jim ha detto:

    I could not resist commenting. Very well written! I like
    it whenever people get together and share opinions.
    Great site, continue the good work! I couldn’t refrain from commenting.
    Perfectly written! http://Cspan.Co.uk/

  5. […] vedere tutti i servizi e come vengono usati vi rimando qui all’articolo dei […]

  6. Daniele ha detto:

    Bellissima guida! Sono un neofita di home assistant e mi sto acculturando tramite le tue guide,
    e vorrei chiederti da dove derivano i campi dopo:
    – platform:
    Grazie mille

  7. Christian ha detto:

    Complimenti per l’articolo ma avrei una domanda: come faccio a verificare nel trigger se un sensore è definito?
    Hai utilizzato
    – platform: template
    value_template: “{% if is_state(‘device_tracker.mattia’, ‘home’) %} true {% endif %}”
    per far partire il trigger quando il devide_tracker è home.
    Io ho tentato:
    platform: template
    value_template: “{% if states.switch.lavatrice.state is defined %} true {% endif %}”
    ma non funziona.
    Come posso verificare se lo switch è definito?
    Grazie mille

    • Mattia ha detto:

      Ciao e grazie dei complimenti. Come hai scritto sembrerebbe corretto utilizzando is defined o is not defined, siccome dici che non funziona potresti provare ad usare None.
      Ad esempio {% if states.switch.lavatrice.state != ‘None’ %} true {% endif %}

      oppure {% if states.switch.lavatrice.state is not None %} true {% endif %}

      Se ti va possiamo parlarne in modo più approfondito sul forum. forum.hassiohelp.eu

  8. Andrea ha detto:

    Caio sono 2 giorni che sto impazzendo
    secondo te cosa sbaglio a integrare il mio sonoff

    – id: ‘Accendi_Luce_Fuori’
    alias: “Luce Fuori ON”
    initial_state: true
    trigger:
    platform: time
    at: “17:15:00”
    action:
    service: light.turn_on
    entity_id: switch.sonoff_100068fa62

  9. federico zanetta ha detto:

    attenzione, per la funzione ciclica del tempo occorre mettere time_pattern, info trovata qui dopo lunghi tentativi…
    https://community.home-assistant.io/t/automation-turn-heater-on-every-2-hours/21218/11

  10. Salvatore ha detto:

    ciao io volevo fare una automazione per quanto riguarda mqtt perché ogni qualvolta si riavvia Home Assistant devo andare a forzare il collegamento con i vari dispositivi collegati naturalmente con mqtt perché Mosquitto non ri ricollega in automatico mi protratti aiutare

  11. Adriano ha detto:

    Mi puoi fare avere un trigger che mi fa funzionare una tapparella per un tempo limitato tipo 10 seccondi?

  12. Marco ha detto:

    Ciao, complimenti per la guida, una delle poche realmente utile e dettagliata a prova di neofita!
    Siccome dal 5 dicembre Life360 non funzionerà più con IFTTT sto cercando di ricreare con Home Assistant alcune automazioni. Per questo sto cercando di ricreare l’evento “il primo che arriva a casa” e “l’ultimo che esce”. Ho provato a fare così, ma è la prima volta che ho a che fare platform template e non funziona, come si potrebbe fare? (penso che a breve sarà un’esigenza piuttosto diffusa)
    trigger:
    – platform: template
    value_template: “{% if is_state(‘device_tracker.life360_device_1’, ‘home’) %} true {% endif is_state(‘device_tracker.life360_device_2’, ‘home’) %}”

  13. Mimmo ha detto:

    Salve ma se volessi fare un’automazione per sapere se un’entità cambia stato o valore (esempio ho 2 entità ‘current version’ e ‘latest versione’ se viene rilasciata una nuova versione) cosa imposto nel trigger?

  14. Luca ha detto:

    Ciao, complimenti per l’ articolo. chiaro e spiegato molto bene. ti chiedo invece come e’ possibile invece combinare due trigger in ‘and’ non in ‘or’. Voglio che scatti una determinazione azione solo se tutti e due i trigger si sono scatenati. grazie in anticipo.

  15. dino ha detto:

    buongiorno, avrei bisogno di una mano, sto compilando una automazione per i sensori presenza, avrei bisogno per ogni trigger che attiva l’automazione assegnare un numero ad una variabile direttamente nel trigger e non nelle action, è possibile?
    grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Advertisment ad adsense adlogger