Skip to content

updateScenes

调用该接口更新场景联动规则。

使用说明

更新场景前,请确保物模型都已经定义好,设备已注册好。

接口地址

/gateway/openapi

请求方式

POST

请求参数

请求头

名称类型描述
tokenauthorizationString平台颁发的token
apiCodeString固定值:updateScenes

UpdateScenesRequest

名称类型是否必选描述
scenesIdString场景唯一标识
nameString场景名称
descriptionString场景描述
conditionLogicString场景逻辑,可选值如下:
or:满足任意条件;
and:满足所有条件
onekey:一键执行
conditionRuleListList<ConditionRule>场景条件,如果conditionLogic=onekey,则场景条件为空
actionRuleListList<ActionRule>场景执行动作

ConditionRule

名称类型是否必选描述
idString场景条件id
typeString场景触发类型,可选值如下:
property 设备属性触发
event 设备事件触发
timing 定时触发
productKeyString产品key
productIdString产品id
deviceNameString设备名称
deviceDescString设备备注名
timingDataString定时数据,当type=timing时,才有值。
格式:星期+时间,周一至周日分别对应数字1-7,时间HH:mm
举例:周一周二周日10点触发,1,2,7,10:00
dataList<ConditionDataRule>具体属性条件

ConditionDataRule

名称类型是否必选描述
pidString设备属性pid,对应物模型里的pid
nameString设备属性名字,对应物模型里的pid的功能名称
compareString设备属性条件表达式,可选值如下:
>=
=
between
<=
<
!=
>
compareValueObject条件值,如果compare取值为between,则compareValue格式:30,50,表示温度在30-50之间,包含30和50

ActionRule

名称类型是否必选描述
productKeyString产品key
productIdString产品id
deviceNameString设备名称
deviceDescString设备备注名
pidString下发命令的pid,对应物模型里定义的命令pid
nameString下发命令的pid的名称,对应物模型里定义的命令pid的功能名称
commandIdString命令id
typeString动作类型,固定为command
orderNoInteger命令下发排序号,默认为0。注意:当为0时会随机顺序发送
delayTimeInteger延时执行时间,单位:秒,范围:0-86400
dataObject命令下发数据,格式:{pid:value}
举例:给风机下发指令1,{"status":1}

返回数据

UpdateScenesResponse

名称类型描述
codeString调用成功,返回0,调用失败,查看错误信息。
msgString调用成功,提示"操作成功",调用失败,查看错误信息。
dataObject返回结果。结果内容详情,查看下方示例。
  scenesIdString场景id。

示例

请求示例

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启用状态不合法。请确保按照文档要求传递正确的入参。