community italiana di domotica personale
 
Piattaforma Home Assistant “MQTT Switch”

Piattaforma Home Assistant “MQTT Switch”

Produttore: Home Assistant Community
Disponibilità: incluso nell’HUB personale Home Assistant
Categoria: software
Tipologia: piattaforma Home Assistant
Famiglia: componente “Switch” Home Assistant
Difficoltà di implementazione: media
Revisione scheda: 1.3

La piattaforma “MQTT Switch”, figlia del componente “Switch”, serve per definire delle semplici entità di tipo “interruttore” utili, appunto, nel gestire tramite Home Assistant degli attuatori domotici di tipo acceso/spento che prevedano di essere controllati tramite protocollo MQTT (per esempio quelli dotati di firmware Tasmota).

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.

A prescindere, si consiglia di affrontare l’implementazione di questa piattaforma solo in presenza di almeno una competenza base sul tema MQTT.

Configurazione

Per semplificare al massimo la comprensione del funzionamento di un interruttore controllabile tramite protocollo MQTT è necessario sapere che, idealmente, esso disponga di un topic di comando e di un topic telemetrico.

Il primo (la sua presenza è obbligatoria) si utilizza per inviare comandi verso l’attuatore, il secondo (solitamente presente) per ricevere da esso le risposte a tali comandi o comunque i cambi di stato (magari innescati manualmente tramite pulsanti o altro).

Esempio:

  • invio da parte di Home Assistant del topic di comando al broker indirizzato al dispositivo;
  • il dispositivo, iscritto al broker, riceve il comando a lui destinato;
  • il dispositivo esegue il comando e invia un topic telemetrico di risposta al broker;
  • Home Assistant, iscritot a sua volta al broker, riceve la telemetria e conferma effettivamente lo stato all’entità di tipo “MQTT Switch” dal quale è partito il comando.

In assenza di topic telemetrici (quindi impossibilità di indicarli nella configurazione di Home Assistant), l’HUB si comporta in modo optimistic, ovvero assume che, all’attuazione di un comando, esso sia stato effettivamente eseguito. Ovviamente eventuali cambi di stato attuati direttamente sul dispositivo non saranno ricevuti da Home Assistant.

Per aggiungere un (elementare) “MQTT Switch” alla configurazione di Home Assistant, il blocco è il seguente:

mqtt:
  switch:
  - name: "Sensor 1"
    command_topic: "cmnd/Sonoff/POWER"

Spiegazione dei campi utilizzati e utilizzabili:

command_topic (Stringa, obbligatoria) Il topic MQTT da far pubblicare a Home Assistant al fine di controllare lo switch.
payload_on (Stringa, opzionale) Il payload da inviare assieme al comando indicato in command_topic al fine di accendere l’interruttore.
payload_off (Stringa, opzionale) Il payload da inviare assieme al comando indicato in command_topic al fine di spegnere l’interruttore.
name
(Stringa, opzionale) Descrive il nome dell’entità. Default: MQTT Switch
icon (Icona, opzionale) Icona grafica per rappresentare lo switch, le quali fanno riferimento a quelle pubblicamente disponibili presso http://materialdesignicons.com. La sintassi prevede di indicare il nome dell’icona anticipato dal prefisso “mdi:
Esempio: “mdi:history“.
state_topic
(Stringa, opzionale) Il topic MQTT al quale iscriversi per ottenere i cambi di stato operativo da parte del dispositivo controllato.
state_on
(Stringa, opzionale) Il payload che, se ricevuto assieme allo state_topic, assume che l’interruttore sia acceso. Se non indicato, il default è “ON“.
state_off (Stringa, opzionale) Il payload che, se ricevuto assieme allo state_topic, assume che l’interruttore sia spento. Se non indicato, il default è “OFF“.
availability_topic
(Stringa, opzionale) Il topic MQTT al quale iscriversi per ottenere lo stato online/offline da parte del dispositivo controllato. Solitamente si utilizza il topic LWT.
payload_available (Stringa, opzionale) Il payload che, se ricevuto assieme allo availability_topic, assume che l’interruttore sia in servizio. Se non indicato, il default è “Online“. Solitamente si utilizza il payload LWT.
payload_not_available (Stringa, opzionale) Il payload che, se ricevuto assieme allo availability_topic, assume che l’interruttore sia fuori servizio. Se non indicato, il default è “Offline“. Solitamente si utilizza il topic LWT.
optimistic (Booleano, opzionale) Indica esplicitamente se l’interruttore stia lavorando in modalità optimistic oppure no. Il default è true in assenza di state_topic, altrimenti è false.
qos (intero, opzionale) – Il livello di QoS per lo state_topic. Default: 0 (Cos’è QoS?)
retain (Booleano, opzionale) Se impostare o meno la retain. Default: false
json_attribues_topic (Stringa, opzionale) Il topic MQTT da sottoscrivere per ricevere un payload JSON e impostare un relativo sensore.
device (Map, opzionale) Indica eventuali dettagli legati al dispositivo. Funziona solo tramite MQTT Discovery. Maggiori info sulla pagina di dettaglio della piattaforma presso il sito Home Assistant.
USO DI TEMPLATE

In ogni “*_state_topic” può essere definito un template per l’estrazione (parsing) del dato di stato. Può anche esserne definito uno per tutti, utilizzando la proprietà “value_template“. Questo si traduce in una grande comodità sopratutto quando si è in presenza di payload scritti in notazione JSON.

Esempio di configurazione

Di seguito una configurazione un po’ più ricca rispetto alla base:

mqtt:
  switch:
  - name: "Interruttore Sonoff"
    state_topic: "stat/Sonoff/RESULT"
    value_template: "{{ value_json.POWER }}"
    command_topic: "cmnd/Sonoff/POWER"
    availability_topic: "tele/Sonoff/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    retain: false
ESPEasy

In caso si utilizzino dispositivi dotati di firmware ESPEASY, la configurazione ad hoc è descritta qui.

Guida

Una guida di implementazione di questa piattaforma è disponibile qui.

Integrare un interruttore Tasmota via MQTT alla configurazione Home Assistant

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