Hallo,
ich bin noch ein Anfänger im FEHM und versuche eine Abfrage zu gestalten, wo ich jede Nacht um 24:00 Uhr die Diffenrenz zwischen zwei Temperaturen (Innen und Aussen) vergleichen will und bei ausrechender Differenz (größer 5) eine "Kühlung" einschalten will. Zusätzlich wird ein Dummy abgefragt, den ich Tagsüber auf "ja" setze wenn es draussen über 25 Grad warm wird.
Das Logfile meldet:
2016.06.06 11:52:00 1: PERL WARNING: Useless use of a constant ("TempAussen") in void context at (eval 1005) line 1.
2016.06.06 11:52:00 3: eval: { if ((TagesTempAussenGroesser25 eq "ja") && (ReadingsVal ( "TempInnen","temperature",99) - ( "TempAussen","temperature",99) >= 5)) { fhem ("set SchalterZuluft2 on") }}
2016.06.06 11:52:00 1: PERL WARNING: Useless use of a constant ("temperature") in void context at (eval 1005) line 1.
2016.06.06 11:52:00 3: eval: { if ((TagesTempAussenGroesser25 eq "ja") && (ReadingsVal ( "TempInnen","temperature",99) - ( "TempAussen","temperature",99) >= 5)) { fhem ("set SchalterZuluft2 on") }}
2016.06.06 11:52:00 3: NachtsKuehlen: Bareword "TagesTempAussenGroesser25" not allowed while "strict subs" in use at (eval 1005) line 1.
Hier meine Syntax von dem "at" Befehl:
*24:00:00 { if ((TagesTempAussenGroesser25 eq "ja") && (ReadingsVal ( "TempInnen","temperature",99) - ( "TempAussen","temperature",99) >= 5)) { fhem ("set SchalterZuluft2 on") }}
Leider finde ich den Fehler in meiner Konfiguration nicht.
Gruß
Holger
if ((TagesTempAussenGroesser25 eq "ja")
Da ist dein Fehler. Du benutzt kein ReadingsVal oder Value.
Versuche es mal so.
Value liest immer den STATE eines Devices aus.
if (Value(TagesTempAussenGroesser25) eq "ja" && (ReadingsVal("TempInnen","temperature",99) - ReadingsVal("TempAussen","temperature",99) >= 5))
Grüße
Super, vielen Dank für die schnelle Hilfe. Jetzt hab ich den Fehler gesehen und es funktioniert! :)