【发布时间】:2017-12-26 16:59:59
【问题描述】:
我在玩nodered.. 到目前为止,我可以使用 modbus 收集一些数据并通过 mqtt 将其发送给代理。 但出于监控原因,我也想对我的交换机中的一些 snmp 子树执行此操作。 我不能让它工作。我可以使用“snmp-subtree”节点从交换机收集数据。在调试视图中,我可以看到我想要的有效负载。 现在我需要某种函数,从数组中获取每个对象并将其转换为“我的”mqtt 主题和有效负载。
msg : Object
object
_msgid: "xyz"
topic: ""
payload: array[33]
[0 … 9]
0: object
oid: "1.3.6.1.2.1.2.2.1.10.1"
value: 1231397597
1: object
oid: "1.3.6.1.2.1.2.2.1.10.2"
value: 0
每个对象都是一个接口。我需要为每个接口发送一条主题为“room/switch/interfaceIn/#”的消息(# 应该是 OID 的最后一个数字) 和作为有效载荷的值。 我真的不知道如何才能让它发挥作用。我想要一个 for 循环(为每个对象做一些魔术并发送一条消息)。 有人有我可以使用的示例吗?
新评论:
我尝试使用在 Google 中找到的示例进行编码。 现在我的函数中有一些工作代码。 我会运行几天来测试一下。
function shootMsg(element, index, array) {
node.send ({payload: element.value, topic:'test/mult/1/' + index});
}
msg.payload.forEach(shootMsg);
如果我能以任何方式改进,请随时发表评论...我是 Java 新手..我不知道我在做什么 :-)
我有一个新问题要在这里实现我的目标。我认为最好开始一个新话题? (我需要知道是否可以读取之前在节点中分配的IP地址,它不在消息体中。)
问候 丹尼斯
【问题讨论】:
-
函数节点采用普通的javascript。试一试,如果你遇到困难,用你尝试过的方法编辑问题,有人会帮忙
-
如果您回答自己的问题,请将其作为答案(并接受),而不是作为对您自己问题的编辑
标签: node-red