FHEM > Codeschnipsel

Sommerzeit/Normalzeit als DOIF Objekt

<< < (3/6) > >>

Damian:

--- Zitat von: tik-tak-tok am 30 März 2017, 18:39:23 ---Dankeschön!

DOIFs entsprechend geändert :-)

Scheint zu funktionieren.
Wie könnte ich es nun gestalten das nicht mehrfach die Profile übertragen werden?
Ich sag mal, sobald Sommerzeit eingetreten ist und die Profile gesendet wurden...ist das ja schick und OK, aber dann könnte der Befehl ja "pausieren" bis "Winter bzw. normal" eintritt.

Danke & Grüße

--- Ende Zitat ---

ja, es gibt bei dieser Lösung zwei Zeittrigger pro Tag für das SommerzeitWinterzeit-DOIF. Der Zustand ändert sich nicht, d.h. für alle anderen gibt es keine Trigger. Im Vergleich zu tausend anderen Ereignissen, ist dieser Belastung zu vernachlässigen.
 

tik-tak-tok:
Danke für deine Antwort! :-)

Okay,...also, da sich der State ja so gesehen nicht ändert bekomme ich mit der 1% Regel beim Senden über mein Homematic Modul diesbezüglich keine Probleme?
Heißt also auch, heute wird "Sommer" erkannt, heute werden die gesetzten Sommer Befehle gesetzt,...und am nä. Tag passiert nichts, da ja zwischenzeitlich der State "Sommer" nicht anders war, richtig gedeutet?

Danke :-)

Damian:

--- Zitat von: tik-tak-tok am 30 März 2017, 20:33:28 ---Danke für deine Antwort! :-)

Okay,...also, da sich der State ja so gesehen nicht ändert bekomme ich mit der 1% Regel beim Senden über mein Homematic Modul diesbezüglich keine Probleme?
Heißt also auch, heute wird "Sommer" erkannt, heute werden die gesetzten Sommer Befehle gesetzt,...und am nä. Tag passiert nichts, da ja zwischenzeitlich der State "Sommer" nicht anders war, richtig gedeutet?

Danke :-)


--- Ende Zitat ---

ja.  Aber selbst, wenn sich der Zustand ändern würde, würde das ja nur um 2:00  und 3:00 Uhr geschehen, da bist du von der 1% Regel ziemlich weit entfernt ;)

Xell1984:
Guten Abend,

im Bezug auf das obere habe ich eine Frage:

Da am Tag der Zeitumstellung die Jalousien noch in der alten Zeit liegen (Timer wird ja um Mitternacht gesetzt) möchte ich gern nach der Zeitumstellung die entsprechenden DOIF zurück setzen (Initialiseren) um die Timer neu zu generieren. Jeweils am Tag der Umstellung.

Das oben stehende DOIF mit CmdState Winter|Sommer  funktioniert


--- Code: ---Internals:
   CFGFN     
   DEF        (([02:00] or [03:00]) and $isdst) DOELSE
   NAME       SommerzeitWinterzeit
   NR         5808
   NTFY_ORDER 50-SommerzeitWinterzeit
   STATE      Sommer
   TYPE       DOIF
   READINGS:
     2018-03-06 18:26:49   cmd             1
     2018-03-06 18:26:49   cmd_event       set_Sommer_cmd_1
     2018-03-06 18:26:49   cmd_nr          1
     2018-03-06 17:34:06   mode            enabled
     2018-03-06 18:26:49   state           Sommer
     2018-03-06 17:33:18   timer_01_c01    07.03.2018 02:00:00
     2018-03-06 17:33:18   timer_02_c01    07.03.2018 03:00:00
   Regex:
   condition:
     0          (DOIF_time_once($hash,0,$wday) or DOIF_time_once($hash,1,$wday)) and $isdst
   days:
   devices:
   do:
     0:
       0         
     1:
       0         
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 2
     sleeptimer -1
   itimer:
   localtime:
     0          1520384400
     1          1520388000
   realtime:
     0          02:00:00
     1          03:00:00
   time:
     0          02:00:00
     1          03:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1520384400:
       localtime  1520384400
       hash:
     1520388000:
       localtime  1520388000
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   Sommer|Winter

--- Ende Code ---

Aber wie sollte das DOIF aussehen für die Neu Initialisierung der Timer? Würde das so funktionieren und Sinn machen? Geht es besser? Ich hab zum Testen mal einen Dummy angelegt.


--- Code: ---Internals:
   CFGFN     
   DEF        ([SommerzeitWinterzeit] eq "Winter") (set SommerWinter.Dummy Winter )
DOELSEIF
([SommerzeitWinterzeit] eq "Sommer") (set SommerWinter.Dummy Sommer )

   NAME       WinterSommer_Initialisierung
   NR         7421
   NTFY_ORDER 50-WinterSommer_Initialisierung
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2018-03-06 18:44:44   Device          SommerzeitWinterzeit
     2018-03-06 18:44:44   cmd             2
     2018-03-06 18:44:44   cmd_event       SommerzeitWinterzeit
     2018-03-06 18:44:44   cmd_nr          2
     2018-03-06 18:44:44   e_SommerzeitWinterzeit_STATE Sommer
     2018-03-06 18:43:48   mode            enabled
     2018-03-06 18:44:44   state           cmd_2
   Regex:
   condition:
     0          InternalDoIf($hash,'SommerzeitWinterzeit','STATE') eq "Winter"
     1          InternalDoIf($hash,'SommerzeitWinterzeit','STATE') eq "Sommer"
   devices:
     0           SommerzeitWinterzeit
     1           SommerzeitWinterzeit
     all         SommerzeitWinterzeit
   do:
     0:
       0          set SommerWinter.Dummy Winter
     1:
       0          set SommerWinter.Dummy Sommer
     2:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      cmd_nr: 1,cmd: 1,cmd_event: set_Sommer_cmd_1,Sommer
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   SommerzeitWinterzeit
     timerevent cmd_nr: 1,cmd: 1,cmd_event: set_Sommer_cmd_1,Sommer
     triggerDev SommerzeitWinterzeit
     timerevents:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_Sommer_cmd_1
       Sommer
     timereventsState:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_Sommer_cmd_1
       state: Sommer
     triggerEvents:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_Sommer_cmd_1
       Sommer
     triggerEventsState:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_Sommer_cmd_1
       state: Sommer
   internals:
     0           SommerzeitWinterzeit:STATE
     1           SommerzeitWinterzeit:STATE
     all         SommerzeitWinterzeit:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:

--- Ende Code ---

Vielen Dank für den Input.

Damian:
Ich denke, den Aufwand kannst du dir sparen. Ich habe die Zeitumstellung im Modul berücksichtigt ;)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln