What is MQTT?

MQTT, also called Message Queuing Telemetry Transport, is an internet protocol designed for constrained devices with low-bandwidth. It allows users to send commands to remotely control DO via MQTT, read and publish data from sensor nodes and much more. It is commonly seen in the IoT (the Internet of Things) applications, where admins can easily establish a communication between multiple devices and realize centralized management.

This guide tells you how to remote control DO via MQTT in just a few minutes.



Gateway Configuration

Note: Gateway firmware version should be above 80.0.0.28. You can download the latest firmware here.


Step 1: navigate to “LoRaWAN/Network Server/Applications/”, click the Edit button.


Step 2: configure MQTT Parameters


Step 3: configuring MQTT.fx


Step 4: subscribe Uplink Topic


Step 5: control the DO

1. When Downlink Data is blank on gateway

Publish Topic Format :

application/[applicationID/device/[devEUI]/tx


Sample :

application/1/device/24e1612292633821/tx


2. When Downlink Data is filled

Filling example:

/milesight/downlink/$deveui


Publish Topic Format :

/milesight/downlink/[devEUI]


Sample :

/ursalink/downlink/24e1612292633821


 

Command


For UC1122 & UC1152

Set DO1 high

{"confirmed": true,"fport": 85,"data": "CQEA/w=="}

Set DO1 low

{"confirmed": true,"fport": 85,"data": "CQAA/w=="}


For UC1114

Set DO1 high

{"confirmed":true,"fport":85,"data":"CQEA/w=="}

Set DO1 low

{"confirmed":true,"fport":85,"data":"CQAA/w=="}

Set DO2 high

{"confirmed":true,"fport":85,"data":"CgEA/w=="}

Set DO2 low

{"confirmed":true,"fport":85,"data":"CgAA/w=="}


 

For UC11-N1 and UC500 series

Set GPIO1/DO1 high

{"confirmed": true,"fport": 85,"data": "AwEA/w=="}

Set GPIO1/DO1 low

{"confirmed": true,"fport": 85,"data": "AwAA/w=="}

Set GPIO2/DO2 high

{"confirmed": true,"fport": 85,"data": "BAEA/w=="}

Set GPIO2/DO2 low

{"confirmed": true,"fport": 85,"data": "BAAA/w=="}

 


Note: the above payload can be used to sent in Gateway->Network server->Date page to send to the controller in Base64 as well.