Piattaforma Home Assistant “Trend”

2 minuti di lettura
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_durationmin_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



Please comment below