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