联动
字段 | 说明 |
---|---|
direction | 联动方向,值为>>、<> |
device0 | 设备0的ID |
channel0 | 设备0的通道,不填表示转发该设备的全部通道 |
value0 | 设备0的通道的值,不填表示转发该通道的全部值。或,该通道不需要传值 |
device1 | 设备1的ID |
channel1 | 设备1的通道,不填表示转发该设备的全部通道 |
value1 | 设备1的通道的值,不填表示转发该通道的全部值。或,该通道不需要传值 |
delay | 延迟,单位是秒,精确到0.001。单向>>支持延迟,双向<>不支持延迟 |
when | 触发条件,当when中的条件符合时,联动才会生效 |
配置示例
设备联动
device0 | channel0 | value0 | direction | device1 | channel1 | value1 | delay |
---|---|---|---|---|---|---|---|
d00 | <> | d01 |
d00和d01同为light类型,该联动的效果是d00和d01同开同关。
延迟联动
device0 | channel0 | value0 | direction | device1 | channel1 | value1 | delay |
---|---|---|---|---|---|---|---|
d00 | >> | d01 | 10 |
d00打开,10秒后d01打开;d00关闭,10秒后d01关闭
取消延迟联动
device0 | channel0 | value0 | direction | device1 | channel1 | value1 | delay |
---|---|---|---|---|---|---|---|
d01 | switch | on | >> | d00 | switch | on | 10 |
d01 | switch | off | >> | d00 | api_cancel_timer |
d01打开,10秒后d00打开;d01关闭,取消d00的延时打开
楼梯灯延时关闭
device0 | channel0 | value0 | direction | device1 | channel1 | value1 | delay |
---|---|---|---|---|---|---|---|
d00 | switch | on | >> | d00 | switch | off | 10 |
d00打开后,10秒后自动关闭。
通道联动
device0 | channel0 | value0 | direction | device1 | channel1 | value1 | delay |
---|---|---|---|---|---|---|---|
d00 | switch | on | <> | d01 | switch | off | |
d00 | switch | off | <> | d01 | switch | on |
d00打开时,触发d01关闭,反之亦然;d00关闭时,触发d01打开,反之亦然。
风机盘管
开关取反/模式循环切换
下载transfer-toggle-next-prev.xlsx
应用案例:
- 面板单键开关灯
- 面板单键循环切换空调的模式、风速等,支持向前循环切换和向后循环切换。
联动值的补偿
- scale和offset均支持负数
- 单向联动,补偿值 = 原值 * scale + offset
- 双向联动,右值 = 左值 * scale + offset,左值 = (右值 - offset) / scale
when条件
操作符&&和||
操作符支持&&(and操作,与操作)和||(or操作,或操作),支持多个&&或||,但&&和||不能同时存在。
涉及推送的部分,请参考下一章节。
数值判断
d02:brightness:0||d02:brightness:null
t01:brightness:>50
- 设备通道可能没有初始状态,值就填“null”
- “>”前面的“:”不能省略
changed
通常情况,每隔一段时间就会读取KNX总线的设备反馈,添加changed条件到when中后,仅当值改变时才触发联动。若不添加changed条件,则每次读取到KNX总线反馈后,都会触发联动。
双向changed
时间段条件
时间段语法格式:
- time 年/月/日 时/分/秒 星期
- 年: 2019-2099,必填
- 月: 01-12,必填
- 日:01-31,必填
- 时:00-23,必填
- 分:00-59,必填
秒:00-59,必填
星期:1-7,可以不填
- *代表任意值
- time 2019/09/12 8-18:*:* 表示2019年9月12日的8点到18点
- time 2019-2030/09-12/ 8-18:\:* 表示2019年到2030年的9月到12月的8点到18点
- time */*/* 8-18:*:* 1 表示每周一的8点到18点
- time */*/* 1-2,7-8,13-15:*:* 1 表示每周一的1点到2点和7点到8点和13点到15点,注意:逗号左右都不能有空格
- 时间段可以通过操作符||或&&,与其他类型的条件组合使用
推送
阈值触发
>=300(20)
其中>=是操作符,300是阈值,20是滞后值。行为如下:
- 当d01的co2值第1次>=300时,触发推送;
- 当d01的co2值小于300-20,并再次>=300时,才会再次触发推送;
<=280(20)
其中<=是操作符,280是阈值,20是滞后值。行为如下:
- 当d01的co2值第1次<=280时,触发推送;
- 当d01的co2值大于280+20时,并再次<=280时,才会再次触发推送;
操作符
支持的操作符有>=、>、<=、<。
滞后值
滞后值的大小,需要根据实际情况填写,不能太大也不能太小。滞后值太小,数据抖动容易频繁触发条件。滞后值太大,则很较难触发条件。
例如,温度值>=25(1),当温度值>=25时会触发。此后,温度降到24.9度再回到25度,则不会触发。只有当温度降到24度以下,并再次>=25时才会触发。
注:只有数值类型的通道支持阈值触发,例如temperature, settemp, co2等。valueenum是枚举类,不支持阈值触发。