Hi,
vielleicht könnt ihr mir helfen.
Ziel ist, eine Aktion auszulösen (Timer läuft los), wenn ein Bewegungsmelder auslöst und die Bedingung erfüllt ist, dass die Hue Lampe aus ist.
Weil es so wie ich es mir vorstelle nicht funktioniert, hier erst einmal ein erfolgreiches Beispiel.
Ausgangssituation: Lampe ist on, d.h. das Reading onoff steht auf 1.
define nf_wz_bewegung_dummy notify FS20_BM_Flur_1OG_Kanal_1:on.* {if (ReadingsVal('HUEBridge_HUEDevice3','onoff',0) lt 2) {fhem ("set wz_bewegung 1 ;; delete at_nf_wz_bewegung_dummy ;; define at_nf_wz_bewegung_dummy at +01:05:00 set wz_bewegung 0")}}
Das o.a. notify klappt, d.h. die nachfolgenden Aktionen (set, delete, at) werden ausgeführt. Soll ja auch so sein, denn 1 < 2 (lt 2).
Verändere ich es auf lt 1, löst es nicht aus, wenn Lampe an. Auch ok.
Wenn die Lampe aber nun ausgeschaltet wird, d.h. onoff = 0 (kann ich im WebIF sehen), werden die Aktionen auch nicht ausgeführt, obwohl die Bedingung doch wahr ist (0 lt 1).
Kann mir das jemand verklickern?
Im Log
2014.09.16 22:02:59 4: nf_wz_bewegung_dummy exec {if (ReadingsVal('HUEBridge_HUEDevice3','onoff',0) lt 1) {fhem ("set wz_bewegung 1 ;; delete at_nf_wz_bewegung_dummy ;; define at_nf_wz_bewegung_dummy at +01:05:00 set wz_bewegung 0")}}
Auch mit ...eq 0.... geht es nicht, wenn Lampe aus, obwohl auch diese Bedingung doch wahr ist.
Danke und Gruß,
hinrich
Mit lt. Vergleichst du Zeichenketten
Um abzufragen, ob eine erste Zeichenkette alphabetisch weiter vorne liegt als eine zweite, notieren Sie lt zwischen den beiden Werten, die verglichen werden sollen (lt = less than = kleiner als).
Danke Paul.
Wenn ich
if (ReadingsVal('HUEBridge_HUEDevice3','onoff',0) < 1
daraus mache, funktioniert es auch nicht.
In anderen notifies mit mehreren IF Bedingungen funktioniert das 1a. Bspw. Heizung nur hochregeln, wenn Wunschtemperatur noch nicht anliegt.
if (ReadingsVal('FHT_Device','desired-temp',0) < 21.0 (oder so ähnlich, habe ich jetzt nicht direkt in der fhem.cfg nachgeschaut)
Ich habe gerade gemerkt, dass ich das Thema im falschen Bereich eingestellt habe.
Ich mache es mal neu auf bei fhem -- Sonstiges
if (ReadingsVal('HUEBridge_HUEDevice3','onoff','') < 1
Danke, probiere ich morgen aus!
Sehr merkwürdig.
Es geht nicht, sprich es löst nicht aus.
a)
"<1"
Lampe aus (onoff = 0)
NOT OK
2014.09.17 21:58:54 4: nf_wz_bewegung_dummy exec {if (ReadingsVal('HUEBridge_HUEDevice3','onoff','') < 1) {fhem ("set wz_bewegung 1 ;; delete at_nf_wz_bewegung_dummy ;; define at_nf_wz_bewegung_dummy at +01:05:00 set wz_bewegung 0")}}
Kriterium erfüllt, onoff = 0 < 1 (in der IF Bedingung), dennoch wird der nachfolgende Code nicht ausgeführt.
b)
"<2"
Lampe an (onoff = 1)
OK
2014.09.17 21:28:46 4: nf_wz_bewegung_dummy exec {if (ReadingsVal('HUEBridge_HUEDevice3','onoff','') < 2) {fhem ("set wz_bewegung 1 ;; delete at_nf_wz_bewegung_dummy ;; define at_nf_wz_bewegung_dummy at +01:05:00 set wz_bewegung 0")}}
2014.09.17 21:28:46 4: dummy set wz_bewegung 1
Lampe aus (onoff = 0)
OK
2014.09.17 21:31:08 4: nf_wz_bewegung_dummy exec {if (ReadingsVal('HUEBridge_HUEDevice3','onoff','') < 2) {fhem ("set wz_bewegung 1 ;; delete at_nf_wz_bewegung_dummy ;; define at_nf_wz_bewegung_dummy at +01:05:00 set wz_bewegung 0")}}
2014.09.17 21:31:08 4: dummy set wz_bewegung 1
Nur bekomme ich so natürlich die Bedingung (wenn Lampe aus) nicht hin ;D
Noch ne Idee?