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:时间戳

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:时间戳