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. |