Piattaforme nelle automazioni di Home Assistant

Piattaforme nelle automazioni di Home Assistant

di Antonio Mario Longo

10 Dicembre 2020

Guide

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.

Antonio Mario Longo

Antonio Mario Longo

Nato a Foggia nel Settembre 1984 perito elettrotecnico di sistemi e automazione, lavoro nel settore aereonautico su macchine a controllo numerico per la produzione di particolari in fibra di carbonio, appassionato di informatica (nata dai primi 8086) e automatismi per le nuove case del futuro.

Disqus loading...