DOIF bei Sonnenauf- und Untergang und weitere Bedingung

Begonnen von juniorfux94, 19 Mai 2016, 15:21:04

Vorheriges Thema - Nächstes Thema

juniorfux94

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

Wernieman

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
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

igami

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 durchlesen.

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

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Wernieman

Habe es in der Doku von DOIF nicht gefunden. Ist es wirklich so bei DOIF?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

igami

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.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Wernieman

Ist es nicht sogar in den "Grundlagen der Informatik"?

Ich weiß nur nicht, wie DOIF Programmiert ist ... deshalb meine "schwammige Aussage".
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF