Aggiungere un sensore termico MQTT alla configurazione Home Assistant

SCOPI DELLA GUIDA
  • Aggiungere un sensore ambientale MQTT (di temperatura e umidità relativa) alla configurazione di Home Assistant
  • LIVELLO DI DIFFICOLTÀ:basso
CONCETTI AFFRONTATI:
  • Installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI
  • Un sensore termico che offra telemetrie MQTT
  • Home Assistant configurato e funzionante
  • Broker MQTT configurato e funzionante (ad esempio Mosquitto, oppure il broker incluso con Home Assistant)
  • Componente Home Assistant “MQTT” configurato e funzionante
DISPOSITIVI FISICI UTILIZZATI:
  • Il dispositivo sul quale risiede Home Assistant
  • Un sensore termico che offra telemetrie MQTT
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico)
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.

Abstract

Home Assistant fornisce sin dalle prime versioni un supporto nativo al protocollo MQTT tramite un componente chiamato, per l’appunto, “MQTT”. In caso si possegga un sensore termico dotato di supporto MQTT (eg. un Sonoff TH-16/10 riprogrammato Sonoff-Tasmota), è possibile integrarne le metriche in modo molto semplice su Home Assistant.

In questa pagina vedremo come farlo utilizzando il componente “Sensor” di Home Assistant, nello specifico la piattaforma (sotto-componente) “MQTT Sensor“.

Affinché la configurazione che ci apprestiamo a realizzare funzioni, è necessario che il componente MQTT di Home Assistant sia già configurato.

Installazione

Non c’è bisogno di installare nulla: è sufficiente aggiungere alla configurazione di Home Assistant la voce relativa al sensore/sensori che si vogliono aggiungere.

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

Vediamo quindi come aggiungere un sensore di temperatura.
Il set minimale di configurazione da aggiungere al file “configuration.yaml” di Home Assistant è il seguente:

- sensor
  - platform: mqtt
    name: "Temperatura"
    state_topic: "topic_telemetrico_MQTT_relativo_al_vostro_sensore"
    unit_of_measurement: "°C"
    qos: 1
    value_template: "stringa_template_JSON_relativo_al_vostro_sensore

Una volta salvata la configurazione e rilanciato/aggiornato Home Assistant, apparirà (come da configurazione d’esempio) un nuovo sensore termico:

Home Assistant Temperature Sensor

Variabili di configurazione:

name

(stringa)(Opzionale) ll nome di attribuire al sensore
Valore di default: MQTT Sensor

icon

(stringa)(Opzionale) Icona per il sensore (eg. mdi:radiator).

state_topic
(stringa)(Obbligatorio) Il topic MQTT da sottoscrivere da parte di Home Assistant per ricevere la telemetria in questione (letture di temperatura e umidità).

Nel caso di un sensore Sonoff TH-16/TH-10 (aggiornato Sonoff-Tasmota), lo state topic è solitamente analogo a “tele/Sonoff/SENSOR“, dove “Sonoff” è il friendly name dell’unità.

value_template
(stringa)(Obbligatorio) Definisce la stringa template necessaria per estrapolare il valore d’interesse da dentro il payload JSON.

Nel caso di un sensore Sonoff TH-16/TH-10 (aggiornato Sonoff-Tasmota), il value template è solitamente analogo a “{{ value_json.AM2301.Temperature }}“. In questo caso simuliamo la presenza del sensore “AM2301” collegato all’unità THx.

Sempre proseguendo nell’esempio di un Sonoff THx + Sensore AM2301, il payload (leggibile dalla console Tasmota) sarebbe qualcosa del tipo:

tele/Sonoff/SENSOR = {“Time”:”2018-01-01T00:00:01″,”AM2301″:{“Temperature”:27,”Humidity”:41},”TempUnit”:”C”}

unit_of_measurement (stringa)(Opzionale) Definisce l’unità di misura del sensore, in questo caso “°C”
expire_after

(intero)(Opzionale) Il numero di secondi entro il quale deve arrivare un nuovo valore dopodiché il valore viene considerato non più valido.
Valore di default: 0 (disattivato)

force_update

(booleano)(Opzionale) Invia all’ambito Home Assistant l’evento “update” malgrado esso possa non aver ricevuto valori aggiornati. Comodo se si vuole mantenere un grafico forzatamente aggiornato in termini di rilevazioni.
Valore di default: false

availability_topic (stringa)(Opzionale) Il topic MQTT da sottoscrivere da parte di Home Assistant per ricevere lo stato (in linea/non in linea) del sensore
payload_available

(stringa)(Opzionale) Il payload che interpreta lo stato come “in linea”
Valore di default: online

payload_not_available

(stringa)(Opzionale) Il payload che interpreta lo stato come “non in linea”
Valore di default: offline

json_attributes

(lista|stringa)(Opzionale) Lista della chiavi da estrarre dal dizionario del payload JSON e da impostare come attributi del sensore (in caso dil sensore sia più evoluto e fornisca più letture contemporaneamente).

 

qos

(intero)(Opzionale) Indica il quality-of-service da utilizzare.
Valore di default: 0

unique_id

(stringa)(Opzionale) Indica un ID che identifichi univocamente il sensore nell’ambito Home Assistant. In caso siano presenti due ID uguali, Home Assistant solleva un’eccezione d’errore.

Volendo adesso creare un sensore di umidità relativa, sempre basandoci sull’esempio di un Sonoff TH-16/TH-10 che monti un sensore AM2301, si aggiungerà una configurazione come segue:

-sensor
  - platform: mqtt
    name: "Umidità"
    state_topic: "tele/sensorAngolo/SENSOR"
    unit_of_measurement: "%"
    qos: 1
    value_template: "{{ value_json.AM2301.Humidity }}"

Dubbi? Perplessità? Fai un salto sul FORUM o sulla CHAT @DISCORD!
Questa pagina è coperta dalla licenza Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Licenseil che significa che puoi liberamente condividerlo, senza modificarlo, citando il link della fonte.