Hallo
Ich möchte Lampen in Abhängigkeit von Twilight_Weather steuern.
Wie kann ich eine Abfrage für einen Wertebereich schreiben?
z.B. im Bereich von 50 - 60
ReadingsVal("Daemmerung","Twilight_Weather",99) = > 50 && < 60
Könnte das so gehen bzw. wie schreibt man das?
Danke und Grüße
Heinz
Du must beides Mal ReadingsVal mit angeben.
Meinst Du so?
Müssen die Klammern um (ReadingsVal..) && (ReadingsVal..) sein?
( (ReadingsVal("Daemmerung","Twilight_Weather",99) >= 50) && (ReadingsVal("Daemmerung","Twilight_Weather",99) <= 60) )
Mit einer DOIF Funktion würde es so aussehen:
([Daemmerung:Twilight_Weather] >= 50 and [Daemmerung:Twilight_Weather] <= 60)
Wobei ich mir gerade nicht sicher sind, wo die "99" herkommen, die du noch im ReadingsVal stehen hast.
Gruß,
Mathea
Zitat von: Mathea am 05 Dezember 2016, 12:55:56
Wobei ich mir gerade nicht sicher sind, wo die "99" herkommen, die du noch im ReadingsVal stehen hast.
Die 99 ist der "Defaultrückgabewert", wenn der Wert nicht gelesen werden konnte (Reading nicht vorhanden, Device gelöscht, ...)...
Gruß, Joachim
Zitat von: MadMax-FHEM am 05 Dezember 2016, 13:35:48
Die 99 ist der "Defaultrückgabewert", wenn der Wert nicht gelesen werden konnte (Reading nicht vorhanden, Device gelöscht, ...)...
Gruß, Joachim
Wieder was gelernt! Aber braucht man das wirklich? Ich frage bei mir Twilight_Weather genau so ab wie ich es in dem DOIF Ansatz beschrieben habe und habe seither noch nie Probleme gehabt, dass ein Wert nicht gelesen werden konnte.
ReadingsVal ist nun mal so definiert: ReadingsVal("DEVICE_NAME", "READING_NAME", "DEFAULT_VALUE)...
...ergo muss was angegeben werden...
Gruß, Joachim