我正在使用node-red通过MQTT获取数据。我得到的回复类似于图片中的内容..
不,我想借助函数分别获取 Phase1、Phase2、Phase3、Phase4 和 Timestamp 的数据。我不知道如何做到这一点。 P.S 我是node.red的新手。谢谢
最佳答案
如果您只想从每个消息中获取数值,则可以使用 function
节点来拆分字符串,如下所示:
var parts = msg.payload.split(":");
var value = parts.length > 1 ? parts[1].trim() : parts[0].trim();
// append the string before the ":" to the topic...
msg.topic += "/" + parts.length > 1 ? parts[0] : "Total";
// coerce the value after the ":" to be numeric...
msg.payload = +value;
return msg;
现在您将拥有可以直接在仪表板元素中显示的主题和负载。
还有至少 2 个节点可以做同样的事情,而无需编写任何 javascript 代码。您可能想要安装并尝试 node-red-contrib-string
节点 - 它非常适合提取字符串位。也可以使用 change
节点,但需要 Jsonata 表达式,该表达式功能强大,但也比 javascript 代码复杂一点...
关于javascript - 通过 Node-red Dashboard 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48663168/