MQTT消息格式定义v1.06.md
4.05 KB
#MQTT消息类型及定义
######v1.0.6 by zcx 6/28/2017 6:31:07 PM
1. 控制反馈类
目前WEB、APP端在对设备进行操作时,均采用HTTP POST方式向WebS1发送控制命令,WebS1在对控制命令有效性进行验证验证后,通过HTTP协议对操作进行响应,如果命令有效则转发至实际设备,如果验证失败则不再执行。特别地,命令的转发及执行过程需要较长时间,整个系统的异步特性明显,因此采用MQTT来反馈控制结果较为合适。
通过HTTP反馈的信文为:控制命转发成功/失败
客户端通过MQTT接收反馈的信文为:命令被网关接收成功,命令被执行成功,执行后的实时数据三大类;
客户端接收反馈信文的主题前缀为:设备序列号/传感器ID;
1.1 传感器类
注:客户端要接收传感器的相关数据时,可以通过
设备序列号/#来接收来自于某个设备下的所有数据传感器实时状态(单个)
- topic:设备序列号/+/data
- 内容格式:
{"sensorId":123,"line":0,"type":1,"value":1,"time":1488528701811} sensorId:传感器Id,全系统唯一 line:数值型,0:在线,1:离线 type:传感器值类型,1:Int型;2:String型。 value:传感器值,type=1时,0:关闭状态,1:打开状态 time:时间戳
传感器控制反馈
- topic:设备序列号/传感器ID/ctlresp
- 内容格式: > {"sensorId":123,"code":1,"time":1488528701811} sensorId:传感器ID,数值型 code:控制反馈码,Int型,1:命令接收成功,2:命令接收失败,3:命令执行成功,4:命令执行失败,其他值非法 time:时间戳
2.1 设备类
设备控制反馈
- topic:设备序列号/ctlresp
- 内容格式: > {"deviceId":"AB3D","code":1,"time":1488528701811} deviceId:设备Id,String型 code:控制反馈码,Int型:1:命令接收成功,2:命令接收失败,3:命令执行成功,4:命令执行失败,其他值非法 time:时间戳
3.1 流程控制类
流程实时状态更新
- topic:流程ID/flow/data
- 内容格式:
>
{"flowId":12,"fTaskId":1,"progress":20,"code":1,"time":1488528701811} flowId:主流程ID,Int型 fTaskId:子流程ID,Int型 progress:流程执行进度,取值范围[0~100] code:状态码,Int型:0待执行,1执行中,2暂停,3执行失败,4执行成功,5已过期; time:时间戳
3.2 触发器类
触发器实时状态更新
- topic:触发器ID/trigger/data
- 内容格式:
>
{"triggerId":12,"state":1,"time":1488528701811} triggerId:触发器ID,Int型 state:状态码,Int型:10待触发,11正在触发,20触发失败,30已过期,100已触发; time:时间戳
3.3 告警消息
具体用户-告警消息推送
- topic:农场ID/用户id/alarm/msg
- 内容格式:
>
{"recordId":1,"recordTime":1488528701811,"recordMsg":"西区温度传感器温度过高,请处理","recordTitle":"温度过高","farmId":22,"hasRead":false} recordId:消息编号 recordTime:日期 recordMsg:消息体 recordTitle:消息标题 farmId:农场id hasRead:是否阅读 false 未阅;true 已阅
农场-告警消息推送
- topic:农场ID/alarm/msg
- 内容格式:
>
{"recordId":1,"recordTime":1488528701811,"recordMsg":"西区温度传感器温度过高,请处理","recordTitle":"温度过高","farmId":22,"hasRead":false} recordId:消息编号 recordTime:日期 recordMsg:消息体 recordTitle:消息标题 farmId:农场id hasRead:是否阅读 false 未阅;true 已阅
注:客户端要接收时,运维人员可以通过
#/alarm/msg来接收所有告警数据;农场主和普通用户通过农场ID/用户id/alarm/msg和农场ID/alarm/msg来接受对应的告警数据
3.3 策略消息
策略所属农村
- topic:农场ID/msg
- 内容格式:
>
{"sgId":1,"sgTitle":"流程控制xxxxx开始执行","sgContent":"流程控制xxxxx开始执行","sgTime":1488528701811} sgId:消息编号 sgTitle:消息标题 sgContent:消息体 sgTime:消息时间