Autor Thema: Sommerzeit/Normalzeit als DOIF Objekt  (Gelesen 9531 mal)

Offline Xell1984

  • Full Member
  • ***
  • Beiträge: 171
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #15 am: 06 März 2018, 21:58:28 »
Ich denke, den Aufwand kannst du dir sparen. Ich habe die Zeitumstellung im Modul berücksichtigt ;)

Ah ok, schon länger? Danke! :)
Razpberry on Raspberry Pi 3 mit Raspian Jessy

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #16 am: 06 März 2018, 22:02:27 »
Schon immer.

Bsp.:

DOIF ([07:00) (...)

Das Modul triggert immer um sieben Uhr vor und nach der Zeitumstellung.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Xell1984

  • Full Member
  • ***
  • Beiträge: 171
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #17 am: 07 März 2018, 08:04:49 »
Schon immer.

Bsp.:

DOIF ([07:00) (...)

Das Modul triggert immer um sieben Uhr vor und nach der Zeitumstellung.

Guten Morgen,

ich hab gestern nicht richtig über deine Antwort nachgedacht.

Genau das ist in meinem Fall nämlich das "Problem" am Tag der Zeitumstellung.

Meine Jalousienautomatik läuft nicht mit Festen Uhrzeiten sondern z.B. mit Twilight (Sunrise) in einem Bestimmten Zeitrahmen. D.h. am Tag der Zeitumstelllung Würde nach alter Zeit der Timer auf z.B. 6:50 generiert, aber da ist es noch Dunkel, weil nach neuer Zeit müsste dann die Jalousie erst um 7:50 Uhr Hochfahren. Abends fährt sie dann um 17 Uhr runter, obwohl Sie nach Zeitumstellung erst gegen 18 Uhr runter fahren müsste. Ist klagen auf Hohem Niveau, da es genau 2 Tage im Jahr betrifft wo meine Jalousienautomatik nicht Sauber läuft.

Daher müsste ich entweder die DOIFs nach der Zeitumstellung neu Initialisieren oder FHEM neustarten lassen (dann werden vermutlich ja auch alle Timer neu generiert?).

Der Fehler entsteht wohl im twilight Modul.

« Letzte Änderung: 07 März 2018, 08:48:49 von Xell1984 »
Razpberry on Raspberry Pi 3 mit Raspian Jessy

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #18 am: 07 März 2018, 11:29:34 »
Guten Morgen,

ich hab gestern nicht richtig über deine Antwort nachgedacht.

Genau das ist in meinem Fall nämlich das "Problem" am Tag der Zeitumstellung.

Meine Jalousienautomatik läuft nicht mit Festen Uhrzeiten sondern z.B. mit Twilight (Sunrise) in einem Bestimmten Zeitrahmen. D.h. am Tag der Zeitumstelllung Würde nach alter Zeit der Timer auf z.B. 6:50 generiert, aber da ist es noch Dunkel, weil nach neuer Zeit müsste dann die Jalousie erst um 7:50 Uhr Hochfahren. Abends fährt sie dann um 17 Uhr runter, obwohl Sie nach Zeitumstellung erst gegen 18 Uhr runter fahren müsste. Ist klagen auf Hohem Niveau, da es genau 2 Tage im Jahr betrifft wo meine Jalousienautomatik nicht Sauber läuft.

Daher müsste ich entweder die DOIFs nach der Zeitumstellung neu Initialisieren oder FHEM neustarten lassen (dann werden vermutlich ja auch alle Timer neu generiert?).

Der Fehler entsteht wohl im twilight Modul.

Wenn du nach der Zeitumstellung andere Zeiten haben willst, als vorher, dann wirst du dich selbst drum kümmern müssen, in dem du indirekte Zeiten benutzt, die du, wie auch immer anpassen musst, dann wird automatisch die Zeit im Modul neuberechnet.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline chq

  • Full Member
  • ***
  • Beiträge: 479
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #19 am: 16 Mai 2021, 09:21:52 »
Hallo,

ich habe auf der Suche nach der Bedeutung von "istdst" brav in der ComandRef gesucht und habe (nur) das hier gefunden:

IsDST = 1 if running on daylight savings time, 0 otherwise

Ich bin auf der Suche nach einer Möglichkeit, innerhalb eines DOIFs nach Sommer- und Winterzeit abzufragen.

Was ist "daylight savings time"?

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1075
    • Cyanide & Happiness
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #20 am: 16 Mai 2021, 13:26:48 »
Was ist "daylight savings time"?
Sommerzeit.
Zitat
Daylight Saving Time, siehe Sommerzeit
https://de.wikipedia.org/wiki/DST

$isdst müsste 1 wiedergeben, wenn Sommerzeit (DST) gesetzt ist.
@Damian: hängt das von den Systemzeiteinstellungen oder DOIF ab?
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@aculfw | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl
Gefällt mir Gefällt mir x 1 Liste anzeigen

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #21 am: 16 Mai 2021, 14:24:46 »
Sommerzeit.https://de.wikipedia.org/wiki/DST

$isdst müsste 1 wiedergeben, wenn Sommerzeit (DST) gesetzt ist.
@Damian: hängt das von den Systemzeiteinstellungen oder DOIF ab?

$isdst wird vom System bestimmt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF
Informativ Informativ x 1 Liste anzeigen

Offline Doogy

  • New Member
  • *
  • Beiträge: 3
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #22 am: 13 Oktober 2021, 16:49:39 »
Hallo zusammen,

ich habe seitdem es "Winterzeit" ist folgendes Problem.
Ich nutze den Codeschnipsel zur Ausgabe ob Winter- oder Sommerzeit schon seit ein paar Jahren, jetzt ist es allerdings so, dass er nach der automatischen Abfrage auf "Sommer" steht, wenn ich aber ein manuelles "Checkall" mache, wird es wieder Winter.

Kann mir dabei jemand helfen??

VG Felix

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #23 am: 13 Oktober 2021, 17:20:00 »
Immer ein List vom vermeintlich falschen Zustand des Moduls posten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Doogy

  • New Member
  • *
  • Beiträge: 3
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #24 am: 14 Oktober 2021, 16:43:00 »
Hallo Damian,

hier der Auszug aus der fhem.cfg

define SommerzeitWinterzeit DOIF (([02:00] or [03:00]) and $isdst) DOELSE
setuuid SommerzeitWinterzeit 5e83080c-f33f-64a8-2ab9-528ef299b3ddef2f
attr SommerzeitWinterzeit cmdState summer|winter
attr SommerzeitWinterzeit event-on-change-reading state
attr SommerzeitWinterzeit eventMap winter:Winter summer:Sommer initialized:---
attr SommerzeitWinterzeit icon time_clock
attr SommerzeitWinterzeit room Kalender,Rollladen

und hier das list

Internals:
   DEF        (([02:00] or [03:00]) and $isdst) DOELSE
   FUUID      5e83080c-f33f-64a8-2ab9-528ef299b3ddef2f
   MODEL      FHEM
   NAME       SommerzeitWinterzeit
   NOTIFYDEV  global
   NR         276
   NTFY_ORDER 50-SommerzeitWinterzeit
   STATE      Sommer
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-14 02:00:00   cmd             1
     2021-10-14 02:00:00   cmd_event       timer_1
     2021-10-14 02:00:00   cmd_nr          1
     2021-10-13 16:26:37   mode            enabled
     2021-10-14 02:00:00   state           summer
     2021-10-14 02:00:00   timer_01_c01    15.10.2021 02:00:00
     2021-10-14 03:00:00   timer_02_c01    15.10.2021 03:00:00
   Regex:
     accu:
     collect:
   attr:
     cmdState:
       0:
         summer
       1:
         winter
     wait:
     waitdel:
   condition:
     0          (::DOIF_time_once($hash,0,$wday) or ::DOIF_time_once($hash,1,$wday)) and $isdst
   days:
   do:
     0:
       0         
     1:
       0         
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     triggerDev
     timerevents:
       timer_2
     timereventsState:
       timer_2
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   interval:
   intervalfunc:
   localtime:
     0          1634256000
     1          1634259600
   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:
     1634256000:
       localtime  1634256000
       hash:
     1634259600:
       localtime  1634259600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   summer|winter
   event-on-change-reading state
   eventMap   winter:Winter summer:Sommer initialized:---
   icon       time_clock
   room       Kalender,Rollladen

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1408
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #25 am: 14 Oktober 2021, 19:06:11 »
Hallo Damian,
ist bei mir ähnlich, im Moment ist ja noch Sommerzeit, aber ein 'set SommerzeitWinterzeit checkall' ergibt "Winter" für heute:


defmod SommerzeitWinterzeit DOIF (([02:00] or [03:00]) and $isdst) ({fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.sommerzeit /opt/fhem/www/pgm2/station-clock.js\"")}) DOELSE({fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.winterzeit /opt/fhem/www/pgm2/station-clock.js\"")})
attr SommerzeitWinterzeit cmdState summer|winter
attr SommerzeitWinterzeit comment (([02:00] or [03:00]) and $isdst) DOELSE()
attr SommerzeitWinterzeit event-on-change-reading state
attr SommerzeitWinterzeit eventMap eventMap summer:Sommer winter:Winter initialized:---
attr SommerzeitWinterzeit room System,Weather

