如何对接不能修改订阅主题的mqtt协议设备?
❓mqtt协议设备可以上报数据到平台,但设备订阅主题不可更改且不符合平台默认主题,thingskit平台目前不支持自定义发布主题,怎么搭配使用nodered实现设备对接?
答案
💡 提示
平台自1.5.2版本后支持嵌入nodered功能平台直接使用,nodered功能节点中包含mqttbroker节点可以直接调用。如图中所示,在nodered中搭建mqttbroker,让设备直接访问。

示例json(可直接导入到nodered,配置需要自行修改):
‼️ 注意
- nodered的mqttbroker必须使用未被占用的端口且通信设备可以访问。
- 实现思路为首先将设备对接到nodered的mqttbroker上,再将对应json(若上报消息不为json请自行修改流程)解析出来通过mqtt out上报给平台设备,最后在用mqtt in节点订阅平台设备下发指令,并发送给nodered的mqttbroker。在最后步骤中,发布给设备的主题就可以自行设置了。
- 如果下发给设备的命令json需要匹配设备的要求,则可以在“接受平台下发指令”的节点后添加函数节点自行修改:

- 示例中配置可能需要修改,请按照实际情况修改。
- nodered中的mqttbroker节点仅支持3.1、3.1.1版本协议。
如何在nodered中对不同tcp协议设备下发命令?
❓ 当多设备对接到nodered的tcp in节点时,要对单个设备进行命令下发怎么实现(默认下发为广播)?
答案
💡 提示
平台自1.5.2版本后支持嵌入nodered功能平台直接使用,nodered功能节点中包含tcp对接节点可以直接调用。如图中所示,直接启用对应节点接入设备,并按照会话号区分下发设备。

示例json(可直接导入到nodered):
‼️ 注意
- 本流程使用的nodered支持的全局变量记录设备tcp连接对应会话号,且存储为json格式,key为设备注册包,value为会话号。
- 示例中使用了两个注入节点作为示范,其中msg.sid作为注册包。
- 当对接到平台时需要额外添加tcp/mqtt节点与平台设备建立连接,如图所示:

- 该示例中上传数据和下发命令可能都涉及内容的转换或解析,请添加对应的函数节点做转换。
如何在nodered中将tcp协议上报的json消息正常解析?
❓向nodered的tcp in推送json输出的内容为字符串,怎样转换为json呢?
答案
💡 提示
平台自1.5.2版本后支持嵌入nodered功能平台直接使用,nodered功能节点中包含tcp对接节点可以直接调用。如图中所示,直接启用对应节点接入设备后,添加函数节点转换。

‼️ 注意
- 利用该方式转换为json后可直接对数据做具体调整,例如进行数据缩放、调整json结构复合平台mqtt协议上报格式,最后用mqtt out节点对接设备数据上报到平台。
如何在nodered中将上报设备数据整合为网关+网关子设备json格式上报给平台?
❓ 向平台上报的数据为单个网关接入多个传感器的上报数据,但格式并不符合网关+网关子设备格式以及主题,如何使用nodered实现设备数据按照网关+网关子设备格式上报给平台?
答案
💡 提示
可以参考下面这个回答的流程基础上进行修改。
https://yunteng.yuque.com/avshoi/v2xdocs/ehflc7mq3ug3z02z#djUW4
💡 提示
在此基础上添加解析节点将上报数据修改为网关+网关子设备格式通过“数据上报”到平台。
假设上报数据为{"deviceName":"test","temp":25.9},其中test为网关子设备名称,25.9为实际上报数据点。

💡 注意
按照文档流程上报数据前需要创建对应的网关产品、网关子设备产品以及创建网关设备,才可以在调整“数据上报”节点中有设备和产品可以选择(名称自行定义)。
示例:
数据上报:

命令下发:

💡 提示
按照流程上报后,平台会自动创建按照deviceName键值的网关子设备。设备上报数据在网关子设备物模型内查看。不同的deviceName键值会创建不同的网关子设备,也可以自行手动创建,后续对应数据会更新其物模型属性。
如何在nodered中调用平台的端口?
❓ 当在平台中启用一个nodered实例时,如何直接调用平台的接口获取数据?
答案
💡 注意
调用平台的接口可以参考对应的文档。
参考流程(可导入):
💡 注意
在参考流程中需要修改对应的账号、密码完成token的获取,并且http请求的地址也需要按照你当前测试环境的真实地址(前端访问地址)来修改。


💡 提示
实际请求结果可以在这个地方查看。

