场景联动自定义模板

更新时间:2021-11-15 09:23:06下载pdf

通过自定义模板系统,用户可以为一批空间批量生成场景和联动。

系统选择池会开放一系列选择维度,帮助用户精确选择空间下需要的设备、群组,并组建成智能的场景联动。也可以选择子场景和联动组成更复杂的场景联动。

并且在SaaS 端,在自定义模板的基础上,系统构建开放出更高级的办公行业模板,教育行业模板,节律模板和节目模板,这些更上层的模板将组装为多个精心设计的自定义模板。

系统选择池支持的属性

场景联动自定义模板

请求方式 API 描述
GET /v1.0/iot-02/smart/support-selector 获取系统支持的选择属性
GET /v1.0/iot-02/smart/template-list 获取模板列表
GET /v1.0/iot-02/smart/template/{id} 通过模板 ID 获取模板
POST /v1.0/iot-02/smart/template/simple-save 简易自定义模板创建
POST /v1.0/iot-02/smart/template/save 普通自定义模板创建
POST /v1.0/iot-02/smart/template/senior-save 高级自定义模板创建
POST /v1.0/iot-02/smart/template/remove/{id} 自定义模板删除
POST /v1.0/iot-02/smart/template/generate/{id} 模板调用

获取系统选择池支持的选择属性

功能描述

获取系统支持的选择属性,和产品库中添加的产品有关。

这些属性可作为创建模板的一些选项,此接口非必须作为创建模板的模型参考。

接口地址

GET /v1.0/iot-02/smart/support-selector

请求参数

参数名 类型 参数类型 说明 是否必需
pid String body 产品PID
topCategory String body 一级品类
roomId String body 区域ID

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

result参数说明

{
  "product": [  //产品品类
    {
      "code": "String //属性code",
      "name": "String //属性名称"
    }
  ],
  "topCategory": [  //一级品类
    {
      "code": "String //属性code",
      "name": "String //属性名称"
    }
  ],
  "secondCategory": [ //二级品类
    {
      "code": "String //属性code",
      "name": "String //属性名称"
    }
  ],
  "thirdCategory": [  //三级品类
    {
      "code": "String //属性code",
      "name": "String //属性名称"
    }
  ],
  "purpose": [   //设备用途
    {
      "code": "String //属性code",
      "name": "String //属性名称"
    }
  ]
}

请求示例

{
  "topCategory": "一级品类",
  "pid": "产品PID",
  "roomId": "区域ID"
}

响应示例

{
    "result": {
        "product": [
            {
                "code": "pbkktyh5i59sj6nm",
                "name": "A60 RGB+CCT WIFI+Bluetooth"
            },
            {
                "code": "sosdczdl",
                "name": "RGBCW"
            }
        ],
        "secondCategory": [
            {
                "code": "dj",
                "name": "光源"
            }
        ],
        "thirdCategory": [
            {
                "code": "wf_ble_dj",
                "name": "Wi-Fi_BLE照明"
            },
            {
                "code": "zig_dj",
                "name": "Zigbee照明"
            }
        ],
        "topCategory": [
            {
                "code": "zm",
                "name": "照明"
            }
        ]
    },
    "success": true,
    "t": 1629976090010
}

获取模板列表

功能描述

获取用户创建的模板列表,包含用户创建的和系统内置的

接口地址

GET /v1.0/iot-02/smart/template-list

请求参数

参数名 类型 参数类型 说明 是否必需
page int body 页码参数
pageSize int body 每页记录数量
templateName String body 模板名称
templateType int body
  • 1.场景模板
  • 2.日程模板
  • 3.联动模板

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

result参数说明

{
  "templateId": "String //模板ID",
  "templateName": "String //模板名称",
  "templateLabel": "String //模板标签",
  "templateType": "int //类型 1:场景模板 2.日程模板 3.联动模板 ",
  "category": "String //模板类别",
  "preConditionExpr": "String //前置条件表达式",
  "extendInfo": "String //扩展信息",
  "userNum": "int //模板使用次数",
  "matchType": "int //1:任意条件触发,2:全部条件满足触发",
  "ranking": "int //排名",
  "remark": "String //备注",
  "configs": [
    {
      "selector": "String //选择器",
      "selectorType": "int //选择器种类,1:设备选择器 2.群组选择器 3.场景选择器 4.自动化选择器",
      "strategyExpr": "String //策略表达式",
      "strategyType": "int //策略类型"
    }
  ]
}

请求示例

{
    "page":1,
    "pageSize":10,
    "templateName":"xxx"
}

响应示例

