Piattaforma Home Assistant “MQTT Switch”

3 minuti di lettura
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.1

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 Sonoff-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:

switch:
  - platform: mqtt
    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:

switch:
  - platform: mqtt
    name: "Interruttore Sonoff"
    state_topic: "stat/Sonoff/RESULT"
    command_topic: "cmnd/Sonoff/POWER"
    availability_topic: "tele/Sonoff/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    state_on: "ON"
    state_off: "OFF"
    optimistic: false
    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.

Aggiungere un interruttore MQTT alla configurazione Home Assistant


Home Assistant Official LogoATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Please comment below