Hallo,
da meine Wasserenthärtungsanlage keinen Störausgang hat möchte ich die Überwachung der Anlage (BWT Aqa smart) extern durchführen.
Die Anlage ist so eingestellt das bei 45% verbleibendem Weichwasservorrat eine Regeneration nachts ausgeführt wird. Dies ist bei uns spätestens alle zwei Tage der Fall.
Die Anlage hängt an einem Aktor mit Strommessung.
Mein Plan sieht folgendermaßen aus:
Bei einer Regeneration steigt die Stromaufnahme von ca. 50mA im Standby auf ca. 150-160mA. Im Schaltaktor habe ich nun eine Lastüberschreitung parametriert welche mir bei überschreiten der Schwelle von 100mA eine 1 setzt. Zeitgleich möchte ich mit unten stehendem Plugin einen Timer starten welcher eine Laufzeit von 3 Tagen hat. Nach Ablauf des Timers, ohne das zwischenzeitlich wieder eine Regeneration stattgefunden hat, soll das Bit auf 0 gesetzt werden welches ich als Störung auswerten möchte.
Nun ist es so das der Timer zwar gestartet wird, das Bit aber schon vor Ablauf der Zeit auf 0 gesetzt wird. GA 0/0/1 wird zu Testzwecken nur vom Timer verwendet. Waran könnte das liegen?
Danke schon mal.
Gruß Plusch
da meine Wasserenthärtungsanlage keinen Störausgang hat möchte ich die Überwachung der Anlage (BWT Aqa smart) extern durchführen.
Die Anlage ist so eingestellt das bei 45% verbleibendem Weichwasservorrat eine Regeneration nachts ausgeführt wird. Dies ist bei uns spätestens alle zwei Tage der Fall.
Die Anlage hängt an einem Aktor mit Strommessung.
Mein Plan sieht folgendermaßen aus:
Bei einer Regeneration steigt die Stromaufnahme von ca. 50mA im Standby auf ca. 150-160mA. Im Schaltaktor habe ich nun eine Lastüberschreitung parametriert welche mir bei überschreiten der Schwelle von 100mA eine 1 setzt. Zeitgleich möchte ich mit unten stehendem Plugin einen Timer starten welcher eine Laufzeit von 3 Tagen hat. Nach Ablauf des Timers, ohne das zwischenzeitlich wieder eine Regeneration stattgefunden hat, soll das Bit auf 0 gesetzt werden welches ich als Störung auswerten möchte.
Nun ist es so das der Timer zwar gestartet wird, das Bit aber schon vor Ablauf der Zeit auf 0 gesetzt wird. GA 0/0/1 wird zu Testzwecken nur vom Timer verwendet. Waran könnte das liegen?
Danke schon mal.
Gruß Plusch
Code:
# Timer # v 0.1 # 2012-11-23 JuMi2006 -> https://knx-user-forum.de ##################### ### Konfiguration ### ##################### my $ga = "0/0/1"; #GA my $delay = 259200; #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'} = 0; $plugin_subscribe{$ga}{$plugname} = 1; my $val_in = knx_read($ga,300000,1); if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga) { 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'} = time; $plugin_info{$plugname.'_cycle'} = $delay; # Plugin-Wiederholung nach X Sekunden } if ($val_in == !$start_value) # wenn Stop von GA erkannt { $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = 0; $plugin_info{$plugname.'_timer_active'} = 0; # setzt eine Variable zur Fehlervermeidung plugin_log($plugname,"Timer deaktiviert"); } } else { if ($plugin_info{$plugname.'_timer_active'} == 1) { knx_write($ga,!$start_value,1); # negiert senden $plugin_info{$plugname.'_timer_active'} = 0; # setzt eine Variable zur Fehlervermeidung plugin_log($plugname,"Timer abgelaufen"); $plugin_info{$plugname.'_last'} = time; $plugin_info{$plugname.'_cycle'} = 0; } } return;
Kommentar