将值从数组发送到nodered中的mqtt

Sending value from array to mqtt in nodered

我有来自 nodered modbus 节点的附加调试输出,我只需要将数组中的数据值发送到 mqtt。我如何使用功能节点实现此目的?

我附上了我尝试过的内容和调试错误,而不是将未发生的值发送到 mqtt。我是这方面的新手,所以会感谢您的建议。相反,它发送值 36(这是我拍摄第二张屏幕截图时 pv1 的值)它返回 0

好的,所以我们需要修复一些问题。

首先,传入消息作为 msg 对象传递到函数节点,因此您需要使用它来访问输入数据。 payload 中数据字段第一个元素的路径为:

msg.payload.data[0]

其次,创建新的 msg 对象不是好的做法,最好为输出重用相同的输入对象。

因此,将所有这些放在一起,使用函数节点的最佳解决方案是:

msg.payload = msg.payload.data[0];
msg.topic = "emon/deye/pv1`;

return msg;

此问题的另一种解决方案是使用更改节点移动所需的值并设置 msg.topc