FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: choetzu am 02 Februar 2018, 17:22:46

Titel: DOIF Statistik
Beitrag 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?
Titel: Antw:DOIF Statistik
Beitrag von: Damian am 02 Februar 2018, 19:37:25
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.
Titel: DOIF Statistik
Beitrag von: choetzu am 02 Februar 2018, 20:47:16
Hmm, ich dachte an:

Sobald eine temperatur aller devices mit dem reading temperature ändern, triggert es.. aber das war falsch offensichtlich.. ist    .*:temperature richtig?

Titel: Antw:DOIF Statistik
Beitrag von: Damian am 02 Februar 2018, 20:50:41
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])...
Titel: Antw:DOIF Statistik
Beitrag von: choetzu am 02 Februar 2018, 22:56:01
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)
Titel: Antw:DOIF Statistik
Beitrag von: Damian am 02 Februar 2018, 23:07:13
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])

Titel: Antw:DOIF Statistik
Beitrag von: choetzu am 05 Februar 2018, 13:24:11
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.
Titel: Antw:DOIF Statistik
Beitrag von: Damian am 05 Februar 2018, 15:08:23
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.