FHEM > Codeschnipsel

Sommerzeit/Normalzeit als DOIF Objekt

<< < (6/6)

Jamo:
Hallo Damian,
ist bei mir ähnlich, im Moment ist ja noch Sommerzeit, aber ein 'set SommerzeitWinterzeit checkall' ergibt "Winter" für heute:



--- Code: ---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
--- Ende Code ---


--- Code: ---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
--- Ende Code ---

Damian:

--- Zitat von: Jamo am 14 Oktober 2021, 19:06:11 ---ist bei mir ähnlich, im Moment ist ja noch Sommerzeit, aber ein 'set SommerzeitWinterzeit checkall' ergibt "Winter" für heute:

--- Ende Zitat ---

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

Damian:

--- Zitat von: Doogy am 14 Oktober 2021, 16:43:00 ---und hier das list


--- Code: ---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
 ...

--- Ende Code ---

--- Ende Zitat ---

hier funktioniert alles richtig. Um 02:00 Uhr wurde der Zustand cmd_1 also "Sommer" gesetzt.

Jamo:

--- Zitat von: Damian am 16 Oktober 2021, 11:14:45 ---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".

--- Ende Zitat ---
Ja, stimmt, sorry das war Unsinn was ich da gemacht habe. Mea Culpa!

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln