消息推送格式
目前支持以下消息推送类型:
- 事件通知消息
指设备的事件消息,如:解绑/绑定设备,设备在线离线等。
事件类型 |
描述 |
gateway_bind |
网关绑定 |
subdevice_bind |
子设备绑定 |
gateway_unbind |
网关解绑 |
unbind_sub_gw |
子设备解绑 |
gateway_online |
网关在线 |
gateway_offline |
网关离线 |
subdevice_online |
子设备在线 |
subdevice_offline |
子设备离线 |
dev_name_change |
修改设备名称 |
dev_position_assign |
修改设备位置 |
resource_alias_changed |
修改资源名称 |
linkage_created |
创建自动化 |
scene_created |
创建场景 |
event_created |
创建条件集 |
linkage_deleted |
删除自动化 |
scene_deleted |
删除场景 |
event_deleted |
删除条件集 |
注意:事件通知消息会全部推送给第三方服务器,属性消息会根据用户选择的订阅模式进行推送。
格式说明
事件通知消息
名称 |
类型 |
是否必须 |
描述 |
openId |
String |
是 |
用户唯一标识 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
eventType |
String |
是 |
事件消息通知类型,如:绑定 解绑 在线 离线 |
msgId |
String |
是 |
消息唯一id标识 |
data |
Object |
是 |
具体的消息内容 |
data.time |
Object |
是 |
具体的消息产生的时间戳,单位毫秒 |
网关绑定通知消息
名称 |
类型 |
是否必须 |
描述 |
time |
Object |
是 |
具体的消息产生的时间戳,单位毫秒 |
model |
String |
是 |
物模型 |
did |
String |
是 |
设备id |
bindKey |
String |
否 |
设备入网时绑定的随机码 |
subDids |
Array(String) |
否 |
网关入网时携带的子设备 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"gateway_bind",
"data":{
"bindKey":"709b1AXaXdETHPEx",
"subDids":[
"lumi1.7811dc93a344",
"lumi1.7811dc93a344"
],
"time":"1619489743705",
"model":"lumi.gateway.iragl01",
"did":"lumi1.7811dc93a344"
}
}
子设备绑定通知消息
名称 |
类型 |
是否必须 |
描述 |
model |
String |
是 |
物模型 |
did |
String |
是 |
设备id |
time |
Object |
是 |
具体的消息产生的时间戳,单位毫秒 |
parentDid |
String |
是 |
网关设备id |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"subdevice_bind",
"data":{
"parentDid":"lumi1.xxx",
"model":"lumi.plug.v1",
"did":"lumi1.7811dc93a344",
"time":"1619489743705"
}
}
网关解绑通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
subDids |
Array(String) |
否 |
网关下的子设备id |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
cause |
int |
是 |
解绑原因,2-网关端操作,3-云端操作,4-网关端恢复出厂,5-云端重置网关 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"gateway_unbind",
"data":{
"did":"lumi1.xxx",
"time":"1619489743705",
"cause":2,
"subDids":[
"lumi1.7811dc93a344",
"lumi1.7811dc93a344"
]
}
}
子设备解绑通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
parentDid |
String |
是 |
网关设备id |
cause |
int |
是 |
解绑原因,12-云端操作子设备操作,13-网关触发子设备解绑 ,17-子设备替换网购触发解绑 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"unbind_sub_gw",
"data":{
"did":"lumi1.xxx",
"time":"1619489743705",
"cause":12,
"parentDid":"lumi1.7811dc93a344"
}
}
网关上线通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
subDids |
Array(String) |
否 |
跟随网关在线的子设备id列表 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"gateway_online",
"data":{
"did":"lumi1.xxx",
"time":"1619489743705",
"subDids":[
"lumi1.7811dc93a344",
"lumi1.7811dc93a344"
]
}
}
网关下线通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
subDids |
Array(String) |
否 |
跟随网关离线的子设备id列表 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"gateway_offline",
"data":{
"did":"lumi1.xxx",
"time":"1619489743705",
"subDids":[
"lumi1.7811dc91a344",
"lumi1.7811dc93a344"
]
}
}
子设备在线通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
cause |
int |
是 |
在线原因,11-子设备心跳上线, 16-子设备绑定在线 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"subdevice_online",
"data":{
"did":"lumi1.xxx",
"cause":11,
"time":"1619489743705"
}
}
子设备离线通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
cause |
int |
是 |
离线原因,12-子设备无心跳离线,15-子设备解绑离线 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"subdevice_offline",
"data":{
"did":"lumi1.xxx",
"cause":12,
"time":"1619489743705"
}
}
修改设备名称通知消息
名称 |
类型 |
是否必须 |
描述 |
parentDid |
String |
是 |
网关id |
positionId |
String |
是 |
位置id |
model |
String |
是 |
物模型 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
deviceName |
String |
是 |
设备名称 |
did |
String |
是 |
设备id |
{
"data":{
"parentDid":"",
"positionId":"real2.718491383196524544",
"model":"lumi.camera.gwpagl01",
"time":"1628309134211",
"deviceName":"Camera Hub G3",
"did":"lumi1.54ef44263144"
},
"openId":"openId",
"msgId":"AC10C8E1000E18B4AAC2217E6F86C7F5",
"eventType":"dev_name_change",
"time":"1628500244165"
}
修改设备位置通知消息
名称 |
类型 |
是否必须 |
描述 |
positionName |
String |
是 |
位置名称 |
positionId |
String |
是 |
位置id |
dids |
String |
是 |
设备id数组 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"data":{
"positionName":"默认房间",
"positionId":"real2.587738122830217216",
"dids":[
"lumi1.6490c17ac50e"
],
"time":"1628308523160"
},
"openId":"openId",
"msgId":"AC10C8E1000E18B4AAC221751C9CA113",
"eventType":"dev_position_assign",
"time":"1628499826376"
}
修改资源名称通知消息
名称 |
类型 |
是否必须 |
描述 |
did |
String |
是 |
设备id |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
changeValues |
Array(Object) |
是 |
修改值数组 |
changeValues 说明:
名称 |
类型 |
是否必须 |
描述 |
resourceId |
String |
是 |
资源id |
name |
String |
是 |
更新名称 |
{
"data":{
"changeValues":[
{
"resourceId":"4.1.85",
"name":"开关"
}
],
"time":"1628492027819",
"did":"lumi.158d00044b219c"
},
"openId":"openId",
"msgId":"AC10C8C7000E18B4AAC22C652BABB392",
"eventType":"resource_alias_changed",
"time":"1628499314047"
}
自动化创建通知消息
名称 |
类型 |
是否必须 |
描述 |
model |
String |
是 |
物模型 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
linkageId |
String |
是 |
自动化id |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"linkage_created",
"data":{
"model":"xxx",
"linkageId":"L.7811dc93a344",
"time":"1619489743705"
}
}
场景创建通知消息
名称 |
类型 |
是否必须 |
描述 |
model |
String |
是 |
物模型 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
sceneId |
String |
是 |
场景id |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"scene_created",
"data":{
"model":"xxx",
"sceneId":"AL.7811dc93a344",
"time":"1619489743705"
}
}
条件集创建通知消息
名称 |
类型 |
是否必须 |
描述 |
model |
String |
是 |
物模型 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
eventId |
String |
是 |
条件集id |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"event_created",
"data":{
"model":"xxx",
"eventId":"CL.7811dc93a344",
"time":"1619489743705"
}
}
自动化删除通知消息
名称 |
类型 |
是否必须 |
描述 |
linkageIds |
Array(String) |
是 |
自动化id |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"linkage_deleted",
"data":{
"linkageIds":[
"L.7811dc93a345",
"L.7811dc93a344"
],
"time":"1619489743705"
}
}
场景删除通知消息
名称 |
类型 |
是否必须 |
描述 |
sceneIds |
Array(String) |
是 |
场景id |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"scene_deleted",
"data":{
"sceneIds":[
"AL.7811dc93a345",
"AL.7811dc93a344"
],
"time":"1619489743705"
}
}
条件集删除通知消息
名称 |
类型 |
是否必须 |
描述 |
eventIds |
Array(String) |
是 |
条件集id |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"eventType":"event_deleted",
"data":{
"eventIds":[
"CL.7811dc93a345",
"CL.7811dc93a344"
],
"time":"1619489743705"
}
}
设备属性消息
主要指设备及相关联动对象在使用的过程中产生的状态变更或操作数据。如:插座的开关、功率、消耗的电能等相关数据。
名称 |
类型 |
是否必须 |
描述 |
openId |
String |
是 |
用户唯一标识 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
msgId |
String |
是 |
消息唯一id标识 |
msgType |
String |
是 |
消息类型,resource_report:属性上报消息 |
data |
Array(Object) |
是 |
消息唯一id标识 |
data.subjectId |
String |
是 |
对象id,如:设备id 或场景自动化id |
data.resourceId |
String |
是 |
对象的属性id,如:插座设备继电器的开关状态、功率等 |
data.value |
String |
是 |
对象的属性变更到的值 |
data.time |
String |
是 |
对象的属性变更时间戳,单位毫秒 |
data.statusCode |
int |
是 |
状态变更结果,成功或失败,具体查看以下“触发结果”说明 |
data.triggerSource |
Object |
否 |
消息触发原因 |
data.attach |
String |
否 |
当用户使用自定义订阅模式时,通过“订阅资源”接口传递的参数,消息产生时系统将原样返回 |
data.triggerSource.type |
int |
否 |
消息触发类型,具体查看以下“触发类型”说明 |
data.triggerSource.time |
String |
否 |
导致消息变更原因的触发时间,单位秒 |
data.triggerSource.id |
String |
否 |
导致消息变更原因的触发对象id,如自动化id |
{
"msgId":"5657a659abeb42da8dc32e910405b5c8",
"openId":"5657a659abeb42da10405b5c8",
"time":"1561621051609",
"msgType":"resource_report",
"data":[
{
"subjectId":"lumi1.xxx",
"resourceId":"3.1.85",
"value":"1",
"time":"1561621051609",
"statusCode":0,
"triggerSource":{
"type":1,
"time":"1561621050",
"id":"AL.xxxx"
}
}
]
}
设备控制失败消息
指当控制设备出现失败情况时,会根据设备实际情况返回失败原因,包含触发源、错误码、触发时间等,便于快速定位失败原因。
名称 |
类型 |
是否必须 |
描述 |
openId |
String |
是 |
用户唯一标识 |
time |
String |
是 |
消息产生的时间戳,单位毫秒 |
msgId |
String |
是 |
消息唯一id标识 |
eventType |
String |
是 |
消息类型,control_fail:设备控制失败消息 |
data |
Array(Object) |
是 |
消息唯一id标识 |
data.time |
String |
是 |
对象的属性变更时间戳,单位毫秒 |
data.subjectId |
String |
是 |
对象id,如:设备id 或场景自动化id |
data.resourceId |
String |
是 |
对象的属性id,如:插座设备继电器的开关状态、功率等 |
data.value |
String |
是 |
对象的属性变更到的值 |
data.statusCode |
int |
是 |
状态变更失败结果,具体查看以下“触发结果”说明 |
data.triggerSource |
Object |
否 |
消息触发原因 |
data.triggerSource.type |
int |
否 |
消息触发类型,具体查看以下“触发类型”说明 |
data.triggerSource.time |
String |
否 |
导致消息变更原因的触发时间,单位秒 |
{
"data":{
"resourceId":"4.1.85",
"time":"1639455380200",
"triggerSource":{
"time":"1639453278",
"type":21
},
"value":"",
"subjectId":"lumi.158d0004112308",
"statusCode":4
},
"openId":"289738515206846977290753",
"msgId":"AC10C81E000F18B4AAC6F480C",
"eventType":"control_fail",
"time":"1639453292001"
}
名称 |
描述 |
0 |
成功执行 |
1 |
某些延时action未执行 |
2 |
网关向子设备下发的命令已超时,未被成功执行 |
3 |
未收到网关下发的控制命令 |
4 |
zigbee网络无应答 |
5 |
网关内存资源不足,导致无法下发控制命令 |
6 |
延时action创建定时器失败,无法实现延时执行的功能 |
7 |
控制命令太多,响应繁忙 |
8 |
子设备处于断电状态 |
9 |
网关与子设备通信很不稳定 |
10 |
成功执行,旧命令被新命令覆盖 |
20 |
成功执行,此时设备处于幻灯模式,故不真实执行动作 |
51 |
局域网跨网关控制失败 |
100 |
云端请求网关无应答,超时 |
602 |
检测到设备离线,故不执行 |
612 |
云端与网关链路中断 |
名称 |
描述 |
0 |
未知 |
1 |
设备按钮控制上报 |
2 |
遥控器控制上报 |
3 |
局域网命令控制上报 |
4 |
云端远程命令控制上报 |
5 |
网关本地化联动控制上报 |
6 |
云端联动控制上报 |
7 |
局域网联动控制上报 |
8 |
Homekit控制 |
9 |
系统自发,比如系统播放了某个提示音上报 |
10 |
设备自身触发上报 |
11 |
云端场景上报 |
12 |
网关本地化场景上报 |
13 |
局域网场景上报 |
14 |
云端代执行上报 |
21 |
开放平台应用控制上报 |
22 |
对接第三方设备其他云触发上报 |
26 |
物联行业平台控制上报 |
33 |
心跳上报 |
34 |
第三方语音控制上报 |