E' possibile collegarsi al broker MQTT di Databoom utilizzando MQTT.fx.
Per la configurazione di un dispositivo MQTT in Databoom leggi anche: MQTT
Prima di iniziare
Per potersi collegare al broker MQTT è necessario annotare da Databoom:
- il proprio username;
- nell'esempio verrà utilizzato lo username:
- databoomtest
- nell'esempio verrà utilizzato lo username:
- il proprio ambito utente (dal profilo personale);
- nell'esempio verrà utilizzato l'ambito:
- V9Gg
- nell'esempio verrà utilizzato l'ambito:
- un token OAuth (Impostazioni 🡺 Credenziali 🡺 Chiavi OAuth/Aggiungi OAuth);
- nell'esempio verrà utilizzato un token fittizio:
- kQHpPRPtiJcPa7FQCFaKUrnRABx2Fe/TnzzzkZD9R9M=
- nell'esempio verrà utilizzato un token fittizio:
- il token del proprio dispositivo (dalla pagina di dettaglio del dispositivo);
- nell'esempio verrà utilizzato il token fittizio:
- 0kvt8awd1v
- nell'esempio verrà utilizzato il token fittizio:
- i topic per la pubblicazione/sottoscrizione del proprio dispositivo (dalla pagina di dettaglio del dispositivo);
- nell'esempio verranno utilizzati i topic fittizi:
- MQTTfx/0kvt8awd1v/data per la pubblicazione
- MQTTfx/0kvt8awd1v/info per la sottoscrizione
- nell'esempio verranno utilizzati i topic fittizi:
TIP! E' consigliabile generare un token OAuth diverso per ogni client utilizzato per una maggiore sicurezza.
Struttura parametri da inoltrare
I parametri da inviare devono essere in formato JSON, in particolare si segue la struttura:
{
"type": "data",
"message": { "device": "<token dispositivo>", "date": "<data>", "signals" : [ { "name": "<token segnale>", "value": <valore segnale> } ] }
}
device è il token del proprio dispositivo mentre date è la data della rilevazione. Il campo date può essere omesso, in tal caso verrà utilizzata la data di ricezione del valore.
I segnali vanno inseriti nell'array signals, sono costituiti dal campo name che costituisce il token del segnale, e value il suo valore.
Se si vuole aggiornare un segnale già presente nel proprio dispositivo su Databoom, name dovrà corrispondere al token esistente. Se il segnale non è presente in Databoom, verrà inserito utilizzando name come token. Il valore dovrà pertanto essere univoco all'interno del dispositivo.
-
Coi valori dell'esempio avremo quindi:
{ "type": "data", "message": { "device": "0kvt8awd1v", "date": "2020-03-05T14:50:00+01:00", "signals" : [ { "name": "MQTT_signal", "value": 123 } ] } }
MQTT.fx
I campi necessari per la creazione di un client MQTT sono:
- Profile Name, un nome a piacere per identificare il proprio client nell'applicazione;
- Profile Type, va selezionato MQTT Broker;
- Broker Address, l'indirizzo del broker di Databoom mqtt.databoom.com;
- Broker Port, la porta utilizzata 1883;
- Client ID, formato dall'ambito utente e dal token del dispositivo con la struttura <ambito utente>-<token dispositivo>;
- Il Client Id d'esempio è:
- V9Gg-0kvt8awd1v
- Il Client Id d'esempio è:
- User Credentials
- Username, il nome utente;
- Lo username di esempio è:
- databoomtest
- Lo username di esempio è:
- Password, un token OAuth generato dall'utente;
- il token di esempio è:
- kQHpPRPtiJcPa7FQCFaKUrnRABx2Fe/TnzzzkZD9R9M=
- il token di esempio è:
- Username, il nome utente;
E' inoltre possibile autenticarsi attraverso l'utilizzo dei certificati, generati alla creazione di un dispositivo MQTT in Databoom:
- Broker Address va impostato a mqttcert.databoom.com;
- Broker Port è 8883;
- SSL / TLS
- Selezionare Enable SSL/TLS
- Protocol va impostato a TLSv1.2
- Self signed certificates
- Nei campi CA file, Client certificate file, Client key file vanno caricati i file certificati scaricati dal dispositivo in Databoom
Una volta stabilita la connessione con il broker è possibile pubblicare dei dati oppure sottoscriversi al topic per supervisionare gli eventi del dispositivo.
Il topic per la pubblicazione è costituito da <progetto>/<token dispositivo>/<topic>, ed è visualizzato nella pagina di dettaglio del dispositivo. Il formato dei dati da inoltrare è un JSON contenente il token del dispositivo e i segnali con i loro valori, come riportato in capo all'articolo.
- Con i dati dell'esempio il topic sarà:
- MQTTfx/0kvt8awd1v/data
Il topic per la sottoscrizione è costituito da <progetto>/<token dispositivo>/<topic>, ed è visualizzato nella pagina di dettaglio del dispositivo. Sottoscrivendosi a dispositivo verranno visualizzati tutti gli eventi, come ad esempio la conferma di ricezione dei dati pubblicati.
- Con i dati dell'esempio il topic sarà:
- MQTTfx/0kvt8awd1v/info
Pubblicando sul topic dati è anche possibile creare allarmi ed eventi seguendo rispettivamente i formati:
{ "type": "alarm", "message": { "dateOn": "2020-03-05T14:50:00+01:00", "description": "Questo e' un test di allarme da mqtt", "comment": "Testo piu' verboso per allarme da mqtt", "status": "ON", "ack": "NACK" } }
{ "type": "event", "message": { "description": "Evento da mqtt su segnale di dispositivo", "from": "2020-03-05T14:50:00+01:00", "to": "2020-03-05T16:50:00+01:00", "link": { "device": "<token dispositivo>", "signal": "<token segnale>" }, "tags": [ "mqtt" ] } }
-
Con i dati dell'esempio avremo:
{ "type": "alarm", "message": { "dateOn": "2020-03-05T14:50:00+01:00", "description": "Questo e' un test di allarme da mqtt", "comment": "Testo piu' verboso per allarme da mqtt", "status": "ON", "ack": "NACK" } }
{ "type": "event", "message": { "description": "Evento da mqtt su segnale di dispositivo", "from": "2020-03-05T14:50:00+01:00", "to": "2020-03-05T16:50:00+01:00", "link": { "device": "0kvt8awd1v", "signal": "MQTT_signal" }, "tags": [ "mqtt" ] } }
0 Commenti