跳到主要内容

自动化 API

获取可用于自动化的所有功能点信息

通过调用本接口,您可获取所有设备中可用于自动化配置的功能点信息。返回内容包括各功能点的值类型、单位,以及其在自动化流程中的适用环节(如可作为 触发器条件操作)。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 QueryAutomationCapabilitiesRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject此处传空对象。

请求参数示例

以下为 QueryAutomationCapabilitiesRequest 的请求体示例:

{
"type": "QueryAutomationCapabilitiesRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {}
}

响应数据

字段类型说明
typeString响应的消息类型,固定为 QueryAutomationCapabilitiesResponse
versionString响应接口版本号,与请求接口版本号一致。
msgIdString请求时传入的 msgId
codeNumber返回码,0 表示成功,非 0 表示失败。
data.devicesArray of Object设备信息列表。
data.devices[].deviceIdString设备 ID。
data.devices[].deviceNameString设备名称。
data.devices[].endpointsArray of Object设备的端点信息列表。
data.devices[].endpoints[].endpointNameString端点名称。
data.devices[].endpoints[].endpointIdNumber端点 ID。
data.devices[].endpoints[].propertiesArray of Object功能点列表。
data.devices[].endpoints[].properties[].functionCodeString功能代码。
data.devices[].endpoints[].properties[].functionNameString功能名称。
data.devices[].endpoints[].properties[].traitCodeString功能点代码。
data.devices[].endpoints[].properties[].traitNameString功能点名称。
data.devices[].endpoints[].properties[].valueTypeString功能点值的类型(如 boolean、number 等)。
data.devices[].endpoints[].properties[].semanticRoleArray of String查询到该功能点在自动化中可用的环节范围,包括 starter(可作为触发器)、condition(可作为条件判断)、action(可作为操作)等,具体以返回的数组内容为准。
data.devices[].endpoints[].properties[].unitString/null单位,若无单位则为 null。

响应数据示例

以下为 QueryAutomationCapabilitiesResponse 的响应示例:

{
"type": "QueryAutomationCapabilitiesResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"devices": [
{
"deviceId": "9f3e3632068ff047",
"deviceName": "Door and Window Magnet Sensor",
"endpoints": [
{
"endpointName": "Endpoint_2",
"endpointId": 2,
"properties": [
{
"functionCode": "OnOffSensor",
"functionName": "OnOff Sensor",
"traitCode": "BooleanState",
"traitName": "Boolean State",
"valueType": "boolean",
"semanticRole": [
"starter",
"condition"
],
"unit": null
}
]
}
]
},
{
"deviceId": "af9e93b709de1fd9",
"deviceName": "Motion Sensor",
"endpoints": [
{
"endpointName": "Endpoint_2",
"endpointId": 2,
"properties": [
{
"functionCode": "OnOffSensor",
"functionName": "OnOff Sensor",
"traitCode": "BooleanState",
"traitName": "Boolean State",
"valueType": "boolean",
"semanticRole": [
"starter",
"condition"
],
"unit": null
}
]
}
]
},
{
"deviceId": "947793560f5b2fbd",
"deviceName": "Flood Detector",
"endpoints": [
{
"endpointName": "Endpoint_2",
"endpointId": 2,
"properties": [
{
"functionCode": "OnOffSensor",
"functionName": "OnOff Sensor",
"traitCode": "BooleanState",
"traitName": "Boolean State",
"valueType": "boolean",
"semanticRole": [
"starter",
"condition"
],
"unit": null
}
]
}
]
},
...
]
},
"code": 0
}

创建自动化

调用本接口,您可以创建并启用一个 Flow 自动化

创建成功后,您可以在 Aqara Studio 的自动化列表中查看并管理该 Flow。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 CreateAutomationRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据。
data.definitionTypeString自动化类型。当前仅支持 "SCRIPT_JSON"
data.configObjectJSON 自动化脚本,详情请参考 JSON 自动化脚本定义

请求参数示例

以下为 CreateAutomationRequest 的请求体示例:

{
"type": "CreateAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"definitionType": "SCRIPT_JSON",
"config": {
"metadata": {
"name": "智能灯光控制",
"description": "当开关打开时,自动打开两盏灯",
"scope": [
{
"name": "switchState",
"type": "device.property",
"deviceId": "switch001",
"endpointId": 1,
"functionCode": "OnOff",
"traitCode": "OnOff"
},
{
"name": "tempSensor",
"type": "device.property",
"deviceId": "sensor001",
"endpointId": 1,
"functionCode": "TemperatureMeasurement",
"traitCode": "MeasuredValue"
}
]
},
"automations": [
{
"name": "开关联动灯光",
"starters": [
{
"type": "property.event",
"source": {
"type": "data.ref",
"from": "/metadata/scope",
"select": {
"by": "name",
"value": "switchState"
}
},
"is": true,
"for": "5sec",
"suppressFor": "10sec"
}
],
"condition": {
"type": "and",
"conditions": [
{
"type": "property.state",
"source": {
"type": "data.ref",
"from": "/metadata/scope",
"select": {
"by": "name",
"value": "tempSensor"
}
},
"greaterThan": 20
},
{
"type": "time.between",
"after": "08:00",
"before": "22:00"
}
]
},
"actions": [
{
"type": "device.trait.write",
"functionCode": "Switch",
"traitCode": "OnOff",
"targets": [
{
"deviceId": "light001",
"endpointIds": [1]
}
],
"value": true
},
{
"type": "delay",
"for": "2sec"
},
{
"type": "device.trait.write",
"functionCode": "LevelControl",
"traitCode": "CurrentLevel",
"targets": [
{
"deviceId": "light001",
"endpointIds": [1]
}
],
"value": 100
}
]
}
]
}
}
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 CreateAutomationResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataString创建成功的自动化 ID(automationId

响应数据示例

以下为 CreateAutomationResponse 的响应示例:

{
"type": "CreateAutomationResponse",
"version": "v1",
"msgId": "1751609244328",
"code": 0,
"message": "",
"data": "auto_15b0cde_127312348967862272"
}

编辑自动化

通过调用本接口,您可以修改已有自动化的名称与启用状态。若该自动化的 definitionType"SCRIPT_JSON",还可同时更新其自动化脚本内容。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 UpdateAutomationRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.automationIdString编辑目标的的自动化 ID。
data.definitionTypeString编辑目标的的自动化类型。
data.nameString新的名称。
data.enabledBoolean新的启用状态。true 表示启用,false 表示禁用。
data.configObject新的 JSON 自动化脚本。
data.updateMaskArray of String需更新的参数名称列表,仅支持以下字段:
  • "name"
  • "enabled"
  • "config"
请确保 updateMask 中的每一项都已在 data 对象中正确提供新值。

请求参数示例

以下为 UpdateAutomationRequest 的请求体示例:

{
"type": "UpdateAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"automationId":"auto_15b0cde_127312348967862272",
"definitionType": "SCRIPT_JSON",
"name": "New Name",
"updateMask": [
"name"
]
}
}

响应数据

参数类型说明
typeString响应的消息类型,固定为 UpdateAutomationResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功,0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataString空字符串。

响应数据示例

以下为 UpdateAutomationResponse 的响应示例:

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

批量更新自动化状态

调用本接口,您可以一次性更新多个自动化的启用状态。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 UpdateAutomationStatusRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.automationIdsArray of String需要更新状态的自动化 ID 列表。
data.enabledBoolean需要设置的启用状态,true 表示启用,false 表示禁用。

请求参数示例

以下为 UpdateAutomationStatusRequest 的请求体示例:

{
"type": "UpdateAutomationStatusRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"automationIds": [
"auto_15b0cde_127312348967862272"
],
"enabled": false
}
}

响应数据

字段名类型说明
typeString响应消息类型,固定为 UpdateAutomationStatusResponse
versionString响应接口版本号,固定为 v1
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功,0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataObject响应数据对象。
data.successIdsArray of String成功的自动化 ID 列表。
data.failedItemsArray of Object失败的自动化对象。
data.failedItems.automationIdString自动化 ID。
data.failedItems.codeString错误码。
data.failedItems.messageString失败描述。

响应数据示例

以下为 UpdateAutomationStatusResponse 的响应示例:

{
"type": "UpdateAutomationStatusResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"successIds": [
"auto_15b0cde_127312348967862272"
]
}
}

查询自动化列表

调用本接口,您可以分页获取一个自动化简介列表,了解每个自动化的 ID、名称、启用状态和创建时间。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 GetAutomationListRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.definitionTypesArray of String查询目标类型,可选值:"SCRIPT_JSON""SCRIPT_TEXT""WHEN_IF_THEN"。不传或为空时查询全部类型。
data.orderByString排序字段。
  • "createTime asc":(默认)按创建时间升序
  • "createTime desc":按创建时间降序
data.pageNumNumber页码,从 1 开始。
data.pageSizeNumber每页数据条数。

请求参数示例

以下为 GetAutomationListRequest 的请求体示例:

