Hallo zusammen,
angespornt durch die vielen anderen Plugins in letzter Zeit habe ich mich nun auch an mein Erstes gewagt.
Bisher hatte ich dies mit linknx realisiert, hat mir aber nie wirklich gefallen und wollte es nun "richtig" machen... es wurde z.B. die Bewegungsfahrt ergänzt, da mir die Pumpe über den Sommer schon im ersten Jahr fest geworden ist.
Da es mein erstes Plugin und auch mein erster Perl Programmierversuch ist bzw. ich eigentlich mir passende Schnipsel aus anderen Plugins zusammenkopiert habe, würde ich mich freuen wenn mal ein paar Profis drüber schauen ob es so funktioniert?
Getestet hab ichs noch nicht... muss ja nicht meine Wassertasche zum Kochen bringen wenn ihr mir vorher schon sagen könnt was nicht passt
Freuen würde ich mich über Verbesserungsvorschläge und Tips wie ich die "Offenen Punkte" noch realisieren kann.
Danke schonmal
circulating pump wood burner.pl:
circulating pump wood burner.conf:
angespornt durch die vielen anderen Plugins in letzter Zeit habe ich mich nun auch an mein Erstes gewagt.
Bisher hatte ich dies mit linknx realisiert, hat mir aber nie wirklich gefallen und wollte es nun "richtig" machen... es wurde z.B. die Bewegungsfahrt ergänzt, da mir die Pumpe über den Sommer schon im ersten Jahr fest geworden ist.
Da es mein erstes Plugin und auch mein erster Perl Programmierversuch ist bzw. ich eigentlich mir passende Schnipsel aus anderen Plugins zusammenkopiert habe, würde ich mich freuen wenn mal ein paar Profis drüber schauen ob es so funktioniert?
Getestet hab ichs noch nicht... muss ja nicht meine Wassertasche zum Kochen bringen wenn ihr mir vorher schon sagen könnt was nicht passt

Freuen würde ich mich über Verbesserungsvorschläge und Tips wie ich die "Offenen Punkte" noch realisieren kann.
Danke schonmal
circulating pump wood burner.pl:
Code:
############################################################################################################################## # # Plugin: Umwälzpumpensteuerung für Kaminofen # Datei: circulating pump wood burner.pl # V0.1 2012-08-27 # Copyright: Christian Neumeier (neumeier.christian@gmx.de) # License: GPL (v3) # ############################################################################################################################## # # Temperaturgeführte Steuerung der Umwälzpumpe für wassergeführten Kaminofen # - Umwälzpumpe über vordefinierte Temperaturen Ein- und wieder Ausschalten # - Festwerden der Pumpe vermeiden -> wenn die Pumpe eine bestimmte Zeit nicht gelaufen ist einfach kurz starten # ############################################################################################################################## # # Änderungshistorie: # 20120827 - nEiMi - V0.1 Erste Version # ############################################################################################################################## # # Offene Punkte: # - Alarm wenn keine Temperatur mehr auf dem Bus gesendet wird -> defekter Fühler # - Laufzeit für Bewegungsfahrt, bis jetzt wird mit Eintreffen der nächsten zu niedrigen Temperatur sofort wieder abgeschaltet # ############################################################################################################################## # # plugin_info-Werte # - Letzter_Einschaltzeitpunkt: Timestamp als die Pumpe das letzte mal gelaufen ist # ############################################################################################################################## # Variablen aus Confi-Datei definieren my($GA_Temp_Kamin,$GA_Pumpe_EA,$Temp_Ein,$Temp_Aus,$Zeit_Bewegungsfahrt,$Zeit_Alarm,$Dauer_Bewegungsfahrt); # Confi-Datei einlesen &readConf; # Eigenen Aufruf-Zyklus auf 0 Sekunden setzen $plugin_info{$plugname.'_cycle'} = 0; # Plugin an Gruppenadresse "anmelden" $plugin_subscribe{$GA_Temp_Kamin}{$plugname} = 1; # Temperatur von Bus lesen my $Temp_Kamin = knx_read($GA_Temp_Kamin,300); # Umwälzpumpe Ein/Aus von Bus lesen my $Pumpe_EA = knx_read($GA_Pumpe_EA,300); # wenn Kamintemperatur grössergleich vordefinierter Einschalttemperatur und Pumpe Aus if (($Temp_Kamin => $Temp_Ein) && ($Pumpe_EA = 0)) { # dann Umwälzpumpe einschalten knx_write($GA_Pumpe_EA,1); # letzten Einschlatzeitpunkt merken $plugin_info{$plugname.'_Letzter_Einschaltzeitpunkt'} = time(); } # wenn Kamintemperatur kleinergleich vordefinierter Ausschalttemperatur und Pumpe Ein elsif (($Temp_Kamin <= $Temp_Aus) && ($Pumpe_EA = 1)) { # dann Umwälzpumpe ausschalten knx_write($GA_Pumpe_EA,0); } # wenn Pumpe länger als die vordefinierte Zeit nicht mehr gelaufen ist elsif (($plugin_info{$plugname.'_Letzter_Einschaltzeitpunkt'} + $Zeit_Bewegungsfahrt) < time()) { # dann Umwälzpumpe einschalten knx_write($GA_Pumpe_EA,1); # letzten Einschlatzeitpunkt merken $plugin_info{$plugname.'_Letzter_Einschaltzeitpunkt'} = time(); }
Code:
############################################################################################################################## # # Plugin: Umwälzpumpensteuerung für Kaminofen # Datei: circulating pump wood burner.conf # V0.1 2012-08-27 # Copyright: Christian Neumeier (neumeier.christian@gmx.de) # License: GPL (v3) # ############################################################################################################################## $GA_Temp_Kamin = '2/0/25'; # Gruppenadresse des Temperaturfühlers im Kaminofen $GA_Pumpe_EA = '9/0/10'; # Gruppenadresse der Umwälzpumpe Ein/Aus $Temp_Ein = '65'; # Temperatur bei der die Pumpe einschalten soll $Temp_Aus = '60'; # Temperatur bei der die Pumpe wieder ausschalten soll $Zeit_Bewegungsfahrt = '1209600'; # Zeit in Sekunden nach der die Pumpe wieder mal eine Bewegungsfahrt machen soll(hier 14 Tage) # noch nicht benötigte Variablen $Zeit_Alarm = '600'; # Zeit in Sekunden nach der Alarm geschlagen wird wenn keine Temperatur mehr gesendet worden ist(Fühler defekt) $Dauer_Bewegungsfahrt = '15'; # Zeit in Sekunden wie lange die Bewegungsfahrt dauern soll
Kommentar