Hallo zusammen,
ich habe aktuell ein kleines Problem mit einer Konfiguration im Logikprozessor bzgl. meiner Lüftersteuerung. Hier erst mal der entsprechende Abschnitt der conf-Datei:
Lueftersteuerung Logikprozessor_conf.txt
Grundsätzlich funktioniert die Regelung an sich schon super, ich hänge aber noch an der Speicherung der richtigen Stufe sowie schalten der Buttons in der Cometvisu. Im Prinzip funktioniert die Schaltung so, dass jede "höhere" Stufe die niedrigere übersteuert, also wenn alle 3 Gas "0" sind läuft Stufe 1, wenn die GA für Stufe 2 oder 3 = "1" ist dann entsprechend Stufe 2 bzw 3 geschaltet, die GA für Stufe 0 schaltet bei "1" die komplette Anlage aus.
Ganz konkret habe ich das Problem in "CWL300_Stufe_GA", dass für die Zeilen 220 bis 229
folgende Fehlermeldung im Log hochkommen
Weiterhin hab ich gerade keine passende Idee, wie ich das Schreiben der unterschiedlichen Werte in die verschiedenen GA-Stufen bewerkstellige, hier mein aktueller Code:
Funktional ist das soweit zwar korrekt, aber mit dieser Config sind in der Cometvisu bspw. Stufen 2 & 3 beide aktiv:
Bildschirmfoto 2017-08-13 um 15.27.53.png
Letztendlich muß ich ja logischerweise bei bspw. Stufe 3 in die "Stufe3-GA" eine 1 und in alle anderen eine 0 schreiben, das krieg ich aber aktuell gerade nicht hin...
Wäre super wenn jemand mir nen passenden Tip geben könnte!
Gruß Hannatz
ich habe aktuell ein kleines Problem mit einer Konfiguration im Logikprozessor bzgl. meiner Lüftersteuerung. Hier erst mal der entsprechende Abschnitt der conf-Datei:
Lueftersteuerung Logikprozessor_conf.txt
Grundsätzlich funktioniert die Regelung an sich schon super, ich hänge aber noch an der Speicherung der richtigen Stufe sowie schalten der Buttons in der Cometvisu. Im Prinzip funktioniert die Schaltung so, dass jede "höhere" Stufe die niedrigere übersteuert, also wenn alle 3 Gas "0" sind läuft Stufe 1, wenn die GA für Stufe 2 oder 3 = "1" ist dann entsprechend Stufe 2 bzw 3 geschaltet, die GA für Stufe 0 schaltet bei "1" die komplette Anlage aus.
Ganz konkret habe ich das Problem in "CWL300_Stufe_GA", dass für die Zeilen 220 bis 229
Code:
CWL300_Stufe_GA => { receive => ['3/5/72','3/5/71','3/5/74'], transmit => '1/0/210', translate => sub { if ($input->[0] == 1) {return "0"} if ($input->[0] == 0 and $input->[1] == 0 and $input->[2] == 0) {return "1"} if ($input->[0] == 0 and $input->[1] == 1 and $input->[2] == 0) {return "2"} if ($input->[0] == 0 and $input->[2] == 1) {return "3"} return undef;}, debug=>1 },
Code:
2017-08-13 15:02:16.759,Logikprozessor,config error: syntax error at (eval 66395) line 224, near "if {" syntax error at (eval 66395) line 225, near "; {" Global symbol "$input" requires explicit package name at (eval 66395) line 225. Global symbol "$input" requires explicit package name at (eval 66395) line 225. Global symbol "$input" requires explicit package name at (eval 66395) line 225. Global symbol "$input" requires explicit package name at (eval 66395) line 226. Global symbol "$input" requires explicit package name at (eval 66395) line 226. Global symbol "$input" requires explicit package name at (eval 66395) line 226. Global symbol "$input" requires explicit package name at (eval 66395) line 227. Global symbol "$input" requires explicit package name at (eval 66395) line 227. Can't use global @_ in "my" at (eval 66395) line 234, near "=@_" (eval 66395) has too many errors. ,0s,
Code:
CWL300_Abschaltung => { fetch => ['3/5/202','3/5/203'], transmit => '3/5/72', translate => sub { return 1 if (($input->[0] > $input->[1]) && ($input->[0] > $solltemp)) || ($input->[0] < $ausschalttemp); return undef;}, debug=>1 }, # Höhere Stufen einschalten #liest Stufe 0 und Zuluft #CWL300 GA für Stufe 2 & 3 #Wenn Stufe 0 ausgeschaltet und Zuluft > $runterschalttemp dann Stufe 2 einschalten #Wenn Stufe 0 ausgeschaltet und Zuluft > $runterschalttemp und Abluft > $solltemp dann Stufe 3 einschalten CWL300_Stufe_2_schalten => { fetch => ['3/5/72', '3/5/202'], transmit => ['3/5/71'], translate => sub { return 1 if (($input->[0] == 0) && ($input->[1] > $runterschalttemp)); return 0;}, debug=>1 }, CWL300_Stufe_3_schalten => { fetch => ['3/5/72', '3/5/202', '3/5/203'], transmit => ['3/5/74'], translate => sub { return 1 if (($input->[0] == 0) && ($input->[1] > $runterschalttemp) && ($input->[2] > $solltemp)); return 0;}, debug=>1 }, # Höhere Stufen ausschalten #horcht auf Stufe 0 #CWL300 GA für Stufe 2 & 3 #Wenn Stufe 0 eingeschaltet wird dann Stufen 2 & 3 ausschalten CWL300_Stufe_0 => { receive => ['3/5/72'], transmit => ['3/5/71','3/5/74'], translate => sub { return 0 if $input->[0] == 1; return undef;}, debug=>1 },
Bildschirmfoto 2017-08-13 um 15.27.53.png
Letztendlich muß ich ja logischerweise bei bspw. Stufe 3 in die "Stufe3-GA" eine 1 und in alle anderen eine 0 schreiben, das krieg ich aber aktuell gerade nicht hin...
Wäre super wenn jemand mir nen passenden Tip geben könnte!
Gruß Hannatz
Kommentar