ThingsBoard时间序列部件可视化OpenWeatherMap数据含括号问题求助
问题排查与解决方案
核心原因
该异常的本质是你拉取存储的气象数据为数组类型,而非单值数值类型,ThingsBoard时间序列部件默认会把数组值用括号包裹展示。
具体排查修复步骤
- 第一步:确认数据类型
打开对应设备的最新遥测页面,找到你要展示的气象数据字段(如温度、湿度),如果值显示为[21.3]这类带括号的格式,即可确认是数据类型问题。 - 第二步:修改规则链数据转换逻辑
OpenWeatherMap的接口返回值中,部分气象字段是嵌套在数组结构内的,你之前的规则链转换逻辑直接取了整个数组而非数组内的单值。修改转换脚本取数组下标为0的元素即可,参考脚本:// 错误写法(取到完整数组,导致存为数组类型) // msg.temperature = msg.weather.temp; // 正确写法(取数组第一个元素的数值,存为单值类型) msg.temperature = msg.weather[0].temp; return {msg: msg, metadata: metadata, msgType: msgType}; - 第三步:清空异常历史数据(可选)
如果需要历史数据也正常显示,可调用ThingsBoard的遥测数据删除接口,清理对应字段的历史数组类型数据,后续新上报的单值数据就会正常展示。
效果验证
修改后上报的新数据在设备遥测页会显示为纯数值,仪表盘时间序列部件不会再额外附带括号。
内容的提问来源于stack exchange,提问作者Nitesh232
相关产品推荐
相关产品推荐

