FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: RomanticBoy83 am 06 Juli 2018, 19:01:16

Titel: 57_Calendar erkennt keine Modifikationen von "iCal Import/Export CalDAV Pro"
Beitrag von: RomanticBoy83 am 06 Juli 2018, 19:01:16
Hallo, ich möchte einmal auf einen nachvollziehbaren Fehler in 57_Calendar.pm in Verbindung mit Baikal aufmerksam machen.
Problem:
Ein bereits bekannter Termin wird nicht mit dem nächsten Abruf modifiziert wenn dieser sich auf dem Server(Baikal) verändert hat.

Ausgangslage:
Nachvollziehbar ist dieser Fehler mit Baikal(0.5.0) und 57_Calendar.pm(16742 2018-05-15 19:20:16Z) und folgendem Define:
define calendar Calendar ical url http://user:password@127.0.0.1/baikal/cal.php/calendars/user/calendarname?export 43200
Für alle die diesen Fehler nachvollziehen möchten habe ich zwei Abfragen vom Server angehangen, in welcher sich ausschließlich die Uhrzeiten verändert haben. Dazu habe ich noch das diff erstellt, welches schnell die Änderung zeigt.

Fehlerbeschreibung:
Ich nutze einen Arbeitsplan, welcher über mehrere Geräte (Smartphone/Laptop/Fhem) automatisiert durch einen Server syncron gehalten wird. Der Plan ist oftmals bereits 14Tage vorher bekannt und wird demzufolge auch zeitnah eingepflegt. Selten ändert sich jedoch die Arbeitszeit, welche durch Anpassung im Kalender gepflegt wird.
Ein vorhandener Eintrag im Modul wird nicht als verändert erkannt wenn dieser modifiziert wurde. Modifiziert wurde von mir die Start und Endzeit. Eine erweiterte Logausgabe zeigt, dass der Eintrag auch nach der Modifikation als bekannt erkannt wurde.
1 records processed, 0 new, 1 known, 0 modified, 0 changed.
Wird der Eintrag in Fhem gelöscht, wird dieser Termin richtig als neu erkannt und somit auch richtig in das System aufgenommen:
1 records processed, 1 new, 0 known, 0 modified, 0 changed.

Vermutung:
Da das 75_Calendar.pm Modul das einzige Gerät ist, welches die Modifikation nicht erkennt - Smortphone/Laptop erkennen die Modifikation richtig - und die Neueinrichtung des Termins funktioniert, schließe ich einen Übertragungsfehler aus und vermute einen Fehler in der Routine zur Erkennung von modifizierten Terminen.
Titel: Antw:57_Calendar erkennt keine Modifikationen von Baikal
Beitrag von: Dr. Boris Neubert am 06 Juli 2018, 20:07:35
Hallo,

herzlichen Dank für die exakte Problembeschreibung.

Das Kalendermodul wertet das Attribut LAST-MODIFIED aus. Baikal setzt bei Änderungen DTSTAMP neu.

Die Vorgehensweise von Baikal entspricht nicht dem RFC (https://tools.ietf.org/html/rfc5545): DTSTAMP ist der Zeitpunkt, zu dem der Termin erstellt wurde, LAST-MODIFIED der Zeitpunkt der letzten Änderung.

Damit diese falsche Vorgehensweise von Baikal erkannt wird, habe ich im Modul die Prüfung auf geänderte Einträge entsprechend erweitert. Bitte finde das erweiterte Modul anbei mit der Bitte um Test.

Viele Grüße
Boris
Titel: Antw:57_Calendar erkennt keine Modifikationen von Baikal
Beitrag von: RomanticBoy83 am 06 Juli 2018, 21:46:19
Danke für die schnellen und vor allem ausführlichen Darstellungen zum Problem.

Das Problem scheint(ich weiß es bereits) dann wohl doch nicht Baikal zu sein.
1 records processed, 0 new, 0 known, 0 modified, 1 changed
Ich werde dem Fehler mal weiter auf die Spur gehen um den wirklichen Fehler zu finden und eventuell zu beheben. Die Modifizierte 57_Calendar.pm teste ich dennoch auf Kompatibilität.

Ich bin aber der Meinung, dass wir nicht wegen einen Softwarefehler woanders diesen bei uns behandeln sollten. Ob das dann wirklich ins SVN kommen sollte - ich bin der Meinung -> nein.

mit besten Grüßen zum Wochenende
Titel: Antw:57_Calendar erkennt keine Modifikationen von "iCal Import/Export CalDAV Pro"
Beitrag von: RomanticBoy83 am 08 Juli 2018, 20:54:58
Kurze Rückmeldung zum Fix.
Ich habe ein wenig hin und her getestet. Mit der erweiterten Bedingung wird eine Änderung nun auch in Fhem eingepflegt.
Was aufgefallen ist: Wenn iCal einen Termin erstmalig ändert, wird dieser als changed gelogt. Sonst wie nun implementiert als modifiziert. Für alle die darauf Wert - Events steuern oder ähnliches -  legen, sollten das wissen.

Was aus meiner Anfrage zu iCal herauskommt, werde ich hier mitteilen.