基于ThingsBoard规则引擎处理OpenWeather API无降雨数据的问询
在ThingsBoard规则引擎中处理OpenWeather API无rain.1h字段的情况
你可以通过添加脚本转换节点实现需求逻辑,具体操作如下:
- 在规则链里,把脚本转换节点放在OpenWeather API调用节点的后方,确保它能接收API返回的响应数据。
- 打开脚本节点配置界面,输入以下JavaScript代码处理降雨数据:
// 检查API响应里是否存在rain.1h字段 if (msg.rain && msg.rain['1h']) { msg.rain_1h = msg.rain['1h']; } else { // 无降雨数据时设为0 msg.rain_1h = 0; } return {msg: msg, metadata: metadata, msgType: msgType};
- 配置完成后,后续节点(比如保存遥测/属性的节点)就可以直接使用
msg.rain_1h字段,它会自动根据API响应返回对应值或0。
注:必须先判断msg.rain对象是否存在,再检查其中的1h属性——因为无降雨时API响应里没有rain字段,直接访问msg.rain['1h']会触发报错,所以需要做两层判断。
内容的提问来源于stack exchange,提问作者tomtomnz
相关产品推荐
相关产品推荐

