Hallo Leute,
mir ist heute am 25.10.2026 (Beginn Winterzeit) aufgefallen, dass mit "get Termine today" nichts angezeigt wird.
Termine.holiday - Teilausschnitt von der Typ 5 Definition:
5 -1 Sun 04 01 Beginn Sommerzeit
5 1 Sun 05 07 Muttertag
5 1 Sun 06 07 Vatertag
5 1 Sun 09 30 Erntedankfest
5 -1 Sun 11 01 Beginn Winterzeit
5 -1 Fri 11 30 Black Friday
5 -4 Sun 12 25 1. Adventsonntag
5 -3 Sun 12 25 2. Adventsonntag
5 -2 Sun 12 25 3. Adventsonntag
5 -1 Sun 12 25 4. Adventsonntag
list Termine
Internals:
FUUID 61dd4ad2-f33f-3e1e-636e-73dbdf9bd1e98742
FVERSION 95_holiday.pm:0.251870/2021-11-06
HOLIDAYFILE ./FHEM/Termine.holiday
NAME Termine
NR 584
READONLY 0
STATE none
TRIGGERTIME 1792965602.08219
TYPE holiday
eventCount 1
READINGS:
2026-10-25 02:18:15 state none
2026-10-25 02:18:15 today none
2026-10-25 02:18:15 tomorrow none
2026-10-25 02:18:15 yesterday none
Attributes:
alias sonstige Termine
group Termine
icon time_calendar
room Kalender
sortby 3
Ich habe mal ein bisschen im Code von 95_holiday.pm herumgespielt und beim Aufruf von "mktime" den "isdst"-Wert von -1 auf 0 geändert.
Dann hat "get Termine today" den richtigen Wert "Beginn Winterzeit" geliefert.
diff -u 95_holiday.pm_test 95_holiday.pm
--- 95_holiday.pm_test 2026-10-25 12:24:40.844788215 +0100
+++ 95_holiday.pm 2026-10-25 11:50:45.363313206 +0100
@@ -190,11 +190,11 @@
my $yday=$fd[7];
# create time object of target date - mktime counts months and their
# days from 0 instead of 1, so subtract 1 from each
- my $tgt=mktime(0,0,1,$a[4],$a[3]-1,$fd[5],0,0,0);
+ my $tgt=mktime(0,0,1,$a[4],$a[3]-1,$fd[5],0,0,-1);
my $tgtmin=$tgt;
my $tgtmax=$tgt;
my $weeksecs=7*24*60*60; # 7 days, 24 hours, 60 minutes, 60seconds each
- my $cd=mktime(0,0,1,$fd[3],$fd[4],$fd[5],0,0,0);
+ my $cd=mktime(0,0,1,$fd[3],$fd[4],$fd[5],0,0,-1);
if ( $a[1] =~ /^-([0-9])*$/ ) {
$tgtmin -= $1*$weeksecs; # Minimum: target date minus $1 weeks
$tgtmax = $tgtmin+$weeksecs; # Maximum: one week after minimum
Muss ich irgendwas spezielles bezüglich Zeitzone auf meinem Raspi einstellen, funktioniert die perl-Funktion mktime nicht richtig oder muss 95_holiday.pm angepasst werden?
Danke für die Unterstützung
Robert
Zitat von: bertl am 25 Oktober 2026, 12:50:04Termine.holiday - Teilausschnitt von der Typ 5 Definition:
Da die Umstellung auf Winterzeit immer am letzten Sonntag im Oktober stattfindet, solltest Du vielleicht besser eine Typ3 Definition verwenden, die genau dafür gedacht ist.
3 -1 Sun 10 Beginn Winterzeit
Zitat von: bertl am 25 Oktober 2026, 12:50:04oder muss 95_holiday.pm angepasst werden?
Vermutlich liegt das Problem in der Tatsache, dass der Bezugstag 01.11. in diesem Jahr selbst ein Sonntag ist und deshalb die Zählung bei -1 nicht wie erwartet arbeitet.
Wenn Du in der Definition vom Typ 5 testweise mit -2 arbeitest,
5 -2 Sun 11 01 Beginn Winterzeitwird für heute korrekt der Beginn der Winterzeit ausgegeben.
Das wird sich Rudi als Modulautor sicher bei Gelegenheit anschauen.