{
    "result": {
        "current": 1,
        "hitCount": false,
        "optimizeCountSql": true,
        "orders": [],
        "pages": 0,
        "records": [
            {
                "category": "",
                "extendInfo": "",
                "matchType": 0,
                "preConditionExpr": "",
                "ranking": 0,
                "remark": "",
                "templateId": "1432526379668254720",
                "templateLabel": "",
                "templateName": "道凡场景模板1",
                "templateType": 1,
                "userNum": 0
            }
        ],
        "searchCount": true,
        "size": 10,
        "total": 0
    },
    "success": true,
    "t": 1630555370694
}

通过模板ID获取模板

功能描述

通过模板ID获取单个模板详情

接口地址

GET /v1.0/iot-02/smart/template/{id}

请求参数

参数名 类型 参数类型 说明 是否必需
id String url 请添加备注

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

result参数说明

同获取模板列表接口

简易自定义模板创建修改

功能描述

简易自定义模板创建,用于生成场景,匹配规则单组。

接口地址

POST /v1.0/iot-02/smart/template/simple-save

请求参数

参数名 类型 参数类型 说明 是否必需
templateId String body 模板ID修改使用
templateName String body 模板名称
templateLabel String body 模板标签
remark String body 模板备注
rule.name String body 名称
rule.pid String body 产品PID
rule.thirdCategory String body 三级品类
rule.dps Object body 动作DP,dpCode:dpValue键值对

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

请求示例

{
  "templateName": "测试场景模板",
  "rule":{
      "name":"RGBCW",
      "pid":"sosdczdl",
      "dps":{"swith_led":true}
  }
}

响应示例

{
    "result": "1433683021394890752",//模板ID
    "success": true,
    "t": 1630651643529
}

普通自定义模板创建

功能描述

普通自定义模板创建,用于生成场景,匹配规则多组,执行对象可匹配单设备和群组包含延迟动作。

接口地址

POST /v1.0/iot-02/smart/template/save

请求参数

参数名 类型 参数类型 说明 是否必需
templateId String body 模板ID修改使用
templateName String body 模板名称
templateLabel String body 模板标签
remark String body 模板备注
deviceRules.name String body 名称
deviceRules.pid String body 产品PID
deviceRules.thirdCategory String body 三级品类
deviceRules.topCategory String body 一级品类
deviceRules.secondCategory String body 二级品类
deviceRules.devicePurpose String body 设备用途
deviceRules.dps Object body 动作DP dpCode:dpValue键值对
deviceRules.anyMatch Boolean body 是否支持任意匹配,设备用途,设备名称,设备品类3项支持任意匹配
deviceRules.delayTime int body 动作延时时间,单位秒
deviceRules.delayOnce Boolean body true:统一添加一次延时 false:每个对象间逐一添加延时 默认true
groupRules.name String body 名称
groupRules.pid String body 产品PID
groupRules.thirdCategory String body 三级品类
groupRules.dps Object body 动作DP dpCode:dpValue键值对
groupRules.delayTime int body 动作延时时间,单位秒
groupRules.delayOnce Boolean body true:统一添加一次延时 false:每个对象间逐一添加延时 默认true

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

请求示例

{
  "templateName": "测试场景模板1",
  "templateType": 1,
  "deviceRules":[{
  	"name":"RGBCW",
  	"pid":"sosdczdl",
  	"dps":{"swith_led":true},
  	"devicePurpose":"office"
  	"nextActionDelayTime":30
  }],
  "groupRules":[{
  	"name":"RGBCW",
  	"pid":"sosdczdl",
  	"dps":{"swith_led":true},
  	"nextActionDelayTime":30
  }]
}

响应示例

{
    "result": "1433683021394890752",//模板ID
    "success": true,
    "t": 1630651643529
}

高级自定义模板创建

功能描述

高级自定义模板创建,可生成场景,日程和联动。
执行规则包含单设备,群组,场景触发,自动化启停,延迟动作。
触发规则包含设备动作,定时规则,日出日落规则。

接口地址

POST /v1.0/iot-02/smart/template/senior-save

请求参数

说明:该接口非必填参数很多,您可以在对接工作人员时咨询如何通过少量参数满足您的需求。

参数名 类型 参数类型 说明 是否必需
templateId String body 模板ID修改使用
templateName String body 模板名称
templateLabel String body 模板标签
templateType int body
  • 1.场景模板
  • 2.日程模板
  • 3.联动模板
