Produttore: Home Assistant Community Disponibilità: incluso nell’HUB personale Home Assistant Categoria: software Tipologia: piattaforma Home Assistant Famiglia: componente “Sensor” Home Assistant Difficoltà di implementazione: bassa |
Revisione scheda: 1.1 |
La piattaforma “MQTT Sensor”, figlia del componente “Sensor” di Home Assistant, serve per definire in configurazione uno o più sensori alimentati da telemetrie MQTT provenienti da uno o più dispositivi presenti in domotica.
Esistono infatti sensori che, se interrogati tramite MQTT, erogano le proprie letture (temperatura, umidità, ma anche luminosità, presenza, livello di carica di batterie e molto altro) tramite i payload dei topic telemetrici dedicati a tal scopo. Inoltre, tali telemetrie solitamente vengono pubblicate automaticamente e 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 TH-16 o TH-10 aggiornato a Tasmota è il seguente:
tele/Sonoff/SENSOR
Tale topic restituisce tramite il proprio payload (o “carico utile”) le letture del sensore collegato all’unità, tipicamente temperatura e umidità, ad esempio (payload JSON):
{"temperature": 23.20,"humidity": 43.70}
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
La configurazione base di un qualunque sensore MQTT presso il file configuration.yaml è piuttosto semplice.
È infatti sufficiente inserire un’entry di questo tipo:
mqtt:
sensor:
- name: "Sensor 1"
state_topic: "home/bedroom/temperature"
dove l’esempio di “home/bedroom/temperature” 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 Sensor” |
qos | (intero, opzionale) – Il livello di QoS per lo state_topic. Default: 0 (Cos’è QoS?) |
unit_of_measurement | (stringa, opzionale) – L’unità di misura del valore esposto dal sensore, se presente. |
icon | (stringa, opzionale) – L’icona rappresentativa del sensore. |
expire_after | (intero, opzionale) – Il numero di secondi trascorsi i quali, in assenza di ricezione di un nuovo valore, il dato non è più considerato valido. Default: 0 (non attivo) |
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 utilizza 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 utilizza 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 utilizza un payload LWT. |
json_attributes | (lista|stringa, opzionale) – Una lista di valori chiave da estrarre dal payload json dello state_topic. |
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
LIVELLO DI BATTERIA
Il sensore dell’esempio a seguire estrae dal payload JSON ricevuto dallo state_topic indicato la misura della batteria residua del dispositivo monitorato. Nello specifico, ipotizziamo di stare utilizzando la piattaforma OWNTRACKS della famiglia di componenti “Device Tracker“, ovvero quelli dedicati al tracking GPS degli utenti configurati su Home Assistant.
Lo state_topic è il seguente:
owntracks/tablet/tablet
Il payload è simile al seguente
{"_type":"location","lon":7.21,"t":"u","batt":92,"tst":144995643,"tid":"ta","acc":27,"lat":46.12}
Per estrarre il livello della batteria (ovvero “92%”), il sensore MQTT configurato sarà:
mqtt:
sensor:
- name: "Battery Tablet"
state_topic: "owntracks/tablet/tablet"
unit_of_measurement: '%'
value_template: "{{ value_json.batt }}"
Temperatura e umidità
Ipotizziamo di possedere un sensore di temperatura e umidità che dallo state_topic:
office/sensor1
produca nel payload una telemetria JSON come segue:
{"temperature": 23.20,"humidity": 43.70}
Configureremo dunque due diversi sensori, come segue:
mqtt:
sensor:
- name: "Temperature"
state_topic: "office/sensor1"
unit_of_measurement: '°C'
value_template: "{{ value_json.temperature }}"
- name: "Humidity"
state_topic: "office/sensor1"
unit_of_measurement: '%'
value_template: "{{ value_json.humidity }}"
⚠️ 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. |