Zeitintervall ([6:00-10:00]) auch Zwischendurch aktivieren

Begonnen von T3mplate, 20 Januar 2018, 14:34:33

Vorheriges Thema - Nächstes Thema

T3mplate

Ich verwende DOIF um meine Pumpe vor der Zirkulationspumpe zu schalten.

Internals:
   DEF        ([06:30-08:00] or [11:30-13:00|7] or [16:30-20:30]) (set pump on) (set pump off) DOELSE (set pump off)
   NAME       Pumpe_Einschalten
   NR         643
   NTFY_ORDER 50-Pumpe_Einschalten
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-01-20 14:15:13   cmd             0
     2018-01-20 14:15:13   mode            enabled
     2018-01-20 14:15:13   state           initialized
     2018-01-20 14:15:13   timer_01_c01    21.01.2018 06:30:00
     2018-01-20 14:15:13   timer_02_c01    21.01.2018 08:00:00
     2018-01-20 14:15:13   timer_03_c01    21.01.2018 11:30:00|7
     2018-01-20 14:15:13   timer_04_c01    21.01.2018 13:00:00|7
     2018-01-20 14:15:13   timer_05_c01    20.01.2018 16:30:00
     2018-01-20 14:15:13   timer_06_c01    20.01.2018 20:30:00
   Regex:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms) or DOIF_time($hash,2,3,$wday,$hms,"7") or DOIF_time($hash,4,5,$wday,$hms)
   days:
     2          7
     3          7
   devices:
   do:
     0:
       0          set pump on
       1          set pump off
     1:
       0          set pump off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 6
     sleeptimer -1
Attributes:
   group      Pumpe
   icon       Ventilator_wind
   repeatcmd  900
   room       Dachgeschoss
   wait       0,250

Zu den festgelegten Zeiten wird die Pumpe immer 250 Sekunden angeschaltet, dann ausgeschaltet und das wird alle 900 Sekunden wiederholt.

Jetzt möchte ich das gesamte Modul aber auch deaktivieren, z.B. wenn wir abwesend sind.
Wenn wir jetzt aber während eines Zeitraum (z.B. 18:00 bei [16:30-20:30]) zurückkommen, dann startet die Pumpe nicht, weil ja nur am Start und Ende getriggert wird.

Gibt es eine Möglichkeit, dass der Vorgang auch gestartet wird, wenn das Modul erst im Zeitraum initialisiert wird?

KernSani

Du brauchst ein triggerndes Event, also z.B. deinen Homestatus
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ellert

Zitat von: T3mplate am 20 Januar 2018, 14:34:33
Ich verwende DOIF um meine Pumpe vor der Zirkulationspumpe zu schalten.

Internals:
   DEF        ([06:30-08:00] or [11:30-13:00|7] or [16:30-20:30]) (set pump on) (set pump off) DOELSE (set pump off)
   NAME       Pumpe_Einschalten
   NR         643
   NTFY_ORDER 50-Pumpe_Einschalten
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-01-20 14:15:13   cmd             0
     2018-01-20 14:15:13   mode            enabled
     2018-01-20 14:15:13   state           initialized
     2018-01-20 14:15:13   timer_01_c01    21.01.2018 06:30:00
     2018-01-20 14:15:13   timer_02_c01    21.01.2018 08:00:00
     2018-01-20 14:15:13   timer_03_c01    21.01.2018 11:30:00|7
     2018-01-20 14:15:13   timer_04_c01    21.01.2018 13:00:00|7
     2018-01-20 14:15:13   timer_05_c01    20.01.2018 16:30:00
     2018-01-20 14:15:13   timer_06_c01    20.01.2018 20:30:00
   Regex:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms) or DOIF_time($hash,2,3,$wday,$hms,"7") or DOIF_time($hash,4,5,$wday,$hms)
   days:
     2          7
     3          7
   devices:
   do:
     0:
       0          set pump on
       1          set pump off
     1:
       0          set pump off
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 6
     sleeptimer -1
