Ich hätte gerne in meiner FTUI eine Uhr mit Localzeit und eine Uhr mit UTC. Bisher habe ich es so gelöst:
<li data-row="1" data-col="1" data-sizey="1" data-sizex="1">
<header>Uhr</header>
<div class="sheet">
<div class="row">
<div style="color:#f7a816"
data-type="clock"
data-format="H:i:s"
data-interval="100"
class="container bigger">
</div>
<div style="color:#044d01"
data-type="clock"
data-format="H:i:s"
data-interval="100"
data-offset="-1"
class="container bigger">
</div>
<div data-type="clock"
data-format="D d.m.Y"
data-interval="100"
class="darker large">
</div>
</div>
</li>
Ich finde es jedoch sehr lästig 2x ich Jahr die Zeitzone (data-offset) ändern zu müssen (-1 bzw -2 je nach Sommer oder Winterzeit).
Lässt sich das automatisieren oder anders lösen?
Moin,
ich habe mir in der 99_myUtils eine Routine geschrieben, die täglich per at um 03:15 Uhr aufgerufen wird.
....
# $Sommerzeit = 1 bei Sommerzeit
# $Sommerzeit = 0 bei Winterzeit
my ($Sekunde, $Minute, $Stunde, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
...
Mit $Sommerzeit hättest Du dann eine Basis für Deinen gesuchten Offset. Ich habe aber keine Ahnung, wie Du das in Deinen Code integrieren kannst - sorry !
Wenn es aktueller sein soll, muss die Routine auch noch kurz nach 02:00 Uhr aufgerufen werden, das brauche ich aber nicht.
Moin
Bernd
Vielen Dank - etwas ähnliches habe ich schon, ist aber nicht das was ich suchte:
Internals:
DEF (
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
[00:00] and
(
($mon == 2 && $mday >= 20 )
|| $mon == 3
|| $mon == 4
|| ( $mon == 5 && $mday < 21 )
)
)
DOELSEIF
(
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
[00:00] and
( ( $mon == 5 && $mday >= 21 )
|| $mon == 6
|| $mon == 7
|| ( $mon == 8 && $mday < 22 ) )
)
DOELSEIF
(
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
[00:00] and
( ( $mon == 8 && $mday >= 22 )
|| $mon == 9
|| $mon == 10
|| ( $mon == 11 && $mday < 21 ) )
)
DOELSEIF
(
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
[00:00] and
( ( $mon == 11 && $mday >= 21 )
|| $mon == 0
|| $mon == 1
|| ( $mon == 2 && $mday < 20 ) )
)
FUUID 5f6b1317-f33f-ec85-2ba0-f0a513420371e2a4
FVERSION 98_DOIF.pm:0.249050/2021-09-01
MODEL FHEM
NAME Season
NOTIFYDEV global
NR 587
NTFY_ORDER 50-Season
STATE Sommer
TYPE DOIF
VERSION 24905 2021-09-01 18:35:54
READINGS:
2021-06-22 00:00:00 cmd 2
2021-06-22 00:00:00 cmd_event timer_2
2021-06-22 00:00:00 cmd_nr 2
2020-09-23 11:27:40 mode enabled
2021-06-22 00:00:00 state summer
2021-09-05 00:00:00 timer_01_c01 06.09.2021 00:00:00
2021-09-05 00:00:00 timer_02_c02 06.09.2021 00:00:00
2021-09-05 00:00:00 timer_03_c03 06.09.2021 00:00:00
2021-09-05 00:00:00 timer_04_c04 06.09.2021 00:00:00
Regex:
accu:
collect:
attr:
cmdState:
0:
spring
1:
summer
2:
autumn
3:
winter
waitdel:
condition:
0 my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); ::DOIF_time_once($hash,0,$wday) and ( ($mon == 2 && $mday >= 20 ) || $mon == 3 || $mon == 4 || ( $mon == 5 && $mday < 21 ) )
1 my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); ::DOIF_time_once($hash,1,$wday) and ( ( $mon == 5 && $mday >= 21 ) || $mon == 6 || $mon == 7 || ( $mon == 8 && $mday < 22 ) )
2 my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); ::DOIF_time_once($hash,2,$wday) and ( ( $mon == 8 && $mday >= 22 ) || $mon == 9 || $mon == 10 || ( $mon == 11 && $mday < 21 ) )
3 my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); ::DOIF_time_once($hash,3,$wday) and ( ( $mon == 11 && $mday >= 21 ) || $mon == 0 || $mon == 1 || ( $mon == 2 && $mday < 20 ) )
days:
do:
0:
0
1:
0
2:
0
3:
0
4:
helper:
DEVFILTER ^global$
NOTIFYDEV global
event timer_2
globalinit 1
last_timer 4
sleeptimer -1
timerdev
timerevent timer_2
triggerDev
timerevents:
timer_2
timereventsState:
timer_2
triggerEvents:
timer_2
triggerEventsState:
timer_2
interval:
intervalfunc:
localtime:
0 1630879200
1 1630879200
2 1630879200
3 1630879200
perlblock:
realtime:
0 00:00:00
1 00:00:00
2 00:00:00
3 00:00:00
time:
0 00:00:00
1 00:00:00
2 00:00:00
3 00:00:00
timeCond:
0 0
1 1
2 2
3 3
timer:
0 0
1 0
2 0
3 0
timers:
0 0
1 1
2 2
3 3
triggertime:
1630879200:
localtime 1630879200
hash:
uiState:
uiTable:
Attributes:
cmdState spring|summer|autumn|winter
event-on-change-reading state
eventMap spring:Frühling summer:Sommer autumn:Herbst winter:Winter initialized:---
group Jahreszeit
icon scene_garden
room Kalender