[57_Calendar] Problem mit wiederkehrenden Terminen

Begonnen von VB90, 03 August 2015, 00:19:28

Vorheriges Thema - Nächstes Thema

VB90

Hallo,

ich möchte meinen Dienstplan in FHEM integrieren um darüber weitere Dinge zu managen.

Nun habe ich mittels "define Schichtplan Calendar ical https://www.google.com/calendar/ical/blaaagroup.calendar.google.com/private-blub/basic.ics" den Kalender eingebunden.
Die Termine werden auch brav abgeholt, soweit gut.

Um die Sache anschaulich zu machen, habe ich eine ReadingsGroup aufgesetzt und bin auf folgendes Problem gestoßen:

Beispiel morgen, 03.08., die folgenden Tage sind analog dazu.
Im Google Kalender sehe ich: Urlaub
Importiere ich mit obigen Link in meinen Thunderbird: Urlaub

In FHEM wurde importiert:

Datum
Uhrzeit
Text
Endet am
End um
20.07.2015
00:00:00
EU
10.08.2015
00:00:00
20.07.2015
00:00:00
EU
10.08.2015
00:00:00
03.08.2015
06:30:00
Frühdienst
03.08.2015
14:45:00
03.08.2015
13:45:00
Spätdienst
03.08.2015
22:15:00
03.08.2015
13:45:00
Spätdienst
03.08.2015
22:15:00


Ich habe also 5 Termine für den 03.08. importiert, von denen genau einer real im Kalender steht, nämlich bis 10.08. EU.

Für mich derzeit einzig vorstellbar Möglichkeit, warum dieser Fehler auftritt, woher die andere Einträge stammen:
Ich trage die Termine mit einer Wiederholung im 7-Wochentakt ein (Dienstplan von 7 Wochen)
Anfang des Jahres, quasi in einer Urfassung des Kalenders hat für den morgigen Montag vielleicht(!) auch mal Frühdienst gestanden, vielleicht(!) auch mal Spätdienst.
Letzteres jedoch gewiss nicht doppelt.
Aber spätestens seitdem ich diesen (per Wiederholung eingetragenen) Termin gelöscht habe, müsste er ja auch aus der .ics raus sein.
Im Thunderbird wird es ja auch so umgesetzt.

Die Frage ist nun, wie ich dem am besten gegensteuern kann.
Hat jemand nen Tipp für mich?

Ich werde den Kalender jetzt nochmal löschen und neu definieren. Manchmal sind ja schon verrückte Sachen passiert.

Danke,

vb

Edit: Screen angehangen

Edit2: Löschen und neu anlegen hat leider nichts gebracht.
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

chris1284

wenn du ein
get schichtplan full all
machst, werden die termine dann angezeigt?

VB90

Hi Chris,

ja, dort stehen die falschen Termine auch drin.

Ich habe gestern Abend noch probiert, den Kalender über ne Datei einzulesen, statt über die URL, aber alles ohne Erfolg.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

Hallo,

kannst Du bitte mal die ical-Datei mit

wget https://www.google.com/calendar/ical/blaaagroup.calendar.google.com/private-blub/basic.ics

abholen und hier als Anhang hinterlegen. Ich vermute, dass die Wiederholart des Termins nicht unterstützt wird. Oder alternativ den Kalender zum Lesen freigeben und die URL der Freigabe hier posten. Dann kann ich das untersuchen.

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

VB90

#4
Hallo Boris,

sehr gern.
Wenn du die .ics geladen hast, sag bitte Bescheid, dann kann ich den Anhang wieder löschen.
Muss ja nicht jeder über jede Suchmaschine abrufen können, wie ich zu arbeiten habe ;)

Danke,

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

Hallo,

habe den Anhang für Dich gelöscht.

Die Kombination WEEKLY, INTERVAL>1 und BYDAY geht schief, ist im Kode auch so dokumentiert.

Muss ich mir in Ruhe ansehen, wie das zu lösen sein könnte.

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

VB90

Danke für deine Zeit.

für mich zum Verständnis:
Wenn ich jeden Termin einzeln eintragen würde, gäbe es diese Probleme nicht?

Hast du, so aus dem Bauch, ne Idee wie ich das Problem Kalenderseitig umschiffen könnte, ohne einzeln einzutragen?

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

#7
Hallo,

probiere bitte mal die beigefügte Version - ich habe nur eine Zeile einfügen müssen.

Viele Grüße
Boris


EDIT: Anhang entfernt
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

VB90

#8
Darf man hier "Alter!!" sagen, um seinen Respekt zum Ausdruck zu bringen?? ;)

Was ich auf die schnelle sehe, funktioniert.
Ich lasse mir inzwischen den nächsten zehn Termine anzeigen, und diese sind alle korrekt.
Auch Beginn und Ende stimmen, keine Dopplungen mehr drin.

Ganz großes Danke!!

Kann ich noch irgendwas testen, um deinen Erfolg zu verifizieren??


vb


edit:

sehe grade, zwei Termine fehlen.
Wenn du die ics noch hast, die Einträge vom 15. und 18. sind nicht dabei.
FHEM ist neu gestartet, Kalender geupdatet und reloadet.

edit2:
Ich lege den Kalender mal komplett neu an

edit: Es bleibt dabei. Die beiden Besagten Termine fehlen.

nochn Edit:
Habe als Test einen neuen Termin eingefügt, der wurde nach update/reload gleich angezeigt

Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

Krass, der Termin mit der UID vup1jet6q16el6cutkqlrc2o8c@google.com steht zweimal in der iCal-Datei. Einmal als Einzeltermin am 15.08. und einmal als sich alle 7 Wochen wiederholender Termin (nächstes Auftreten: 22.08.). Der zweite Eintrag überschreibt den ersten.

