跳到主要内容

自动化 API

查询设备可用于自动化的功能点信息

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

请求参数

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

请求参数示例

以下为 QueryDeviceSupportedScriptAutomationConfigRequest 的请求体示例:

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

响应数据

字段类型说明
typeString响应的消息类型,固定为 QueryDeviceSupportedScriptAutomationConfigResponse
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。

响应数据示例

以下为 QueryDeviceSupportedScriptAutomationConfigResponse 的响应示例:

{
"type": "QueryDeviceSupportedScriptAutomationConfigResponse",
"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
}

创建自动化

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

请求参数

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

请求参数示例

以下为 CreateScriptAutomationRequest 的请求体示例:

{
"type": "CreateScriptAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"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响应的消息类型,固定为 CreateScriptAutomationResponse
versionString响应版本号,与请求接口版本号一致。
msgIdString您发起请求时传入的 msgId
codeNumber请求是否成功。0 表示成功,非 0 表示失败。
messageString请求结果描述。
dataString创建成功的自动化 ID(linkageId)。

响应数据示例

以下为 CreateScriptAutomationResponse 的响应示例:

{
"type": "CreateScriptAutomationResponse",
"version": "v1",
"msgId": "1751609244328",
"code": 0,
"message": "",
"data": "L.15b0cde.127312348967862272"
}

编辑自动化脚本

调用本接口,您可以编辑已存在的自动化脚本。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 UpdateScriptAutomationRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.linkageIdString编辑目标的的自动化 ID,
data.configObject新的 JSON 自动化脚本。不传或为 null 时表示不变更现有配置;如传入空对象 {},则自动化脚本内容会被清空。

请求参数示例

以下为 UpdateScriptAutomationRequest 的请求体示例:

{
"type": "UpdateScriptAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"linkageId":"L.15b0cde.127312348967862272",
"config": {

}
}
}

响应数据

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

响应数据示例

以下为 UpdateScriptAutomationResponse 的响应示例:

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

修改自动化名称及启用状态

通过本接口,您可以更新已创建自动化的名称及启用(启用/禁用)状态,无需更改其 JSON 自动化脚本。

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 UpdateScriptAutomationRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.linkageIdString编辑目标的的自动化 ID,
data.nameString自动化名称。不传或为传入值为空时,表示不更新名称;当传入值不为空且当前名称不同时,本接口会更新该名称。
data.enabledBoolean是否启用自动化。不传或为传入值为 null 时,表示不更新启用状态;当传入值不为 null 且当前启用状态不同时,本接口会更新该启用状态。
  • true:启用。
  • false:关闭。

请求参数示例

以下为 UpdateScriptAutomationRequest 的请求体示例:

{
"type": "UpdateScriptAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"linkageId":"L.15b0cde.127312348967862272",
"name":"a3",
"enabled": false
}
}

响应数据

编辑自动化(配置) - 响应数据 一致。

响应数据示例

编辑自动化(配置) - 响应数据示例 一致。

查询自动化列表

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

请求参数

参数类型是否必需说明
typeString请求的消息类型,必需为 GetScriptAutomationListRequest
versionString请求接口版本号,必需为 v1
msgIdString由您定义的请求 ID。
dataObject请求数据对象。
data.pageNumNumber页码,从 1 开始。
data.pageSizeNumber每页数据条数。

请求参数示例

以下为 GetScriptAutomationListRequest 的请求体示例:

{
"type": "GetScriptAutomationListRequest",
"version": "v1",
"msgId": "1751609244328",
"data": {
"pageNum":1,
"pageSize":2
}
}

响应数据

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

响应数据示例

以下为 GetScriptAutomationListResponse 的响应示例:

{
"type": "GetScriptAutomationListResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"totalCount": 6,
"pageNum": 1,
"pageSize": 2,
"data": [
{
"linkageId": "L.15b0cde.127312348967862272",
"name": "a3-1",
"enabled": false,
"createTime": 1766043229326
},
{
"linkageId": "L.15b0ceb.127312523723538432",
"name": "b2",
"enabled": true,
"createTime": 1766043270999
}
]
},
"code": 0,
"message": null
}

查询自动化详情

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

请求参数

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

请求参数示例

以下为 GetScriptAutomationDetailsRequest 的请求体示例:

{
"type": "GetScriptAutomationDetailsRequest",
"version": "v1",
"msgId": "1751609244328",
"data": "L.15b0cde.127312348967862272"
}

响应数据

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

响应数据示例

以下为 GetScriptAutomationDetailsResponse 的响应示例:

{
"type": "GetScriptAutomationDetailsResponse",
"version": "v1",
"msgId": "1751609244328",
"data": {
"linkageId": "L.15b0cde.127312348967862272",
"name": "a3-1",
"enabled": false,
"config": {

},
"createTime": 1766043229326
},
"code": 0,
"message": null
}

删除自动化

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

请求参数

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

请求参数示例

以下为 DeleteAutomationRequest 的请求体示例:

{
"type": "DeleteAutomationRequest",
"version": "v1",
"msgId": "1751609244328",
"data": ["L.15b0b4d.1273030749213163"]
}

响应数据

字段类型说明
typeString响应消息类型,固定为 DeleteAutomationResponse
versionString接口版本号,固定为 v1
msgIdString您发起请求时传入的 msgId
codeNumber响应状态码,0 表示成功。非 0 表示失败。
messageString响应描述信息。
dataString空字符串。

响应数据示例

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