[57_Calendar] Problem mit wiederkehrenden Terminen

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

Vorheriges Thema - Nächstes Thema

chris1284

passt, termine sind so wie sie sein sollen. wennihc das richtig sehe zeigt der kalender immer nur das nächste event einer serie (beispiel bioabfall ist am 24.8. und dann wieder am 10.09.)
kann man im modul mit einbauen das auch x events einer serie gezeigt werden, evtl per attribut gesteuert?

VB90

kann ich so für mich leider nicht bestätigen.

trotz Update von FHEM bestehen die letztgenannten Fehler weiter.

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

Dr. Boris Neubert

VB, bist Du sicher, die Version von gestern Abend zu verwenden und ein Reload gemacht zu haben? Hatte es mit Deiner Datei umfassend getestet.

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

VB90

#33
Hallo Boris,

ich habe heute, extra am nachmittag, ein Update vom FHEM gefahren.
Dabei wurde auch die calendar.pm geupdatet. Zumindest stand es so im EventLog, habe extra drauf geachtet.

Per WinSCP auf den Odroiden geschaut, die aktuelle Datei aufgemacht, steht in der 1. Zeile:
Zitat# $Id: 57_Calendar.pm 9063 2015-08-12 20:41:53Z borisneubert $

Also, ich sage: ja, ich nutze die Version von gestern Abend.

Ich werde jetzt probehalber den Müllkalender nochmals killen und nach Neustart vom FHEM neu anlegen.
Ich werde berichten.

vb


Muss mich korrigieren bzw. mein Statement erläutern.

Der um eine Woche verschobene Termin (gelber Sack im Kalender 21.08. vs. FHEM 28.0.) ist korrigiert.
Dieser wird nun richtig angezeigt.

Was immernoch falsch angezeigt wird:
vergangener Termin vom 04.05. im Müllkalender
Termin Spätdienst original am 22.08, verschoben auf 15.08., wird an beiden Tagen gelistet.

Das war mir auch auf den ersten Blick aufgefallen, daher meine Einlassung oben.
Sorry, das ich vorhin so kurz dran war, und dadurch Verwirrung gestiftet habe.

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

betateilchen

#34
# $Id: 57_Calendar.pm 9063 2015-08-12 20:41:53Z borisneubert $

Aktuell scheint es noch ein Problem mit wöchentlich wiederkehrenden Terminen zu geben, im Speziellen habe ich Probleme mit solchen Terminen, bei denen der Ende-Zeitpunkt nicht am gleichen Tag auftritt wie der Start-Zeitpunkt. Bestimmte Geräte schalte ich abends ein und am nächsten Morgen wieder aus. Das Einschalten funktioniert problemlos, aber die Geräte werden nicht wieder ausgeschaltet.


Nachtrag:

Das Fehlerverhalten ist neu. Die wöchentlich wiederkehrenden Termine hatten seit Monaten problemlos funktioniert. Das Problem habe ich erst seit einem am vergangenen Wochenende nach langer Zeit durchgeführten fhem Update.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kvo1

ich trag mich hier kurz ein um mitzulesen (57_Calendar ist immer wieder mal ein Thema)
Glaube Boris ist derzeit im Urlaub ?
kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

betateilchen

Der Urlaub sei ihm gegönnt  8) und ich erwarte ja auch nicht sofort eine Lösung. Ich werde Version für Version zurückgehen, bis ich eine Modulversion finde, in der diese Kalendereinträge wieder korrekt funktionieren. Bis dahin behelfe ich mir mit einem at, das die betreffenden Geräte jeden Morgen explizit ausschaltet. Nicht schön, aber funktioniert.

Es wird zum End-Zeitpunkt einfach kein Event mehr ausgelöst, der ein notify triggern könnte.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ein Test in der letzten Nacht hat gezeigt, dass ein einzelner, sich nicht wiederholender Termin über den Tageswechsel sowohl zum Start als auch zum Ende einen Event erzeugt und somit korrekt geschaltet wird.

Das Problem scheint also tatsächlich mit den Wiederholungen zusammenzuhängen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Hallo,

