宁波网站建设推广公司,郑州哪家做网站好,seo搜索引擎优化什么意思,网站开发 重庆在设备对接涂鸦的云端过程中#xff0c;一部分设备由于自身资源或硬件配置#xff0c;无法直接连接云端。而是需要通过网关进行中转#xff0c;由网关代理实现和云端进行数据交互#xff0c;间接实现设备接入云端。这样的设备也称为子设备。
要想实现网关代理子设备接入云…在设备对接涂鸦的云端过程中一部分设备由于自身资源或硬件配置无法直接连接云端。而是需要通过网关进行中转由网关代理实现和云端进行数据交互间接实现设备接入云端。这样的设备也称为子设备。
要想实现网关代理子设备接入云端子设备和网关需要先建立关联关系也称为 拓扑关系。 方式对比
建立拓扑关系有三种方式您可以根据实际情况选择其中一种并且注意不要混用。 名称适用场景接口特点动态发现 无法事先获取子设备信息无法提前在云端注册子设备和烧录注册信息。网关能发现子设备动态向云端注册子设备并建立拓扑。网关绑定子设备全自动网关建立拓扑 事先获取子设备信息并在云端注册子设备。拿到子设备注册信息后烧录到子设备或者网关里面。网关发现子设备调用云端接口建立拓扑关系。建立拓扑关系半自动平台管理 事先获取子设备信息并在云端注册子设备。在云端上建立拓扑关系。建立拓扑关系全手动
本文主要介绍用于网关设备侧管理拓扑关系的协议内容并详细说明每个协议。
网关绑定子设备动态发现
网关动态发现子设备请求云端注册子设备并建立拓扑关系云端返回请求结果。这对应方式对比章节的 动态发现 方式。
交互流程 设备发送消息
设备检测到子设备连接主动向云端发送绑定子设备消息。
topic: tylink/${deviceId}/device/sub/bind
{msgId:45lkj355123****,time:1626197189600,version:1.0,data:[{productId:a123b456****,clientId:123455asdf****},{productId:a123b457****,clientId:453455asdf****}]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起子设备绑定的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。dataArray子设备参数列表是多个子设备绑定参数子设备数量不超过 100 个。data[].productIdString子设备的产品 ID是需要绑定在子设备的产品 ID。data[].clientIdString设备端唯一 ID是此处主要用于子设备硬件的唯一标识可以是设备的 MAC、SN 等至少保证产品下唯一将显示在 设备管理 注册 ID 字段。
设备接收消息
设备订阅接收绑定子设备消息回复。
topic: tylink/${deviceId}/device/sub/bind_response
{msgId:45lkj3551234****,time:1626197189640,version:1.0,code:0,data:[{productId:a123b456****,clientId:123455****,deviceId:6c828cba434ff40c07****},{productId:a123b457****,clientId:123456****,deviceId:6c828cba434ff40c07****}]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起子设备绑定的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否 0 代表成功默认值。非 0 代表失败。dataArray子设备绑定结果列表是-data[].productIdString产品 ID是子设备的产品 ID。data[].clientIdString子设备硬件的唯一表示 ID是子设备的唯一标识需保证产品下唯一。data[].deviceIdString云端分配的唯一设备 ID是同一个 clientId、同一个网关设备 ID多次绑定只会生成同一个设备 ID否则会重新生成一个新的设备 ID。
状态码说明
状态码说明0默认状态代表成功。1001服务异常。1002请求参数校验不合法。1004设备不存在。2401产品不存在。2402网关绑定了多个设备组。2403拓扑信息存在子设备信息不存在。2404授权码数量不足 获取授权码失败。2405获取网关设备组异常。2406子设备重新注册时必须先解绑。2410同一个网关绑定子设备的数量不能超过 2000 个。
网关删除子设备
网关通过动态发现注册的子设备可支持网关请求云端删除对应的子设备。云端接收到该请求后会校验并删除该子设备同时删除网关和子设备的拓扑关系。由于是设备端发起的删除操作针对已绑定家庭或资产的子设备支持网关直接删除子设备。 交互流程 设备发送消息
Topictylink/${deviceId}/device/sub/delete
消息内容
{msgId:45lkj355123****,time:1626197189600,version:1.0,data:[devId123455as****,devId123456ty****]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起删除子设备的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。dataArray待删除的子设备 ID 列表是子设备 ID 列表设备数量不超过 10。
设备接收消息
Topictylink/${deviceId}/device/sub/delete_response
消息内容
{msgId:45lkj355123****,time:1626197189640,version:1.0,code:0,data:[devId123455as****,devId123456ty****]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起删除拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否0 代表成功非 0 代表失败默认 0。dataArray被删除的子设备 ID 列表。是/
状态码说明
状态码说明0默认状态代表成功。1001服务异常。1004设备记录不存在。2407子设备列表为空。2408子设备数量超限。
建立拓扑关系
对于已经在云端注册的子设备拿到子设备注册信息后烧录到子设备。网关运行后动态发现子设备请求云端建立拓扑关系云端返回请求结果。这对应方式对比章节中的 网关建立拓扑 方式。
交互流程 设备发送消息
topictylink/${deviceId}/device/topo/add
{msgId:45lkj355123****,time:1626197189600,version:1.0,data:[{productId:a123b456****,deviceId:123455asdf****,sign:adstewq35324ds****,signMethod:HmacSHA256,timestamp:16067836521},{productId:a123b457****,deviceId:123456****,sign:adstewq35324ds****,signMethod:HmacSHA256,timestamp:16067836521}]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起建立拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。dataArray子设备参数列表是多个子设备拓扑参数, 子设备数量不能超过 100 个。data[].productIdString子设备的产品 ID是-data[].deviceIdString子设备的设备 ID是注册设备时获取的设备 ID云端分配的唯一 ID。data[].signMethodString签名算法是签名算法, 当前仅支持 HmacSHA256。data[].timestampString时间戳是签名时间戳10 位秒级或 13 位毫秒级。data[].signString签名是使用 signMethod 对内容进行签名。例如HmacSHA256content, deviceSecret, content 的内容如productId a123b456****|deviceId123455asdf****|timestamp${签名时间戳}, deviceSecret 为 涂鸦 IoT 开发平台 设备管理中展示的 DeviceSecret 字段。
设备接收消息
topictylink/${deviceId}/device/topo/add_response
{msgId:45lkj355123****,time:1626197189640,version:1.0,code:0,data:[{productId:a123b456****,deviceId:6c828cba434ff40c07****},{productId:a123b457****,deviceId:6c828cba434ff40c07****}]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起建立拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否 0 代表成功默认值。非 0 代表失败。dataArray建立拓扑关系成功的结果列表。是-data[].productIdString子设备的产品 ID。是-data[].deviceIdString子设备的设备 ID。是-
状态码说明
状态码说明0默认状态代表成功。1001服务异常。1004设备记录不存在。2407子设备列表为空。2408子设备数量超限。2409签名验证失败。2410同一个网关绑定子设备的数量不能超过 2000 个。
删除拓扑关系
网关请求云端删除与指定子设备的拓扑关系云端返回请求结果。该请求不会删除子设备。删除拓扑关系后子设备还能和该网关或其它网关再次建立拓扑关系。
交互流程 设备发送消息
topictylink/${deviceId}/device/topo/delete
{msgId:45lkj355123****,time:1626197189600,version:1.0,data:[devId123455as****,devId123456ty****]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起删除拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。dataArray待删除的子设备 ID 列表是子设备 ID 列表, 设备数量不超过 100 个。
设备接收消息
topictylink/${deviceId}/device/topo/delete_response
{msgId:45lkj355123****,time:1626197189640,version:1.0,code:0,data:[devId123455as****,devId123456ty****]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起删除拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否 0 代表成功默认值。非 0 代表失败。dataArray被删除的子设备 ID 列表是-
状态码说明
状态码说明0默认状态代表成功。1001服务异常。1004设备记录不存在。2407子设备列表为空。2408子设备数量超限。
查询拓扑关系
网关请求云端查询拓扑关系云端返回请求结果。
交互流程 设备发送消息
topictylink/${deviceId}/device/topo/get
{msgId:45lkj355123****,time:1626197189600,version:1.0,data:{startId: 0,pageSize: 20, devIds:[devId123455as****,devId123456ty****]}
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起查询拓扑关系的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否 0 代表成功默认值。非 0 代表失败。data.startIndexIdNumber本次查询子设备列表起始值否默认为 0从第一条开始查询。如果查询第二页, 则该值为第一页查询结果最后一条记录的索引 ID。第三页及以后以此类推。data.pageSizeNumber每次查询的设备数量否默认及最大查询数量均为 100 个。data.devIdsArray本次查询子设备 ID 列表否子设备 ID 列表设备数量不超过 100 个。
设备接收消息
topictylink/${deviceId}/device/topo/get_response
{msgId:45lkj355123****,time:1626197189640,version:1.0,code:0,data:[{productId:a123b456****,deviceId:6c828cba434ff40c074***,indexId: 1},{productId:a123b457****,deviceId:6c828cba434ff40c074***,indexId: 2}]
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是发起拓扑关系查询的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符上报和订阅消息通过该值建立应答关系。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。codeNumber响应状态码否 0 代表成功默认值。非 0 代表失败。dataArray子设备列表是-data[].productIdString子设备的产品 ID是-data[].deviceIdString子设备的设备 ID是-data[].indexIdNumber索引 ID是每页最后一条记录的索引 ID作为下一页查询的 startIndexId。
状态码说明
状态码说明0默认状态代表成功。1001服务异常。1004设备不存在。2408子设备数量超限。
通知拓扑关系变更
云端变更拓扑关系如往拓扑关系中新增子设备或把子设备从拓扑关系中删除发送消息通知网关。
交互流程 设备接收消息
topictylink/${deviceId}/device/topo/change
{msgId:45lkj355123****,time:1626197189600,data:{addDevIds:[devId123asdf****,devId456tyiy****],delDevIds:[devId789****,devIdyiy****]}
}参数说明
参数类型说明必选备注${deviceId}String设备 ID是拓扑关系发生变更的网关设备 ID。versionString协议版本否默认 1.0当前仅支持 1.0。msgIdString消息 ID是总长度不超过 32 位的字符消息的唯一 ID。timeNumber消息时间戳是消息发送时的 Unix 时间戳10 位秒级或 13 位毫秒级。dataobject业务数据是-data.addDevIdsArray新增的子设备 ID 列表否子设备数量不超过 100 个。data.delDevIdsArray删除的子设备 ID 列表否子设备数量不超过 100 个。