GiorgioRavera.it

il mio blog: ciò che penso e faccio, trucchi di programmazione, linux, reti e molto altro

sabato, 3 Agosto 2019

MQTT e Shelly

Domotica, Informatica, Linux, by Giorgio.

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:

  1. Collegarvi all’interfaccia web degli shelly
  2. Aprire il menu Internet & Security
  3. Esplodere il menu ADVANCED – DEVELOPER SETTINGS
  4. Spuntare la voce Enable action execution via MQTT
  5. Inserire i dettagli di configurazione del vostro MQTT broker (hostname, username e password).
  6. 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:

  1. Shelly 1
  2. Shelly 2
  3. Shelly 2.5
  4. Shelly Bulb
  5. Shelly EM
  6. 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.

Back Top