MQTT
The MQTT integration publishes all the data it receives from the devices as JSON
over MQTT. To receive data from your device, you therefore need to subscribe to
its MQTT topic. For debugging, you could use a (command-line) tool like
mosquitto_sub which is part of the Mosquitto MQTT
broker.
MQTT quickstart
Use + for a single-level wildcard, # for a multi-level wildcard. Examples:
mosquitto_sub -t "application/APPLICATION_ID/#" -v # display everything for the given APPLICATION_ID
mosquitto_sub -t "application/APPLICATION_ID/device/+/event/up" -v # display only the uplink payloads for the given APPLICATION_ID
Note:
- MQTT topics are case-sensitive
- The
APPLICATION_IDcan be retrieved using the API or using the web-interface, this is not the same as theAppEUI/JoinEUI!
Events
The MQTT integration exposes all events as documented by
Event types. The default event topic is:
application/APPLICATION_ID/device/DEV_EUI/event/EVENT.
Scheduling a downlink
The default topic for scheduling downlink payloads is:
application/APPLICATION_ID/device/DEV_EUI/command/down.
The Application ID and DevEUI of the device will be taken from the topic.
Example payload:
{
"devEui": "0102030405060708", // this must match the DEV_EUI of the MQTT topic
"confirmed": true, // whether the payload must be sent as confirmed data down or not
"fPort": 10, // FPort to use (must be > 0)
"data": "...." // base64 encoded data (plaintext, will be encrypted by ChirpStack)
"object": { // decoded object (when application coded has been configured)
"temperatureSensor": {"1": 25}, // when providing the 'object', you can omit 'data'
"humiditySensor": {"1": 32}
}
}
