Zurück   KNX-User-Forum > Öffentlicher Bereich > KNX EIB Forum > Code-Schnipsel
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.11.2012, 11:35
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.908
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard Ein-/Ausschaltverzögerung

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ß

Code:
# Schaltverzögerung
# 0.1 
# 2012-11-23 JuMi2006 -> http://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;
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 03:05 Uhr.



SEO by vBSEO