如何写payload代码发送16进制指令控制设备呢?

{
“payload_encoding”: “plain”,
“topic”: “RHgateway7F01DY”,
“qos”: 0,
“payload”: “{"A01":110000,"A02":110000}”,
“properties”: {
“payload_format_indicator”: 0,
“message_expiry_interval”: 0,
“response_topic”: “some_other_topic”,
“correlation_data”: “string”,
“user_properties”: {
“foo”: “bar”
},
“content_type”: “text/plain”
},
“retain”: false
}这个是以前控制单一设备的代码,现在加了485网关,要级联控制,控制的指令是”01050032FF002DF5”这个16进制指令,于是这个控制代码要怎么改呢?

是使用 HTTP API 发布 MQTT 消息吗?payload_encoding: base64

您好,是http的api的,
{
“payload_encoding”: “base64”,
“topic”: “RHgateway7F01DY”,
“qos”: 0,
“payload”: “01 05 00 14 00 00 8D CE”,
“properties”: {
“payload_format_indicator”: 0,
“message_expiry_interval”: 0,
“response_topic”: “some_other_topic”,
“correlation_data”: “string”,
“user_properties”: {
“foo”: “bar”
},
“content_type”: “hex”
},
“retain”: false
}是这样么?这个还是不能控制设备的,emqx平台有返回就是了,没有报400错误

抓一下包,看看 EMQX 发下去的报文对不对?

用mqttX发过去的同一个指令就可以控制,请问怎么抓emqx的包呢?

tcpdump.

你这个不是 hexstring 么,改成 base64 编码。

感谢,做好了