{
"type": "GetAutomationListRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"definitionTypes": ["SCRIPT_JSON"],
"pageNum":1,
"pageSize":2
}
}

响应数据

字段名类型说明
typeString响应消息类型,固定为 GetAutomationListResponse
versionString响应接口版本号,固定为 v1
msgIdString您发起请求时传入的 msgId
dataObject响应数据对象,包含自动化列表及分页信息
data.totalCountNumber总自动化数量。
data.pageNumNumber当前页码。
data.pageSizeNumber每页数量。
data.dataArray of Object自动化列表。
data.data[].automationIdString自动化 ID。
data.data[].definitionTypeString自动化类型。
data.data[].nameString自动化名称。
data.data[].enabledBoolean启用状态:
  • true:已启用
  • false:禁用
data.data[].createTimeNumber自动化创建时间,单位为毫秒的 UTC 时间戳。
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
messageString 或 null响应描述消息。为空字符串或 null 时表示请求成功。

响应数据示例

以下为 GetAutomationListResponse 的响应示例:

{
"type": "GetAutomationListResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"totalCount": 6,
"pageNum": 1,
"pageSize": 2,
"data": [
{
"automationId": "auto_15b0cde_127312348967862272",
"definitionType": "SCRIPT_JSON",
"name": "a3-1",
"enabled": false,
"createTime": 1766043229326
},
{
"automationId": "auto_15b0ceb_127312523723538432",
"definitionType": "SCRIPT_JSON",
"name": "b2",
"enabled": true,
"createTime": 1766043270999
}
]
},
"code": 0,
"message": null
}

查询自动化详情

通过调用本接口并传入自动化 ID,您可以获取指定自动化的详细信息(如 JSON 自动化脚本)。

提示

仅支持查询 definitionType 等于 "SCRIPT_JSON" 的自动化的详情。

请求参数

参数类型是否必需说明
typeString请求消息类型,固定为 GetAutomationDetailsRequest
versionString接口版本号,固定为 v1
msgIdString由您定义的请求 ID。
dataString查询目标的自动化 ID。

请求参数示例

以下为 GetAutomationDetailsRequest 的请求体示例:

{
"type": "GetAutomationDetailsRequest",
"version": "v1",
"msgId": "1751609244328",
"data": "auto_15b0cde_127312348967862272"
}

响应数据

字段类型说明
typeString响应消息类型,固定为 GetAutomationDetailsResponse
versionString接口版本号,固定为 v1
msgIdString您发起请求时传入的 msgId
dataObject返回的自动化详情数据对象。
data.automationIdString自动化ID。
data.definitionTypeString自动化类型。当前固定为 "SCRIPT_JSON"
data.nameString自动化名称。
data.enabledBoolean自动化的启用状态。
data.configObjectJSON 自动化脚本。
data.createTimeNumber自动化创建时间,单位为毫秒的 UTC 时间戳。
codeNumber响应码。0表示成功,其他为错误码。
messageString 或 null响应描述消息。为空字符串或 null 时表示请求成功。

响应数据示例

以下为 GetAutomationDetailsResponse 的响应示例:

{
"type": "GetAutomationDetailsResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"automationId": "auto_15b0cde_127312348967862272",
"definitionType": "SCRIPT_JSON",
"name": "a3-1",
"enabled": false,
"config": {
...
},
"createTime": 1766043229326
},
"code": 0,
"message": null
}

删除自动化

调用本接口,您可以删除多个自动化。

请求参数

参数类型是否必需说明
typeString请求消息类型,固定为 DeleteAutomationRequest
versionString接口版本号,固定为 v1
msgIdString由您定义的请求 ID。
dataArray of String待删除的自动化 ID 数组,每个元素为对应的 automationId。

请求参数示例

以下为 DeleteAutomationRequest 的请求体示例:

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

响应数据

字段类型说明
typeString响应消息类型,固定为 DeleteAutomationResponse
versionString接口版本号,固定为 v1
msgIdString您发起请求时传入的 msgId
codeNumber响应状态码,0 表示成功。非 0 表示失败。
messageString响应描述信息。
dataObject响应对象。
data.successIdsArray of String删除成功的自动化 ID。
data.failedItemsArray of Object删除失败的自动化对象。
data.failedItems.automationIdString自动化 ID。
data.failedItems.codeNumber错误码。
data.failedItems.messageString失败描述。

响应数据示例

{
"type": "DeleteAutomationResponse",
"version": "v1",
"msgId": "1751609244328",
"code": 0,
"message": "",
"data": {
"successIds": [
"auto_15b0b4d_1273030749213163"
]
}
}