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.