57_Calendar.pm: keyword BYSETPOS in RRULE ... is not supported

Begonnen von hydrotec, 27 März 2021, 11:48:58

Vorheriges Thema - Nächstes Thema

hydrotec

Hallo miteinander,

in Outlook habe ich mir einen Kalender mit einer Terminserie erstellt, welcher mir eine Erinnerung zur Zeitumstellung liefert.
(Kalender beinhaltet nur die zwei Termine im März und Oktober)
Beispielhaft der Termin im März

Termin
Beginn: 02:00
Ende: 03:00
Dauer: 1 Stunde
Serienmuster
Jährlich
Alle 1 Jahre
Am: letzten Sonntag im März
Seriendauer
Beginn: So 31.03.2013
Kein Enddatum


Diesen Kalender synchronisiere ich mit Nextcloud.
Das funktioniert auch ohne Probleme.

Inhalt .ics

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
PRODID:-//SabreDAV//SabreDAV//EN
X-WR-CALNAME:Zeitumstellung
X-APPLE-CALENDAR-COLOR:#1E78C1
REFRESH-INTERVAL;VALUE=DURATION:PT4H
X-PUBLISHED-TTL:PT4H
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=10
TZNAME:Mitteleuropäische Zeit
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3
TZNAME:Mitteleuropäische Sommerzeit
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=Max Mustermann;ROLE=REQ-PARTICIPANT;RSVP=T
RUE;SCHEDULE-AGENT=CLIENT:mailto:example@domain.com
CLASS:PUBLIC
DESCRIPTION:Die Regeln für die Zeitumstellung\nFür die Sommerzeit gilt: D
ie Zeitumstellung findet am letzten Sonntag im März statt. Dabei wird um
2:00 Uhr die Uhr um eine Stunde vorgestellt. Das bedeutet: "Die Nacht ist
eine Stunde kürzer". \nFür die Winterzeit (Normalzeit) gilt: Die Zeitums
tellung findet am letzten Sonntag im Oktober statt. Um 3:00 Uhr wird die U
hr um eine Stunde zurückgestellt. Das bedeutet: "Die Nacht ist eine Stund
e länger". \n\nQuelle: http://www.zeitumstellung.de/regeln-zeitumstellung
.html\n\n
DTEND;TZID=W. Europe Standard Time:20130331T040000
DTSTAMP:20201023T063344Z
DTSTART;TZID=W. Europe Standard Time:20130331T030000
LOCATION:Deutschland
PRIORITY:5
RRULE:FREQ=YEARLY;BYDAY=SU;BYMONTH=3;BYSETPOS=-1
SEQUENCE:0
SUMMARY:Zeitumstellung Winterzeit -> Sommerzeit
TRANSP:TRANSPARENT
UID:4b19193f-39b8-420a-aff4-5bb07f99becd
X-MICROSOFT-CDO-BUSYSTATUS:FREE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT12H
END:VALARM
END:VEVENT
BEGIN:VEVENT
ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=Max Mustermann;ROLE=REQ-PARTICIPANT;RSVP=T
RUE;SCHEDULE-AGENT=CLIENT:mailto:example@domain.com
CLASS:PUBLIC
DESCRIPTION:Die Regeln für die Zeitumstellung\nFür die Sommerzeit gilt: D
ie Zeitumstellung findet am letzten Sonntag im März statt. Dabei wird um
2:00 Uhr die Uhr um eine Stunde vorgestellt. Das bedeutet: "Die Nacht ist
eine Stunde kürzer". \nFür die Winterzeit (Normalzeit) gilt: Die Zeitums
tellung findet am letzten Sonntag im Oktober statt. Um 3:00 Uhr wird die U
hr um eine Stunde zurückgestellt. Das bedeutet: "Die Nacht ist eine Stund
e länger". \n\nQuelle: http://www.zeitumstellung.de/regeln-zeitumstellung
.html\n\n
DTEND;TZID=W. Europe Standard Time:20131027T040000
DTSTAMP:20201028T152253Z
DTSTART;TZID=W. Europe Standard Time:20131027T030000
LOCATION:Deutschland
PRIORITY:5
RRULE:FREQ=YEARLY;BYDAY=SU;BYMONTH=10;BYSETPOS=-1
SEQUENCE:1
SUMMARY:Zeitumstellung Sommerzeit -> Winterzeit
TRANSP:TRANSPARENT
UID:850181a5-ffa0-4102-987f-7b704b19a1ec
X-MICROSOFT-CDO-BUSYSTATUS:FREE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT12H
END:VALARM
END:VEVENT
END:VCALENDAR


In Fhem habe ich den Kalender folgend angelegt

