Appearance
UpdateScenes
调用该接口更新场景规则。
使用说明
更新场景前,请确保物模型都已经定义好。
接口地址
/gateway/openapi
请求方式
POST
请求参数
请求头
名称 | 类型 | 描述 |
---|---|---|
tokenauthorization | String | 平台颁发的token |
apiCode | String | 固定值:updateScenes |
UpdateScenesRequest
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
scenesId | String | 是 | 场景唯一标识 |
name | String | 是 | 场景名称 |
description | String | 否 | 场景描述 |
conditionLogic | String | 是 | 场景逻辑,可选值如下: or:满足任意条件; and:满足所有条件 onekey:一键执行 |
scenesConditionDTOList | List<ConditionRule> | 是 | 场景条件,如果conditionLogic=onekey,则场景条件为空 |
scenesActionDTOList | List<ActionRule> | 是 | 场景动作 |
ConditionRule
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
id | String | 是 | 场景条件id |
type | String | 否 | 场景触发类型,可选值如下: property 设备属性触发 event 设备事件触发 timing 定时触发 |
productKey | String | 否 | 产品key |
deviceName | String | 否 | 设备名称 |
timingData | String | 否 | 定时数据,当type=timing时,才有值。 格式:星期+时间,周一至周日分别对应数字1-7,时间HH:mm 举例:周一周二周日10点触发,1,2,7,10:00 |
data | List<ConditionDataRule> | 否 | 具体属性条件 |
ConditionDataRule
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
pid | String | 是 | 设备属性pid,对应物模型里的pid |
compare | String | 否 | 设备属性条件表达式,可选值如下: >= = between <= < != > |
compareValue | Object | 是 | 条件值,如果compare取值为between,则compareValue格式:30,50,表示温度在30-50之间,包含30和50 |
ActionRule
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
productKey | String | 否 | 产品key |
deviceName | String | 否 | 设备名称 |
pid | String | 是 | 下发命令的pid,对应物模型里定义的命令pid |
commandId | String | 否 | 命令id |
type | String | 是 | 动作类型,固定为command |
data | Object | 是 | 命令下发数据,格式:{pid:value} 举例:给风机下发指令1, |
返回数据
UpdateScenesResponse
名称 | 类型 | 描述 |
---|---|---|
code | String | 调用成功,返回0,调用失败,查看错误信息。 |
msg | String | 调用成功,提示"操作成功",调用失败,查看错误信息。 |
data | Object | 返回结果。结果内容详情,查看下方示例。 |
示例
请求示例
json
{
"scenesId": "13b460f509ebdbdd8bfbd6abe2f49687",
"name": "场景规则001",
"conditionLogic": "or",
"conditionRuleList": [
{
"type": "property",
"productKey": "n28YdpYpp",
"deviceName": "yudi001",
"data": [
{
"pid": "rainStatus",
"compare": ">",
"compareValue": 1
}
]
}
],
"actionRuleList": [
{
"type": "command",
"productKey": "L23xdRx9R",
"deviceName": "fengjikongzhi001",
"pid": "setFan",
"data": {
"status": 1
}
}
],
"description": ""
}
返回示例
json
{
"code": "0",
"msg": "操作成功",
"data": {
"scenesId": "13b460f509ebdbdd8bfbd6abe2f49687"
}
}
错误码
错误码 | 错误码取值 | 解决方案 |
---|---|---|
iot.mq.paramCheckFail | 场景参数校验失败。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.eventConditionFail | 不能在全部条件下配置多个事件。 | 当场景规则满足所有条件时(conditionLogic=and),事件最多配置一个。 |
iot.scenes.singleAndAllDeviceNotCoexist | 指定设备和所有设备不能同时存在。 | 选择设备时,条件1如果选择了全部设备,则条件2不能选择指定设备。 |
iot.scenes.eventOnlyInOrCondition | 事件触发只能配置在任一条件里。 | 场景规则满足任一条件时(conditionLogic=or),才能配置事件。 |
iot.scenes.compareModeIllegality | 比较模式不合法 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.onlyNumerical | 仅支持数值类型。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.leftAndRigthValueFail | 左值不能大于右值。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.numericRangeFail | [%s]数值范围只能在%s到%s之间。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.dataTypeIllegality | [%s]数据类型不合法。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.enumTypeIllegality | [%s]枚举类型表达式仅支持in。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.enumValueIllegality | [%s]枚举值不合法。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.onlySupportInteger | [%s]仅支持整数类型。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.textLengthIllegality | [%s]字符长度不能超过%s。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.boolTypeOnlySupportInteger | [%s]bool类型值仅支持整型。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.boolTypeFail | [%s]bool类型值仅支持0或1。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.contentNotExist | 场景内容不存在。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.notExist | 场景不存在。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.notRepeatEnable | 当前场景已经是启用状态,请勿重复启用。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.notRepeatDisable | 当前场景已经是禁用状态,请勿重复禁用。 | 请确保按照文档要求传递正确的入参。 |
iot.scenes.enableStatusIllegality | 启用状态不合法。 | 请确保按照文档要求传递正确的入参。 |