Beruhend auf diesem Thread und aus eigenem Bedarf hier ein kleines Plugin für Ein- bzw. Ausschaltverzögerung.
Die aktuellste Version bitte stets aus dem SVN laden: SourceForge.net Repository - [openautomation] Log of /wiregate/plugin/generic/Schaltverzögerung.pl
Ich denke es ist selbsterklärend.
Gruß
Die aktuellste Version bitte stets aus dem SVN laden: SourceForge.net Repository - [openautomation] Log of /wiregate/plugin/generic/Schaltverzögerung.pl
Ich denke es ist selbsterklärend.
Gruß
Code:
# Schaltverzögerung
# 0.1
# 2012-11-23 JuMi2006 -> https://knx-user-forum.de
#####################
### Konfiguration ###
#####################
my $ga_in = "0/0/201"; #GA Eingang
my $ga_out = "0/0/202"; #GA Ausgang
my $delay = 5; #Delay in Sekunden
my $start_value = 1; #Verzögerung bei 1 -> 1 (Einschaltverzögerung)
#Verzögerung bei 0 -> 0 (Ausschaltverzögerung)
##########################
### Ende Konfiguration ###
##########################
$plugin_info{$plugname.'_cycle'} = 0;
$plugin_subscribe{$ga_in}{$plugname} = 1;
if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga_in)
{
my $val_in = knx_read($ga_in,300,1);
if ($val_in == !$start_value)
{
knx_write($ga_out,$val_in,1);
plugin_log($plugname,"Telegrammweiterleitung");
$plugin_info{$plugname.'_delay_active'} = 0;
}
if ($val_in == $start_value)
{
$plugin_info{$plugname.'_last'} = time;
$plugin_info{$plugname.'_cycle'} = $delay;
$plugin_info{$plugname.'_delay_active'} = 1;
plugin_log($plugname,"Delay aktiv. Wiederausführung in $delay Sekunden");
}
}
else
{
if ($plugin_info{$plugname.'_delay_active'} == 1)
{
knx_write($ga_out,$start_value,1);
$plugin_info{$plugname.'_delay_active'} = 0;
plugin_log($plugname,"Delay von $delay Sekunden ausgeführt");
$plugin_info{$plugname.'_last'} = time;
$plugin_info{$plugname.'_cycle'} = 0;
}
}
return;

