联动配置规则
概述
自动化:用户可自定义设置触发条件(Conditions)和执行动作(Actions),当满足触发条件时,自动执行设定的动作。
场景:用户可自定义设置场景中需要执行的动作(Actions),当人为触发该场景时,按顺序执行设定的动作。
条件集:用户可自定义设置触发条件(Conditions),支持多个“AND”和“OR”条件的组合触发。
联动创建方式
通过系统定义的actionDefinition或triggerDefinition来进行创建
通过联动配置查询接口,可通过物模型查询系统预设的条件和动作配置来进行创建。
通过自定义设备属性来进行创建
用户可通过物模型的设备属性,来自定义配置需要的联动规则。
- 通用触发条件(Conditions)
请求参数(condition说明)(完整请求参数请参考创建自动化接口。)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
triggerDefinitionId | String | 是 | 固定参数; TD.custom_1 |
subjectId | String | 是 | 对象ID (如设备id、自动化id) (与model至少必填一个) |
model | String | 是 | 物模型 |
triggerDefinitionId | String | 是 | 触发id;固定参数 TD.custom_1 |
beginTime | String | 否 | 开始时段 |
endTime | String | 否 | 结束时段 |
params | Array(Object) | 是 | 参数,详见params说明 |
请求参数(params说明)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
paramId | String | 是 | 参数id;固定值为PD.custom.trigger |
value | String | 是 | 具体要判断的属性,JSONArrayString,详见value说明 |
请求参数(value说明)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
rid | String | 是 | 具体要操作的资源id |
value | String | 是 | 操作值 |
op | String | 是 | 操作比较符 小于:0 大于:1 小于等于:2 大于等于:3 等于:4 上一次不等于现在等于:5 上一次小于等于现在大于:6 上一次大于等于现在小于:7 |
eventType | int | 是 | 事件类型 0-只能用于触发执行 1-只能用于条件判断不能触发执行 2-既可以用于触发执行也可以用于条件判断 |
示例:照度高于3000lux 单击打开插座
{
"intent": "config.linkage.create",
"data": {
"name": "123456",
"positionId": "xxxx",
"conditions": {
"condition": [
{
"triggerDefinitionId": "TD.custom_1",
"subjectId": "lumi.158d000xxxxxx",
"model": "lumi.sen_ill.agl01",
"params": [
{
"value": "{\"rid\":\"0.2.85\",\"op\":1,\"value\":\"3000\",\"eventType\":1}",
"paramId": "PD.custom.trigger"
}
]
}
],
"relation": "1"
},
"actions": {
"action": [
{
"actionDefinitionId": "AD.lumi.plug.open",
"subjectId": "lumi.158d00xxxxxx",
"model": "lumi.plug.maeu01",
"params": []
}
]
}}
}
- 通用触发动作(Actions)
请求参数(action说明)(完整请求参数请参考创建自动化接口。)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
subjectId | String | 是 | 对象ID (如设备id、场景id)(与model至少必填一个) |
model | String | 否 | 物模型 |
actionDefinitionId | String | 是 | 动作id; 固定参数; AD.custom_1 |
delayTime | String | 否 | 延时时间,0-59秒,0-59分 |
delayTimeUnit | String | 否 | 延时单位,1-秒;2-分钟 |
params | Array(Object) | 否 | 参数,详见params说明 |
请求参数(params说明)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
paramId | String | 是 | 参数id;固定值为PD.custom.exec |
value | String | 是 | 具体要执行的属性,JSONArrayString,详见value说明 |
请求参数(value说明)
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
rid | String | 是 | 具体要操作的资源id |
value | String | 是 | 操作值 |
示例:照度高于3000lux 网关播放音乐,设置音量为40%,设置背景音乐为10
{
"intent":"config.linkage.create",
"data":{
"name":"123456",
"positionId":"xxxx",
"conditions":{
"condition":[
{
"triggerDefinitionId":"TD.lumi.sen_ill.agl01.illumination_higher",
"subjectId":"lumi.158d000xxxxxx",
"model":"lumi.sen_ill.agl01",
"params":[
{
"value":"3000",
"paramId":"PD.illumination"
}
]
}
],
"relation":"1"
},
"actions":{
"action":[
{
"actionDefinitionId":"AD.custom_1",
"subjectId":"lumi.158d00xxxxxx",
"model":"lumi.gateway.iragl01",
"params":[
{
"paramId":"PD.custom.exec",
"value": "[{\"rid\":\"14.3.85\",\"value\":\"10\"},{\"rid\":\"14.3.1000\",\"value\":\"40\"}]"
}
]
}
]
}
}
}
本地化规则
当自动化或场景满足本地化条件时,会下发到网关本地执行,即当没有网络的情况下,也可以正常触发执行。
当前不满足本地化的规则有:
- 当多个网关处于不同局域网内;
- 当触发条件的设备来自于多个网关,如网关A下的人体传感器检测到有人且网关B下的插座开着;
- 当执行动作为云端场景时;
- 当执行动作为云端自动化开启或关闭时。
示例
示例1:定时每天12:00网关播放音乐
{
"intent": "config.linkage.create",
"data": {
"name": "123456",
"positionId": "xxxx",
"conditions": {
"condition": [
{
"triggerDefinitionId": "TD.app.timer.timer",
"subjectId": "",
"model": "app.timer.v1",
"params": [
{
"value": "00 10 * * 1,2,3,4,5,6,0",
"paramId": "PD.timer"
}
]
}
],
"relation": 1
},
"actions": {
"action": [
{
"actionDefinitionId": "AD.lumi.gateway.music",
"subjectId": "lumi.158d0xxxxxxxx",
"model": "lumi.gateway.iragl01",
"params": [
{
"value": "10",
"paramId": "PD.musicIndex"
},
{
"value": 40,
"paramId": "PD.vol"
}
]
}
]
}}}
示例2:有人经过的时候触发场景执行
{
"intent": "config.linkage.create",
"data": {
"name": "123456",
"positionId": "xxxx",
"conditions": {
"condition": [
{
"triggerDefinitionId": "TD.lumi.sensor_motion.motion",
"subjectId": "lumi.158d000xxxxxx",
"params": []
}
],
"relation": "0"
},
"actions": {
"action": [
{
"actionDefinitionId": "AD.app.scene.exc",
"subjectId": "AL.xxxxxxxx",
"params": []
}
]
}}}
示例3:门开着且有人经过的时候,关闭插座
{
"intent": "config.linkage.create",
"data": {
"name": "123456",
"positionId": "xxxx",
"conditions": {
"condition": [
{
"triggerDefinitionId": "TD.lumi.sensor_motion.motion",
"subjectId": "lumi.158d000xxxxxx",
"model": "lumi.motion.agl02",
"params": []
},
{
"triggerDefinitionId": "TD.lumi.sensor_magnet.opening",
"subjectId": "lumi.158d000xxxxxx",
"model": "lumi.magnet.agl02",
"params": []
}
],
"relation": "0"
},
"actions": {
"action": [
{
"actionDefinitionId": "AD.lumi.plug.close",
"subjectId": "lumi.158d00xxxxxx",
"model": "lumi.plug.maeu01",
"params": []
}
]
}}}
示例4:门打开或者有人经过的时候,关闭插座
{
"intent": "config.linkage.create",
"data": {
"name": "123456",
"positionId": "xxxx",
"conditions": {
"condition": [
{
"triggerDefinitionId": "TD.lumi.sensor_motion.motion",
"subjectId": "lumi.4cf8cdf3c738348",
"model": "lumi.motion.agl02",
"params": []
},
{
"triggerDefinitionId": "TD.lumi.sensor_magnet.open",
"subjectId": "lumi.4cf8cdf3c738170",
"model": "lumi.magnet.agl02",
"params": []
}
],
"relation": 1
},
"actions": {
"action": [
{
"actionDefinitionId": "AD.lumi.plug.open",
"subjectId": "lumi.4cf8cdf3c7464cc",
"model": "lumi.plug.maeu01",
"params": []
}
]
}}}