Piattaforme nelle automazioni di Home Assistant
Guide
Scritto da Antonio Mario Longo
In questo articolo vedremo le maggiori piattaforme (platform) di Home Assistant legate alle varie entità e ai vari trigger di Home Assistant.
Platform: state
Questo tipo di piattaforma è usata quando un entità cambia il proprio stato. Per esempio, una luce che passa dallo stato on a off. In effetti per indicare il passaggio è opportuno mettere lo stato iniziale e lo stato finale con le due stringhe from: e to:
Inoltre è possibile (ma non obbligatorio), decidere di eseguire l'azione dopo che il dispositivo (entity_id) ha mantenuto il proprio stato per un determinato periodo di tempo.
Per esempio, se la luce dello studio è accesa per 15 secondi esegui una determinata azione. Il tutto si traduce in
automation:
trigger:
platform: state
entity_id: light.studio
from: "off"
to: "on"
for: "00:00:30"
Ovviamente, gli stati sono moltissimi e sono legati alle varie entità, la maggior parte di essi possono essere visualizzati aprendo Home Assistant e dirigendosi in Strumenti per gli Sviluppatori, assicuratevi di essere nella scheda Stati e selezionate l'entità desiderata.
Platform: mqtt
Ovviamente questa piattaforma è legata ai dispositivi che utilizzano mqtt come protocollo di comunicazione con Home Assistant. Per attivare tale piattaforma è obbligatorio indicare il topic del dispositivo dal quale ci si attende una risposta. Un esempio di platform mqtt è così composto:
automation:
trigger:
platform: mqtt
topic: living_room/switch/ac
Platform: homeassistant
Come è possibile comprendere questo tipo di piattaforma è la più semplice ma non la meno utile. Infatti, questa scatena un evento nelle automazioni in base al sistema di Home Assistant (se si sta spegnendo o se si sta avviando il sistema ). Queste due fasi sono richiamate dalla stringa event: la quale attende un evento tipo shutdown o start.
automation:
trigger:
platform: homeassistant
event: start
automation:
trigger:
platform: homeassistant
event: shutdown
Platform: numeric_state
Questa piattaforma, invece, attiva un' automazione in base al valore numerico di un attributo o allo stato di un sensore o un entità espressa in valore numerico. Quindi, questa deve puntare a un valore di riferimento, con l'apposita stringa value_template: molto spesso utilizzata con un attributo di un entità.
Per visionare l'attributo possiamo dirigerci in Strumenti per gli Sviluppatori e spostarci nella scheda Stati , selezionando l'entità desiderata , e in basso, sotto allo stato noterete un altro riquadro dove sono riportati gli attributi di stato, utili per l'attivazione di determinate automazioni.
La piattaforma numeric_state può essere accompagnata dai valori above e below, entrambi accompagnati a loro volta da un valore numerico. Above indica che il valore di un sensore o di un attributo, deve essere superiore al numero indicato al suo fianco. Below indica, invece che il valore di un sensore o di un attributo, deve essere inferiore a quello indicato. Gli esempi sono molto più chiari di mille parole quindi vediamoli un po':
automation:
trigger:
platform: numeric_state
entity_id: sensor.temperature
value_template: "{{ state.attributes.battery }}"
above: 17
below: 25
Analizziamo il codice sopra indicato e traduciamolo nel linguaggio naturale. Praticamente, questa automazione si attiva attraverso un controllo numerico, che Home Assistant esegue leggendo un valore appartenente a un sensore temperatura, nello specifico lo stesso è legato alla carica della batteria (del sensore temperatura) racchiusa nell'attributo battery. Quindi dopo aver letto questo numero il sistema lo memorizza e se il valore appena memorizzato è compreso tra i numeri 17 e 25 fa scattare un azione. Anche questo tipo di piattaforma può essere accompagnata da for: ovvero se il valore letto da un attributo o un sensore rimane invariato per un lasso di tempo, l'automazione ha inizio.
automation:
trigger:
platform: numeric_state
entity_id: sensor.temperatura
above: 80
for: "00:10:00"
Quest'altra automazione presente alto è un altro esempio il quale indica che se il valore numerico del sensore temperatura è superiore a 80 per 10 minuti, allora il sistema scatena una reazione con una action.
Platform: sun
Questa piattaforma è legata alle fasi solari, e deve essere seguita sempre da event: che indica con sunrise e sunset rispettivamente l'alba e il tramonto.
In maniera opzionale possiamo decidere anche se scatenare un evento con un lasso di tempo antecedente o successivo all'alba o al tramonto, tramite offset: seguito da il segno - e il tempo indicato con "ore:minuti:secondi",se vogliamo che l'azione si scateni prima dell'alba o del tramonto, oppure, da un segno + seguito sempre da "ore:minuti:secondi", se desideriamo che l'azione si scateni dopo l'alba o il tramonto.
automation:
trigger:
platform: sun
event: sunrise
offset: "-00:45:00"
In questo trigger di esempio, si vede che la piattaforma legata alle fasi solari scatta all'evento 'alba' (sunrise) ma più precisamente 45 minuti prima dell'alba.
Platform: template
La piattaforma template, valuta un modello per ogni cambio di stato dell' entità. Quindi, questo tipo di platform fa scattare l'automazione quando il modello risulta vero. La logica del vero o falso è ottenuta dalle espressioni booleane (consiglio una piccola lettura se Wikipedia o cercatele su Google per capire tale logica). In Home Assistant affermiamo, con questa platform, che lo stato o l'attributo di una determinata entità sia vero o falso.
automation:
trigger:
platform: template
value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}"
Come potete notare l'automazione si attiva, se lo stato di paulus conosciuto attraverso il suo device.tracker risulti a casa, altrimenti, l'automazione non sarà eseguita poichè il trigger non è soddisfatto.
automation:
trigger:
platform: template
value_template: "{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}"
Quest'altra automazione, invece, si scatena se l'attributo away_mode di climate.living_room risulta spento. Quindi tradotto in italiano, climate.living_room è un entità legata a un termostato (climate) chiamato living_room, magari perchè presente nel soggiorno. Questo attributo, ha la funzione di riconoscimento dello stato fuori casa (away_mode), ma per poter attivare l'automazione la funzione away_mode sul termostato deve essere spenta.
Platform: time e time_pattern
Questo tipo di platform, viene usato per far scattare un automazione dopo un determinato periodo di tempo o ad un orario prestabilito. Infatti time è legato ad at: cioè fa eseguire una determinata azione in un orario da noi scelto impostato con lo standard "ore:minuti:secondi".
automation:
trigger:
platform: time
at: "14:21:00"
Vedendo, il trigger di questa automazione, notiamo che scatta ogni volta che sono le 14:21. Anche se nell'automazione non fa nessun cenno al sensore tempo (sensor.time) Home Assistant, non fa altro che, confrontare il tempo assegnato tra gli apici e il tempo ricevuto da sensor.time (un vero e proprio orologio), e arrivato all'orario prestabilito attiva l'automazione passando all'azione.
Time_pattern invece, appartiene sempre alla platform time, ma è stata divisa dal semplice Time per indicare un' azione ripetitiva per ogni lasso di tempo preimpostato. Nell'esempio pratico, potremmo capire meglio di cosa stiamo parlando.
automation:
trigger:
platform: time_pattern
minutes: "/5"
Praticamente questa automazione, partirà ogni 5 minuti, e gli elementi fondamentali per farla partire sono indicati dal tempo (minutes) e dal simbolo "/ ". Se ipoteticamente avessimo voluto indicare ogni due ore, al posto di minutes avremmo dovuto inserire hours, e se avessimo voluto anche cambiare il tempo da 5 a 2 come avremmo avuto un esempio del genere:
automation:
trigger:
platform: time_pattern
hours: "/2"
Platform: zone
La piattaforma, è legata alle zone. Quindi, la zona principale che tutti hanno configurato al primo avvio di Home Assistant è quella di casa.
Ma se ne avete altre, legate magari, al vostro lavoro, Home Assistant la leggerà e tramite il vostro device tracker, permetterà di dar vita all'automazione. E' obbligatorio mettere l'entity_id che punti a una persona oppure a un device tracker impostato con lo smartphone. Inoltre, questa piattaforma può usufruire di due opzioni, registrate con un evento. Gli eventi opzionali sono enter e leave che indicano l'ingresso o l'uscita in una zona.
automation:
trigger:
platform: time_pattern
hours: "/2"
Praticamente questa automazione si attiva, quando il device Tracker del cellulare di Luigi, lascia la zona mediaworld, che abbiamo precedentemente configurato.
Queste Sono le principali piattaforme usate in Home Assistant, spero che siano state chiare, anche se la chiarezza ho notato che si ottiene soltanto usandole spesso con la propria fantasia.
Vi ricordo di seguirci anche sul nostro canale YouTube dove abbiamo pubblicato tantissimi video dedicati ad Home Assistant.
A tal proposito qui di seguito potrete guardare l'ultimo pubblicato nel caso ve lo siate persi!
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.