Wie kann das passieren?

Kannst Du bitte mal in den Google-Kalender schauen und sehen, ob es eine Erklärung dafür gibt?

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

VB90

Die Erklärung gibt es.
Kurzfassung: Diensttausch
Langfassung: Originaltermin liegt auf dem 22., ist eine Standartwiederholung, des Originals von irgendwann. Wiederholung alle 7 Wochen.
In diesem speziellen Fall habe ich jedoch mit einem Kollegen den Dienst getauscht, so dass ich den Termin einfach vom 22. auf den 15. verschoben habe.
Nur diesen einen.
Ich vermute das, quasi intern, der 22. noch gebucht ist eben wegen der Wiederholung.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

So, heute wieder ein großer Fortschritt im Kalendermodul zu verzeichnen!

Gemäß RFC 2445 dürfen mehrere Ereignisse die selbe UID haben. Sie unterscheiden sich dann in der SEQUENCE-Nummer. Ich habe die modulinterne UID durch Konkatenation der (gesäuberten) UID aus dem Kalender und der SEQUENCE gebaut.

Damit sollte es jetzt bei Dir funktionieren. Ich habe die Version eingecheckt.

Viele Grüße
Boris

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

VB90

Mahlzeit Boris,

Danke für deine Arbeit und die neue Version.

Ich habe FHEM geupdatet und neu gestartet, den Kalender mit allem Zubehör gelöscht und neu angelegt, wiederum gestartet.
Leider habe ich jetzt den Effekt aus meinem Eröffnungspost.
Für morgen habe ich Früh, Spät- und Nachtdienst, jeweils doppelt eingetragen.
Da fand ich die Version von gestern besser ;)

Ich muss mal heute nix machen und die Tage mich nochmal frisch ans Werk machen...
Ich kann und will nicht ausschliessen, das der Fehler auf meiner Seite liegt, will aber verhindern das durch meine Unfähigkeit bei dir Mehrarbeit ankommt.

Ich hänge mal den Auszug meiner .cfg dran, vielleicht habe ich da ja auch nen groben Fehler drin.

define Schichtplan Calendar ical url https://www.google.com/calendar/ical/kenneichauch.calendar.google.com/private-isbekannt/basic.ics 3600
attr Schichtplan room Kalender
define Kal_Schicht CALVIEW Schichtplan 2
attr Kal_Schicht modes all
attr Kal_Schicht room Kalender
define rg_Kal_Schicht readingsGroup <Datum>,<Uhrzeit>,<Text>,<Endet am>,<End um> Kal_Schicht:t_001_bdate,t_001_btime,t_001_summary,t_001_edate,t_001_etime Kal_Schicht:t_002_bdate,t_002_btime,t_002_summary,t_002_edate,t_002_etime Kal_Schicht:t_003_bdate,t_003_btime,t_003_summary,t_003_edate,t_003_etime Kal_Schicht:t_004_bdate,t_004_btime,t_004_summary,t_004_edate,t_004_etime Kal_Schicht:t_005_bdate,t_005_btime,t_005_summary,t_005_edate,t_005_etime Kal_Schicht:t_004_bdate,t_004_btime,t_004_summary,t_004_edate,t_004_etime Kal_Schicht:t_005_bdate,t_005_btime,t_005_summary,t_005_edate,t_005_etime Kal_Schicht:t_006_bdate,t_006_btime,t_006_summary,t_006_edate,t_006_etime Kal_Schicht:t_007_bdate,t_007_btime,t_007_summary,t_007_edate,t_007_etime Kal_Schicht:t_008_bdate,t_008_btime,t_008_summary,t_008_edate,t_008_etime Kal_Schicht:t_009_bdate,t_009_btime,t_009_summary,t_009_edate,t_009_etime Kal_Schicht:t_010_bdate,t_010_btime,t_010_summary,t_010_edate,t_010_etime
attr rg_Kal_Schicht room Kalender
define at_rg_Kal_Schicht at +*02:00 {\ my $i;; \ my $modtext = "<Datum>,<Uhrzeit>,<Text>,<Endet am>,<End um> ";;\ for($i= 1;;$i<= ReadingsVal("Kal_Schicht","c-tomorrow", 0);;$i++){\ $modtext .= "Kal_Schicht:<Morgen>,tomorrow_".sprintf('%03d',$i)."_btime,tomorrow_".sprintf('%03d',$i)."_summary,tomorrow_".sprintf('%03d',$i)."_edate,tomorrow_".sprintf('%03d',$i)."_etime ";;}\ for($i= 1;;$i<= ReadingsVal("Kal_Schicht","c-today", 0);;$i++){\ $modtext .= "Kal_Schicht:<Heute>,today_".sprintf('%03d',$i)."_btime,today_".sprintf('%03d',$i)."_summary,today_".sprintf('%03d',$i)."_edate,today_".sprintf('%03d',$i)."_etime ";;}\ for($i= 1;;$i<= ReadingsVal("Kal_Schicht","c-term", 0);;$i++){\ $modtext .= "Kal_Schicht:t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_summary,t_".sprintf('%03d',$i)."_edate,t_".sprintf('%03d',$i)."_etime ";;}\ fhem("modify rg_Kal_Schicht $modtext");;\ }



Nu geh ich erstmal in Familie das Wetter nutzen.

Bis später.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Dr. Boris Neubert

Die neue Version gibt es erst morgen per Update. Du musst sie aus dem SVN Repo laden. Das Update hat Dir wieder die Version vom Freitag beschert.

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

VB90

Ah... Das erklärt natürlich alles.
Begreife ich auch irgendwann,  das es erst am nächsten Morgen nach acht per update funktioniert.
Werde die Version aus dem svn heute abend noch testen.
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.