der Einbau des asynchronen Herunterladens von iCal-Dateien mittels HttpUtils_NonblockingGet() zog doch noch einige Probleme und Race Conditions mit sich, die ich jetzt hoffentlich alle beseitigt habe.

Udo, ich kann nicht erkennen, warum Serientermine, die über Mitternacht laufen, kein Ende-Event (changed: uid end) senden sollten. Kannst Du bitte die beigefügte Version einmal bei Dir testen? Bitte berücksichtigen, dass die UID im Modul seit neuestem auch noch die SEQUENCE enthält.

In dieser Version habe ich die Funktion ausgebaut, die abgelaufene Termine aus der modulinternen Datenhaltung rauswirft. Grund hierfür ist, dass ich nach inniger Meditation über dem Kode zu dem Ergebnis gekommen bin, dass das so für Serientermine nicht funktioniert. Aus demselben Grunde bleiben auch Termine, die abgelaufen sind, mit dieser Version wieder in der modulinternen Datenhaltung. Ich lasse mir bezüglich des Status "expired" etwas anderes einfallen.

Was ich auch nicht lösen kann, sind die außer-der-Reihe-Termine, die sich bei gleicher UID und SEQUENCE nur durch die RECURRENCE-ID unterscheiden. Hier gewinnt immer der letzte Termin in der Datei aus allen mit gleicher UID und SEQUENCE. Das ruft nach einem substanziell neuen Konzept für die Verwaltung der Termine.

Für heute erstmal Schluss.

Viele Grüße
Boris

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

betateilchen

Hallo Boris,

ich habe die Moduldatei eben eingespielt und werde beobachten, was heute nacht passiert.
Sollte das Problem wieder auftreten, werde ich Dir die Kalenderdatei per email zuschicken, vielleicht hilft Dir das ja weiter.


Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Boris,

das Abschalten hat heute morgen mit Deiner Testversion funktioniert.

Allerdings verhält sich nun das Ganze sehr eigenartig:


2015.08.26 00:05:03 3: get oc_Schalter summary 069EDE597FAA42C5B3A22295DC95F3866 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 178C817DF4DF4FD0BE6401A97F88672F8 : sz_Bett_links
2015.08.26 00:05:03 3: get oc_Schalter summary 299295b8e90 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 2aa2504272968b45a9b67444105bb42b1 : sz_Bett_links
2015.08.26 00:05:03 3: get oc_Schalter summary 2d048395f0cd9a43816130f90d16b9010 : sz_Bett_links
2015.08.26 00:05:03 3: get oc_Schalter summary 2ea0060057f0584e8ea8ccbe0eb5545e0 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 3209f52d7a61744ab4136ca1f44cf1220 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 36a9c91e8240d74ea356fe644f251cfd1 : sz_Bett_links
2015.08.26 00:05:03 3: get oc_Schalter summary 3E48D93ED5BD4A7A8DCDAC835B3DFB6B5 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 431F217050BD46709BCCB867289B7CCB8 : sz_Bett_links

2015.08.26 00:05:03 3: get oc_Schalter summary 435d58b1060 : wz_Ventilator

2015.08.26 00:05:03 3: get oc_Schalter summary 49755CF095E645548CE6A77E91548CA30 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 4d16cadb4a0 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 615d578b54a6024088d3434bf85614350 : sz_Bett_rechts
2015.08.26 00:05:03 3: get oc_Schalter summary 7029FC1CB06E4C69B5544AC6111D9FB97 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary 71D9538A84CD4E72A94B481FBAF9F01B6 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 84DD7A0AA6A34E6591DE51855CEC237D5 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 86752848B98C4B87A6E8BEC4DF5B890E6 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 8F7C870CF7FE4ADE8A7B13BEBBC2D6D80 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary 8f3c37f9fe0 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary 9003ab0900db8349b1c581d035419a290 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 952b47b92c0c014fa56ed0482a55fd050 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 95FA293E1C6A4B1C9469A09EC8BF04CB0 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary 96d9c4c4530 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary D564B2CD6BBF4D2AAAEAAB94CA429C805 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary a0fe0f37ea0 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary c7efa85c290d60448cdf1ed565f66ff70 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary e002694a7e0 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary e8332e5d540 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary ec6254ed310 : sz_Bett_links
2015.08.26 00:05:04 3: get oc_Schalter summary f07d4a83c60 : sz_Bett_rechts
2015.08.26 00:05:04 3: get oc_Schalter summary f571dd9a940b85439eb3568e3702b3750 : sz_Bett_links


