[Erledigt] [98_FReplacer.pm] Fehlermeldung bei Verwendung von $hour

Begonnen von Gernott, 24 März 2019, 02:23:26

Vorheriges Thema - Nächstes Thema

Gernott

Hallo

Ich möchte folgenden Code in einem Attribut RepXXExpr verwenden:

if (($hour >= 0) && ($hour < 3)) {ReadingsVal("proplanta", "fc0_weather00", "")} elsif (($hour >= 3) && ($hour < 6)) {ReadingsVal("proplanta", "fc0_weather03", "")} elsif (($hour >= 6) && ($hour < 9)) {ReadingsVal("proplanta", "fc0_weather06", "")} elsif (($hour >= 9) && ($hour < 12)) {ReadingsVal("proplanta", "fc0_weather09", "")} elsif (($hour >= 12) && ($hour < 15)) {ReadingsVal("proplanta", "fc0_weather12", "")} elsif (($hour >= 15) && ($hour < 18)) {ReadingsVal("proplanta", "fc0_weather15", "")} elsif (($hour >= 18) && ($hour < 21)) {ReadingsVal("proplanta", "fc0_weather18", "")} elsif (($hour >= 21) && ($hour < 24)) {ReadingsVal("proplanta", "fc0_weather21", "")}

Der Code funktioniert in der fhem-Befehlszeile, wenn er in geschweiften Klammern gestartet wird.

Bei  der Definition des Attributes kommt folgende Fehlermeldung im Log:

2019.03.24 01:16:33 3: WetterDisplay: Invalid Expression in attr WetterDisplay Rep24Expr if (($hour >= 0) && ($hour < 3)) {ReadingsVal("proplanta", "fc0_weather00", "")}  elsif (($hour >= 3) && ($hour < 6)) {ReadingsVal("proplanta", "fc0_weather03", "")} elsif (($hour >= 6) && ($hour < 9)) {ReadingsVal("proplanta", "fc0_weather06", "")} elsif (($hour >= 9) && ($hour < 12)) {ReadingsVal("proplanta", "fc0_weather09", "")} elsif (($hour >= 12) && ($hour < 15)) {ReadingsVal("proplanta", "fc0_weather12", "")} elsif (($hour >= 15) && ($hour < 18)) {ReadingsVal("proplanta", "fc0_weather15", "")} elsif (($hour >= 18) && ($hour < 21)) {ReadingsVal("proplanta", "fc0_weather18", "")} elsif (($hour >= 21) && ($hour < 24)) {ReadingsVal("proplanta", "fc0_weather21", "")}: Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.
Global symbol "$hour" requires explicit package name at (eval 1912902) line 1.


Warum meckert er hier die $hour an?

Update
Habe die Antwort hier gefunden:
https://forum.fhem.de/index.php/topic,15051.msg97211.html#msg97211


Viele Grüße
G.