Hallo,
seit dem Update auf die Version 5.8 erzeugen einige Timer beim Serverstart Fehlermeldungen, die vorher unter 5.7 nicht auftraten:
2017.02.21 18:26:26 1: ERROR evaluating {return undef;; {fhem ("set PluggitStatOld $a }: Can't find string terminator '"' anywhere before EOF at (eval 624) line 1.
2017.02.21 18:26:45 1: ERROR evaluating {return undef;; {fhem "set RollStat Status $a"} }}: Unmatched right curly bracket at (eval 651) line 1, at end of line
syntax error at (eval 651) line 1, near "}}"
2017.02.21 18:26:46 1: ERROR evaluating {return undef;; {fhem "set CO2WZ CO2 $a ppm"} }}: Unmatched right curly bracket at (eval 653) line 1, at end of line
syntax error at (eval 653) line 1, near "}}"
2017.02.21 18:28:45 1: ERROR evaluating {DashboardAsHtml("anyViews")}: Undefined subroutine &main::DashboardAsHtml called at (eval 1082) line 1.
Die dazugehörigen define-statements sehen z.B. so aus:
define StatCompareOld at +*00:00:10 { if (Value("PluggitStatNew") != Value("PluggitStatOld") ) {my $a = ReadingsVal("PluggitStatNew","state",0);; {fhem ("set PluggitStatOld $a ;; set PluggitStatChange 1")} } }
attr StatCompareOld room 99.Timer
oder
define CO2_set at +*00:00:30 { my $a = ReadingsVal("netatmo_WZ","co2",101);; {fhem "set CO2WZ CO2 $a ppm"} }
attr CO2_set room 99.Timer
Unter fhem 5.7 wie gesagt werden für die Timer keine Fehler angezeigt. Kopiere ich die alte fhem.pl von Version 5.7 zurück, sind die Fehler weg, mit der fhem.pl von 5.8 sofort wieder da. Hat sich was geändert, was ich übersehen habe oder ist das ein Bug in 5.8?
Zitat von: cyvr1 am 21 Februar 2017, 19:44:11
define CO2_set at +*00:00:30 { my $a = ReadingsVal("netatmo_WZ","co2",101);; {fhem "set CO2WZ CO2 $a ppm"} }
attr CO2_set room 99.Timer
Entferne bitte einmal {} um fhem ".....". Du befindest Dich bereits auf Perlebene und dann ist das erneute Wechseln auf die Perlebene "seltsam".
Gleiches beim anderen gezeigten Code.
Zitat
Ist das ein Bug in 5.8?
Ich würde sagen nein; aber das sollten die Developer besser wissen. Ordne das im Bereich perlSyntaxCheck ein: https://forum.fhem.de/index.php/topic,67419.0.html
Gruß, Christian
Deine Syntaxfehler hattest Du schon in 5.7 in Deinem Code. Dass diese Fehler jetzt beim Starten gemeldet werden, ist neu in 5.8.
Du solltest sie korrigieren - der Tipp mit den zuvielen geschweiften Klammern ist schon ein guter Schritt in die richtige Richtung.
Hallo,
erstmal danke für die Rückmeldungen. Seltsam ist nur, dass in der Version 5.7 die Timer funktioniert haben, auch bei Ausführung würde keine Fehlermeldung ausgegeben. Unter 5.8 kommt die Meldung und die Timer funktionieren auch nicht.
Ich entferne aber Mal die beiden Klammern {} und schaue, in das besser klappt.
Gesendet von meinem LG-H960 mit Tapatalk
So, ich habe die Klammern entfernt und es funktioniert jetzt auch unter 5.8. Ist halt nur seltsam, weil mit dem Klammern bis Version 5.7 keine Fehlermeldungen kamen und die at-statements funktioniert haben.
Nochmals danke für den Tipp.
Gesendet von meinem LG-H960 mit Tapatalk
Das meinte er sicher mit :
Dass diese Fehler jetzt beim Starten gemeldet werden, ist neu in 5.8.
Also meldet 5.8 jetzt solche Fehler...ist doch schön von 5.8 oder !?
Gesendet von meinem Wileyfox Swift mit Tapatalk