community italiana di domotica personale
 
Piattaforma Home Assistant “MQTT Binary Sensor”

Piattaforma Home Assistant “MQTT Binary Sensor”

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
Revisione scheda: 1.2

La piattaforma “MQTT Binary Sensor”, figlia del componente “Binary Sensor” di Home Assistant, serve per definire in configurazione uno o più sensori binari alimentati da telemetrie MQTT provenienti da uno o più dispositivi presenti in domotica.

Esistono infatti sensori binari (per binario si intende capace di due soli stati, quali acceso/spento, aperto/chiuso ecc.) che, se interrogati tramite MQTT, erogano il proprio stato tramite i payload dei topic telemetrici dedicati a tal scopo. Inoltre, tali telemetrie solitamente vengono pubblicate automaticamente e/o ciclicamente via MQTT, permettendo a chi sottoscrive tali topic telemetrici di ottenere le letture man mano che arrivano.

Un esempio di topic telemetrico, nel caso di un Sonoff RF Bridge aggiornato a Tasmota è il seguente:

tele/SonoffRFBridge/SENSOR

Tale topic restituisce tramite il proprio payload (o “carico utile”) le letture del sensore collegato via radio all’unità:

{"RfReceived":{"Sync":13480,"Low":470,"High":1380,"Data":"561691","RfKey":"None"}}

Nb. Per utilizzare questa piattaforma è necessario che il componente “MQTT” di Home Assistant sia stato preventivamente configurato (vedi prima parte della scheda dedicata al componente “MQTT”). Si consiglia inoltre di leggere con attenzione la guida dedicata al tema della configurazione dei componenti MQTT nella propria domotica.

Configurazione

Sostanzialmente un sensore binario configurato tramite la piattaforma MQTT Binary Sensor imposta il proprio stato (on/off) tramite la lettura di un messaggio MQTT e due diversi payload, il tutto definito in configurazione.

La configurazione base di un qualunque sensore MQTT presso il file configuration.yaml è piuttosto semplice.
È infatti sufficiente inserire un’entry di questo tipo:

mqtt:
  binary_sensor:
  - name: "Sensor 1"
    state_topic: "home-assistant/window/contact"

dove l’esempio di “home-assistant/window/contact” sarà evidentemente il topic telemetrico del quale raccogliere il payload per l’estrazione dell’informazione di interesse.

Le variabili disponibili per la personalizzazione della configurazione sono le seguenti:

state_topic (stringa, richiesta) – Il topic MQTT al quale iscriversi per ricevere le telemetrie
name (stringa, opzionale) – Nome del sensore MQTT. Default: “MQTT Binary Sensor”
qos (intero, opzionale) – Il livello di QoS per lo state_topic. Default: 0 (Cos’è QoS?)
payload_on (stringa, opzionale) – Il payload che, se ricevuto, imposta a “on” il sensore binario
payload_off (stringa, opzionale) – Il payload che, se ricevuto, imposta a “off” il sensore binario
value_template (template, opzionale) – Definisce il template per l’estrazione (parsing) del dato.
force_update (booleano, opzionale) – Invia al motore di automazione di Home Assistant l’aggiornamento del valore anche se non è accaduto realmente. Utile per rendere cotinui i grafici degli storici. Default: false
availability_topic (stringa, opzionale) – Topic MQTT al quale iscriversi per ottenere lo stato online/offline da parte del dispositivo. Solitamente si indica il topic LWT.
payload_available (stringa, opzionale) – Il payload che rappresenta lo stato “disponibile”. Esempio: “online”. Viene usato in abbinamento alla variabile “availability_topic“. Solitamente si indica un payload LWT.
payload_not_available (stringa, opzionale) – Il payload che rappresenta lo stato “non disponibile”. Esempio: “offline”. Viene usato in abbinamento alla variabile “availability_topic“. Solitamente si indica un payload LWT.
unique_id (stringa, opzionale) – Un ID che identifica univocamente il sensore in termini di configurazione. Se due sensori presentano il medesimo ID, Home Assistant solleva un eccezione d’errore.
device_class (device_class, opzionale) – Il tipo/classe di sensore utile per impostare la corretta, relativa icona sul frontend di Home Assistant.

Esempi

APERTURA CONTATTO MAGNETICO

Poniamo il caso di utilizzare un Sonoff RF Bridge (aggiornato Tastmota) in accoppiata con un sensore magnetico radio 433 MHz Sonoff DW1. Questo sensore invia, quando viene aperto, un segnale radio contenete un codice personale; tale segnale e tale codice personale vengono intercettati dall’RF Bridge che a sua volta lo riporta immediatamente dopo nel payload di una telemetria MQTT.

Lo state_topic sul quale viene pubblicata tale informazione è il seguente:

tele/SonoffRFBridge/SENSOR

Un payload “tipo” è simile al seguente:

{"RfReceived":{"Sync":13480,"Low":470,"High":1380,"Data":"561691","RfKey":"None"}}

dove la variabile “Data” contiene, per l’appunto, il codice del sensore che si è appena aperto (“561691”).

Un sensore binario MQTT che fornisca alla domotica l’informazione di apertura contatto quindi sarà:

mqtt:
  binary_sensor:
  - name: "Contatto apertura finestra"
    payload_on: "561691"
    payload_off: ""
    device_class: opening
    state_topic: "tele/SonoffRFBridge/SENSOR"
    value_template: "{{ value_json.RfReceived.Data }}"}"

Nb. L’esempio è effettuato su un sensore magnetico che NON comunica l’evento di richiusura del varco. Pertanto, il campo “payload_off” viene lasciato intenzionalmente vuoto e tale casistica andrà gestita con un’automazione Home Assistant ad hoc (vedi guida completa).

Implementazione

su inDomus c’è una guida apposita dedicata all’implementazione di questa piattaforma.

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.