网关子设备
约 5124 字大约 17 分钟
2025-03-03
功能概述
设备分类
物联网开发平台根据设备功能性的不同将设备分为如下三类(即节点的分类):
- 普通设备 :此类设备可直接接入物联网开发平台且无挂载子设备。
- 网关设备 :此类设备可直接接入物联网开发平台,并且可接受子设备加入局域网络。
- 子设备 :此类设备必须依托网关设备才可与物联网开发平台进行通信,例如 Zigbee、蓝牙、RF433 等设备。
操作场景
- 对于不具备直接接入因特网的设备,可先接入本地网关设备的网络,利用网关设备与云端的通信功能,代理子设备接入物联网开发平台。
- 对于在局域网中加入或退出网络的子设备,网关设备可对其在平台进行绑定或解绑操作,并上报与子设备的拓扑关系,实现平台对于整个局域网子设备的管理。
接入方式
- 网关设备接入物联网开发平台的方式与普通设备一致。网关设备接入之后可代理同一局域网下的子设备上/下线,代理子设备上报数据,代理子设备接收云端下发给子设备的数据,并管理与子设备之间的拓扑关系。
- 子设备的接入需通过网关设备来完成,子设备通过网关设备完成身份的认证之后即可成功接入云端。认证方式分为以下两种:
- 设备级密钥方式 网关获取子设备的设备证书或密钥,并生成子设备绑定签名串。由网关向平台上报子设备绑定签名串信息,代理子设备完成身份的验证。
- 产品级密钥方式 网关获取子设备的 ProductSecret(产品密钥),并生成签名,由网关向平台发送动态注册请求。验证成功之后平台将返回子设备的 DeviceCert 或 DeviceSecret,网关设备依此生成子设备绑定签名串,并向平台上报子设备绑定签名串信息。验证成功之后即完成子设备的接入。
通用请求参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
msgToken | String | 是 | 用于上下行消息配对标识 |
sys.noAsk | bool | 否 | 云端是否回复设备 |
sys.retMsg | bool | 否 | 是否返回错误信息,字段为msg |
示例: |
{
"method": "reportInfo",
"msgToken": "1234567",
"sys": {
"noAsk": false,
"retMsg": true
}
}
拓扑关系管理
功能概述
网关类型的设备,可通过与云端的数据通信,对其下的子设备进行绑定与解绑操作。实现此类功能需利用如下两个 Topic:
- 数据上行 Topic(用于发布):
$gateway/up/topo/${productid}/${devicename}
- 数据下行 Topic(用于订阅):
$gateway/down/topo/${productid}/${devicename}
新设备注册
设备上线之前您需要对设备进行身份注册,标识您的设备。 网关绑定子设备请求数据格式:
{
"method": "register",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"deviceAlias": "afwe"
}
]
}
}
网关绑定子设备响应数据格式:
{
"method": "register",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subaaa",
"deviceSecret": "xxxxxx"
}
]
}
}
请求参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。注册子设备取值为:register |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需要注册的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.deviceAlias | String | 子设备名称(可选,版本>1.3.0) |
响应参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。绑定子设备取值为:register |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 要注册的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.deviceSecret | String | 子设备秘钥,拿来绑定设备 |
绑定设备
网关类型的设备,可以通过数据上行 Topic 请求添加它和子设备之间的拓扑关系,实现绑定子设备。请求成功之后,云端通过数据下行 Topic 返回子设备的绑定结果信息。
网关绑定子设备请求数据格式:
{
"method": "bind",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"signature": "signature",
"random": 121213,
"timestamp": 1589786839,
"signMethod": "hmacsha256"
}
]
}
}
网关绑定子设备响应数据格式:
{
"method": "bind",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subaaa",
"code": 200
}
]
}
}
请求参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。绑定子设备取值为:bind |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需要绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.signature | String | 子设备绑定签名串。 签名算法: 1. 签名原串,将产品 ID 设备ID,随机数,时间戳拼接:text=productid;{device_name};random;{timestamp} 2. 使用设备 Psk 密钥,或者证书的 Sha1 摘要,进行签名:hmac_sha1(device_secret, text),注意:(device_secret 需要先base64 decode) 生产16进制字符串 |
payload.devices.random | Int | 随机数。 |
payload.devices.timestamp | Int | 时间戳,单位:秒。 |
payload.devices.signMethod | String | 签名算法。支持 hmacsha1、hmacsha256。 |
响应参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。绑定子设备取值为:bind |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 要绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.code | Int | 子设备绑定结果,200表示成功 |
解绑设备
网关类型的设备, 可以通过数据上行 Topic 请求解绑它和子设备之间的拓扑关系。请求成功之后,云端通过数据下行 Topic 返回子设备的解绑信息。
网关解绑子设备请求数据格式:
{
"method": "unbind",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subaaa"
}
]
}
}
网关解绑子设备响应数据格式:
{
"method": "unbind",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subaaa",
"code": 200
}
]
}
}
请求参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。解绑子设备取值为:unbind |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需要解绑的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
响应参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。解绑子设备取值为:unbind |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需要解绑的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.code | Int | 子设备绑定结果,200表示成功 |
云端查询网关可绑定子设备
云端可以通过调用接口查询网关可以配网的子设备列表
下发请求数据格式:
{
"method": "getFound",
"msgToken": "1234567"
}
请求参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。查询子设备取值为:getFound |
msgToken | String | 用于上下行消息配对标识 |
网关查询子设备拓扑关系响应数据格式:
{
"method": "getFound",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
},
{
"productID": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8"
},
{
"productID": "XKFA****LX",
"deviceName": "hmIjq0gEFcf****F5X"
},
{
"productID": "XKFA****LX",
"deviceName": "x9pVpmdRmET****mkM"
},
{
"productID": "XKFA****LX",
"deviceName": "zmHv6o6n4G3****Bgh"
}
]
}
}
响应参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。查询子设备取值为:getFound |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 网关可以绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
msgToken | String | 用于上下行消息配对标识 |
云端通知网关绑定子设备
云端可以通过调用接口通知网关配网子设备列表,无需网关回复
下发请求数据格式:
{
"method": "notifyBind",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
},
{
"productID": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8"
},
{
"productID": "XKFA****LX",
"deviceName": "hmIjq0gEFcf****F5X"
},
{
"productID": "XKFA****LX",
"deviceName": "x9pVpmdRmET****mkM"
},
{
"productID": "XKFA****LX",
"deviceName": "zmHv6o6n4G3****Bgh"
}
]
}
}
请求参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。查询子设备取值为:getFound |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 网关可以绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
网关查询云端拓扑关系
网关类型的设备, 可以通过该 Topic 上行请求查询子设备的拓扑关系。
网关查询子设备拓扑关系请求数据格式:
{
"method": "getTopo",
"msgToken": "1234567"
}
请求参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。查询子设备取值为:getTopo |
msgToken | String | 用于上下行消息配对标识 |
网关查询子设备拓扑关系响应数据格式:
{
"method": "getTopo",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
},
{
"productID": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8"
},
{
"productID": "XKFA****LX",
"deviceName": "hmIjq0gEFcf****F5X"
},
{
"productID": "XKFA****LX",
"deviceName": "x9pVpmdRmET****mkM"
},
{
"productID": "XKFA****LX",
"deviceName": "zmHv6o6n4G3****Bgh"
}
]
}
}
响应参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。查询子设备取值为:describeSubDevices |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 网关绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
拓扑关系变化
网关类型的设备, 可以通过该数据下行 Topic 订阅平台对子设备的拓扑关系变化。
子设备被绑定或解绑,网关将收到子设备拓扑关系变化, 云端下发topic:$thing/down/service/{ProductID}/{DeviceName}
数据格式如下:
{
"method": "bindChange",
"msgToken": "1234567",
"payload": {
"userID": "123123"
}
}
请求参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 固定值: bindChange |
msgToken | String | 用于上下行消息配对标识 |
status | Int | 拓扑关系变化状态。* 2:解绑* 1:绑定 |
payload.devices | Array | 网关绑定的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
网关响应,数据格式如下:
{
"method": "change",
"msgToken": "1234567",
"code":200,
"msg":"success"
}
响应参数说明:
参数 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。拓扑关系变化取值为:change |
msgToken | String | 用于上下行消息配对标识 |
code | Integer | 200 表示成功 |
msg | String | 当 code 非200的时候,提示错误信息 |
代理子设备上下线
功能概述
网关类型的设备,可通过与云端的数据通信,代理其下的子设备进行上线与下线操作。此类功能所用到的 Topic 与网关子设备拓扑管理的 Topic 一致:
- 数据上行 Topic(用于发布):
$gateway/up/status/${productid}/${devicename}
- 数据下行 Topic(用于订阅):
$gateway/down/status/${productid}/${devicename}
代理子设备上线
网关类型的设备,可以通过数据上行 Topic 代理子设备上线。请求成功之后,云端通过数据下行 Topic 返回子设备的上线结果信息。
同时联犀会将自动为网关订阅子设备的物模型相关topic和ota相关topic
网关代理子设备上线请求数据格式:
{
"method": "online",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa"
}
]
}
}
代理子设备上线响应数据格式:
{
"method": "online",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"code":200
}
]
}
}
请求参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。代理子设备上线取值为:online |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需上线的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
响应参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。代理子设备上线取值为:online |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需上线的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.code | Int | 子设备上线结果,具体错误码 见下表 |
代理子设备下线
网关类型的设备, 可以通过数据上行 Topic 代理子设备下线。请求成功之后,云端通过数据下行 Topic 返回成功子设备的下线信息。 同时联犀会将网关订阅该子设备的物模型及ota相关topic删除
网关代理子设备下线请求数据格式:
{
"method": "offline",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa"
}
]
}
}
网关代理子设备下线响应数据格式:
{
"method": "offline",
"msgToken": "1234567",
"payload": {
"devices": [
{
"productID": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"code":200
}
]
}
}
请求参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。代理子设备下线取值为:offline |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需代理下线的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
响应参数说明:
字段 | 类型 | 描述 |
---|---|---|
method | String | 网关消息类型。代理子设备下线取值为:offline |
msgToken | String | 用于上下行消息配对标识 |
payload.devices | Array | 需代理下线的子设备列表 |
payload.devices.productID | String | 子设备产品 ID |
payload.devices.deviceName | String | 子设备ID |
payload.devices.code | Int | 子设备下线结果,具体错误码见下表 |
代理子设备消息
功能概述
网关类型的设备,可通过与云端的数据通信,代理其下的子设备发布和订阅消息。
前提条件
发布和订阅消息之前,请参见 网关设备接入和代理子设备上下线,进行网关设备和子设备接入上线。
发布和订阅消息
网关产品与子产品建立绑定,获取子设备的 Topic 权限后,网关设备可以使用子设备Topic代理进行收发消息,同时可以在设备调试-设备日志中查看通信信息。
设备物模型
设备物模型是设备级的物模型,设备物模型只支持属性,并且类型只支持: bool,int,string,enum,timestamp,float
使用方式
在使用网关的场景,在部署运维阶段有个很麻烦的操作,也就是物模型的同步,或者说点位-物模型的同步.在联犀中为了解决这个问题,构建了以下几个方法,方便用户在编辑完点位后能够及时的同步到云端.
- 当用户新增点位完成后: 直接调用创建物模型方法,云端会去除重复的,并进行新增操作
- 同步物模型到云端: 当用户发现云端和网关的物模型不同步的时候,可以点击同步按钮,网关获取云端物模型,提取出需要新增和删除的物模型,并分别调用创建和删除方法将物模型进行同步
- 删除物模型: 当用户编辑删除点位后,调用删除物模型方法进行删除
- 当用户换网关后,从云端同步物模型到网关: 如果需要从云端同步点位到网关,则可以调用获取物模型接口来进行物模型同步
设备端物模型结构体定义
type (
// Model 物模型协议-数据模板定义
ModelSimple struct {
Properties PropertiesSimple `json:"properties,omitempty"` //属性
Events EventsSimple `json:"events,omitempty"` //事件
Actions ActionsSimple `json:"actions,omitempty"` //行为
}
/*事件*/
EventSimple struct {
Identifier string `json:"id"` //标识符 (统一)
Name string `json:"name"` //功能名称
Type EventType `json:"type"` //事件类型: 1:信息:info 2:告警alert 3:故障:fault
Params ParamSimples `json:"params"` //事件参数
}
EventsSimple []EventSimple
ParamSimple struct {
Identifier string `json:"id"` //参数标识符
Name string `json:"name"` //参数名称
Define //参数定义
}
ParamSimples []ParamSimple
/*行为*/
ActionSimple struct {
Identifier string `json:"id"` //标识符 (统一)
Name string `json:"name"` //功能名称
Dir ActionDir `json:"dir"` //调用方向
Input ParamSimples `json:"input"` //调用参数
Output ParamSimples `json:"output"` //返回参数
}
ActionsSimple []ActionSimple
/*属性*/
PropertySimple struct {
Identifier string `json:"id"` //标识符 (统一)
Name string `json:"name"` //功能名称
Mode PropertyMode `json:"mode"` //读写类型:rw(可读可写) r(只读)
Define //数据定义
}
PropertiesSimple []PropertySimple
/*数据类型定义*/
Define struct {
Type DataType `json:"type"` //参数类型:bool int string struct float timestamp array enum
Mapping map[string]string `json:"mapping,omitempty"` //枚举及bool类型:bool enum
}
)
// 数据类型
type DataType string
const (
DataTypeBool DataType = "bool"
DataTypeInt DataType = "int"
DataTypeString DataType = "string"
DataTypeStruct DataType = "struct"
DataTypeFloat DataType = "float"
DataTypeTimestamp DataType = "timestamp"
DataTypeArray DataType = "array"
DataTypeEnum DataType = "enum"
)
// 属性读写类型: r(只读) rw(可读可写)
type PropertyMode string
const (
PropertyModeR PropertyMode = "r"
PropertyModeRW PropertyMode = "rw"
)
// 事件类型: 信息:info 告警alert 故障:fault
type EventType = string
const (
EventTypeInfo EventType = "info"
EventTypeAlert EventType = "alert"
EventTypeFault EventType = "fault"
)
// 行为的执行方向
type ActionDir string
const (
ActionDirUp ActionDir = "up" //向上调用
ActionDirDown ActionDir = "down" //向下调用
)
设备获取云端物模型信息
在网关子设备场景可以通过该方法获取设备的物模型定义,包含设备物模型和产品物模型.
- 设备从云端接收最新消息使用的 Topic:
- 请求 Topic:
$gateway/up/thing/{ProductID}/{DeviceName}
- 响应 Topic:
$gateway/down/thing/{ProductID}/{DeviceName}
- 请求
- 请求消息格式:
{
"method": "getSchema",
"msgToken": "123",
"payload":{
"productID": "123",
"deviceName": "123"
}
}
- 请求参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
method | String | 是 | getSchema 表示获取设备最新物模型信息 |
msgToken | String | 是 | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
payload.productID | String | 否 | 如果产品ID和设备ID都没传则会获取网关自己的物模型(包含产品和设备物模型),如果传了产品ID,则会获取该产品的物模型,如果同时传了设备ID,那么会同时返回该设备的设备物模型 |
payload.deviceName | String | 否 | 同上 |
- 响应
- 响应消息格式:
{
"method": "getSchema",
"msgToken": "123",
"code": 200,
"payload": {
"properties": [
{
"id": "switc34h",
"name": "switc34h",
"mode": "r",
"type": "int"
},
{
"id": "light",
"name": "亮度",
"mode": "rw",
"type": "int"
},
{
"id": "switch",
"name": "开关",
"mode": "rw",
"type": "bool"
},
{
"id": "light2",
"name": "亮度2",
"mode": "rw",
"type": "float"
},
{
"id": "string11",
"name": "亮度2",
"mode": "rw",
"type": "string"
},
{
"id": "switch",
"name": "电源开关",
"mode": "rw",
"type": "bool"
},
{
"id": "power",
"name": "电量",
"mode": "rw",
"type": "float"
},
{
"id": "p",
"name": "档位",
"mode": "rw",
"type": "int"
},
{
"id": "token",
"name": "秘钥",
"mode": "rw",
"type": "string"
},
{
"id": "array_struct",
"name": "数组枚举测试",
"mode": "rw",
"type": "array"
},
{
"id": "enum",
"name": "枚举类型",
"mode": "rw",
"type": "enum",
"mapping": {
"1": "低档",
"2": "中档",
"3": "高档"
}
},
{
"id": "time",
"name": "时间",
"mode": "rw",
"type": "timestamp"
}
],
"events": [
{
"id": "lowPower",
"name": "电压低",
"type": "alert",
"params": [
{
"id": "v",
"name": "电压",
"type": "float"
},
{
"id": "t",
"name": "时间",
"type": "timestamp"
}
]
},
{
"id": "eventEnum",
"name": "事件枚举类型",
"type": "alert",
"params": [
{
"id": "d",
"name": "档位",
"type": "enum",
"mapping": {
"1": "低档",
"2": "中档",
"3": "高档"
}
},
{
"id": "b",
"name": "开关",
"type": "bool"
}
]
},
{
"id": "fefe",
"name": "fefe",
"type": "alert",
"params": [
{
"id": "smoke_alarm",
"name": "smoke_alarm",
"type": "bool"
}
]
}
]
}
}
- 响应参数说明:
参数 | 类型 | 说明 |
---|---|---|
method | String | 表示获取设备最新上报信息的 reply 消息 |
msgToken | String | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
code | Integer | 200标识成功 |
payload | JSON | 返回物模型json |
设备创建云端设备物模型
在该产品打开设备管理物模型后,设备可以通过该方法来创建设备物模型
- 设备从云端接收最新消息使用的 Topic:
- 请求 Topic:
$gateway/up/thing/{ProductID}/{DeviceName}
- 响应 Topic:
$gateway/down/thing/{ProductID}/{DeviceName}
- 请求
- 请求消息格式:
{
"method": "createSchema",
"msgToken": "123",
"payload":{
"schema": {
"properties": [
{
"id": "switch",
"name": "开关",
"type": "bool"
},
{
"id": "light",
"name": "亮度",
"type": "int"
},
{
"id": "light2",
"name": "亮度2",
"type": "float"
},
{
"id": "string11",
"name": "亮度2",
"type": "string"
}
]
}
}
}
- 请求参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
method | String | 是 | createSchema 表示创建设备物模型 |
msgToken | String | 是 | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
payload.schema | JSON | 物模型json |
- 响应
- 响应消息格式:
{
"method": "createSchema",
"msgToken": "123",
"code": 200
}
- 响应参数说明:
参数 | 类型 | 说明 |
---|---|---|
method | String | 表示获取设备最新上报信息的 reply 消息 |
msgToken | String | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
code | Integer | 200标识成功 |
data | JSON | 返回物模型json |
设备删除云端设备物模型
在该产品打开设备管理物模型后,设备可以通过该方法来将云端的设备物模型删除
- 设备从云端接收最新消息使用的 Topic:
- 请求 Topic:
$gateway/up/thing/{ProductID}/{DeviceName}
- 响应 Topic:
$gateway/down/thing/{ProductID}/{DeviceName}
- 请求
- 请求消息格式:
{
"method": "deleteSchema",
"msgToken": "123",
"payload": {
"identifiers":["power_switch","color","brightness"]
}
}
- 请求参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
method | String | 是 | deleteSchema 表示要删除设备物模型 |
msgToken | String | 是 | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
payload.identifiers | array.String | 是 | 需要删除的物模型属性标识符列表 |
- 响应
- 响应消息格式:
{
"method": "deleteSchema",
"code": 200,
"msgToken": "123"
}
- 响应参数说明:
参数 | 类型 | 说明 |
---|---|---|
method | String | 表示获取设备最新上报信息的 reply 消息 |
msgToken | String | 消息 Id,回复的消息将会返回该数据,用于请求响应消息的对比 |
code | Integer | 200标识云端成功收到设备上报的属性 |