添加场景模板

更新时间:2023-06-15 05:07:48

本文介绍添加场景模板的 API。

接口描述

可添加不同条件或动作的场景模板。条件个数上限10个,动作个数上限50个。

接口地址

POST: /v1.0/iot-03/scene-templates

请求参数

body 说明

参数名类型参数位置是否必填说明
nameString true场景模板名称
descString true场景模板描述
dslObject true场景模板规则语言
preconditionsObject false场景模板前置条件

preconditions 说明

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

dsl 说明

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

conditions 说明

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

actions 说明

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

返回参数

参数名类型说明
resultLong场景模板 ID

请求示例

POST: /v1.0/iot-03/scene-templates
{
  "dsl": {
    "actions": [
      {
        "execution_rule": {
          "execution_id": "fskg",
          "function_code": "switch_fan",
          "function_value": true
        },
        "execution_type": "categoryIssue"
      }
    ],
    "conditions": [
      {
        "rule_num": 1,
        "trigger_id": "dj",
        "trigger_rule": {
          "comparator": "==",
          "status_code": "switch_led",
          "status_value": true
        },
        "trigger_type": "categoryReport"
      },
      {
        "rule_num": 2,
        "trigger_id": "793409547065757696",
        "trigger_rule": {
          "comparator": "<",
          "weather_code": "temp",
          "weather_value": 20
        },
        "trigger_type": "weather"
      },
      {
        "rule_num": 3,
        "trigger_id": "timer",
        "trigger_rule": {
          "timer_format": "20:59 5 5 * 2021"
        },
        "trigger_type": "timer"
      }
    ],
    "conditions_rule": "or"
  },
  "name": "bulu测试1",
  "desc": "第一天气定时模板",
  "preconditions": {
    "trigger_rule": {
      "timer_format": "00:00-23:59 * * 0,1,2,3,4,5,6 *"
    },
    "trigger_type": "timeCheck"
  }
}

返回示例

{
    "result": "19**1007",
    "t": 1636546481484,
    "success": true
}

错误码

参考 错误码

conditions中trigger_rule详细说明

1、当 trigger_type 为categoryReport时:

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

2、当 trigger_type 为timer时:

参数名类型说明必填
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点)

3、当trigger_type为weather时:

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

execution_rule详细说明

1、当execution_type为delay时:

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

2、当execution_type为categoryIssue时:

参数名类型说明必填
execution_idString品类码
function_codeString品类支持的指令码
function_valueObject品类支持的指令值

preconditions中trigger_rule 详细说明

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