联动

基本概念

字段 说明
direction 联动方向,值为>>、<>
device0 设备 0 的 ID
channel0 设备 0 的通道,不填表示转发该设备的全部通道
value0 设备 0 的通道的值,不填表示转发该通道的全部值。或,该通道不需要传值
device1 设备 1 的 ID
channel1 设备 1 的通道,不填表示转发该设备的全部通道
value1 设备 1 的通道的值,不填表示转发该通道的全部值。或,该通道不需要传值
delay 延迟,单位是秒,精确到 0.001。单向>>支持延迟,双向<>不支持延迟
when 触发条件,当 when 中的条件符合时,联动才会生效

配置示例

通道联动

transfer_channel.xlsx

该示例中:

  • d00 开关 打开 双向联动 d01 开关 打开
  • d00 开关 关闭 双向联动 d01 开关 关闭
  • d02 开关 双向联动 d03 开关

注:上述2种写法都是支持的

灯1关闭联动灯2打开

device0 channel0 value0 direction device1 channel1 value1 when delay
d01 switch off >> d02 switch on

完整示例下载transfer_light_switch.xlsx

开关取反/模式循环切换

下载 transfer-toggle-next-prev.xlsx

应用案例:

  • 面板单键开关灯
  • 面板单键循环切换空调的模式、风速等,支持向前循环切换和向后循环切换。

模式循环切换示例

transfer_button_enum_serialdevice.xlsx

该示例中:

  • 使用sensor设备类型的valueenum通道,定义了2个状态a和b。详见示例EXCEL中的myenum设备。valueenum=0/0/0:5.005:a/0+b/1,其中0/0/0是个虚拟组地址,它不会发送数据到KNX总线,也不会接收KNX总线的数据。其作用是定义了a和b这两种状态。
  • 使用button设备类型的button1通道,来接收KNX面板的指令(来自组地址1/2/2的数据类型是5.005的值为1的KNX指令)。详见EXCEL示例中的mybutton设备。
  • 在联动表中,定义了mybutton button1 >> myenum value next的联动,即接收到mybutton设备的button1指令,联动myenum设备的value通道切换到下一个值,即a和b这2个值会循环切换。如果当前是a,则切换到b,如果当前是b,则切换到a。
  • 在设备表中,使用serialdevice设备类型来发送485指令,button1~button8分别是8条指令。详见EXCEL示例中的light_yyddcode设备。
  • 在联动表中,定义了myenum设备到light_yyddcode设备的联动,即状态a发送4条指令,状态b发送4条指令。

联动值的补偿

下载 transfer-scale-offset.xlsx

  • scale 和 offset 均支持负数
  • 单向联动,补偿值 = 原值 * scale + offset
  • 双向联动,右值 = 左值 * scale + offset,左值 = (右值 - offset) / scale

when 条件

操作符&&和||

push-when.xlsx

操作符支持&&(and 操作,与操作)和||(or 操作,或操作),支持多个&&或||,但&&和||不能同时存在。

取反操作符!()

2023.0830版本以上主机支持

整个表达式取反,可以在原有表达式的基础上,在外围加一个!(原表达)。原表达式的用法不变。注:仅支持最外围整体取反,暂不支持表达式中间的部分取反。

when_not_delay_timer.xlsx

数值判断

下载 transfer-value.xlsx

d02:brightness:0||d02:brightness:null

t01:brightness:>50
  • 设备通道可能没有初始状态,值就填“null”
  • “>”前面的“:”不能省略

changed

下载 push-changed

通常情况,每隔一段时间就会读取 KNX 总线的设备反馈,添加 changed 条件到 when 中后,仅当值改变时才触发联动。若不添加 changed 条件,则每次读取到 KNX 总线反馈后,都会触发联动。

双向 changed

下载 transfer-fan-changed.xlsx)

时间段条件

下载 timer-when.xlsx

时间段语法格式:

  • time 年/月/日 时:分:秒 星期
  • 年: 2019-2099,必填, *代表任意值
  • 月: 01-12,必填, *代表任意值
  • 日:01-31,必填, *代表任意值
  • 时:00-23,必填, *代表任意值
  • 分:00-59,必填, *代表任意值
  • 秒:00-59,必填, *代表任意值
  • 星期:1-7,可以不填, *代表任意值
  • 时间段可以通过操作符||或&&,与其他类型的条件组合使用

时间段语法格式 2

注:2022-02-26 及以上版本支持

  • time 年/月/日 #时:分:秒-时:分:秒,时:分:秒-时:分:秒 星期
  • 示例:
    • time */*/* #14:00:00-14:10:00,14:20:00-14:40:00
    • time */*/* #14:00:00-14:10:00 || time */*/* #14:20:00-14:40:00
    • time */*/* #14:00:00-14:10:00
    • time */*/* #14:20:00-14:40:00
    • time */*/* #18:00:00-23:59:59,00:00:00-05:59:59
    • time */*/* #06:00:00-17:59:59
  • 联动时间段条件示例

When条件示例

传感器锁定示例

阈值触发

下载 push.xlsx

>=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 是枚举类,不支持阈值触发。

results matching ""

    No results matching ""