物解析的告警处理
更新时间:2019-06-14
物解析解析后的数据格式样例为:
{
"bdModbusVer": 1,
"gatewayid": "4f92b501-b044-4f6c-8d1f-1efc79a75ba1",
"trantable": "fa17deca-beb6-43e4-8a3e-6f18e6ee4a62",
"modbus": {
"request": {
"functioncode": 3,
"slaveid": 1,
"startAddr": 0,
"length": 2
},
"response": "00010002",
"parsedResponse": [
{
"desc": "Temperature",
"type": "INT",
"unit": "",
"value": "1",
"errno": 0
},
{
"desc": "Speed",
"type": "INT",
"unit": "",
"value": "2",
"errno": 0
}
],
"error": null
},
"timestamp": "2017-06-08 09:34:36+0800",
"metrics": {
" Temperature ": 1,
"Speed": 2
},
"misc": {
"imei": "abcdefg",
"model": "2017"
}
}
-
在物解析中配置将消息转发至物接入主题
选择“产品服务>物解析 IoT Parser>解析项目”,进入“解析项目”操作界面。
此时目的地主题为空,点击“编辑”,对目的地主题进行编辑,告警服务通知中主题与该目的地主题应保持一致。
-
告警服务通知中基于物解析的实例和主题创建通知,异常条件填写:metrics.Temperature > 60。
-
到短信SMS服务中创建签名和模板
创建签名
创建模板
如果希望发送短信的内容是:异常!当前温度:50度,超过设定的告警温度,请及时处理。
可以创建如下模板内容,${key}可以作为自定义变量
-
填写通知策略
每当告警触发、更新、恢复,系统会发送一条中间消息,消息格式中既包含当前的告警状态,也包含触发该告警的信息。
这条中间消息的格式如下:
其中lastMsg的字段中,包含了触发该告警的MQTT消息,如果是物解析发送的数据,则lastMsg中是以下格式(省略了request等冗余信息)。 如果是自己上传的MQTT消息,lastMsg字段中的数据就是通过MQTT发送的消息中的数据。
如下,可以通过lastMsg.metrics.temperature拿到该条信息的温度值,stateDesc可以拿到当前状态信息。
{ "uuid": "1234b503-b743-4f6c-8d1f-257979a751b4", "name": "风机工作温度监控", "desc": "监控第2厂区2楼风机工作温度不超过60度", "endpointName": "myendpoint", "topic": "sensor/floor2", "select": "*", "condition": "temperature > 60", "alarmState": 1 / 0 , "stateDesc": “异常” / “恢复正常", "notifyType": "ALARM"/“REFERSH”/“RECOVER”, "startTime": 1497244107, "refreshTime": 1497244107, "recoverTime": 1497244107, "lastMsg": { "timestamp": "2017-06-0809: 34: 36+0800", "metrics": { "Temperature": 1, "Speed": 2 } } }
【模板变量】的输入框中输入相应的字段来替代在第三步中填写的自定义变量。用AS命令,将原始消息里的信息与短信模板中的自定义变量联系起来,如
stateDesc AS state, lastMsg.metrics.temperature AS temp
保存成功后,当触发告警条件,相应手机号就会收到短信。