Javascript 通过节点红色仪表板获取数据

Javascript 通过节点红色仪表板获取数据,javascript,dashboard,node-red,Javascript,Dashboard,Node Red,我使用节点red通过MQTT获取数据。我的反应和照片上的差不多 不,我想在函数的帮助下分别获得数据,包括相位1、相位2、相位3、相位4和时间戳。我不知道如何获得那样的数据。 另外,我是新来的诺德。瑞德。谢谢如果您只想从每个消息中获取数值,您可以使用函数节点拆分字符串,如下所示: var parts = msg.payload.split(":"); var value = parts.length > 1 ? parts[1].trim() : parts[0].trim(); //

我使用节点red通过MQTT获取数据。我的反应和照片上的差不多

不,我想在函数的帮助下分别获得数据,包括相位1、相位2、相位3、相位4和时间戳。我不知道如何获得那样的数据。
另外,我是新来的诺德。瑞德。谢谢

如果您只想从每个消息中获取数值,您可以使用
函数
节点拆分字符串,如下所示:

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;
现在,您将有一个主题和负载,可以直接显示在仪表板元素中


还有至少两个节点可以做同样的事情,而无需编写任何javascript代码。您可能需要安装并尝试
节点red contrib string
节点——它有助于提取字符串位。也可以使用
change
节点,但需要一个Jsonata表达式,该表达式功能强大,但比javascript代码还要复杂一些…

如果您只想从每个消息中获取数值,可以使用
函数
节点拆分字符串,如下所示:

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;
现在,您将有一个主题和负载,可以直接显示在仪表板元素中


还有至少两个节点可以做同样的事情,而无需编写任何javascript代码。您可能需要安装并尝试
节点red contrib string
节点——它有助于提取字符串位。
change
节点也可以使用,但需要一个Jsonata表达式,它功能强大,但比javascript代码还要复杂一些……

所有这些MSG都有相同的时间戳和主题——它们是否被前一个节点分割了?我正在通过MQTT中的publish.multiple发送同一主题上的所有MSGE。。使用publish.single将Vlaue发送到单独的主题是不是一个好主意?因为所有这些阅读都是相互关联的,并且都有一个单一的事件时间戳,所以将它们放在一个单一的负载中可能更有意义。理想情况下,您应该发布一个包含所有5个字段/值的json结构——然后您的节点red flow可以选择将所有数据写入一个新的db记录,跨4个阶段进行计算,或者拉出单个值以显示。所有这些MSG都具有相同的时间戳和主题--它们是否被前一个节点拆分?我将通过MQTT中的publish.multiple发送同一主题上的所有MSG。。使用publish.single将Vlaue发送到单独的主题是不是一个好主意?因为所有这些阅读都是相互关联的,并且都有一个单一的事件时间戳,所以将它们放在一个单一的负载中可能更有意义。理想情况下,您应该发布一个包含所有5个字段/值的json结构——然后您的节点red flow可以选择将所有数据写入一个新的db记录,跨4个阶段进行计算,或者拉出单个值进行显示。