如何在ThingsBoard社区版拆分原始遥测字符串为多字段数据
解决ThingsBoard拆分逗号分隔字符串为多字段遥测数据的问题
操作步骤:
- 在你的规则链中添加Script节点,将其连接到接收遥测请求的节点(比如
Post Telemetry Request)之后。 - 双击打开Script节点,在代码编辑框中粘贴以下JavaScript脚本:
// 提取原始逗号分隔字符串 const rawData = msg.payload; // 拆分字符串并转换为浮点数数组(自动去除每个值的空格) const dataArray = rawData.split(',').map(val => parseFloat(val.trim())); // 映射为目标字段结构 const formattedData = { temp: dataArray[0], humi: dataArray[1], voci: dataArray[2], noxi: dataArray[3], pm10: dataArray[4], pm25: dataArray[5], pm40: dataArray[6], pm100: dataArray[7] }; // 更新消息的payload为转换后的数据 msg.payload = formattedData; // 返回处理后的消息供后续节点使用 return {msg: msg, metadata: metadata, msgType: msgType};
- 将Script节点的输出连接到Save Timeseries节点,确保转换后的多字段数据能被存储到设备遥测中。
- 保存规则链并测试:发送你的测试字符串,在设备的「遥测数据」页面就能看到
temp、humi等8个独立字段了。
额外提示
如果担心数据格式异常(比如拆分后数组长度不足8),可以在脚本里加简单的判断逻辑,比如:
if (dataArray.length !== 8) { // 可以选择丢弃消息或标记错误,示例: metadata.error = "Invalid data length"; return {msg: msg, metadata: metadata, msgType: msgType}; }
内容的提问来源于stack exchange,提问作者Thomas Vikstrom
相关产品推荐
相关产品推荐

