跳到主要内容

设备功能 API

分页查询设备 ID 列表

本接口用于分页查询设备信息列表。通过指定设备类型、排序字段、页码及每页大小等参数,可灵活筛选、排序并分页获取 Aqara Studio 中已接入设备的详细信息,包括设备 ID、名称、类型、添加时间、在线状态等。

适用于大批量设备的高效管理和展示。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 GetDeviceInfoRequest
versionString请求接口版本号,必须为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据。
data.deviceTypesListArray of String设备类型列表。如需了解可用字符串,请参考 设备类型说明
data.orderByString排序规则,支持以下字符串:
  • createTime asc:按照设备添加时间正序排列。
  • createTime desc:按照设备添加时间倒序排列。
data.pageNumNumber页码。从 1 开始,若小于 1,则视为 1。
data.pageSizeNumber每页包含的设备 ID 数量,取值范围为 (0, 200]。默认为 200。

请求示例

以下为 GetDeviceInfoRequest 的请求体示例:

{
"type": "GetDeviceInfoRequest",
"version": "v1",
"msgId": "get_devices_1751609244328",
"data":{
"deviceTypesList": ["Light"],
"orderBy": "createTime desc",
"pageNum": 1,
"pageSize": 100
}
}

响应参数

参数类型说明
typeString响应的消息类型,固定为 GetDeviceInfoResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
messageString请求结果描述。
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
dataObject响应数据。
data.totalCountNumber设备总数。
data.pageSizeNumber每页大小。
data.pageNumNumber页码。
data.dataArray of Object数据列表。
data.data[].deviceIdString设备 ID。
data.data[].deviceTypesListArray of String设备类型。字符串含义请参考 设备类型说明
data.data[].deviceNameString设备名称。
data.data[].createTimeNumber设备添加时间的 Unix 时间戳(毫秒)。
data.data[].stateBoolean设备在线状态:
  • false:离线。
  • true:在线。

响应示例

以下为 GetDeviceInfoResponse 的响应示例:

{
"type": "GetDeviceInfoResponse",
"version": "v1",
"msgId": "get_devices_1751609244328",
"code": 0,
"message": "",
"data":{
"totalCount": 1,
"pageSize": 100,
"pageNum": 1,
"data":[
{
"deviceId": "xxx",
"deviceTypesList": ["Light"],
"deviceName": "xxx",
"createTime":1758549173093,
"state": true
}
]
}
}

全量查询设备 ID 列表

本接口用于全量查询设备信息列表。通过该接口,您可以一次性获取 Aqara Studio 内所有设备的详细信息,包括设备 ID、名称、设备类型、添加时间、在线状态等。请求体支持根据设备类型、排序字段进行过滤。

响应结果以数组形式返回设备列表,不带分页信息,适合需要一次性获取全部设备数据的场景。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 GetAllDeviceInfoRequest
versionString请求接口版本号,必须为 v1
msgIdString由您定义的请求 ID。
dataObject筛选配置。
data.deviceTypesListString[]筛选要查询的设备类型数组。若不填写,则默认查询所有类型设备。每个元素为具体的设备类型字符串,详见设备类型说明
data.orderByString排序规则,支持以下字符串:
  • createTime asc:按照设备添加时间正序排列。
  • createTime desc:按照设备添加时间倒序排列。

请求示例

以下为 GetAllDeviceInfoRequest 的请求体示例:

{
"type": "GetAllDeviceInfoRequest",
"version": "v1",
"msgId": "req-003",
"data": {
"deviceTypesList": ["Light"],
"orderBy": "createTime desc"
}
}

响应参数

参数类型说明
typeString响应的消息类型,固定为 GetAllDeviceInfoResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
messageString请求结果描述。
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
dataArray of Object数据列表。
data[].deviceIdString设备 ID。
data[].deviceTypesListArray of String设备类型。字符串含义请参考 设备类型说明
data[].deviceNameString设备名称。
data[].createTimeNumber设备添加时间的 Unix 时间戳(毫秒)。
data[].stateBoolean设备在线状态:
  • false:离线。
  • true:在线。

响应示例

以下为 GetAllDeviceInfoResponse 的响应示例:

