Ankündigung

Einklappen
Keine Ankündigung bisher.

Timer / Treppenlicht Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [WireGate-Plugin] Timer / Treppenlicht Funktion

    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
    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;
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !
Lädt...
X