Fehlermeldung in Kalendersteuerung nach Update

Begonnen von Wolle02, 01 Juni 2013, 17:55:14

Vorheriges Thema - Nächstes Thema

Wolle02

Hallo zusammen,

gestern habe ich mal wieder nach einiger Zeit ein FHEM-Update durchgeführt. Vielleicht hätte ich das einfach nicht tun sollen (Never-touch-a-running-System), aber meine Neugier auf Veränderungen in Features ist in der Regel größer ;-)
Jedenfalls habe ich seit gestern folgende Fehlermeldung im Log:

Use of uninitialized value $termin in string eq at (eval 13656) line 1.
Use of uninitialized value $termin in string eq at (eval 13657) line 1.
Use of uninitialized value $termin in string eq at (eval 13658) line 1.
Use of uninitialized value $termin in string eq at (eval 13659) line 1.
Use of uninitialized value $termin in string eq at (eval 13660) line 1.
Use of uninitialized value $termin in string eq at (eval 13661) line 1.
Use of uninitialized value $termin in string eq at (eval 13662) line 1.
Use of uninitialized value $termin in string eq at (eval 13663) line 1.
Use of uninitialized value $termin in string eq at (eval 13664) line 1.
Use of uninitialized value $termin in string eq at (eval 13665) line 1.
Use of uninitialized value $termin in string eq at (eval 13666) line 1.
Use of uninitialized value $termin in string eq at (eval 13667) line 1.
Use of uninitialized value $termin in string eq at (eval 13668) line 1.
Use of uninitialized value $termin in string eq at (eval 13669) line 1.
Use of uninitialized value $termin in string eq at (eval 13670) line 1.
Use of uninitialized value $termin in string eq at (eval 13671) line 1.
Use of uninitialized value $termin in string eq at (eval 13672) line 1.


Die Variable $termin findet bei mir in der Kalendersteuerung Verwendung. Die enstprechende Zeile in der Konfig lautet:

define Urlaubskalender_n notify Urlaubskalender {my $termin=fhem("get Urlaubskalender summary modeStart");;if(($termin) eq "Urlaub") {fhem("set Urlaubstag 1")} else {fhem("set Urlaubstag 0")}}

Da ich an der Konfig rein gar nichts verändert habe, vermute ich eine Änderung eventuell im Kalendermodul als Ausgangspunkt für die Fehlermeldung. Kann mir jemand sagen, ob ich in meiner Konfig etwas anpassen muss, damit es wieder läuft?

Meine Perlversion ist 5.16.3
Bitte seht es mir nach, wenn ich jetzt vergessen habe bestimmte Eckdaten mitzuliefern; mir fiel jetzt nicht mehr ein.

Gruß
Wolle

Wolle02

Hat keiner eine Idee, wie ich diese Fehlermeldung wieder weg bekomme?
Die Fehlermeldung tritt immer dann auf, wenn in meinem "Steuerkalender" kein Urlaubstag eingetragen ist und somit die Variable $termin leer ist.

Danke und Gruß

Wolle

betateilchen

Hallo Wolle, probier mal:

define Urlaubskalender_n notify Urlaubskalender {my $termin; $termin=fhem("get Urlaubskalender summary modeStart"); if($termin eq "Urlaub") {fhem("set Urlaubstag 1")} else {fhem("set Urlaubstag 0")}}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolle02

Hallo Betateilchen,

danke für den Tip, aber es hat leider nichts gebracht. Auch nach einem shutdown restart kommt leider immer noch die gleiche Fehlermeldung.

betateilchen

Dann probier doch nochmal folgendes:

define Urlaubskalender_n notify Urlaubskalender {my $termin; $termin=fhem("get Urlaubskalender summary modeStart"); if("$termin" eq "Urlaub") {fhem("set Urlaubstag 1")} else {fhem("set Urlaubstag 0")}}

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolle02

Leider bringt auch das weiterhin die gleiche Fehlermeldung.

Kann es sein, dass mal etwas im Kalendermodul geändert wurde, dass jetzt keine leere Variable mehr akzeptiert wird? Aber nein, kann eigentlich nicht sein, weil der Fehler ja nicht beim Kalendermodul auftritt, sondern scheinbar beim Notify.

Was bedeutet bei der Fehlermeldung

Use of uninitialized value $termin in string eq at (eval 144) line 1.

eigentlich das (eval 144)? Die Zahl verändert sich immer fortlaufend; der Rest bleibt gleich.

betateilchen

Das ist kein Problem mit dem Calendar-Modul, das ist schlicht ein Syntaxfehler. Nochmal probieren:

define Urlaubskalender_n notify Urlaubskalender {my $termin=""; $termin=fhem("get Urlaubskalender summary modeStart"); if("$termin" eq "Urlaub") {fhem("set Urlaubstag 1")} else {fhem("set Urlaubstag 0")}}

Hab ich bei mir grade getestet - und es funktioniert hier auch, wenn es keinen Wert in $termin gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wolle02

Hmmm, leider wieder nix. Aber ist ist schon komisch, wenn es bei dir funktioniert.

Ich dachte halt nur, dass etwas verändert worden wäre, weil meine Syntax vorher ja fehlerfrei funktionierte und ich diese in den letzten Monaten überhaupt nicht verändert habe.