更新自动化

更新时间:2023-07-14 03:01:46下载pdf

本文介绍更新自动化的 API。

接口描述

根据自动化 ID,更新自动化。条件个数上限为 10 个,动作个数上限为 50 个。

接口地址

PUT: /v2.0/iot-03/automations/{automation_id}

请求参数

参数名类型参数位置是否必填说明
automation_idStringuritrue自动化 ID。

body 说明

参数名类型参数位置是否必填说明
nameString true自动化名称。
dslAutomationDsl true自动化规则语言。
preconditionsPreconditions false自动化前置条件。

preconditions 说明

参数名类型参数位置是否必填说明
trigger_typeString false触发类型。目前只有 timeCheck
precondition_trigger_ruleObject false前置条件触发规则。见 precondition_trigger_rule 详细说明。

dsl 说明

参数名类型参数位置是否必填说明
conditionsList true自动化条件列表。
conditions_ruleString true自动化条件匹配规则。
  • and:所有条件均成立。
  • or:任意条件成立。
actionsList true自动化动作列表。

conditions 说明

参数名类型参数位置是否必填说明
trigger_typeString true触发类型。
  • deviceReport:设备上报触发
  • timer:定时触发
  • weather:天气触发
trigger_idString true条件触发 ID。
条件触发类型 trigger_typedeviceReport 时,trigger_id 为设备 ID。
条件触发类型 trigger_typetimer 时,trigger_id 固定为 timer
条件触发类型 trigger_typeweather 时,trigger_id 固定为城市 ID。
trigger_ruleObject true条件触发规则。见 trigger_rule 详细说明。
rule_numInteger true触发条件编号,用于条件匹配规则自定义条件计算。取值范围为 1~条件的个数,且不能重复。

actions 说明

参数名类型参数位置是否必填说明
execution_typeString true执行类型。
  • deviceIssue:设备下发。
  • deviceGroupIssue:设备群组下发。
  • delay:延时动作。
execution_ruleObject true执行规则。见 execution_rule 详细说明。

返回参数

参数名类型说明
resultBoolean更新结果。
  • true:更新成功。
  • false:更新失败。

请求示例

PUT: /v2.0/iot-03/automations/XeSHHn7BR0FW****
{
  "name": "这是一个自动化",
  "dsl": {
    "conditions": [
      {
        "trigger_type": "deviceReport",
        "trigger_id": "vdevo16292691746****",
        "trigger_rule": {
          "status_code": "switch_led",
          "comparator": "==",
          "status_value": true
        },
        "rule_num": 1
      },
      {
        "trigger_type": "timer",
        "trigger_id": "timer",
        "trigger_rule": {
          "timer_format": "18:00 11 09 * 2021"
        },
        "rule_num": 2
      },
      {
        "trigger_type": "weather",
        "trigger_id": "101069444120988****",
        "trigger_rule": {
          "weather_code": "temp",
          "comparator": "==",
          "weather_value": 20
        },
        "rule_num": 3
      }
    ],
    "conditions_rule": "or",
    "actions": [
      {
        "execution_type": "delay",
        "execution_rule": {
          "delay_seconds": 60
        }
      },
      {
        "execution_type": "deviceIssue",
        "execution_rule": {
          "execution_id": "vdevo16292691746****",
          "function_code": "bright_value",
          "function_value": 20
        }
      },
      {
        "execution_type": "deviceGroupIssue",
        "execution_rule": {
          "execution_id": "144790134147200****",
          "function_code": "switch_1",
          "function_value": true
        }
      }
    ]
  },
  "preconditions": {
    "trigger_type": "timeCheck",
    "precondition_trigger_rule": {
      "timer_format": "09:00-23:00 * * 0,1,2,3 *"
    }
  }
}

返回示例

{
    "result": true,
    "t": 1635844703309,
    "success": true
}

错误码

参考 错误码

trigger_rule 详细说明

trigger_typedeviceReport 时:

参数名类型说明必填
status_codeString设备指令
comparatorString比较符
status_valueObject设备指令值

trigger_typetimer 时:

参数名类型说明必填
timer_formatString定时触发时间。支持两种格式:
  • 指定日期定时,格式为: [hour:min] [day of month] [month] [day of week] [year],例如:20:00 20 10 * 2021(2021 年 10 月 20 号晚上 8 点)
  • 按周循环定时,格式为: [hour:min] [day of month] [month] [day of week] [year],例如:20:00 * * 0,1,2,3 *(每周日、周一、周二、周三晚上 8 点)

trigger_typeweather 时:

参数名类型说明必填
weather_codeString天气码
comparatorString比较符
weather_valueObject天气码值

execution_rule 详细说明

execution_typedelay 时:

参数名类型说明必填
delay_secondsLong延时时间,取值范围 1~5 * 60 * 60,单位:秒

execution_typedeviceIssuedeviceGroupIssue 时:

参数名类型说明必填
execution_idString设备或设备群组 ID
function_codeString设备或设备群组指令码
function_valueObject设备或设备群组指令值

precondition_trigger_rule 详细说明

参数名类型描述必填
timer_formatString定时格式。格式为: [hour:min]-[hour:min] [day of month] [month] [day of week] [year],例如:09:30-18:00 * * 0,1,2,3,4,5,6 * (每周上午 9 点半到下午 6 点)