服务端订阅
服务端订阅是通过HTTP通道,将产品下所有设备数据按订阅类型转发到指定的HTTP地址。服务端订阅适用于单纯接收设备数据的场景。可快速地获取设备消息,无消息过滤功能,功能较单一但简单易用且高效。目前支持的订阅类型消息有:数据上报消息、数据变化通知、控制响应通知、上下线通知。
操作说明
1. “产品开发”页面,点击单个产品,点击“服务端订阅”;
2. 在“服务端订阅”中,点击“添加订阅”按钮;
3. 在“创建服务端订阅”的编辑框中,选择要订阅的类型、填写订阅的名称、订阅方URL地址;
4. 点击确定。
【说明】
订阅方URL地址: 数据流转的目的地
【注意】
平台以HTTP POST请求形式向第三方平台URL地址推送数据,第三方平台接收到数据后需要返回HTTP状态码 2xx,否则IoT OS会认为此次推送无效并重试,最多重试3次。且等待客户端的响应都设有时限(目前是5秒),在规定时限内没有收到响应会认为发送失败,连续失败100次(包括重试次数,并且计数规则是根据URL计算。相同URL下的不同规则都会被计算在内。)则会认为第三方地址不可用,推送服务将停止,对应订阅或者规则状态显示为"未启用"。建议第三方应用接收程序接收到数据时,先做数据缓存,再做业务逻辑处理。
其中请求的Content-Type
为application/json
。
订阅类型:
下述为用户通过HTTP通道获取到的不同订阅类型下的数据。
设备上报消息
指产品下的设备进行上报消息(devSend)时通知给订阅端的消息。
{
"iot_sys_devId": "8237948938472348",
"iot_sys_pk": "fb4327cdcfe5432e82ad217572bd8ebd",
"iot_sys_req": "{\"action\":\"devSend\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"data\":{\"cmd\":\"reportPower\",\"params\":{\"power\":0}}}",
"iot_sys_params": {
"power": 0
},
"iot_sys_event": "devSend",
"iot_sys_cmd": "reportPower",
"iot_sys_raw": "{\"action\":\"devSend\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"data\":{\"cmd\":\"reportPower\",\"params\":{\"power\":0}}}",
"iot_sys_resp": "{\"action\":\"devSendResp\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"code\":0,\"desc\":\"success\"}",
"iot_sys_timestamp": 1576467306280
}
参数 | 类型 | 说明 |
---|---|---|
iot_sys_devId | String | 设备ID |
iot_sys_pk | String | 设备所属产品pk |
iot_sys_req | String | 解析后的KLink数据 |
iot_sys_params | object | 所属产品定义的参数 |
iot_sys_event | String | 事件(devSend\devLogin等事件) |
iot_sys_cmd | String | 所属产品定义的命令 |
iot_sys_raw | String | 原始请求数据 |
iot_sys_resp | String | 云端针对该事件的数据回复 |
iot_sys_timestamp | number | 请求时间(ms) |
数据变化通知
指产品下的设备参数值发生变化时通知给订阅端的消息
{
"iot_sys_devId": "8237948938472348",
"iot_sys_pk": "fb4327cdcfe5432e82ad217572bd8ebd",
"iot_sys_req": "{\"action\":\"devSend\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"data\":{\"cmd\":\"reportPower\",\"params\":{\"power\":0}}}",
"iot_sys_event": "dataChanged",
"iot_sys_raw": "{\"last\":{\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"timestamp\":1576482068202,\"data\":{\"cmd\":\"reportPower\",\"params\":{\"hum\":23,\"light\":50,\"power\":1}}},\"current\":{\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"timestamp\":1576482072514,\"data\":{\"cmd\":\"reportPower\",\"params\":{\"power\":0}}},\"changed\":true}",
"iot_sys_timestamp": 1576482072526,
"iot_sys_snapshot": "{last=Snapshot(pk=fb4327cdcfe5432e82ad217572bd8ebd, devId=8237948938472348, timestamp=1576482068202, data=ModelData(cmd=reportPower, params={hum=23, light=50, power=1})), current=Snapshot(pk=fb4327cdcfe5432e82ad217572bd8ebd, devId=8237948938472348, timestamp=1576482072514, data=ModelData(cmd=reportPower, params={power=0}))}"
}
参数 | 类型 | 说明 |
---|---|---|
iot_sys_devId | String | 设备ID |
iot_sys_pk | String | 设备所属产品pk |
iot_sys_req | String | 解析后的KLink数据 |
iot_sys_event | String | 事件 |
iot_sys_raw | String | 原始请求数据 |
iot_sys_resp | String | 云端针对该事件的数据回复 |
iot_sys_timestamp | number | 请求时间(ms) |
iot_sys_snapshot | object | 设备快照 |
【注意】
设备快照中last字段表示数据改变前一次的快照,current字段表示数据改变时的快照。
如果是第一次上报数据,last 为 null。
控制响应通知
指产品下的设备对下发命令应答时通知给订阅端消息。
{
"iot_sys_devId": "10003",
"iot_sys_pk": "da47c27d593e4ecfb2e8f031875463d1",
"iot_sys_event": "cloudSendResp",
"iot_sys_raw":"{\n\"action\":\"cloudSendResp\",\n\"pk\":\"da47c27d593e4ecfb2e8f031875463d1\",\n\"devId\":\"10003\",\n\"msgId\":1,\n\"code\":0\n}\n",
"iot_sys_timestamp": 1573111224907
}
参数 | 类型 | 说明 |
---|---|---|
iot_sys_devId | String | 设备ID |
iot_sys_pk | String | 设备所属产品pk |
iot_sys_req | String | 解析后的KLink数据 |
iot_sys_event | String | 事件 |
iot_sys_raw | String | 原始请求数据 |
iot_sys_timestamp | number | 请求时间(ms) |
上下线通知
产品下的设备发生上下线状态变化时通知给订阅端的消息。
【上线通知】:
{
"iot_sys_devId": "8237948938472348",
"iot_sys_pk": "fb4327cdcfe5432e82ad217572bd8ebd",
"iot_sys_req": "{\"action\":\"devLogin\",\"msgId\":0,\"random\":\"init\",\"hashMethod\":\"HmacSHA1\",\"sign\":\"4f6a95a54bad27a874132929781ff4fea1748b7c\"}",
"iot_sys_event": "devLogin",
"iot_sys_raw": "{\"action\":\"devLogin\",\"msgId\":0,\"random\":\"init\",\"hashMethod\":\"HmacSHA1\",\"sign\":\"4f6a95a54bad27a874132929781ff4fea1748b7c\"}",
"iot_sys_resp": "{\"action\":\"devLoginResp\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"code\":0,\"desc\":\"success, \"}",
"iot_sys_timestamp": 1576468460670
}
参数 | 类型 | 说明 |
---|---|---|
iot_sys_devId | String | 设备ID |
iot_sys_pk | String | 设备所属产品pk |
iot_sys_req | String | 解析后的KLink数据 |
iot_sys_event | String | 事件 |
iot_sys_raw | String | 原始请求数据 |
iot_sys_resp | String | 云端针对该事件的数据回复 |
iot_sys_timestamp | number | 请求时间(ms) |
【离线通知】:
{
"iot_sys_devId": "8237948938472348",
"iot_sys_pk": "fb4327cdcfe5432e82ad217572bd8ebd",
"iot_sys_req": "{\"action\":\"devLogout\",\"msgId\":0,\"reason\":\"device send disconnect\"}",
"iot_sys_event": "devLogout",
"iot_sys_raw": "{\"action\":\"devLogout\",\"msgId\":0,\"reason\":\"device send disconnect\"}",
"iot_sys_resp": "{\"action\":\"devLogoutResp\",\"msgId\":0,\"pk\":\"fb4327cdcfe5432e82ad217572bd8ebd\",\"devId\":\"8237948938472348\",\"code\":0,\"desc\":\"success\"}",
"iot_sys_timestamp": 1576468459769
}
字段 | 说明 |
---|---|
iot_sys_devId | 设备ID |
iot_sys_pk | 设备所属产品pk |
iot_sys_req | 解析后的KLink数据 |
iot_sys_event | 事件 |
iot_sys_raw | 原始请求数据 |
iot_sys_resp | 云端针对该事件的数据回复 |
iot_sys_timestamp | 请求时间(ms) |