Hallo,
ich weiss, dass es ein Statistik-Modul gibt, und trotzdem möchte ich es anders lösen. Und zwar mit einem DOIF. Doch ich scheitere ich schon beim Setzen des ersten Wertes. Und zwar möchte ich, dass alle Geräte mit dem Reading "temperature" sich in einem Dummy namens "Werte" mit dem Reading "Devicename_min" verewigen, wenn die Temperatur geringer ist, als der gespeicherte Wert im Reading.
Ich habe es so versucht:
([$DEVICE:temperature] < [Werte:$DEVICE_min]) (setreading Werte $DEVICE_min $VALUE) DOELSE
Wo ist mein Denkfehler?
Zitat von: choetzu am 02 Februar 2018, 17:22:46
Hallo,
ich weiss, dass es ein Statistik-Modul gibt, und trotzdem möchte ich es anders lösen. Und zwar mit einem DOIF. Doch ich scheitere ich schon beim Setzen des ersten Wertes. Und zwar möchte ich, dass alle Geräte mit dem Reading "temperature" sich in einem Dummy namens "Werte" mit dem Reading "Devicename_min" verewigen, wenn die Temperatur geringer ist, als der gespeicherte Wert im Reading.
Ich habe es so versucht:
([$DEVICE:temperature] < [Werte:$DEVICE_min]) (setreading Werte $DEVICE_min $VALUE) DOELSE
Wo ist mein Denkfehler?
Wo ist der Trigger?
$DEVICE triggert nicht.
Hmm, ich dachte an:
Sobald eine temperatur aller devices mit dem reading temperature ändern, triggert es.. aber das war falsch offensichtlich.. ist .*:temperature richtig?
Zitat von: choetzu am 02 Februar 2018, 20:47:16
Hmm, ich dachte an:
Sobald eine temperatur aller devices mit dem reading temperatures ändern, triggert es.. aber das war falsch offensichtlich.. ist .*:temperature richtig?
Gesendet von iPhone mit Tapatalk
Dann eher
([":temperature"] and [$DEVICE:temperature] < [?Werte:$DEVICE_min])...
Super, das hat geklappt ! Danke.
gibt es auch eine einfach Möglichkeit, dass wenn es noch kein Reading "device_min" gibt, dass er dieses erstellt. Ist natürlich geeignet bei neuen Devices.
mein doif sieht nun so aus:
([":temperature"]
and [$DEVICE:temperature] < [?Werte:$DEVICE_min])
(setreading Werte $DEVICE_min $VALUE)
Ein Defaultwert sollte schon reichen:
([":temperature"]
and [$DEVICE:temperature] < [?Werte:$DEVICE_min,999])
(setreading Werte $DEVICE_min $VALUE)
allerdings gibt es $VALUE beim DOIF nicht.
Dann schon eher
([":temperature"]
and [$DEVICE:temperature] < [?Werte:$DEVICE_min,999])
(setreading Werte $DEVICE_min [$DEVICE:temperature])
man kann es auch in der "neuen" Syntax formulieren:
([":temperature",0] < [?Werte:$DEVICE_min,999])
(setreading Werte $DEVICE_min [$DEVICE:temperature])
Zitat von: Damian am 02 Februar 2018, 23:07:13
man kann es auch in der "neuen" Syntax formulieren:
([":temperature",0] < [?Werte:$DEVICE_min,999])
(setreading Werte $DEVICE_min [$DEVICE:temperature])
super, das hat soweit geklappt. Kannst du mir noch kurz erklären, was die Zahlen ,0 und ,999 bedeuten? Herzlichen Dank.
Zitat von: choetzu am 05 Februar 2018, 13:24:11
super, das hat soweit geklappt. Kannst du mir noch kurz erklären, was die Zahlen ,0 und ,999 bedeuten? Herzlichen Dank.
Das sind Defaultwerte, falls es das Reading nicht gibt.