remark String body 模板备注
validityPeriod String body 按7123456顺序标记,例:0001100,每周三、四;
matchType int body 1 满足任意条件触发 2满足所有条件触发
deviceRules.name String body 名称
deviceRules.pid String body 产品PID
deviceRules.thirdCategory String body 三级品类
deviceRules.topCategory String body 一级品类
deviceRules.secondCategory String body 二级品类
deviceRules.devicePurpose String body 设备用途
deviceRules.dps Object body 动作DP dpCode:dpValue键值对
deviceRules.anyMatch Boolean body 是否支持任意匹配,设备用途,设备名称,设备品类3项支持任意匹配
deviceRules.delayTime int body 动作延时时间,单位秒
deviceRules.delayOnce Boolean body true:统一添加一次延时 false:每个对象间逐一添加延时 默认true
groupRules.name String body 名称
groupRules.pid String body 产品PID
groupRules.thirdCategory String body 三级品类
groupRules.dps Object body 动作DP dpCode:dpValue键值对
groupRules.delayTime int body 下一动作延时时间,单位秒
groupRules.delayOnce Boolean body true:统一添加一次延时 false:每个对象间逐一添加延时 默认true
sceneRules.templateId String body 场景使用的模板
sceneRules.name String body 场景名称
sceneRules.delayTime int body 动作延时时间,单位秒
sceneRules.delayOnce Boolean body true:统一添加一次延时 false:每个对象间逐一添加延时 默认true
linkageRules.templateId String body 自动化使用的模板
linkageRules.name String body 自动化名称
linkageRules.executeType int body 1:启用 2.停用
deviceConditionRules.name String body 名称
deviceConditionRules.pid String body 产品PID
deviceConditionRules.thirdCategory String body 三级品类
deviceConditionRules.exprs.dpId String body DPID
deviceConditionRules.exprs.operator String body 操作符 等于==,大于>,小于<
deviceConditionRules.exprs.dpValue Object body dpvlaue
timerRules.loops String body 周期,按周日、周一…顺序标记,例:0001100,表示:每周三、四
timerRules.timezoneId String body 时区
timerRules.time String body 时间,格式HH:mm
timerRules.date String body 日期,格式yyyymmdd
envRules.sunsetrise String body 日出触发 sunrise 日落触发 sunset
envRules.cityId String body 触发城市ID

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

请求示例

{
    "templateName": "高级场景模板",
    "templateType": 1,
    "validityPeriod": "0001100",
    "matchType":1,
    "deviceRules":[{
        "name":"RGBCW",
        "pid":"sosdczdl",
        "devicePurpose":"office",
        "dps":{"swith_led":true}
    }],
    "groupRules":[{
        "name":"RGBCW",
        "pid":"sosdczdl",
        "dps":{"swith_led":true}
    }],
    "conditionRule":{
        "name":"RGBCW",
        "pid":"sosdczdl",
        "exprs":[{
            "dpId":"1",
            "operator":"==",
            "dpValue":"true"
        }]
    },
    "timerRule":{
        
    }
}

响应示例

{
    "result": "1433683021394890752",//模板ID
    "success": true,
    "t": 1630651643529
}

自定义模板删除

功能描述

用户删除自己创建的模板。

接口地址

POST /v1.0/iot-02/smart/template/remove/{id}

请求参数

参数名 类型 参数类型 说明 是否必需
id String url 请添加备注 false

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

result参数说明

true/false

请求示例

{
  "id": "1433683021394890752"
}

模板使用

功能描述

将模板应用到具体的空间,生成场景日程联动。

接口地址

POST /v1.0/iot-02/smart/template/generate/{id}

请求参数

参数名 类型 参数类型 说明 是否必需
roomId String body 请添加备注
id String url 请添加备注

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13 位
result Object 返回结果

result参数说明

生成的场景联动ID

请求示例

{
  "roomId": ""
}

批量校验模板和空间是否匹配

功能描述

判断模板是否适用于空间,匹配的模板可应用生成场景联动。

接口地址

POST /v1.0/iot-02/smart/template/check

请求参数

参数名 类型 参数类型 说明 是否必需
templateId String body 模板ID
roomIds List body 空间ID列表

返回参数

参数名 类型 说明
code Integer 响应码(详情见错误码章节),成功时为空
success Boolean 是否成功:(true:成功,false:失败)
msg String 请求失败的信息,成功时为空
t Long 返回时间戳,13位
result Object 返回结果

result参数说明

[{
    "mathType": "0 不匹配,1 匹配, 2 部分匹配",
    "roomId": "空间ID"
}]

请求示例

{
    "templateId": "1435599419729842176",
    "roomIds": [
        "1291653765719515136"
    ]
}

响应示例

{
    "result": [
        {
            "mathType": 0,
            "roomId": "1291653765719515136"
        }
    ],
    "success": true,
    "t": 1631169202643
}

错误码

以下为该接口常见的业务异常,更多的异常错误,请参见全局错误码。

错误码 说明
500 系统错误