Node-RED中如何将timedate对象合并至多个设备数据对象?
Node-RED 设备数据合并时间戳解决方案
操作步骤
1. 插入Function节点
在你的流程里,找到输出原始msg.payload的节点,后面接一个Function节点,再把这个Function节点连到Dashboard的Table节点。
2. 写入处理代码
打开Function节点的编辑界面,粘贴以下代码:
// 提取timedate里的时间字段 const timeStamp = msg.payload.timedate.time; const processedData = []; // 遍历所有设备数据 for (const devId in msg.payload) { // 跳过timedate对象 if (devId === 'timedate') continue; // 合并设备数据、设备ID和时间戳 const devItem = { 设备ID: devId, ...msg.payload[devId], 时间: timeStamp }; processedData.push(devItem); } // 替换原payload为处理后的数组 msg.payload = processedData; return msg;
注:如果你的设备数据字段(比如温度、湿度)或者时间字段的键名和示例不同,直接修改代码里的对应字段名即可。
3. 配置Dashboard表格节点
在Table节点的配置面板中:
- 数据源选择Payload
- 表格会自动识别处理后数组里的所有字段,你可以手动调整列名和显示顺序
这样处理后,每个设备数据都会带上时间戳,Dashboard表格里每行对应一个设备,不会再出现时间戳单独成行的问题。
内容的提问来源于stack exchange,提问作者aatteen mies
相关产品推荐
相关产品推荐

