如何对接不能修改订阅主题的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对接节点可以直接调用。如图中所示,直接启用对应节点接入设备后,添加函数节点转换。
💡提示
也可以直接使用nodered的转换节点实现。
‼️ 注意
利用该方式转换为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请求的地址也需要按照你当前测试环境的真实地址(前端访问地址)来修改。
💡 提示
实际请求结果可以在这个地方查看。
如何在nodered内进行备份(创造还原节点)?
答案
💡 提示
thingskit平台支持对nodered实例进行还原节点备份,备份后可以手动点击还原(系统会自动备份)。
手动备份位置:
手动还原位置:
导入流程后显示不存在节点,怎么解决?
答案
💡提示
在导入nodered流程后,如图显示不存在对应节点,是因为平台部署的nodered只包含默认nodered节点,如果需要使用其他的节点请联系相关工作人员,需要重新打包。
示例:
如何使用mqtt节点接入平台?
答案
💡提示
使用nodered内置mqtt节点连接平台时,可以按照设备接入的过程理解,需要首先在平台上配置产品-设备,然后配置节点的mqtt broker。
创建mqtt产品:
创建mqtt直连设备:
配置节点:
获取设备凭证:
如何使用nodered解析时间戳(毫秒)?
答案
💡提示
可以在nodered处理时间戳转换为可以直接理解的时间格式。
💡提示
nodered注入节点可以直接获取当前服务器时间戳(毫秒)。
如何在nodered中使用http监听?
答案
💡提示
有时候为了调试http接口调用,可以在nodered内启用http监听进行调试, 也可以直接接收数据后传递给平台。
首先确定nodered示例端口(如图中为21800):
💡提示
调用节点http in,http response,debug组合一个简单的http监听流程。添加http response节点会在http请求后默认返回200状态码。
nodered导入文件
💡提示
http in节点的内容可以自行编辑,如图
按照该方式设置流程后 ,http工具请求的url如图(url由nodered所在平台地址+nodered实例端口和http inURL地址组合决定):
上报后:
如何在nodered将字符串转换为json?
答案
💡提示
有时候nodered接收的设备数据类型为字符串,但实际上数据格式为json,可以利用nodered自带节点json实现快速转换。可以看到图中已经将输如的字符串转换为Json输出了。也可以直接输入Json,默认会输出对应字符串。
如图:
nodered导入文件:
如何在nodered内将base64加密字符串转换为明文?
答案
💡提示
可以通过函数节点调用对应函数解析。
nodered导入文件:


























