FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: juniorfux94 am 19 Mai 2016, 15:21:04

Titel: DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: juniorfux94 am 19 Mai 2016, 15:21:04
Guten Tag,

ich verzweifel ein wenig an einem DOIF mit UND und ODER Funktion.

In der Vorstellung recht einfach soll zu Sonnaufgang und Untergang ein Gerät eingeschaltet werden, aber nur, wenn ein Reading einen Wert unterschreitet.

Soweit bin ich aktuell:

([GG:ss] or [GG:sr] and [Wetter_Proplanta:fc0_rain] < 0.5 ) (set GA_S_Pumpe on-for-timer 900)

Aus mir derzeit nicht bekannten Gründen wird dieses DOIF das erste Mal direkt nach dem Speichern ausgelöst sobald GG (Twilight) die Zeiten liefert. Ansonsten stört es sich an dem Wert "Wetter_Proplanta:fc0_rain" recht wenig, eigentlich wird dann immer zu Sunset oder Sunrise geschaltet.

Ausgelesen werden die Readings allerdings richtig:

DeviceGG
2016-05-19 15:09:28
cmd
1
2016-05-19 15:09:28
cmd_event
GG
2016-05-19 15:09:28
cmd_nr
1
2016-05-19 15:09:28
e_GG_sr
05:40:48
2016-05-19 15:09:28
e_GG_ss
21:06:09
2016-05-19 15:09:28
state
cmd_1
2016-05-19 15:09:28
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: Wernieman am 19 Mai 2016, 16:15:52
Bin jetzt nicht der DOIF Spezialist, aber ... bei dem Konstrukt "a oder b und c", woher soll DOIF WIssen, in welcher Kondition es arbeiten soll? Also Du eigentlich willst "(a oder b) und c". Verstanden was ich sagen Will?

Ich würde Dir empfehlen es zu "Entflechten".

Also ein DOIF (a oder b) (IF c) mit dem Normalen IF Modul von FHEM
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: igami am 19 Mai 2016, 16:20:27
and vor or

Bei dir steht also

[GG:ss] or
[GG:sr] and [Wetter_Proplanta:fc0_rain] < 0.5

Desweiteren solltest du dir nochmal den Abschnitt Indirekten Zeitangaben (http://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben) durchlesen.

Und der übersichthalber bei code die code-tags verwenden.

Grüße
igami
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: Wernieman am 19 Mai 2016, 20:43:00
Habe es in der Doku von DOIF nicht gefunden. Ist es wirklich so bei DOIF?
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: igami am 19 Mai 2016, 20:48:49
Zitat von: Wernieman am 19 Mai 2016, 20:43:00
Ist es wirklich so bei DOIF?
So ist es bei PERL und DOIF hat es nicht geändert.
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: Wernieman am 19 Mai 2016, 20:55:44
Ist es nicht sogar in den "Grundlagen der Informatik"?

Ich weiß nur nicht, wie DOIF Programmiert ist ... deshalb meine "schwammige Aussage".
Titel: Antw:DOIF bei Sonnenauf- und Untergang und weitere Bedingung
Beitrag von: Damian am 19 Mai 2016, 21:07:21
Zitat von: Wernieman am 19 Mai 2016, 20:55:44
Ist es nicht sogar in den "Grundlagen der Informatik"?

Ich weiß nur nicht, wie DOIF Programmiert ist ... deshalb meine "schwammige Aussage".

Die Bedingung in DOIF kann man als erweitertes Perl ansehen (der Ausführungsteil ist dagegen erweitertes FHEM). DOIF kümmert sich nur um Sachen in eckigen Klammern und übergibt die aufbereitete Bedingung an Perl - deswegen ist es so vielfältig, ohne dass ich alles selbst programmieren musste ;)

Gruß

Damian