setstate SommerzeitWinterzeit Winter
setstate SommerzeitWinterzeit 2021-10-14 19:03:15 cmd 2
setstate SommerzeitWinterzeit 2021-10-14 19:03:15 cmd_event SommerzeitWinterzeit
setstate SommerzeitWinterzeit 2021-10-14 19:03:15 cmd_nr 2
setstate SommerzeitWinterzeit 2021-10-14 19:03:15 state winter
setstate SommerzeitWinterzeit 2021-10-14 02:00:00 timer_01_c01 15.10.2021 02:00:00
setstate SommerzeitWinterzeit 2021-10-14 03:00:00 timer_02_c01 15.10.2021 03:00:00

Internals:
   DEF        (([02:00] or [03:00]) and $isdst) ({fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.sommerzeit /opt/fhem/www/pgm2/station-clock.js\"")}) DOELSE({fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.winterzeit /opt/fhem/www/pgm2/station-clock.js\"")})
   FUUID      5c42ee3e-f33f-97bf-ef38-fbfe31549a9430d7
   MODEL      FHEM
   NAME       SommerzeitWinterzeit
   NOTIFYDEV  global
   NR         45
   NTFY_ORDER 50-SommerzeitWinterzeit
   STATE      Winter
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-14 19:03:15   cmd             2
     2021-10-14 19:03:15   cmd_event       SommerzeitWinterzeit
     2021-10-14 19:03:15   cmd_nr          2
     2021-10-14 19:03:15   state           winter
     2021-10-14 02:00:00   timer_01_c01    15.10.2021 02:00:00
     2021-10-14 03:00:00   timer_02_c01    15.10.2021 03:00:00
   Regex:
     accu:
     collect:
   attr:
     cmdState:
       0:
         summer
       1:
         winter
     wait:
     waitdel:
   condition:
     0          (::DOIF_time_once($hash,0,$wday) or ::DOIF_time_once($hash,1,$wday)) and $isdst
   days:
   do:
     0:
       0          {fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.sommerzeit /opt/fhem/www/pgm2/station-clock.js\"")}
     1:
       0          {fhem("\"cp /opt/fhem/www/pgm2/station-clock.js.winterzeit /opt/fhem/www/pgm2/station-clock.js\"")}
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     timerevents
     timereventsState
     triggerDev
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: SommerzeitWinterzeit
       winter
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: SommerzeitWinterzeit
       state: winter
   interval:
   intervalfunc:
   localtime:
     0          1634256000
     1          1634259600
   perlblock:
   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:
     1634256000:
       localtime  1634256000
       hash:
     1634259600:
       localtime  1634259600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   summer|winter
   comment    (([02:00] or [03:00]) and $isdst) DOELSE()
   event-on-change-reading state
   eventMap   eventMap summer:Sommer winter:Winter initialized:---
   room       System,Weather
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #26 am: Heute um 11:14:45 »
ist bei mir ähnlich, im Moment ist ja noch Sommerzeit, aber ein 'set SommerzeitWinterzeit checkall' ergibt "Winter" für heute:

Abfrage per checkall macht bei dieser Definition keinen Sinn, denn Zeitpunkttrigger [02:00] bzw. [03:00] sind ja nur zu diesem Triggerzeitpunkt wahr und sonst nicht, daher ergibt die AND-Verknüpfung logischerweise false, was zu cmd_2 führt und damit "Winter".
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Online Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8665
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #27 am: Heute um 11:20:51 »
und hier das list

Internals:
   DEF        (([02:00] or [03:00]) and $isdst) DOELSE
   FUUID      5e83080c-f33f-64a8-2ab9-528ef299b3ddef2f
   MODEL      FHEM
   NAME       SommerzeitWinterzeit
   NOTIFYDEV  global
   NR         276
   NTFY_ORDER 50-SommerzeitWinterzeit
   STATE      Sommer
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-14 02:00:00   cmd             1
     2021-10-14 02:00:00   cmd_event       timer_1
     2021-10-14 02:00:00   cmd_nr          1
     2021-10-13 16:26:37   mode            enabled
     2021-10-14 02:00:00   state           summer
     2021-10-14 02:00:00   timer_01_c01    15.10.2021 02:00:00
     2021-10-14 03:00:00   timer_02_c01    15.10.2021 03:00:00
 ...

hier funktioniert alles richtig. Um 02:00 Uhr wurde der Zustand cmd_1 also "Sommer" gesetzt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Jamo

  • Hero Member
  • *****
  • Beiträge: 1408
Antw:Sommerzeit/Normalzeit als DOIF Objekt
« Antwort #28 am: Heute um 13:59:46 »
Abfrage per checkall macht bei dieser Definition keinen Sinn, denn Zeitpunkttrigger [02:00] bzw. [03:00] sind ja nur zu diesem Triggerzeitpunkt wahr und sonst nicht, daher ergibt die AND-Verknüpfung logischerweise false, was zu cmd_2 führt und damit "Winter".
Ja, stimmt, sorry das war Unsinn was ich da gemacht habe. Mea Culpa!
Linux Debian, Homematic (UART/HMUSB), HUEBridge, Zigbee, FB, Alexa (fhem-lazy), livetracking, fhemApp Frontend für FHEM

 

decade-submarginal