今天用esp32的 idf 开发mqtt 又遇到了之前domoticz踩过的坑,记录一下
1. 发布的主题
对于一些受控设备,我们可能会去订阅一个主题,然后拿到一些感兴趣的状态。比如我可能会去监听某一个灯的状态切换,因为我自己就是这个设备!
发布的主题一共有四种选择
Select the Topic('s) Domoticz will use to publish outgoing messages.
Flat - publish outgoing messagen on topic domoticz/out.
Hierarchical - publish outgoing messagen on topic domoticz/out/${floorplan name}/${plan name}.
Combined - Use both Flat and Hierarchical topic schemes.
None - disable outgoing messages.
选择Domoticz将用于发布传出消息的主题。
out 发布主题域/out上的传出消息。
/ 在主题domaoticz/out/${floorplan name}/${plan name}上发布传出消息。
out+/ 组合-使用平面和层次主题方案。
none 禁用传出消息。
out 这个选项是将所有的信息都发布到 domoticz/out 这个主题
/ 这个是在domoticz/out//floorplanname/{floorplan name}/floorplanname/{plan name} 这个分支内的设备的控制信息会发送到这个主题上。 这个一般适合应用于 设备数量非常多的场景。
out+/ 就是有广播的主题 也有单独的主题,针对于不同的设备可以去订阅不同的主题
none 不发控制指令
2. 控制指令的发送
控制指令只接受json的格式,也就是说 你的json格式必须能校验过
这方面测试的话 可以到这里提前去测试一下
https://www.json.cn/
以下是一个例子
关于这个json 参数的意思,还需要去参考官方的wiki
{
"command": "udevice",
"idx" : 7,
"nvalue" : 0,
"svalue" : "90;2975.00"
}