FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matze1999 am 24 Februar 2022, 18:10:59

Titel: [gelöst] DOIF mit Zeitintervall
Beitrag von: matze1999 am 24 Februar 2022, 18:10:59
Hallo,

lt. commandref wird innerhalb eines DOIF bei einem Zeitintervall [06:00-16:00] zum Beginn udn zum ende getriggert. Verstehe ich es richtig, dass zwischen Beginn und Ende der Ausdruck als "wahr" und ausserhalb als "nicht mehr wahr" erscheint und in einer Verknüpfung ([06:00-16:00] and [Trigger]) auch ausgewertet wird? Also der Trigger geht nur innerhalb des angegebenen Zeitraumes?

matze1999
Titel: Antw:DOIF mit Zeitintervall
Beitrag von: Damian am 24 Februar 2022, 18:18:02
Zitat von: matze1999 am 24 Februar 2022, 18:10:59
Hallo,

lt. commandref wird innerhalb eines DOIF bei einem Zeitintervall [06:00-16:00] zum Beginn udn zum ende getriggert. Verstehe ich es richtig, dass zwischen Beginn und Ende der Ausdruck als "wahr" und ausserhalb als "nicht mehr wahr" erscheint und in einer Verknüpfung ([06:00-16:00] and [Trigger]) auch ausgewertet wird? Also der Trigger geht nur innerhalb des angegebenen Zeitraumes?

matze1999

Der Trigger geht immer, aber die Auswertung der Bedingung mit "und" ist innerhalb der Zeit nicht wahr, damit wird der Zweig nicht ausgeführt aber ggf. ein DOELSE-Zweig, falls es den gibt.
Titel: Antw:[gelöst] DOIF mit Zeitintervall
Beitrag von: bartpl am 25 Juli 2022, 10:01:34
Hi, Die Nachricht ist vielleicht nicht so alt, daher erlaube ich es mir hier zu fragen.
Ich schreibe aktuell eine Regel um meine hauslüftung zu steuern. Will folgendes erreichen:
- wenn aussen wärmer als innen ist, und die Temperatur innen mehr als 23 Grad ist, soll der pid lüftung maximalwert auf 30% gestellt werden, damit es mir von aussen nicht wärme Luft reinzieht.
Dazu will ich, das in Nachtstunden (22-6) der maximale Wert auf 60% gedrosselt wird, sonst darf es bis zu 100% gehen.
Meine aktuelle Regel sieht so aus:
(max([sensor1:aussentemp],[sensor2:aussentemp])-[sensor3:innentemp] > 0)
  (attr -silent reku_PID pidActorLimitUpper 30)
DOELSEIF ([22:00-08:00] or [?22:00-08:00])
  (attr -silent reku_PID pidActorLimitUpper 60)
DOELSE
  (attr -silent reku_PID pidActorLimitUpper 100)

das Problem ist in der Nacht, wo die Aussentemperatur OK ist (also nicht cmd_1 fall). Checkall setzt richtig cmd_2, aber dann wenn egal welches event aus sensor1..3 kommt, stellt sich hier cmd_3 anstatt in cmd_2 verbleiben. Was mache ich hier falsch?

Ich meine ich verstehe, das der Zeitinterval check nur 2 mal triggert, aber selbst der extra nicht-triggeriendes Zeitinterval check hilft hier nichts und DOIF geht in ELSE Zustand... Wie kann ich hier das gewünschte Ergebnis bekommen???
Titel: Antw:[gelöst] DOIF mit Zeitintervall
Beitrag von: rabehd am 25 Juli 2022, 10:31:40
Schau Dir mal den Button # an. Die Benutzung freut hier die Helfenden.

Ein Zweig wir nur geprüft, wenn eine Bedingung darin getriggt wird.
Dein or [?22:00-08:00]) gibt es nicht. Somit trifft DOELSE ein.

Titel: Antw:[gelöst] DOIF mit Zeitintervall
Beitrag von: bartpl am 25 Juli 2022, 22:11:47
Danke, das erklärt einiges. Ich verstehe leider nur den Teil mit Button # nicht... Konnte nicht danach suchen und kann es nirgendwo anhängen.

Soweit ich es verstanden habe, würde ich den DOELSEIF mit [sensor1] or [sensor2] or [sensor3] erweitern, dann würde es triggern und zusätzlich den Zeitinterval überprüfen und damit nicht aus cmd_2 rausgehen... oder gibt es da ein eleganteres weg das hinzubekommen?
Titel: Antw:[gelöst] DOIF mit Zeitintervall
Beitrag von: rabehd am 27 Juli 2022, 11:52:06
Zitat von: bartpl am 25 Juli 2022, 22:11:47
Ich verstehe leider nur den Teil mit Button # nicht...

Wenn Du einen Beitrag schreibst, dann siehst Du über dem Eingabefenster eine Reihe Buttons. Einfach mal mit der Maus drüber gehen.