{
"type": "GetAllDeviceInfoResponse",
"version": "v1",
"msgId": "req-003",
"code": 0,
"data": [
{
"deviceId": "device-001",
"deviceName": "客厅灯",
"deviceTypesList": ["Light"],
"createTime": 1609459200000,
"state": true,
"space": {
"parentSpaceId": "a1",
"spaceId": "a1-001",
"name": "客厅",
}
},
{
"deviceId": "device-002",
"deviceName": "卧室灯",
"deviceTypesList": ["Light"],
"createTime": 1609459300000,
"state": false,
}
]
}

查询设备的 spec 配置

根据设备 ID 查询其 spec 配置。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 GetDevicesRequest
versionString请求接口版本号,必须为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据。
data.deviceIdsArray of String将设备 ID 列表查询结果([分页]](#分页查询设备-id-列表) 或 全量) 传入此列表,作为设备的 spec 配置的查询目标。当此列表为空时,表示查询所有设备的 spec 配置。

请求参数示例

以下为 GetDevicesRequest 的请求体示例:

{
"type": "GetDevicesRequest",
"version": "v1",
"msgId": "get_devices_1751609244328",
"data":{
"deviceIds": ["57190441014857"]
}
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 GetDevicesResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功,0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataArray of Object设备列表。
data[].deviceIdString设备 ID。
data[].nameString设备名称。
data[].deviceTypesListArray of String设备类型列表。字符串含义请参考 设备类型说明
data[].endpointsArray of Object端点列表。
data[].endpoints[].endpointIdNumber端点 ID。
data[].endpoints[].endpointNameString端点名称。
data[].endpoints[].deviceTypeString端点类型列表。
data[].endpoints[].functionsArray of Object功能列表。
data[].endpoints[].functions[].functionCodeString功能代码。
data[].endpoints[].functions[].traitsArray of Object功能点列表。
data[].endpoints[].functions[].traits[].traitCodeString功能点代码,对应设备支持的具体功能。请参阅 功能点代码,了解该功能点详情包括含义、类型(如数值、布尔、枚举等)、是否可读/可写/可上报等。
data[].endpoints[].functions[].traits[].parameterObject功能点属性。
data[].endpoints[].functions[].traits[].parameter.typeString功能点值的类型,字符串含义请参考 功能点值类型
data[].endpoints[].functions[].traits[].parameter.readableBoolean是否可读。
data[].endpoints[].functions[].traits[].parameter.writableBoolean是否可写。
data[].endpoints[].functions[].traits[].parameter.subscribableBoolean是否可订阅。
data[].endpoints[].functions[].traits[].parameter.supportedValuesArray of Object枚举值列表。仅当 parameter.type 为 Enum 时,此字段有意义。
data[].endpoints[].functions[].traits[].parameter.supportedValues[].keyString枚举键。
data[].endpoints[].functions[].traits[].parameter.supportedValues[].valueString枚举值。
data[].endpoints[].functions[].traits[].parameter.minNumber最小值。仅当 parameter.type 为 IntegerFloat 时,此字段有意义。
data[].endpoints[].functions[].traits[].parameter.maxNumber最大值。仅当 parameter.type 为 IntegerFloat 时,此字段有意义。
data[].endpoints[].functions[].traits[].parameter.unitString单位。仅当 parameter.type 为 IntegerFloat 时,此字段有意义。
data[].endpoints[].functions[].traits[].valueAny功能点的当前值。类型与 parameter.type 的值保持一致。
data[].endpoints[].functions[].traits[].timeNumber功能点值上报时间的 Unix 时间戳(毫秒)。
查阅设备类型和功能点代码
  • 响应中的 data[].deviceTypesList,表示设备支持的类型列表,请参考 设备类型 了解字符串相关含义。
  • 响应中的 data[].endpoints[].functions[].traits[].traitCode,表示功能点代码,对应设备支持的具体功能,请参阅 功能点代码,了解该功能点详情包括含义、类型(如数值、布尔、枚举等)、是否可读/可写/可上报等。
功能点值类型
名称类型说明
Bool布尔型真或假(true/false)。
Integer整型整数类型。
Float浮点型带小数的数字。
String字符型字符串。
Struct结构体Aqara 自定义的结构数据,形式为 JSON 字符串。
可以包含多种类型字段。
Enum枚举枚举类型,定义有限个取值。
List[X]列表元素类型为 X 的列表,形式为 JSON 字符串。
X 可为 Integer、Float、String、Struct、Enum。
Data数据块16 进制字符串(Hex String),如 "0x01AB3F"。

响应数据示例

以下为 GetDevicesResponse 的响应示例:

{
"type": "GetDevicesResponse",
"version": "v1",
"msgId": "get_devices_1751609244328",
"code": 0,
"message": null,
"data": [
{
"deviceId": "57190441014857",
"name": "Touch Screen Switch Panel S1 Pro",
"deviceTypesList": [
"Speaker"
],
"endpoints": [
{
"endpointId": 0,
"endpointName": "DeviceObject",
"deviceType": "Root"
},
{
"endpointId": 3,
"endpointName": "Multi-stateOutputObject",
"deviceType": "Speaker",
"functions": [
{
"functionCode": "MediaPlayback",
"endpointId": 3,
"traits": [
{
"traitCode": "TargetPlaybackState",
"parameter": {
"type": "Enum",
"readable": true,
"writable": true,
"subscribable": true,
"supportedValue": [
{
"key": "Play",
"value": "0"
},
{
"key": "Pause",
"value": "1"
},
{
"key": "Stop",
"value": "2"
},
{
"key": "StartOver",
"value": "3"
},
{
"key": "FastForward",
"value": "4"
},
{
"key": "Rewind",
"value": "5"
},
{
"key": "Previous",
"value": "6"
},
{
"key": "Next",
"value": "7"
},
{
"key": "PlaySpecificList",
"value": "8"
}
]
},
"value": "0",
"time": 1761295151845
},
{
"traitCode": "MediaInformation",
"parameter": {
"type": "String",
"readable": true,
"writable": false,
"subscribable": true
},
"value": "",
"time": null
}
]
},
{
"functionCode": "Speaker",
"endpointId": 3,
"traits": [
{
"traitCode": "Mute",
"parameter": {
"type": "Bool",
"readable": true,
"writable": true,
"subscribable": true
},
"value": false,
"time": 1761295151843
},
{
"traitCode": "Volume",
"parameter": {
"type": "Float",
"readable": true,
"writable": true,
"subscribable": true,
"min": 0.0,
"max": 100.0,
"unit": "%"
},
"value": 0.0,
"time": 1761295151847
}
]
}
]
}
]
}
]
}

控制设备

当您 获取设备的 spec 配置 后,传入与待控制的功能点(trait)相关的字段,调用此接口即可控制设备。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 ExecuteTraitRequest
versionString请求接口版本号,必须为 v1
msgIdString由您定义的请求 ID。
dataArray of Object请求数据。
data[].deviceIdString传入待控制设备的 ID。
data[].endpointIdNumber传入目标端点 ID。
data[].functionCodeString传入功能代码。
data[].traitCodeString传入 writabletrue 的功能点代码。
data[].valueAny传入此功能点支持的值。

请求参数示例

以下为 ExecuteTraitRequest 的请求体示例:

{
"type" : "ExecuteTraitRequest",
"version" : "v1",
"msgId" : "get_devices_1751609244328",
"data":[{
"deviceId": "14a0bxx",
"endpointId": 0,
"functionCode": "Output",
"traitCode": "OnOff",
"value": true
}]
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 ExecuteTraitResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber控制结果状态码:
  • 0:成功控制至少一个功能点。
  • 非 0:所有功能点控制均失败。
messageString请求结果描述信息。
dataArray of Object失败的设备功能点控制结果列表,仅包含控制失败的记录,成功的不会返回。
data[].deviceIdString设备 ID。
data[].endpointIdNumber端点 ID。
data[].functionCodeString功能代码。
data[].traitCodeString功能点代码。
data[].codeNumber失败码。
data[].messageString失败描述。
提示

code0 仅表示接口调用成功,并不意味着设备状态已改变。请通过 查询设备的最新功能点值 确认是否已成功控制设备。

响应数据示例

以下为 ExecuteTraitResponse 的响应示例:

{
"type": "ExecuteTraitResponse",
"version": "v1",
"msgId": "get_devices_1751609244328",
"code": 0,
"message": null,
"data": [
{
// 没有失败时,data 为空
}
]
}

查询设备的最新功能点值

批量查询设备的最新功能点(trait)值。

请求参数

以下为 GetTraitValueRequest 的请求体示例:

参数类型是否必须说明
typeString请求的消息类型,必须为 GetTraitValueRequest
versionString请求接口版本号,必须为 v1
msgIdString由您自定义的请求 ID,用于标识本次请求。
dataArray of Object请求数据,每个对象指定一个查询目标。
data[].deviceIdString查询目标设备的 ID。
data[].endpointIdNumber端点 ID,指定要查询的设备端点。
data[].functionCodeString功能代码,指定要查询的功能。
data[].traitCodesArray of String功能点代码列表,指定要查询的功能点。

请求参数示例

以下为 GetTraitValueRequest 的请求体示例:

{
"type" : "GetTraitValueRequest",
"version" : "v1",
"msgId" : "get_devices_1751609244328",
"data":[{
"deviceId": "57190441014857",
"endpointId": 3,
"functionCode": "MediaPlayback",
"traitCodes": ["TargetPlaybackState"]
}]

}

响应数据

参数类型说明
typeString响应消息类型,固定为 GetTraitValueResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功,0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataArray of Object响应数据列表。
data[].deviceIdString设备 ID。
data[].endpointIdNumber端点 ID。
data[].functionCodeString功能代码。
data[].traitCodeString功能点代码。
data[].valueAny特征的当前值。
data[].timeNumber当前值上报时间的 Unix 时间戳(毫秒)。

响应数据示例

以下为 GetTraitValueResponse 的响应示例:

{
"type": "GetTraitValueResponse",
"version": "v1",
"msgId": "get_devices_1751609244328",
"code": 0,
"message": null,
"data": [
{
"deviceId": "57190441014857",
"endpointId": 3,
"functionCode": "MediaPlayback",
"traitCode": "TargetPlaybackState",
"value": "0",
"time": 1761308409323
}
]
}

订阅多个功能点变化

该接口用于订阅设备数据的实时变化。当设备的功能点的值变化时,Studio 会通过此接口主动向您推送最新的数据。

通过订阅,您无需频繁轮询即可及时获取设备状态变化,提高通信效率与实时性。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 SubscribeTraitValueRequest
versionString请求接口版本号,必须为 v1
msgIdString由您自定义的请求 ID。
dataArray of Object请求数据。
data[].deviceIdString要订阅的设备 ID。
data[].endpointIdNumber端点 ID。
data[].functionCodeString功能代码。
data[].traitCodesArray of String功能点代码列表。

请求参数示例

以下为 SubscribeTraitValueRequest 的请求体示例:

{
"type" : "SubscribeTraitValueRequest",
"version" : "v1",
"msgId" : "get_devices_1751609244328",
"data":[{
"deviceId": "57190441014857",
"endpointId": 3,
"functionCode": "MediaPlayback",
"traitCodes": ["TargetPlaybackState"]
}]
}

订阅操作响应

响应数据
参数类型是否必须说明
typeString响应消息类型,固定为 SubscribeTraitValueResponse
versionString响应的接口版本号,与请求一致。
msgIdString与请求对应的唯一标识。
codeNumber请求处理结果,0 表示订阅成功,非 0 表示订阅失败。
messageString响应结果描述信息。
响应数据示例

以下为订阅成功后的 SubscribeTraitValueResponse 响应示例:

{
"type": "SubscribeTraitValueResponse",
"version": "v1",
"msgId": "get_devices_1751609244328",
"code": 0,
"message": ""
}

推送设备变化

当设备的功能点值发生变化后,Studio 会实时向您推送变化详情。

推送数据结构
参数类型是否必须说明
typeString响应消息类型,固定为 TraitValueUpdate
versionString响应的接口版本号,与请求一致。
msgIdString与请求对应的唯一标识。
dataArray of Object数据对象数组。
data[].deviceIdString设备 ID。
data[].endpointIdNumber端点 ID。
data[].functionCodeString功能代码。
data[].traitCodeString功能点代码。
data[].valueAny功能点的值。值的类型与功能点的类型有关。
data[].timeNumber功能点的值的上报时间的 Unix 时间戳(毫秒)。
推送数据示例

当订阅的功能点值变化后,TraitValueUpdate 响应如下所示:

{
"type": "TraitValueUpdate",
"version": "v1",
"msgId": "get_devices_1751609244328",
"data":[{
"deviceId": "57190441014857",
"endpointId": 3,
"functionCode": "MediaPlayback",
"traitCode": "TargetPlaybackState",
"value": "0",
"time": 1754469720110
}]
}

取消订阅功能点变化

当您不再需要实时了解设备的功能点值,调用本接口取消订阅。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 UnsubscribeTraitValueRequest
versionString请求接口版本号,必须为 v1
msgIdString由您自定义的请求 ID。
dataArray of Object请求数据。
data[].deviceIdString要订阅的设备 ID。
data[].endpointIdNumber端点 ID。
data[].functionCodeString功能代码。
data[].traitCodesArray of String功能点代码列表。

请求参数示例

以下为 UnsubscribeTraitValueRequest 的请求体示例:

{
"type" : "UnsubscribeTraitValueRequest",
"version" : "v1",
"msgId" : "get_devices_1751609244328",
"data": [{
"deviceId": "57190441014857",
"endpointId": 3,
"functionCode": "MediaPlayback",
"traitCodes": ["TargetPlaybackState"]
}]
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 UnsubscribeTraitValueResponse
versionString响应的接口版本号,与请求一致。
msgIdString与请求对应的唯一标识。
codeNumber请求处理结果,0 表示取消成功,非 0 表示取消失败。
messageString响应结果描述信息。

响应数据示例

以下为 UnsubscribeTraitValueResponse 的响应示例:

{
"type": "UnsubscribeTraitValueResponse",
"version": "v1",
"msgId": "0806",
"code": 0,
"message": ""
}

订阅所有功能点变化

订阅多个设备的所有功能点变化。

请求参数

参数类型是否必须说明
typeString请求的消息类型,必须为 SubscribeAllRequest
versionString请求接口版本号,必须为 v1
msgIdString由您自定义的请求 ID。
dataArray of String需要订阅的设备 ID 列表,若为空则表示订阅所有设备。
提示

订阅所有设备与订阅特定设备互斥,不能同时存在。若本次调用接口时,data 不为空,但上一次 data 为空,则系统会取消原先的“订阅所有设备”,仅保留对指定设备的订阅。反之亦然。

请求参数示例

以下为 SubscribeAllRequest 的请求体示例:

{
"type": "SubscribeAllRequest",
"version": "v1",
"msgId": "1751609244328",
"data": ["deviceId"]
}

响应数据

参数类型是否必须说明
typeString响应的消息类型,固定为 SubscribeAllResponse
versionString响应接口版本号,必须为 v1
msgIdString与请求对应的唯一标识。
codeNumber请求处理结果,0 表示订阅成功,非 0 表示失败。
messageString响应结果描述信息。

响应数据示例

以下为 SubscribeAllResponse 的响应示例:

{
"type": "SubscribeAllResponse",
"version": "v1",
"msgId": "1751609244328",
"code": 0,
"message": ""
}

取消订阅所有功能点变化

取消订阅多个设备的所有功能点变化。

请求参数

参数类型是否必须说明
typeString请求的消息类型,固定为 UnsubscribeAllRequest
versionString请求接口版本号,必须为 v1
msgIdString由您自定义的请求 ID。
dataArray of String需要取消订阅的设备 ID 列表,若为空则表示取消订阅所有设备。
提示
  • 若当前已订阅“所有设备”,则取消订阅时 data 不为空(即按特定设备取消订阅)无效,只有 data 为空(取消所有设备订阅)才会生效;
  • 若当前已按“特定设备”订阅,则取消订阅时 data 为空(即取消所有设备订阅)有效,可以直接取消原有的特定设备订阅。

请求参数示例

以下为 UnsubscribeAllRequest 的请求体示例:

{
"type": "UnsubscribeAllRequest",
"version": "v1",
"msgId": "1751609244328",
"data": []
}

响应数据

参数类型是否必须说明
typeString响应消息类型,固定为 UnsubscribeAllResponse
versionString响应的接口版本号,与请求一致。
msgIdString与请求对应的唯一标识。
codeNumber请求处理结果,0 表示取消成功,非 0 表示失败。
messageString响应结果描述信息。

响应数据示例

以下为 UnsubscribeAllResponse 的响应示例:

{
"type": "UnsubscribeAllResponse",
"version": "v1",
"msgId": "1751609244328",
"code": 0,
"message": ""
}

对象事件消息推送

当您 订阅了某个功能点变化订阅了某个设备的所有功能点变化 后,Studio 会实时向您推送以下事件:

  • 设备添加。
  • 设备删除。
  • 设备增加了端点。
  • 设备删除了端点。
  • 设备功能点的属性(最小值、最大值、单位等)更新。

响应数据

参数类型说明
typeString响应消息类型,固定为 objectEvent
versionString响应接口版本号,与请求一致。
msgIdString与请求对应的唯一标识。
dataObject事件数据对象。
data.eventTypeString事件类型:
  • DEVICE_ADDED:设备添加
  • DEVICE_REMOVED:设备删除。
  • DEVICE_ENDPOINT_ADDED:设备增加了端点。
  • DEVICE_ENDPOINT_REMOVED:设备删除了端点。
  • DEVICE_TRAIT_PAREMETER_UPDATE:设备功能点的属性(最小值、最大值、单位等)更新。
data.objectIdString对象 ID(当前为设备 ID)。
data.timeNumber事件发生时间的 Unix 时间戳(毫秒)。
data.dataObject事件相关详细数据,详情请参见 data.data 字段说明
data.data 字段说明

根据事件类型,data.data 有所不同

非 DEVICE_TRAIT_PARAMETER_UPDATE 事件

以下数据结构适用于当 eventType 为以下事件时:

  • DEVICE_ADDED
  • DEVICE_REMOVED
  • DEVICE_ENDPOINT_ADDED
  • DEVICE_ENDPOINT_REMOVED
参数类型说明
deviceIdString设备 ID。
nameString设备名称。
deviceTypesListArray of String设备类型列表。字符串含义请参考 设备类型说明
endpointIdsArray of Number端点 ID 列表。
DEVICE_TRAIT_PARAMETER_UPDATE 事件
提示

若事件为 DEVICE_TRAIT_PARAMETER_UPDATE,建议重新调用 GetDevicesRequest 接口 查询设备的 spec 配置

参数类型描述
data.data.deviceIdString设备ID。
data.data.endpointIdInteger端点 ID。
data.data.functionCodeString功能代码。
data.data.traitCodeString功能点代码。
data.data.newValueObject最新配置。
data.data.newValue.endpointIdInteger端点 ID。
data.data.newValue.functionCodeString功能代码。
data.data.newValue.traitCodeString功能点代码。
data.data.newValue.minNumber最小值。
data.data.newValue.maxNumber最大值。
data.data.newValue.unitString单位。
data.data.newValue.stepNumber步长。
data.data.oldValueObject原配置,结构与 newValue 保持一致。

响应数据示例

以下展示适用于不同事件的响应数据示例

非 DEVICE_TRAIT_PARAMETER_UPDATE 事件

以下为 objectEvent 的响应示例:

{
"type": "objectEvent",
"version": "v1",
"msgId": "123456",
"data":{
"eventType": "DEVICE_ADDED",
"objectId": "14d3b91",
"time": 1754469720110,
"data": {
"deviceId": "14d3b91",
"name": "",
"deviceTypesList": ["Light"],
"endpointIds": [0,2,3]
}
}
}
DEVICE_TRAIT_PARAMETER_UPDATE 事件

以下为 objectEvent 的响应示例:

{
"type": "objectEvent",
"version": "v1",
"msgId": "1765163175639",
"data": {
"eventType": "DEVICE_TRAIT_PARAMETER_UPDATE",
"objectId": "xxxxxxx",
"time": 1765163175603,
"data": {
"deviceId": "virtual.14247766413772",
"endpointId": 2,
"functionCode": "LevelControl",
"traitCode": "CurrentLevel",
"newValue": {
"endpointId": 2,
"functionCode": "LevelControl",
"max": 100.0,
"min": 1.0,
"step": null,
"traitCode": "CurrentLevel",
"unit": "%"
},
"oldValue": {
"endpointId": 2,
"functionCode": "LevelControl",
"max": 100.0,
"min": 1.0,
"step": 1.0,
"traitCode": "CurrentLevel",
"unit": "%"
}
}
},
"code": 0,
"message": null
}

查询设备历史数据

根据设备 ID 查询对应设备的历史数据。

请求参数

参数类型是否必填说明
typeString请求的消息类型,必须为 QueryDeviceHistoryDataRequest
versionString请求接口版本号,必须为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据。
data.deviceIdString查询目标的设备 ID。
data.traitCodesArray of String待查询的功能点代码(traitCode)列表。不填时,默认查询上述 deviceId 的所有功能点历史数据。
data.scanIdNumber分页拉取标识。首次查询请留空,若需继续查询后一页数据,则传入上次响应中的 scanId。用于支持数据的连续分页查询。
data.descBoolean是否按时间倒序查询:
  • true:(默认)倒序
  • false:正序
data.startTimeNumber查询起始时间,单位为毫秒的 UTC 时间戳。
data.endTimeNumber查询结束时间,单位为毫秒时间戳。
注意:结束时间与开始时间的间隔不能超过 7 天(即 endTime - startTime ≤ 7 * 24 * 60 * 60 * 1000
data.langString语言。
  • zh-CN:中文
  • en-US:
data.sizeNumber单次查询的数量,数值范围 [1, 200],默认为 50。

请求参数示例

以下为 QueryDeviceHistoryDataRequest 的请求体示例:

{
"type" : "QueryDeviceHistoryDataRequest",
"version": "v1",
"msgId" : "msgId123456",
"data":{
"deviceId": "b1654af4fda39824",
// "traitCodes": ["EndpointCount"],
// "desc":false,
"lang":"zh-CN",
"startTime": 1770114300000,
"endTime": 1770639900000,
// "scanId": 0,
"size":3
}
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 QueryDeviceHistoryDataResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
dataObject响应数据。
data.scanIdNumber分页拉取标识。用于继续查询下一页数据。
data.dataArray of Object历史数据列表。每项结构如下:
data.data[].deviceIdString设备 ID。
data.data[].deviceNameString设备名称。
data.data[].endpointIdNumber端点 ID。
data.data[].functionCodeString功能代码。
data.data[].traitCodeString功能点代码。
data.data[].valueAnytraitCode 的值。
data.data[].pointNameString功能点名称(使用请求参数 data.lang 指定的语言)。
data.data[].pointValueString功能点值含义(使用请求参数 data.lang 指定的语言)。
data.data[].unitStringvalue 的单位。
data.data[].timeNumber数据上报的 UTC 毫秒级时间戳。

响应数据示例

以下为 QueryDeviceHistoryDataResponse 的响应示例:

{
"type": "QueryDeviceHistoryDataResponse",
"version": "v1",
"msgId": "msgId123456",
"data": {
"scanId": 3178,
"data": [
{
"deviceId": "b1654af4fda39824",
"deviceName": "Home Assistant Versions Update Available",
"endpointId": 2,
"functionCode": "OnOffSensor",
"traitCode": "BooleanState",
"value": true,
"pointName": "开关传感器 - 布尔状态",
"pointValue": "真",
"unit": "",
"time": 1770580415746
},
{
"deviceId": "b1654af4fda39824",
"deviceName": "Home Assistant Versions Update Available",
"endpointId": 2,
"functionCode": "OnOffSensor",
"traitCode": "BooleanState",
"value": false,
"pointName": "开关传感器 - 布尔状态",
"pointValue": "假",
"unit": "",
"time": 1770580114489
},
{
"deviceId": "b1654af4fda39824",
"deviceName": "Home Assistant Versions Update Available",
"endpointId": 2,
"functionCode": "OnOffSensor",
"traitCode": "BooleanState",
"value": true,
"pointName": "开关传感器 - 布尔状态",
"pointValue": "真",
"unit": "",
"time": 1770564659744
}
]
},
"code": 0
}