物联网Mqtt.md 4.4 KB

方式:Mqtt

网关:单片机

[no]=网关id

uid 网关id-时间戳

code 1:成功 0:失败

模块:设备

=======================================================================================================

网关【发布】网关心跳(单片机通过MQTT发送数据给MQTT服务端)

  • Topic:/sys/[no]/device/gateway_post

数据格式

{ "uid": "网关id-时间戳", }

数据格式:

{
  "uid": "64af5090d48aea1e06a4d46d_test_0001-0242ac120002",
}

=======================================================================================================

网关【订阅】网关心跳反馈(MQTT服务端发送数据给单片机)

  • Topic:/sys/[no]/device/gateway_post_reply

1:成功 0:失败

数据格式

{ "uid": "网关id-1690445136", "time":"1690445136", "code":1
}

=======================================================================================================

网关[发布]设备数据 时间段依次单个发布传感器数据 (单片机在监测到心跳成功后依次将每个传感器值数据发送给MQTT服务端)

  • Topic:/sys/[no]/device/post

  • 请求示例:

    {
    	"uid": "01e8d07e-8b1a-11ed-a1eb-0242ac120002",
    	"data": {
    		"deviceid": "13399250-8b1a-11ed-a1eb-0242ac120002",  String  (设备id)
    		"devicetype": 1,(设备类型 1:16A继电器 2:30A继电器 3:wifi继电器 4:wifi开关 5:wifi插座 6:wifi烟雾传感器 7:wifi火焰传感器 8:wifi天然器传感器 9:wifi水位传感器)
    		"devicestatus": 1, Number  ( 0:继电器断开、传感器无值 1: 继电器打开、传感器有 )
    		"value": 100 Number (传感器的值)
    	}
    }
    

=======================================================================================================

网关[订阅]数据反馈 (MQTT服务端发送数据给单片机 MQTT服务端告知单片机接收数据处理情况)

  • Topic:/sys/[no]/device/post_reply

  • 返回数据格式:

    ├─ uid: String (必选) (心跳请求 uid)
    └─ code: Number  (1 处理成功)
    
    
  • 返回示例:

    {
    "uid": "01e8d07e-8b1a-11ed-a1eb-0242ac120002",
    "code": 1
    }
    

=======================================================================================================

网关[订阅]设备执行 (MQTT服务端发送执行设备动作数据给单片机,单片机根据数据使某个传感器或继电器执行开/关操作 )

  • Topic:/sys/[no]/service/1/invoke

  • 请求数据格式:

    ├─ uid: String  (设备执行uid)
    └─ data: Object 
    └─ execs: Array 
      ├─ exectype: Number  (1 延时执行 2 操作设备3 修改场景状态)
      ├─ delay: Number  (延时 xxx秒执行)
      ├─ deviceid: String  (设备id)
      ├─ devicestatus: Number  ( 0:继电器断开  1: 继电器打开 2:继电器状态取)
      ├─ sceneid: String  (场景id)
      └─ scenestatus: Number  (场景状态 1 启用 0 禁用)
    
  • 请求示例:

    {
    "uid": "",
    "data": {
    "execs": [
      {
        "exectype": 1,
        "delay": 1,
        "deviceid": "",
        "devicestatus": 1,
        "sceneid": "",
        "scenestatus": 1
      }
    ]
    }
    }
    

=======================================================================================================

网关[发布]设备执行反馈结果 (单片机执行传感器开/关后反馈结果给MQTT服务端)

  • Topic:/sys/[no]/service/1/invoke_reply

  • 请求数据格式:

    ├─ uid: String  (设备执行 uid)
    └─ code: Number  (1 执行成功)
    
    
  • 请求示例:

    {
    "uid": "",
    "code": 1
    }
    

测试数据 mqtt客户端

订阅

/sys/3a08d532-4809-dbd6-b2bf-6134eb2a0019/device/gateway_post_reply
/sys/3a08d532-4809-dbd6-b2bf-6134eb2a0019/device/post_reply
/sys/3a08d532-4809-dbd6-b2bf-6134eb2a0019/service/1/invoke

心跳

  • Topic:/sys/3a08d532-4809-dbd6-b2bf-6134eb2a00/device/post

    {
    "uid": "01e8d07e-8b1a-11ed-a1eb-0242ac120002",
    "data": {
    "devices": [
      {
        "deviceId": "13399250-8b1a-11ed-a1eb-0242ac120003",
        "type": 1,
        "deviceStatus": 1,
        "electricity": 100
      }
    ],
    "scenes": [
      {
        "sceneId": "13399250-8b1a-11ed-a1eb-0242ac120004",
        "sceneStatus": 1
      }
    ]
    }
    }
    

    设备执行反馈

  • Topic:/sys/3a08d532-4809-dbd6-b2bf-6134eb2a00/service/1/invoke_reply

    {
    "uid": "",
    "code": 1
    }