设备消息调试
设备消息调试
ThingsCloud 控制台为您提供了快捷的设备消息调试界面,可以帮助您:
- 实时监视设备和云平台之间双向传输的所有消息,包括
JSON
、Plaintext
、二进制等格式。 - 查看消息错误的提示信息。
- 快速向设备下发消息进行测试,包括:下发属性、下发命令、下发自定义数据。
设备和平台之间的所有通信,都体现在消息中,这些消息既包括设备发送给平台的消息,也包括平台下发给设备的消息。因此,通过监视设备消息,可以帮助您快速定位和排查设备和平台的通信是否符合预期。
开启消息日志
要查看设备消息,首先需要开启设备的消息日志。开启消息日志后,平台会记录该设备的所有消息。如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128185123_a478ad39e88acd0ee88c9febb890ac98.png)
每条消息可以点击右侧的图标,查看消息详情,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128192505_ac3f348ce7dbb8a39688137ff97cc0ba.png)
ThingsCloud 不仅支持 JSON
消息格式,还支持二进制和 Plaintext
格式,例如 RS485/Modbus RTU 消息是二进制格式,通常用 HEX
十六进制字符串形式来表示它。如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128182219_2dcfe2b4398dd41f7dc8c8008d8421a6.png)
查看错误信息
通过消息日志,还可以监视消息格式错误的原因,帮助您排查问题。
例如,如果您在设备类型中添加了属性定义,但设备上报的属性值不符合该属性定义时,云平台会拒绝接收消息,并产生错误信息。
这里以温度属性为例,假如我们将属性的最大值设置为 10。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128184807_138bd1c26d7ac55cefb223f79bcc6f46.png)
当设备上报的属性值不符合这个范围时,该消息便无法被平台接收。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128184858_b93cc7c66f991778b98487d5d3209da9.png)
您可以点击查看错误详情,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128184930_e6f9c330012d65610ac845a085b0bc40.png)
在错误信息的 JSON
中,有详细的错误原因说明。这个 JSON
信息也可以由设备在上报消息后,通过订阅上报响应消息,来实时获得。
向设备下发消息
在设备调试界面中,可以快速为设备下发各类消息,可用于协议调试和设备故障排查。
学习视频
下发属性
提示
如何在设备上接收云平台下发的属性?请查看 设备接收云端下发属性。
选择属性下发,在编辑器中填写要下发的属性 JSON
消息。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128183614_294c5919fcf77f67e0ecd98417e6e787.png)
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128183831_43b62b96997d1a06de02e10939516cdc.png)
下发命令
提示
如何在设备上接收云平台下发的命令?请查看 设备接收云端下发命令。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128183946_03ae872584758676050fafe81b73bfd2.png)
下发自定义数据
提示
如何在设备上接收云平台下发的自定义数据?请查看 自定义数据流的 MQTT 主题。
我们在设备类型中添加自定义数据流,如下图:
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128183219_5a6554b5f1b495c56ff08f1b1047f55e.png)
这样一来,我们在设备调试界面就可以选择自定义数据流,作为下发消息的通道。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128184143_e22bdddd5576b82f523baa553dac02b5.png)
这里我们为接入的 DTU 设备下发一个 Modbus RTU 的查询指令,使用 HEX
消息格式。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128182617_828234ddb8c2da3b750bc51c174c4666.png)
DTU 将指令透传到 RS485 串口总线,获得传感器的回复消息,同时解析为传感器属性 JSON
,进入设备属性。
![](https://img-1300291923.cos.accelerate.myqcloud.com/articles/2022/20221128183039_485d567ceec742edbd6eacb8a4b69cc6.png)
利用 HEX
下发消息调试功能,您还可以在设备安装部署时快捷执行一些一次性的指令,例如修改设备 Modbus 从机站号、对设备初始化配置等。