FHEM 5.8: Problem mit fhem.pl

Begonnen von cyvr1, 21 Februar 2017, 19:44:11

Vorheriges Thema - Nächstes Thema

cyvr1

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?

----------
Stephan Krätzschmar

krikan

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

cyvr1

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


----------
Stephan Krätzschmar

cyvr1

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


----------
Stephan Krätzschmar

ArduPino

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