# 方式: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-6134eb2a0019/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-6134eb2a0019/service/1/invoke_reply ``` { "uid": "", "code": 1 } ```