Node-RED使用问题_物联网平台

如何对接不能修改订阅主题的mqtt协议设备?

mqtt协议设备可以上报数据到平台,但设备订阅主题不可更改且不符合平台默认主题,thingskit平台目前不支持自定义发布主题,怎么搭配使用nodered实现设备对接?

答案

💡 提示

平台自1.5.2版本后支持嵌入nodered功能平台直接使用,nodered功能节点中包含mqttbroker节点可以直接调用。如图中所示,在nodered中搭建mqttbroker,让设备直接访问。

示例json(可直接导入到nodered,配置需要自行修改):

‼️ 注意

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

  1. 示例中配置可能需要修改,请按照实际情况修改。
  2. nodered中的mqttbroker节点仅支持3.1、3.1.1版本协议。

如何在nodered中对不同tcp协议设备下发命令?

当多设备对接到nodered的tcp in节点时,要对单个设备进行命令下发怎么实现(默认下发为广播)?

答案

💡 提示

平台自1.5.2版本后支持嵌入nodered功能平台直接使用,nodered功能节点中包含tcp对接节点可以直接调用。如图中所示,直接启用对应节点接入设备,并按照会话号区分下发设备。

示例json(可直接导入到nodered):

‼️ 注意

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

  1. 该示例中上传数据和下发命令可能都涉及内容的转换或解析,请添加对应的函数节点做转换。

如何在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实例时,如何直接调用平台的接口获取数据?

答案

💡 注意

调用平台的接口可以参考对应的文档。

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v1xapi/xuhcbzbqucub6fvq

参考流程(可导入):

💡 注意

在参考流程中需要修改对应的账号、密码完成token的获取,并且http请求的地址也需要按照你当前测试环境的真实地址(前端访问地址)来修改。

💡 提示

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


如何在nodered内进行备份(创造还原节点)?

答案

💡 提示

thingskit平台支持对nodered实例进行还原节点备份,备份后可以手动点击还原(系统会自动备份)。

手动备份位置:

手动还原位置:


导入流程后显示不存在节点,怎么解决?

答案

💡提示

在导入nodered流程后,如图显示不存在对应节点,是因为平台部署的nodered只包含默认nodered节点,如果需要使用其他的节点请联系相关工作人员,需要重新打包。

示例:


如何使用mqtt节点接入平台?

答案

💡提示

使用nodered内置mqtt节点连接平台时,可以按照设备接入的过程理解,需要首先在平台上配置产品-设备,然后配置节点的mqtt broker。

创建mqtt产品:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/sicuwdofg7gfxel5

创建mqtt直连设备:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/nse1xmr6t2gnt0w4

配置节点:

获取设备凭证:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/sixb3ckuygfb7e25

如何使用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导入文件:


云腾五洲-AI助理