Attributes:
   group      Pumpe
   icon       Ventilator_wind
   repeatcmd  900
   room       Dachgeschoss
   wait       0,250

Zu den festgelegten Zeiten wird die Pumpe immer 250 Sekunden angeschaltet, dann ausgeschaltet und das wird alle 900 Sekunden wiederholt.

Jetzt möchte ich das gesamte Modul aber auch deaktivieren, z.B. wenn wir abwesend sind.
Wenn wir jetzt aber während eines Zeitraum (z.B. 18:00 bei [16:30-20:30]) zurückkommen, dann startet die Pumpe nicht, weil ja nur am Start und Ende getriggert wird.

Gibt es eine Möglichkeit, dass der Vorgang auch gestartet wird, wenn das Modul erst im Zeitraum initialisiert wird?

(<Deine Zeitspannen> or (<Deine Zeitspannen nicht triggernd>) and [<Eventtrigger auf "present">])

Syntax "Eventtrigger" und "nicht triggernd" in der deutschsprachigen Befehlsreferenz.

T3mplate

Zitat von: Ellert am 20 Januar 2018, 15:19:36
(<Deine Zeitspannen> or (<Deine Zeitspannen nicht triggernd>) and [<Eventtrigger auf "present">])

Syntax "Eventtrigger" und "nicht triggernd" in der deutschsprachigen Befehlsreferenz.

Um es mal praktisch zu machen:

[16:30-20:30] or ([?16:30-20:30] and [Homestatus] eq ,,home")


Wenn ich aber den Syntax richtig verstehe, dann führt das [?16:30-20:30] auch nicht zum beenden des Zeitraums. Oder?

Ellert

#4
Deine Anforderung lautete "Gibt es eine Möglichkeit, dass der Vorgang auch gestartet wird", das wird zusätzlich erfüllt, wenn Dauf Events triggerst.

Viel spannender finde ich die Frage, die schon das ursprüngliche DOIF betrifft:"Was passiert, wenn das DOIF disabled wird während die Pumpe läuft?".

T3mplate

Zitat von: Ellert am 20 Januar 2018, 17:38:48
Deine Anforderung lautete "Gibt es eine Möglichkeit, dass der Vorgang auch gestartet wird", das wird zusätzlich erfüllt, wenn Dauf Events triggerst.

Viel spannender finde ich die Frage, die schon das ursprüngliche DOIF betrifft:"Was passiert, wenn das DOIF disabled wird während die Pumpe läuft?".

Du hast natürlich mit beidem recht.

Neuer Versuch:

Internals:
   DEF        (([?HomeStatus] eq "home" and ([6:30] or [11:30|7] or [16:30])) or
([HomeStatus] eq "home" and ([?06:30-07:55] or [?11:30-12:55|7] or [?16:30-20:25])))
(set pump on) (set pump off)
DOELSEIF ([8:00] or [13:00] or [20:30] or ([HomeStatus] ne "home")) (set pump off)


Damit sollte es jetzt noch immer zu den gleichen Zeiten angehen, zusätzlich aber auch während der Zeiträume, wenn auf ,,Home" gewechselt wird.
Das ausschalten erfolgt jetzt pauschal zu den Uhrzeiten, egal wie es eingeschaltet wurde.
Durch die neue Verknüpfung mit dem Homestatus muss ich das Modul nicht mehr deaktivieren.

Übersehe ich etwas?

Per

Zitat von: T3mplate am 20 Januar 2018, 22:32:05

and ([?06:30-07:55] or [?11:30-12:55|7] or [?16:30-20:25])))

Statt auf die Zeiten würde ich auf den Zustand der Pumpe bzw. des DOIF prüfen. Sonst zieht jede kleine Änderung einen Rattenschwanz hinter sich her.
Das DOELSIF könnte dann evtl. auch wieder durch DOELSE ohne Bedingungen ersetzt werden.