Der einzige Termin, der im Kalender wirklich für 00:05 Uhr eingeplant war, war das Abschalten von wz_Ventilator. Warum die ganze Menge von Events mein notify

oc_Schalter:modeEnded.* { oc_SchalterEnde("$EVENT") }

triggern, ist mir unklar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 26 August 2015, 06:51:55
Warum die ganze Menge von Events mein notify ... triggern, ist mir unklar.

ich habe gerade mal ein bisschen weitergesucht. Ein "get ... full all" liefert mir


84DD7A0AA6A34E6591DE51855CEC237D5 expired      end                     13.11.2014 21:00:00-14.11.2014 05:00:00 sz_Bett_rechts
069EDE597FAA42C5B3A22295DC95F3866 expired      end                     14.11.2014 21:00:00-15.11.2014 05:00:00 sz_Bett_rechts
86752848B98C4B87A6E8BEC4DF5B890E6 expired      end                     15.11.2014 21:00:00-16.11.2014 05:00:00 sz_Bett_rechts
178C817DF4DF4FD0BE6401A97F88672F8 expired      end                     27.11.2014 08:00:00-28.11.2014 08:00:00 sz_Bett_links
3E48D93ED5BD4A7A8DCDAC835B3DFB6B5 expired      end                     27.11.2014 21:00:00-28.11.2014 05:00:00 sz_Bett_rechts
431F217050BD46709BCCB867289B7CCB8 expired      end                     28.11.2014 21:00:00-29.11.2014 08:00:00 sz_Bett_links
D564B2CD6BBF4D2AAAEAAB94CA429C805 expired      end                     28.11.2014 21:00:00-29.11.2014 05:00:00 sz_Bett_rechts
7029FC1CB06E4C69B5544AC6111D9FB97 expired      end                     29.11.2014 21:00:00-30.11.2014 08:00:00 sz_Bett_links
71D9538A84CD4E72A94B481FBAF9F01B6 expired      end                     29.11.2014 21:00:00-30.11.2014 05:00:00 sz_Bett_rechts
a0fe0f37ea0 expired      end                     23.12.2014 05:00:00-24.12.2014 08:00:00 sz_Bett_links
ec6254ed310 expired      end                     24.12.2014 20:00:00-25.12.2014 08:00:00 sz_Bett_links
8f3c37f9fe0 expired      end                     25.12.2014 20:00:00-26.12.2014 08:00:00 sz_Bett_links
96d9c4c4530 expired      end                     25.12.2014 21:00:00-26.12.2014 05:00:00 sz_Bett_rechts
e002694a7e0 expired      end                     26.12.2014 20:00:00-27.12.2014 08:00:00 sz_Bett_links
f07d4a83c60 expired      end                     26.12.2014 21:00:00-27.12.2014 05:00:00 sz_Bett_rechts
e8332e5d540 expired      end                     27.12.2014 20:00:00-28.12.2014 08:00:00 sz_Bett_links
299295b8e90 expired      end                     27.12.2014 21:00:00-28.12.2014 05:00:00 sz_Bett_rechts
4d16cadb4a0 expired      end                     03.01.2015 01:00:00-04.01.2015 05:00:00 sz_Bett_rechts
435d58b1060 expired      end                     14.01.2015 13:30:00-14.01.2015 15:00:00 wz_Ventilator
2aa2504272968b45a9b67444105bb42b1 expired      end                     18.03.2015 21:00:00-19.03.2015 08:00:00 sz_Bett_links
36a9c91e8240d74ea356fe644f251cfd1 expired      end                     19.03.2015 21:00:00-20.03.2015 08:00:00 sz_Bett_links
615d578b54a6024088d3434bf85614350 expired      end                     19.03.2015 21:00:00-20.03.2015 05:00:00 sz_Bett_rechts
952b47b92c0c014fa56ed0482a55fd050 expired      end                     20.03.2015 21:00:00-21.03.2015 05:00:00 sz_Bett_rechts
c7efa85c290d60448cdf1ed565f66ff70 expired      end                     20.03.2015 21:00:00-21.03.2015 08:00:00 sz_Bett_links
2d048395f0cd9a43816130f90d16b9010 expired      end                     21.03.2015 21:00:00-22.03.2015 08:00:00 sz_Bett_links
3209f52d7a61744ab4136ca1f44cf1220 expired      end                     21.03.2015 21:00:00-22.03.2015 05:00:00 sz_Bett_rechts
2ea0060057f0584e8ea8ccbe0eb5545e0 expired      end                     07.05.2015 09:00:00-07.05.2015 20:55:00 sz_Bett_rechts
9003ab0900db8349b1c581d035419a290 expired      end                     20.06.2015 08:00:00-21.06.2015 06:00:00 sz_Bett_rechts
f571dd9a940b85439eb3568e3702b3750 expired      end                     04.07.2015 08:00:00-05.07.2015 05:00:00 sz_Bett_links
8F7C870CF7FE4ADE8A7B13BEBBC2D6D80 expired      end                     15.07.2015 08:00:00-16.07.2015 06:00:00 sz_Bett_links
49755CF095E645548CE6A77E91548CA30 expired      end                     15.07.2015 08:00:00-16.07.2015 06:00:00 sz_Bett_rechts
95FA293E1C6A4B1C9469A09EC8BF04CB0 expired      end                     02.08.2015 12:00:00-02.08.2015 20:50:00 sz_Bett_rechts
418f7ec6ba8   known upcoming                     26.08.2015 21:00:00-27.08.2015 05:00:00 sz_Bett_rechts
1bf61f34c82   known upcoming                     27.08.2015 21:00:00-28.08.2015 05:00:00 sz_Bett_rechts
11d7c438a12   known upcoming                     28.08.2015 21:00:00-29.08.2015 05:00:00 sz_Bett_rechts
c129db17443   known upcoming                     29.08.2015 21:00:00-30.08.2015 05:00:00 sz_Bett_rechts
c9a1ea64e61   known upcoming                     30.08.2015 21:00:00-31.08.2015 05:00:00 sz_Bett_rechts
dcac449f426   known upcoming                     31.08.2015 21:00:00-01.09.2015 05:00:00 sz_Bett_rechts
8c3b3c14e07   known upcoming                     01.09.2015 21:00:00-02.09.2015 05:00:00 sz_Bett_rechts
0443ffc7085   known upcoming                     06.09.2015 12:00:00-07.09.2015 05:00:00 sz_Bett_rechts
3e8f7c181f0   known upcoming                     08.09.2015 23:55:00-09.09.2015 00:05:00 wz_Ventilator


