MQTT消息格式定义v1.1.0 .md
5.52 KB
#MQTT消息类型及定义
######v1.1.0 by zcx 1/2/2018 11:05:51 AM
1.平台相关消息定义
WEB、APP端在对设备进行操作时,采用HTTP POST方式向WebS1发送控制命令,WebS1在对控制命令有效性进行验证验证后,通过HTTP协议对操作进行响应,如果命令有效则通过IOTAdapter转发至实际设备,如果验证失败则不再执行。
WEB通过HTTP POST向webS1发送控制命令;
webS1校验控制命令有效或无效,通过HTTP协议返回给WEB的具体消息的转发结果:控制命转发成功/失败;
webS1将有效的控制命令通过RMQ发送给IOTAdapter;
IOTAdapter通过MQTT发送给外部设备并等待控制结果;
WEB端通过MQTT接收IOTAdapter反馈的信文为:命令被网关接收成功/命令被执行成功/实时数据三大类;
1.1 传感器类
传感器实时状态(单个)
- iot pub topic: plat/data/设备序列号/传感器Id
- web/app sub topic:plat/data/#
- 内容格式:
{"sensorId":123,"line":0,"type":1,"value":1,"time":1488528701811} sensorId:传感器Id,全系统唯一 line:数值型,1:在线,0:离线 type:传感器值类型,1:Int型;2:String型。 value:传感器值,type=1时,0:关闭状态,1:打开状态 time:时间戳
传感器控制反馈
- iot pub topic:plat/ctlresp/sensor/设备序列号/传感器Id
- web/app sub topic:plat/ctlresp/sensor/+/+
- 内容格式: > {"sensorId":123,"code":1,"time":1488528701811} sensorId:传感器ID,数值型 code:控制反馈码,Int型,1:命令接收成功,2:命令接收失败,3:命令执行成功,4:命令执行失败,其他值非法 time:时间戳
2.1 设备类
设备控制反馈
- iot pub topic:plat/ctlresp/device/设备序列号
- web sub topic:plat/ctlresp/device/+
- 内容格式: > {"deviceNo":"ABCDEF","code":1,"time":1488528701811} deviceNo:设备编号,String型 code:控制反馈码,Int型:1:命令接收成功,2:命令接收失败,3:命令执行成功,4:命令执行失败,其他值非法 time:时间戳
设备在线状态更新
- iot pub topic:plat/linestate/device/设备序列号
- web sub topic:plat/linestate/device/+
- 内容格式: > {"deviceNo":"ABCDEF","line":1,"time":1488528701811} deviceNo:设备序列号 line:设备在线状态;0:离线,1:在线 time:时间戳
- iot pub topic:plat/linestate/device/设备序列号
3.1 流程控制类
流程实时状态更新
- task pub topic:plat/data/flow/流程ID
- web/app sub topic:plat/data/flow/+
- 内容格式:
>
{"flowId":12,"fTaskId":1,"progress":20,"code":1,"time":1488528701811} flowId:主流程ID,String型 fTaskId:子流程ID,String型 progress:流程执行进度,取值范围[0~100] code:状态码,Int型:10待执行,20执行中,30暂停,40执行失败,41执行动作失败,42水泵打开故障 ,43水泵未打开故障,46结束动作失败 ,47水泵关闭故障 ,80已过期,90已停止, 100执行成功; time:时间戳
流程控制反馈
- task pub topic:plat/ctlresp/flow/流程ID
- web/app sub topic:plat/ctlresp/flow/+
- 内容格式:
>
{"flowId":12,"code":1,"time":1488528701811} flowId:主流程ID,String型 code:状态码,Int型:0 使能失败;1使能成功;2未使能失败;3未使能成功; 10 暂停失败;11暂停成功;20继续失败;21继续成功;30恢复失败;31恢复成功;40停止失败;41停止成功; time:时间戳
3.2 触发器类
触发器实时状态更新
- task pub topic:plat/data/trigger/触发器ID
- web/app sub topic:plat/data/trigger/+
- 内容格式:
>
{"triggerId":12,"state":1,"time":1488528701811} triggerId:触发器ID,string型 state:状态码,Int型:10待触发,11正在触发,20触发失败,30已过期,40触发失败,80已过期,100已触发; time:时间戳
触发器控制反馈
- task pub topic:plat/ctlresp/trigger/触发器ID
- web/app sub topic:plat/ctlresp/trigger/+
- 内容格式:
>
{"triggerId":12,"code":1,"time":1488528701811} triggerId:触发器ID,string型 code:状态码,Int型:0 使能失败;1使能成功;2未使能失败;3未使能成功; time:时间戳
3.3 告警消息
具体用户-告警消息推送
- task pub topic:plat/alarm/农场id/用户id
- web/app sub topic:plat/alarm/+
- 内容格式:
>
{"recordId":1,"recordTime":1488528701811,"recordMsg":"西区温度传感器温度过高,请处理","recordTitle":"温度过高","farmId":22,"hasRead":false} recordId:消息编号 recordTime:日期 recordMsg:消息体 recordTitle:消息标题 farmId:农场id hasRead:是否阅读 false 未阅;true 已阅
3.3 策略消息
策略所属农场
- task pub topic:plat/strategy/msg/农场id
- web/app sub topic:plat/strategy/msg/+
- 内容格式:
>
{"sgId":1,"sgTitle":"流程控制xxxxx开始执行","sgContent":"流程控制xxxxx开始执行","sgTime":1488528701811,"targetId":1,"targetType":1,"framId":1} sgId:消息编号 sgTitle:消息标题 sgContent:消息体 sgTime:消息时间 targetId:目标对象id(流程id或触发器id) targetType:目标类别(0 流程控制;1 触发器) framId:农场id
4.1 tx800相关
虚拟设备控制权限更新
- iot pub topic:plat/acc/virdevice/虚拟设备id
- web sub topic:plat/acc/virdevice/+
- 内容格式:
>
{"vir_id":12,"acc":"1","time":1488528701811} vir_id:虚拟设备id,int型 acc:控制权限 (0 tx800,1平台) time:时间戳