Skip to content

CreateScenes

调用该接口创建场景规则。

使用说明

创建场景前,请确保物模型都已经定义好。

接口地址

/gateway/openapi

请求方式

POST

请求参数

请求头

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

CreateScenesRequest

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

ConditionRule

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

ConditionDataRule

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

ActionRule

名称类型是否必选描述
productKeyString产品key
deviceNameString设备名称
pidString下发命令的pid,对应物模型里定义的命令pid
commandIdString命令id
typeString动作类型,固定为command
dataObject命令下发数据,格式:{pid:value}
举例:给风机下发指令1,

返回数据

CreateScenesResponse

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

示例

请求示例

json
{
    "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": "453f129e1f3c4799a52f65bc7b601111"
    }
}

错误码

错误码错误码取值解决方案
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启用状态不合法。请确保按照文档要求传递正确的入参。