MQTT e Shelly
Buongiorno a tutti. Ho deciso di scrivere un breve articolo per interfacciare gli shelly mediante MQTT. Questo può essere utile se volete preparare degli script da riga di comando per controllare i vostri shelly oppure per acquisirne lo stato.
Una cosa che ho trovato molto utile è scrivere uno script che aggiorna automaticamente tutti i firmware degli shelly. Il tutto sempre bia MQTT.
In questo articolo descrivo come configurare gli shelly per accedere a MQTT e come dialogare con essi.
Per prima cosa è fondamentale installare un MQTT broker. Io ho usato mosquitto e l’ho installato su un server debian casalingo.
Seconda cosa importante da fare è configurare i dispositivi shelly per comunicare con mqtt. Per farlo dovete:
- Collegarvi all’interfaccia web degli shelly
- Aprire il menu Internet & Security
- Esplodere il menu ADVANCED – DEVELOPER SETTINGS
- Spuntare la voce Enable action execution via MQTT
- Inserire i dettagli di configurazione del vostro MQTT broker (hostname, username e password).
- Salvare
A questo punto siete potete procedere sia nel comandare sia nel acquisire lo stato dei vostri dispositivi Shelly. La procedura sopra descritta è identica per tutte le tipologie di Shelly. Personalmente l’ho provata sui seguenti:
- Shelly 1
- Shelly 2
- Shelly 2.5
- Shelly Bulb
- Shelly EM
- Shelly Plug S
Per inviare comandi agli shelly dovrete inviare un messaggio al broker con il seguente comando:
$ mosquitto_pub -u <MQTT_USERNAME>-P <MQTT_PASSWORD> -t shellies/shelly1-XXXXXX/relay/0/command -m on
Il comando sopra descritto, ad esempio, attiva l’output di uno shelly 1.
Per leggere lo stato occorrerà sottoscriversi con il seguente comando:
$ mosquitto_sub -u <MQTT_USERNAME>-P <MQTT_PASSWORD> -t shellies/shelly1-XXXXXX/relay/0
Appena dato il comando vi metterete in attesa. Periodicamente lo shelly aggiornerà lo stato e vedrete sulla vostra shell il risultato.
Share this content: