gateBee MQTT

microBees gateBee MQTT

Empty section. Edit page to add content here.

MQTT è un protocollo di connettività molto comune nell’ “Internet delle Cose”.

E’ stato progettato per pubblicare e ricevere velocemente informazioni.

E’ utile per i collegamenti dove è richiesto un codice ridotto e/o la larghezza di banda di rete è ridotta.

E’ ideale anche per le applicazioni mobili a causa delle sue ridotte dimensioni, il consumo di risorse esiguo, la mole di pacchetti di dati ridotto al minimo, e la distribuzione efficiente delle informazioni a uno o più destinatari. MQTT, per sicurezza, è configurato per ricevere comandi solo da un dispositivo che si trovi nella stessa rete LAN.

Il gateBee fornisce un server MQTT dove è possibile:

– ricevere aggiornamenti in tempo reale sui sensori delle Bee collegate;

– inviare comandi alle Bee collegate;

– inviare aggiornamenti di Sensori Personalizzati.

 

Per ricevere aggiornamenti sui sensori delle Bee collegate è sufficiente connettersi al gateBee sulla porta 1883 (TCP UDP) e sottoscriversi alla coda “sensor_logs”.

Esempio in NodeJS

var mqttServer= "tcp://ip-del-gatebee:1883";

var client = mqtt.connect(mqttServer);

client.on('connect', function () {   client.subscribe('sensor_logs'); });

client.on('message', function (topic, message) {   console.log("Message Received from Topic: "+topic+"\n"+message); });

client.end();

Output dell’Esempio

Message Received from Topic: sensor_logs {"product_id":1,"conf":{"smartbee_serial":"1389167104","smartgate_serial":"B3-57-F3-77-42-89"},"data":{"time_measured":1430302273274,"local_address":"192.168.1.2","param_num":7,"param_type":5,"payload":[0,0,0,228.4368,0,0,0]},"message_type":2}

vedi Lettura Aggiornamenti Bee.

Per inviare comandi tramite MQTT bisogna inviare il comando formattato secondo Comando Bee Locale alla coda “commands”.

Esempio in NodeJS

client.publish('commands',"{\"productId\":1,senderIP:\"192.168.1.5\",\"conf\":{\"smartbee_serial\":1,\"smartgate_serial\": \"B3-57-F3-77-42-89\"},\"data\": {\"command_type\": 6,\"value_type\":4, \"payload\": [1042,1,13]}}", function() {   console.log("message sent to commands"); });