Einfacher Timer / Treppenlichtautomat.
Anwendungsfall bei uns: Merten BWM -> Sperrobjekt nach 2 Stunden löschen
Die aktuellste Version bitte stets aus dem SVN laden: SourceForge.net Repository - [openautomation] Log of /wiregate/plugin/generic/Timer.pl
Gruß
Timer.pl
Anwendungsfall bei uns: Merten BWM -> Sperrobjekt nach 2 Stunden löschen
Die aktuellste Version bitte stets aus dem SVN laden: SourceForge.net Repository - [openautomation] Log of /wiregate/plugin/generic/Timer.pl
Gruß
Timer.pl
Code:
# Timer
# v 0.2
# 2013-01-31 JuMi2006 -> https://knx-user-forum.de
#####################
### Konfiguration ###
#####################
my $ga = "0/0/7"; #GA
my $delay = 900; #Delay in Sekunden
my $start_value = 1; #Timerstart bei 1 -> 1 (Aus-Timer)
#Timerstart bei 0 -> 0 (An-Timer)
##########################
### Ende Konfiguration ###
##########################
$plugin_info{$plugname.'_cycle'} = 60;
$plugin_subscribe{$ga}{$plugname} = 1;
my $time = time;
if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga)
{
my $val_in = knx_read($ga,0,1);
if ($val_in == $start_value) # wenn Start von GA erkannt
{
plugin_log($plugname,"Timer aktiv");
$plugin_info{$plugname.'_timer_active'} = 1;# setzt eine Variable zur Fehlervermeidung
$plugin_info{$plugname.'_last_start'} = time;
}
if ($val_in == !$start_value) # wenn Stop von GA erkannt
{
$plugin_info{$plugname.'_timer_active'} = 0; # setzt eine Variable zur Fehlervermeidung
plugin_log($plugname,"Timer deaktiviert");
}
}
else
{
if (($plugin_info{$plugname.'_timer_active'} == 1) && ($time > ($plugin_info{$plugname.'_last_start'} + $delay)))
{
knx_write($ga,!$start_value,1); # negiert senden
$plugin_info{$plugname.'_timer_active'} = 0; # setzt eine Variable zur Fehlervermeidung
plugin_log($plugname,"Timer abgelaufen");
}
}
return;

