COME FUNZIONANO I DISPOSITIVI SHELLY CON MQTT
MQTT è un protocollo “low weight” basato su pubblicazione-iscrizione.
Questo protocollo e composto in due parti:
- Il client (quello che si connette al broker).
- Il broker (quello che ha le credenziali di tutti gli utenti e ti permette di scambiare informazioni con i componenti che lavorano con il protocollo MQTT)
Puoi trovare maggiori informazioni riguardante il protocollo MQTT qui.
Tutti i nostri sistemi: server X1, macchina virtuale e raspberry pi sono in grado di funzionare come broker e server.
Prima di cominciare, verifica questi parametri per una configurazione corretta:
-
- Creare un gateway e impostarlo in MQTT broker.
-
- L’id del client predefinito deve essere impostato come: “eve-mqtt-client”.Se si dovesse aver bisogno di creare più di un client assicurati di cambiare il nome.
-
- La porta predefinita è: 1883
-
- I parametri predefiniti sono usati per mantenere le istanze aperte sono: “keep alive” (anche se non si stanno mandando nessun comando).
-
- Imposta il Quality of Service (QoS) a: “exactly once” (questa opzione garantisce che ogni messaggio venga ricevuto una volta).
Aggiungi un componente all’interno della sezione I miei componenti e assicurati che abbia il protocollo MQTT selezionato come mostrato nell’immagine sottostante.
COME FUNZIONANO IL PAYLOAD E I TOPIC?
TOPICS
I topic sono: read, event, write e response.
Ogni topic ha un tipo differente di messaggio che il broker MQTT usa per filtrare i messaggi per ogni Client connesso, i topic sono composti da livelli divisi da “slash”(“/”).
Esempio: home/livingroom/light
Ecco una breve descrizione dei quattro topic:
Topic read: È usato per ricevere lo stato del dispositvo MQTT.
Topic response: È la risposta del dispostivo alla richiesta di read del server di automazione.
Topic write: Questo topic è usato per impostare il valore di un parametro del dispostivo.
Topic event: Questo topic mostra lo stato del dispostivo in caso di cambiamenti.
Un payload è un pezzo di codice che contiene una funzione javascript.
Per ogni topic eseguita una funzione javascript per processare il payload topic.
Esempio di stringa json:
var data = JSON.parse(payload);var color = {“mode”:”color”,”red”:data.r,”green”:data.g,”blue”:data.b}; return JSON.stringify(color);
Passo 2:
Topic responce: Qui dovrai scrivere il corretto topic in base al dispositivo che si vuole controllare (puoi trovare maggiori info riguardo ai topic nella pagina web shelly).
“Topic write“: Quì e dove si scriverà il topic corretto basandosi sul dispositivo il quale vorrai controllare (puoi trovare tutti i topic dei dispositivi shelly in questa pagina).
Topic responce: Qui dovrai scrivere il corretto topic in base al dispositivo che si vuole controllare (puoi trovare maggiori info riguardo ai topic nella pagina web shelly).
Per verificare se il dispositivo funziona correttamente scarica l’open source software MQTT-fx,
questo ti permetterà di controllare le informazioni che il broker sta ricevendo dal dispositivo.
Installa il software sul tuo computer.
Il prossimo passo sarà impostare il broker all’interno delle impostazioni del software, clicca sulla icona dell’ingranaggio, scrivi l’indirizzo IP del tuo server X1 e la porta 1883.
Per iscriversi a tutti i topic scrivi il simbolo #(ash).
Clicca sul bottone “subscribe” e se una connessione è stata stabilita, avrai la possibilità di vedere una serie di messaggi; quei messaggi sono il segno che il tuo dispositivo ha stabilito una connessione con il boker.
Controlla se il componente funziona all’interno della applicazione di automazione.
Carica il progetto che abbiamo appena creato e provalo.
Scarica il test qui.
Nota: Tutti i dispositivi shelly hanno un ID differente e differenti modi di configurazione, quindi consigliamo di consultare la pagina web di shelly per assicurarsi di usare i comandi e i topic corretti.