Send Binary Using MQTT
- The connection to the MQTT server is as below
- Host: Your IP or Domain Name
- Port: 1883 (default)
- Client ID string should be formatted as "DEV_{DEVICE_ID}"
- Example: DEV_ ESP8266-12123123
- Username string should be formatted as DEV_{DOMAIN_KEY}
- Password should be your API_KEY
- MQTT Topic /{key}/device/{did}/msgs/bin/{dmdl}/{fwver}/{type}/{content-type}
- type is your binary rule name
- content-type is your binary data's content type (optional)
- Data
- Binary Data (byte[])
Legends
- {key}
- Domain Key
- {did}
- Device ID
- {dmdl}
- Device Model
- {fwver}
- Firmware Version
- {type}
- Binary Rule Name
- {context-type} (optional)
- Data MIME type
Important
MQTT QOS (Quality Of Service) should be always 2
const mqtt = require('mqtt')
options={
clientId: "DEV_your_device_id",
username: "DEV_your_domain_key",
password: "your_api_key",
qos: 2,
clean: true
};
const client = mqtt.connect('mqtt://your_host_or_ip', options)
topic = ' /your_domain_key/device/your_device_id/msgs/bin/device_model/fw_version/your_binary_rule';
payload = 'Your binary data'
client.on('connect', () => {
client.publish(topic, payload)
})
import paho.mqtt.publish as publish
auth = {‘username’:”DEV_your_domain_key”, ‘password’:”your_api_key”}
clientid = "DEV_your_device_id"
topic = "/your_domain_key/device/your_device_id/msgs/bin/device_model/fw_version/your_binary_rule"
payload = "Your binary data"
publish.single(hostname="your_host_or_ip", auth=auth, topic=topic, payload=payload, qos=2, client_id=clientid)
require 'rubygems'
require 'mqtt'
payload = 'Your binary data'
topic = "/your_domain_key/device/your_device_id/msgs/bin/device_model/fw_version/your_binary_rule"
MQTT::Client.connect(
:host => 'your_host_or_ip',
:username => 'DEV_your_domain_key',
:password => 'your_api_key',
:qos => 2,
:client_id => 'DEV_your_device_id'
) do |client|
client.publish(topic, payload)
end
< script src = "mqttws31.js" >
var payload = "Your binary data";
var topic = "/your_domain_key/device/your_device_id/msgs/bin/device_model/fw_version/your_binary_rule"
var clientId = "DEV_your_device_id";
var message = new Paho.MQTT.Message(payload);
message.destinationName = topic;
message.qos = 2;
client = new Paho.MQTT.Client("your_host_or_ip", Number(80), "/mqtt", clientId);
// Called when the connection is made
function onConnect() {
console.log(“Connected!”);
client.send(message);
}
client.connect({
onSuccess: onConnect,
userName: “DEV_your_domain_key”,
password: “your_api_key”
});
</script>
Examples
Receiving Messages
Data sent from from the platform to the device will be available at
Subscribe to MQTT Topic /{key}/device/{did}/cmds
Updated over 4 years ago