EMQX 规则引擎之数据告警(从数组中取值)

作者 2025年03月25日 11:31 阅读 196

EMQX 规则引擎之数据告警

 

1、要发布的消息内容:

{"msgType":201,"txnNo":1741059781672,
"paramList":[
{"addrId":1,"id":"06010072","value":"2"},
{"addrId":1,"id":"06010071","value":"10"},
{"addrId":1,"id":"06010070","value":"1"},
{"addrId":1,"id":"06010038","value":"2000"},
{"addrId":1,"id":"06010082","value":"2"},
{"addrId":1,"id":"06010068","value":"3"}
],
"sn":"sn123456","result":1}

 

2、过滤出id='06010038' 且 value>100 的记录进行告警 ,注意,这里的100不要加单引号,让引擎按数字去运行,否则会按字符串进行比较。

FOREACH
payload.paramList as e
DO
clientid,
e.addrId as name,
e.value as value,
e.id as id
INCASE
e.id = '06010038'
and e.value >= 100
FROM "bus/in"

 

3、 指定 数据源 和 输出的mqtt主题即可

数据输入Topic: bus/in

动作输出Topic: device/temp/alert

 

当有消息投递到主题  bus/in 上时,emqtt规则引擎会通过以上sql过滤出符合条件的记录,转发到 温度告警主题!  

同一个系统中,可以选择消息重发布,如果是第3方系统可选择mqtt或webhook向外部系统转发

 

发表评论

请先登录后再发表评论!