nodered使用问题_物联网平台_边缘计算网关

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

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

答案

💡 提示

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

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

‼️ 注意

  1. nodered的mqttbroker必须使用默认划分的端口,即默认为11800-11200,且使用端口不可被占用或外网不能访问。
  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对接节点可以直接调用。如图中所示,直接启用对应节点接入设备后,添加函数节点转换。

‼️ 注意

  1. 利用该方式转换为json后可直接对数据做具体调整,例如进行数据缩放、调整json结构复合平台mqtt协议上报格式,最后用mqtt out节点对接设备数据上报到平台。
本文通过 YUQUE WORDPRESS 同步自语雀
云腾五洲-AI助理