Produttore: Home Assistant Community Disponibilità: incluso nell’HUB personale Home Assistant Categoria: software Tipologia: piattaforma Home Assistant Famiglia: componente “Binary Sensor” Home Assistant Difficoltà di implementazione: bassa |
La piattaforma “Trend”, figlia del componente “Binary Sensor” di Home Assistant, è utile per implementare dei sensori binari di tendenza i quali forniscano un’informazione rispetto all’andamento di altri sensori.
Tali sensori binari cambiano di stato da “off” o “on” quando il sensore monitorato varia (cresce o decresce: questo lo decide la configurazione).
Configurazione
La configurazione della piattaforma “Trend” presso il file configuration.yaml è piuttosto semplice.
È infatti sufficiente inserire un’entry di questo tipo:
binary_sensor:
- platform: trend
sensors:
nome_sensore:
entity_id: sensor.nome_sensore_da_monitorare
Le variabili disponibili per la personalizzazione della configurazione sono le seguenti:
entity_id | (stringa, obbligatorio) Il nome dell’entità. |
attribute | (stringa, opzionale) L’attributo dell’entità (monitorata) da tenere sotto controllo. Se non specificato, verrà controllato lo “stato”. |
device_class |
(stringa, opzionale) Il tipo di entità da mostrare sul frontend. |
friendly_name | (stringa, opzionale) Il nome dell’entità da mostrare presso il frontend. |
invert | (booleano, opzionale) Inverte il risultato. Impostato a “true” fa sì che lo stato del “Binary Sensor” creato diventi “on” quando il sensore monitorato decrementa il proprio valore. Default: false |
max_samples | (intero, opzionale) Numero massimo di rilevazioni da collezionare nello storico. |
min_gradient | (string, opzionale) Il rateo di salita o discesa. Spiegato a seguire. |
sample_duration | (intero, opzionale) La durata in secondi delle rilevazioni considerate valide per la valutazione. Rilevazioni più vecchie di tale durata vengono scartate. Default: 0 (illimitato) |
Utilizzare più rilevazioni
Mentre di default il sensore di tendenza così creato si limita a cambiare stato quando lo stato del sensore monitorato cambia (in base al fatto che si incrementi/decrementi e alla configurazione), tramite max_samples, sample_duration e min_gradient è possibile valutare un trend “multi rilevazione”.
Ogni volta che lo stato del sensore monitoto cambia, il suo valore viene registrato assieme al suo orario.I campionamenti più vecchi del sample_duration vengono scartati.
Ogni sensore di tendenza è dotato di una “linea di tendenza”; nel caso di una configurazione “multi rilevazione” essa viene adattata ai campioni disponibili e il gradiente di questa linea viene confrontato con min_gradient per determinare lo stato del sensore di tendenza.
In poche parole, il min_gradient è una personalizzazione che permette una regolazione molto fine del sensore di tendenza. Il “gradiente” è misurato in “unità sensore per secondi”: se si vuole per esempio che il sensore di tendenza diventi “on” quando la temperatura rilevata da un sensore crolla di, diciamo, due gradi per ora, calcolare il min_gradient è semplice:
(-2) / (sample_duration)
quindi
(-2) / (60×60) = -0.00055
Esempi
Vediamo come configurare un sensore di tendenza che si attivi al sorgere del sole:
binary_sensor:
- platform: trend
sensors:
sole_sorge:
entity_id: sun.sun
attribute: elevation
I sensori che seguono, invece, indicano quando la temperatura crolla o si innalza di almeno tre gradi in un’ora, collezionando dati per un arco di due ore:
binary_sensor:
- platform: trend
sensors:
temperatura_decresce:
entity_id: sensor.temperatura_esterna
sample_duration: 7200
min_gradient: -0.0008
device_class: cold
temperatura_cresce:
entity_id: sensor.temperatura_esterna
sample_duration: 7200
min_gradient: 0.0008
device_class: heat
Risoluzione problemi
Talvolta capita che alcuni utenti Home Assistant installato su Raspbian abbiano, utilizzando la piattaforma “Trend”, problemi col modulo numpy. Per risolvere, eseguire i seguenti comandi da terminale:
pip3 install --upgrade numpy sudo apt-get install libatlas-base-dev