das heißt, es werden auch alle "expired" Einträge verarbeitet - und die triggern mir auch ein "modeEnded"

Da das expired-Handling bei Dir ja noch auf der ToDo-Liste steht, werde ich einfach mal warten. Aber offenbar funktioniert das von Dir beschriebene Rausschmeißen aller abgelaufenen Termine aus der globalen Datenhaltung auch in der Testversion nicht wie vorgesehen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Danke, Udo, für die Beobachtungen. Damit sollte ich der Ursache der überzähligen Events auf die Schliche kommen.

Expired Termine sind erst in der Testversion wieder reingekommen, weil ich festgestellt habe, dass ich beim Parsen des Kalenders expired und entfernte Serientermine wieder als neu entdecke und dass zu komischen Effekten führt. Allerdings sind diese Termine statisch und sollten keine ended-Events triggern.

Melde mich mit neuer Version zurück.

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

betateilchen

Hallo Boris,

vielleicht noch eine (wichtige?) Info die ich gerade rausgefunden habe: Die oben aufgeführten "expired" Termine sind offenbar alles Einmal-Termine ohne Wiederholung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Boris,

noch ein Hinweis (aufgetreten in Deiner Testversion)

2015.08.29 10:26:31 1: PERL WARNING: Use of uninitialized value in numeric ge (>=) at ./FHEM/57_Calendar.pm line 868.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!