消息推送接口(trait)
订阅设备功能值
- 接口intent:spec.config.trait.subscribe
- 接口描述:该接口用于订阅设备功能值的实时变化。当设备的功能点的值变化时,绿米云会通过此接口主动向您推送最新的数据。订阅需要搭配消息推送功能来使用,详细消息推送功能说明,请参考消息推送。
请求参数说明
| 参数 |
类型 |
是否必须 |
说明 |
| traits |
Array<Object> |
是 |
订阅目标 trait 数组。 |
| traits[].subjectId |
String |
是 |
订阅目标设备 ID。 |
| traits[].codePaths |
Array<String> |
是 |
订阅目标功能点路径数组,格式为:endpointId.functionCode.traitCode。 |
| traits[].attach |
String |
否 |
附带信息,透传给订阅结果通知消息体中。 |
请求参数示例
{
"intent": "spec.config.trait.subscribe",
"data": {
"traits": [
{
"subjectId": "matt.11774113824794",
"codePaths": [
"2.Output.OnOff","3.Output.OnOff"
],
"attach":"haha"
}
]
}
}
订阅响应参数说明
无
订阅响应数据示例
{
"code": 0,
"message": "Success",
"msgDetails": null,
"requestId": "",
"result": null
}
接收设备功能值变化消息
消息参数说明
| 参数 |
类型 |
说明 |
| data |
Array<Object> |
变化的功能点数据数组。 |
| data[].codePath |
String |
变化的功能点路径,格式为 endpointId.functionCode.traitCode。 |
| data[].model |
String |
设备的 model。 |
| data[].statusCode |
Number |
状态变更结果,成功或失败,具体查看以下 触发结果。 |
| data[].subjectId |
String |
设备唯一标识。 |
| data[].time |
String |
功能点变化发生的毫秒级 UTC 时间戳。 |
| data[].triggerSource |
Object |
消息触发原因。 |
| data[].triggerSource.time |
String |
导致消息变更原因的触发时间(秒级 UTC 时间戳)。 |
| data[].triggerSource.type |
Number |
消息触发类型,具体查看 触发类型说明。 |
| data[].value |
Any |
功能点的新值,类型依赖具体功能点。 |
| data[].attach |
String |
订阅 时透传设置的附加信息。 |
| msgId |
String |
消息唯一标识。 |
| msgType |
String |
消息类型,固定为 spec_report。 |
| openId |
String |
用户唯一标识。 |
| time |
String (Number) |
消息产生的毫秒级 UTC 时间戳。 |
消息格式示例
{
"data": [
{
"codePath": "2.Contact.ContactSensorState",
"model": "aqara.matter.4447_8194",
"statusCode": 0,
"subjectId": "matt.2990fb3413ed87c9b7370000",
"time": "1762430871166",
"triggerSource": {
"time": "1762430871",
"type": 10
},
"value": "1",
"attach": "openSpec"
}
],
"msgId": "FD0CC3DE8CAC55F881F84802DAD15F54A36C2ACF57E321068AAE001A1",
"msgType": "spec_report",
"openId": "695771340211436040058973585409",
"time": "1762480476859"
}
取消订阅设备功能值
- 接口intent:spec.config.trait.unsubscribe
- 接口描述:该接口用于取消订阅设备功能值的实时变化。
请求参数说明
| 参数 |
类型 |
是否必须 |
说明 |
| traits |
Array<Object> |
是 |
目标 trait 数组。 |
| traits[].subjectId |
String |
是 |
目标设备 ID。 |
| traits[].codePaths |
Array<String> |
是 |
目标功能点路径数组,格式为:endpointId.functionCode.traitCode。 |
请求参数示例
{
"intent": "spec.config.trait.unsubscribe",
"data": {
"traits": [
{
"subjectId": "matt.11774113824794",
"codePaths": [
"2.Output.OnOff","3.Output.OnOff"
]
}
]
}
}
响应参数说明
无
响应数据示例
{
"code": 0,
"message": "Success",
"msgDetails": null,
"requestId": "",
"result": null
}