Thingsboard CE规则链跨节点元数据丢失,报警值显示NULL
问题分析与解决
问题原因
你的ComparaDistancia节点直接返回了布尔值return (metadata.porcentaje < metadata.umbral);,但Thingsboard的脚本节点需要返回包含msg、metadata和result的标准对象,才能将修改后的metadata传递给后续节点。直接返回布尔值时,系统不会保留你设置的metadata.porcentaje和metadata.umbral,导致后续节点读取到null。
修复代码
将ComparaDistancia节点的代码修改为:
metadata.porcentaje = (3800 - (msg.data_distance - 700)) / 38; metadata.umbral = 35; // 返回标准节点输出对象,保留msg和metadata,用result传递路由判断结果 return { msg: msg, metadata: metadata, result: metadata.porcentaje < metadata.umbral };
验证逻辑
修改后,当result为true时,规则链会走“True”分支进入CreaMsgTgmOk节点,此时metadata.porcentaje已被正确传递,生成的消息就能显示计算出的百分比值。
内容的提问来源于stack exchange,提问作者Edu Gimeno
相关产品推荐
相关产品推荐

