【问题标题】:Sending value from array to mqtt in nodered在nodered中将值从数组发送到mqtt
【发布时间】:2021-02-16 16:03:37
【问题描述】:

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

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

【问题讨论】:

  • Edit 显示您已经尝试过的问题并解释它是如何不起作用的。 Stack Overflow 希望您展示您的尝试,我们将帮助您修复它,但我们不会仅仅根据要求列表提供解决方案。

标签: nodes mqtt node-red


【解决方案1】:

好的,所以我们需要解决一些问题。

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

msg.payload.data[0]

其次,创建新的msg 对象不是一个好习惯,最好将相同的输入对象重用于输出。

因此,使用功能节点的最佳解决方案是:

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

return msg;

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

【讨论】:

  • 非常感谢这返回了数字,但是我希望也发送值的名称。这是当前调试:2021 年 2 月 16 日,20:23:11 节点:d727605.006b0a 加载:msg.payload:对象对象数据:数组 [1] 0:776 缓冲区:缓冲区 [2] 2021 年 2 月 16 日, 20:23:11节点:a6a7efd2.c10dc emon/deye/pv1:msg.payload:编号 776
  • 这不是您在原始问题中提出的问题。不要尝试在cmets中添加复杂数据,编辑问题
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多