Internals:
   CFGFN     
   DEF        ical url https://<username>:<password>@example.domain.com:12345/remote.php/dav/calendars/<username>/zeitumstellung?export 99999
   FUUID      605efb4e-f33f-1cfc-e652-68a9618e8ae9c758
   NAME       cal_zeitumstellung
   NOTIFYDEV  global
   NR         74
   NTFY_ORDER 50-cal_zeitumstellung
   STATE      Status: triggered T: 2021-03-27 10:30:54
   TYPE       Calendar
   Helper:
     DBLOG:
       state:
         db_log:
           TIME       1616837454.14539
           VALUE      initialized
   READINGS:
     2021-03-27 10:30:55   calname         Zeitumstellung
     2021-03-27 10:30:55   lastUpdate      2021-03-27 10:30:54
     2021-03-27 10:30:55   nextUpdate      2021-03-28 15:17:33
     2021-03-27 10:30:55   nextWakeup      2021-03-28 15:17:33
     2021-03-27 10:30:55   state           triggered
Attributes:
   DbLogExclude .*
   event-on-update-reading state,lastUpdate
   hideLaterThan 062d
   hideOlderThan 00:15
   room       06_Kalender
   stateFormat Status: state T: lastUpdate
   synchronousUpdate 0


Seit neuestem, zumindest kann ich mich nicht daran erinnern diese Meldung mal im log (verbose 5) gesehen zu haben.

4: Calendar cal_zeitumstellung: Updating...
4: Calendar cal_zeitumstellung: Getting data from URL <hidden>
5: Calendar cal_zeitumstellung: HTTP response code 200
4: Calendar cal_zeitumstellung: parsing data asynchronously (PID= 118862)
5: Calendar cal_zeitumstellung: control passed back to main loop.
4: Calendar cal_zeitumstellung: got result from asynchronous parsing.
4: Calendar cal_zeitumstellung: asynchronous parsing finished.
4: Calendar cal_zeitumstellung: merging data
4: Calendar cal_zeitumstellung: 2 records processed, 2 new, 0 known, 0 modified, 0 changed.
4: Calendar cal_zeitumstellung: creating calendar events
3: Calendar cal_zeitumstellung: keyword BYSETPOS in RRULE FREQ=YEARLY;BYDAY=SU;BYMONTH=3;BYSETPOS=-1 is not supported
3: Calendar cal_zeitumstellung: keyword BYSETPOS in RRULE FREQ=YEARLY;BYDAY=SU;BYMONTH=10;BYSETPOS=-1 is not supported
4: Calendar cal_zeitumstellung: events for 0 records cleared, events for 2 records created.
4: Calendar cal_zeitumstellung: Checking times...
4: Calendar cal_zeitumstellung: process ended.


Modul Version

57_Calendar.pm         23989 2021-03-17 17:30:05Z neubert


Aufgefallen ist es mir bei "CALVIEW", dort wird mir das Datum des diesjährigen Termins auf den 31.03.2021 angezeigt.

Hoffentlich reichen diese Angaben, um mir etwas Hilfestellung zu geben, wie ich das wieder korrigieren kann.


Vorab schon einmal Dankeschön
Gruß, Karsten

betateilchen

Das kannst Du nicht lösen. Ein Blick in die commandref hätte Deine Frage schon im Vorfeld beantwortet.

Zitat
Recurring calendar events (series) are currently supported to an extent: FREQ INTERVAL UNTIL COUNT are interpreted, BYMONTHDAY BYMONTH WKST are recognized but not interpreted. BYDAY is correctly interpreted for weekly and monthly events. The module will get it most likely wrong if you have recurring calendar events with unrecognized or uninterpreted keywords. Out-of-order events and events excluded from a series (EXDATE) are handled. Calendar events are only created within ±400 days around the time of the last update.

Die von Dir in der Serie verwendeten Parameter werden schlichtweg vom Calendar-Modul nicht unterstützt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hydrotec

@betateilchen

Danke für deine Rückmeldung.
Hilfreich war sie nicht, da ich den Part in der commandref schon gelesen hatte.  ;)

War der Meinung, das dies seither funktioniert hatte.
Sonst wäre mir das doch schon früher, bei den Zeitumstellungen, aufgefallen.  ???

Gruß, Karsten

betateilchen

*achselzuck*

Mag ja sein, dass das bei Dir schonmal funktioniert hat. Aber vielleicht mit einer anderen RRULE.
Und "meinen" ist ja noch lange nicht "wissen".

Grundsätzlich kann man das aber auch einfach mit zwei Zeilen in einem holiday file abbilden:


3 -1 Sun 03 Sommerzeit beginnt
3 -1 Sun 10 Sommerzeit endet


Dann bekommt man die Infos direkt innerhalb von FHEM und braucht keine externen Quellen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hydrotec

Zitat
*achselzuck*
Haha, so geht es mir auch  :)

Zitat von: betateilchen am 27 März 2021, 14:08:10
... Aber vielleicht mit einer anderen RRULE...

Das ist gut möglich, kann sein das sich bei einem Update von Calendar in Nextcloud etwas geändert hat.
Ist ja auch egal ob es mal funktioniert hat oder nicht.
Jetzt geht es nicht.

Der Hinweis auf das holiday file ist hilfreich.  ;)
Wenn überhaupt nichts anderes mehr geht, werde ich es wohl so umsetzen.
Hätte eben gerne meine Kalender an einer Stelle verwaltet.
Gut bei der Zeitumstellung muss man nicht wirklich viel verwalten.

Danke dir jedenfalls.

Gruß, Karsten