新增联动规则

更新时间:2024-09-10 01:49:14

本文介绍新增联动规则的 API。

接口描述

根据传入的条件和动作等参数,创建联动规则。

接口地址

POST: /v2.0/cloud/scene/rule

请求参数

body 说明

参数名类型参数位置是否必填说明
space_idStringbodytrue联动关联的空间 ID。
nameStringbodytrue联动规则的名称。
typeStringbodytrue联动类型。
  • scene:一键执行
  • automation:自动化
decision_exprStringbodytrue条件表达式。
  • and:且
  • or:或
  • c1&c2:自定义表达式
conditionsListbodyfalse条件集合。联动类型为一键执行时不填,联动类型为自动化时必填。
actionsListbodytrue动作集合。
effective_timeEffectiveTimebodyfalse联动规则生效时间。

effective_time 说明

参数名类型参数位置是否必填说明
startStringbodytrue开始时间。
endStringbodytrue结束时间。
loopsStringbodytrue触发周期,由 01 组成的 7 位数字。0 表示不执行,1 表示执行。第 1 位为周日,依次表示周一至周六。例如,0011000 表示每周二,周三执行。
time_zone_idStringbodytrue时区 ID。

conditions 说明

参数名类型参数位置是否必填说明
entity_idStringbodytrue条件对象 ID。
entity_typeStringbodytrue条件对象类型。
  • timer:定时
  • weather:天气
  • device_report:设备上报
codeIntegerbodytrue条件编码,不可重复。
exprExprbodytrue计算表达式。

actions 说明

参数名类型参数位置是否必填说明
entity_idStringbodytrue动作对象 ID。
action_executorStringbodytrue动作对象类型。
  • delay:延时
  • device_issue:设备指令下发
  • device_group_issue:群组指令下发
executor_propertyExecutorPropertybodytrue动作明细。

expr 说明

参数名类型参数位置是否必填说明
status_codeStringbodytrue状态集 code。当 entity_typedevice_report 时,此参数必填。
comparatorStringbodytrue比较表达式。当 entity_typedevice_reportweather 时,此参数必填。
  • ==:等于
  • >:大于
  • <:小于
status_valueObjectbodytrue状态集 value。当 entity_typedevice_report 时,此参数必填。
dateStringbodyfalse联动规则触发日期。
timeStringbodytrue联动规则触发时间。
loopsStringbodyfalse触发周期,由 01 组成的 7 位数字。0 表示不执行,1 表示执行。第 1 位为周日,依次表示周一至周六。例如,0011000 表示每周二,周三执行。
time_zone_idStringbodytrue时区 ID。
weather_codeStringbodytrue状态集 code。当 entity_typeweather 时,此参数必填。
weather_valueObjectbodytrue状态集 value。当 entity_typeweather 时,此参数必填。

executor_property 说明

参数名类型参数位置是否必填说明
function_codeStringbodytrue指令 code。当 action_executordevice_issuedevice_group_issue 时,此参数必填。
function_valueObjectbodytrue指令 value。当 action_executordevice_issuedevice_group_issue 时,此参数必填。
delay_secondsIntegerbodytrue延时时间。当 action_executordelay 时,此参数必填。

返回参数

参数名类型说明
resultLinkageAddResponse返回结果。

result 说明

参数名类型说明
idString联动规则 ID。

请求示例

POST: /v2.0/cloud/scene/rule
{
  "space_id": "150***",
  "name": "测试场景",
  "type": "automation",
  "decision_expr": "or",
  "effective_time": {
    "start": "00:00",
    "end": "23:00",
    "loops": "1111111",
    "timezone_id": "Asia/Shanghai"
  },
  "conditions": [
    {
      "code": 1,
      "entity_id": "****",
      "entity_type": "device_report",
      "expr": {
        "status_code": "switch_1",
        "comparator": "==",
        "status_value": true
      }
    }
  ],
  "actions": [
    {
      "entity_id": "****",
      "action_executor": "device_issue",
      "executor_property": {
        "function_code": "switch_1",
        "function_value": true
      }
    }
  ]
}

返回示例

{
    "tid": "***",
    "result": {
        "id": "***"
    },
    "t": 1677742076308,
    "success": true
}

错误码

参考 错误码

调用频率限制

参考 调用频率限制