[gelöst] Nach Umstellung auf neue Calendar-Syntax sind Termine zu lange gültig

Begonnen von OdfFhem, 29 Juli 2018, 09:06:07

Vorheriges Thema - Nächstes Thema

OdfFhem

Hallo,

seit der Umstellung auf die neue Calendar-events-Syntax ist mir aufgefallen, dass die bis dahin funktionierenden Termine immer zu lange gelten und dadurch meine Terminanzeige fehlerhaft arbeitet.
Als Beispiel habe ich unten einmal Auszüge aus dem FHEM-Logfile für den (unverändert vom Entsorger übernommenen) Abfallkalender aufgeführt.

vor der Umstellung auf die neue Syntax

Anfrage vom 12.07.2018, 00:00:11 liefert korrekt den 12.07.2018 als nächsten Termin

2018.07.12 00:00:11 2: get Abfallkalender uid is deprecated and will be removed soon. Use get Abfallkalender events instead.
2018.07.12 00:00:11 3: get Abfallkalender uid next 1 : 151512998953muellmaxde
2018.07.12 00:00:11 2: get Abfallkalender start is deprecated and will be removed soon. Use get Abfallkalender events instead.
2018.07.12 00:00:11 3: get Abfallkalender start 151512998953muellmaxde 1 : 12.07.2018 00:00
2018.07.12 00:00:11 2: get Abfallkalender summary is deprecated and will be removed soon. Use get Abfallkalender events instead.
2018.07.12 00:00:11 3: get Abfallkalender summary 151512998953muellmaxde 1 : RSAG Biotonne 2-wö. (inklusive Bündel-Mitnahme)


Anfrage vom 13.07.2018, 00:00:11 liefert korrekt den 19.07.2018 als nächsten Termin

2018.07.13 00:00:11 2: get Abfallkalender uid is deprecated and will be removed soon. Use get Abfallkalender events instead.
2018.07.13 00:00:11 3: get Abfallkalender uid next 1 : 151512998915muellmaxde
2018.07.13 00:00:11 2: get Abfallkalender start is deprecated and will be removed soon. Use get Abfallkalender events instead.
2018.07.13 00:00:11 3: get Abfallkalender start 151512998915muellmaxde 1 : 19.07.2018 00:00


nach der Umstellung auf die neue Syntax

Anfrage vom 19.07.2018, 00:00:11 liefert korrekt den 19.07.2018 als nächsten Termin

2018.07.19 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$U" : 151512998968muellmaxde
2018.07.19 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$T1" : 19.07.2018 00:00
2018.07.19 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$S" : RSAG Biotonne-Zusatzleerung (keine Bündel-Mitnahme)


Anfrage vom 20.07.2018, 00:00:11 liefert nicht den nächsten, sondern einen Termin vom Vortag

2018.07.20 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$U" : 151512998915muellmaxde
2018.07.20 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$T1" : 19.07.2018 00:00
2018.07.20 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$S" : RSAG Restmülltonne 2-wö.


Anfrage vom 21.07.2018, 00:00:11 liefert wieder korrekt den nächsten Termin

2018.07.21 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$U" : 151512998978muellmaxde
2018.07.21 00:00:11 3: get Abfallkalender events limit:count=1 format:custom="$T1" : 26.07.2018 00:00



Um das Ganze etwas transparenter und leichter nachvollziehbar darzustellen, habe ich gestern einmal einen einfachen Testtermin in einen meiner Kalender übernommen

BEGIN:VEVENT
UID:19930728T000000Z-123456
DTSTAMP:19930728T000000Z
DTSTART;VALUE=DATE:20180728T000000
DTEND;VALUE=DATE:20180728T235959
RRULE:FREQ=YEARLY
SUMMARY:Testperson
END:VEVENT


Anfrage vom 28.07.2018, 18:18:56 liefert den korrekten Termin

2018.07.28 18:18:56 3: get Namenstagkalender events limit:count=1 format:custom="$U" : 19930728T000000Z123456
2018.07.28 18:18:56 3: get Namenstagkalender events limit:count=1 format:custom="$T1" : 28.07.2018 00:00
2018.07.28 18:18:56 3: get Namenstagkalender events limit:count=1 format:custom="$S" : Testperson


Anfrage vom 29.07.2018, 00:00:11 liefert den falschen Termin vom Vortag

2018.07.29 00:00:11 3: get Namenstagkalender events limit:count=1 format:custom="$U" : 19930728T000000Z123456
2018.07.29 00:00:11 3: get Namenstagkalender events limit:count=1 format:custom="$T1" : 28.07.2018 00:00
2018.07.29 00:00:11 3: get Namenstagkalender events limit:count=1 format:custom="$S" : Testperson


Anfrage vom 29.07.2018, 07:34:09 liefert den korrekten Termin

2018.07.29 07:34:09 3: get Namenstagkalender events limit:count=1 format:custom="$U" : 19550815T000000Z123456
2018.07.29 07:34:09 3: get Namenstagkalender events limit:count=1 format:custom="$T1" : 15.08.2018 00:00



Zunächst dachte ich an ein TZ-Problem, aber da bei DTSTART bzw. DTEND immer nur lokale Zeitangaben verwendet werden, scheidet dies wohl aus.


Viele Grüße

Dr. Boris Neubert

Hi,

ich tippe, dass Du hideOlderThan gesetzt hast. Bitte Konfiguration zeigen!

Ansonsten willst Du nicht limit:count=1 sondern series:next

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

OdfFhem

@Dr. Boris Neubert
Hallo,

vielen Dank für die zielführende Antwort.

Ich verwende tatsächlich das hideOlderThan-Attribut mit einem Wert von 3600s.
Damit ist dann ja auf jeden Fall schon mal geklärt, wieso eine Abfrage nach 01:00 den richtigen Termin liefert.

Da ich das hideOlderThan-Attribut auch nicht ändern will, habe ich in der events-Abfrage series:next ergänzt.
Zunächst hatte ich limit:count=1 durch series:next ersetzt. Dies führte dann aber dazu, dass ich zu jeder Serie eines Kalenders den jeweils nächsten Termin zurückgeliefert bekam; mich interessiert aber nur der nächstgelegene, zukünftige Termin über alle Serien hinweg.

Ich werde das abgeänderte Verhalten mal im Echtbetrieb beobachten und im Erfolgsfall das Thema als gelöst markieren.

Viele Grüße