FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: raspklaus am 06 Januar 2016, 10:46:04

Titel: Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 10:46:04
Hallo,

ich habe die Ferientage laut Wiki definiert:

# Schulferien
define Bayern_Ferien Calendar ical file ./Daten/Ferien_Bayern.ics 86400
attr Bayern_Ferien room Kalender
define Bayern_Ferientag dummy
attr Bayern_Ferientag alias Schulferien
attr Bayern_Ferientag devStateIcon 0:FS20.off 1:FS20.on
attr Bayern_Ferientag room Kalender
define Bayern_Ferien.notify notify Bayern_Ferien { fhem "set Bayern_Ferientag " . (ReadingsVal("Bayern_Ferien", "modeStart", "") =~ "schulferien" ? 1: 0) }



Heute ist der letzte Ferientag, aber das Reading steht auf 0

Ein list ergibt :

Internals:
   DEF        ical file ./Daten/Ferien_Bayern.ics 86400
   NAME       Bayern_Ferien
   NR         581
   STATE      Active
   TYPE       Calendar
   Readings:
     2016-01-06 10:03:19   all             F_2016_6249schulferienorg;F_2016_6250schulferienorg;F_2016_6251schulferienorg;F_2016_6252schulferienorg;F_2016_6253schulferienorg;F_2016_6254schulferienorg
     2016-01-06 10:03:19   lastCheck       2016-01-06 10:03:19
     2016-01-06 10:03:19   lastUpdate      2016-01-06 10:03:19
     2016-01-06 10:03:19   modeAlarm
     2016-01-06 10:03:19   modeAlarmOrStart
     2016-01-06 10:03:19   modeAlarmed
     2016-01-06 10:03:19   modeChanged     F_2016_6249schulferienorg;F_2016_6250schulferienorg;F_2016_6251schulferienorg;F_2016_6252schulferienorg;F_2016_6253schulferienorg;F_2016_6254schulferienorg
     2016-01-06 10:03:19   modeEnd
     2016-01-06 10:03:19   modeEnded
     2016-01-06 10:03:19   modeStart
     2016-01-06 10:03:19   modeStarted
     2016-01-06 10:03:19   modeUpcoming    F_2016_6249schulferienorg;F_2016_6250schulferienorg;F_2016_6251schulferienorg;F_2016_6252schulferienorg;F_2016_6253schulferienorg;F_2016_6254schulferienorg
     2016-01-06 10:03:19   stateChanged    F_2016_6249schulferienorg;F_2016_6250schulferienorg;F_2016_6251schulferienorg;F_2016_6252schulferienorg;F_2016_6253schulferienorg;F_2016_6254schulferienorg
     2016-01-06 10:03:19   stateDeleted
     2016-01-06 10:03:19   stateNew        F_2016_6249schulferienorg;F_2016_6250schulferienorg;F_2016_6251schulferienorg;F_2016_6252schulferienorg;F_2016_6253schulferienorg;F_2016_6254schulferienorg
     2016-01-06 10:03:19   stateUpdated
   Fhem:
     interval   86400
     lastCheck  2016-01-06 10:03:19
     lastChkTs  1452070999.63961
     lastUpdate 2016-01-06 10:03:19
     lstUpdtTs  1452070999.63971
     nextCheck  2016-01-07 10:03:19
     nextChkTs  1452157399.63971
     nextUpdate 2016-01-07 10:03:19
     nxtUpdtTs  1452157399.63971
     type       file
     url        ./Daten/Ferien_Bayern.ics
Attributes:
   room       Kalender


Habe alles schon xmal mit dem Wiki etc verglichen, kann den Fehler aber nicht finden
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 06 Januar 2016, 10:55:44
Schau doch mal nach, was in der Kalenderdatei drinsteht. Eventuell ist der heutige Tag ja gar nicht als Ferientag geführt, weil er in Bayern ohnehin ein Feiertag ist.
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 10:58:10
in der Kalenderdatei steht:

BEGIN:VEVENT
CREATED:20140820T031604Z
LAST-MODIFIED:20140820T031604Z
DTSTAMP:20140820T031604Z
SUMMARY:Schulferien 2015 Bayern
DTSTART;VALUE=DATE:20151224
DTEND;VALUE=DATE:20160106
URL:http://www.schulferien.org
DESCRIPTION;LANGUAGE=de:Schulferien 2015 Bayern
TRANSP:TRANSPARENT
UID:F_2015_6170@schulferien.org
END:VEVENT


also der 6. ist noch Ferientag
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 06 Januar 2016, 11:21:16
Hat Dein notify gestern korrekt funktioniert?
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 11:26:54
Gestern habe ich nicht kontrolliert, aber am 24. Dez hatte ich kontrolliert und das hatte es funktioniert.
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 06 Januar 2016, 11:41:10
Naja, an einen wirklichen Fehler des Calendar Moduls glaube ich nicht. Vielleicht hat das Modul ein Problem, den Jahreswechsel auszuwerten (reine Vermutung).
Da es aber in absehbarer Zeit ohnehin eine komplett neue Version des Moduls geben wird, würde ich mir auch nicht den Kopf zerbrechen wegen einer solchen Kleinigkeit  ;)
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 12:07:34
Kann ich mir nicht vorstellen, denn viele machen hier ja die Ferienauswertung und das Calendarmodul existiert ja schon länger als 1 Jahr. Das müsste ja schon aufgefallen sein.

Ich habe mal die ical geändert dann kommt bei einem get text all 10 folgendes:

01.01.16 00:00 Schulferien 2016 Bayern
08.02.16 00:00 Winterferien 2016 Bayern
21.03.16 00:00 Osterferien 2016 Bayern
17.05.16 00:00 Pfingstferien 2016 Bayern
30.07.16 00:00 Sommerferien 2016 Bayern
31.10.16 00:00 Herbstferien 2016 Bayern
24.12.16 00:00 Weihnachtsferien 2016 Bayern


Irgendwie befüllt das notify nicht mehr den dummy

Welcher Parameter der Ical Datei wird für die Auswertung genommen ? Summary ?

Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 06 Januar 2016, 12:20:55
Zitat von: raspklaus am 06 Januar 2016, 12:07:34
Irgendwie befüllt das notify nicht mehr den dummy

Doch, aber in modeStart steht nix drin, deswegen wird der Wert auf 0 gesetzt.
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 17:40:34
Mit der geänderten ical funktioniert es wieder:

BEGIN:VEVENT
CREATED:20140820T031604Z
LAST-MODIFIED:20140820T031604Z
DTSTAMP:20140820T031604Z
SUMMARY:Schulferien 2016 Bayern
DTSTART;VALUE=DATE:20160101
DTEND;VALUE=DATE:20160112
URL:http://www.schulferien.org
DESCRIPTION;LANGUAGE=de:Schulferien 2016 Bayern
TRANSP:TRANSPARENT
UID:F_2016_6170@schulferien.org
END:VEVENT


scheint also doch irgendwie mit dem Jahreswechsel nicht so ganz zu funktionieren.

Wann wird es denn ein neues Modul geben ?
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 06 Januar 2016, 18:05:00
Das neue Modul ist im Moment im alpha-Teststadium, dazu gibt es sogar eine Ankündigung hier im Forum und einen Thread, in dem sich (derzeit nur) Entwickler und Tester austauschen. Ich denke, die Zeit bis zur Freigabe ist überschaubar. Bis zum nächsten Jahreswechsel auf jeden Fall  8)
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 06 Januar 2016, 18:23:01
Na dann kann ja bei 2017 nichts mehr schief gehen ;D
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: Dr. Boris Neubert am 07 Januar 2016, 20:21:01
Hallo raspklaus,

die Anzeige aus dem ersten Beitrag zeigt, dass Du die 2016er Kalenderdatei geladen hast. Das VEVENT aus dem dritten Beitrag ist aus der 2015er Kalenderdatei. Ich nehme an, dass das Problem im Zusammenhang mit dem Auswechseln der Kalenderdatei bei Dir entstanden ist. So lässt es sich jedenfalls für mich nicht nachvollziehen.

Das Modul ist bzgl. Jahreswechsel agnostisch, da die Prüfung der Termine auf der Grundlage des internen Zeitformats erfolgt (Anzahl Sekunden seit der Epoche).

Viele Grüße
Boris
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: Dr. Boris Neubert am 09 Januar 2016, 11:40:16
Habe das bei mir nachgeprüft - ich nutze den selben Mechanismus.

Wenn man die Schulferienkalenderdatei durch die vom neuen Jahr austauscht, fehlen die Weihnachtsferien 2015/16. Diese sind nämlich in der 2016er-Kartei nicht drin.

Das erklärt das Verhalten für mich abschließend.

Viele Grüße
Boris
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 09 Januar 2016, 11:55:33
Sorry, dass ich mich erst jetzt melde, bin erst gestern abend vom Urlaub zurück.

Um den Jahreswechsel zu überbrücken hatte ich die Kalenderdateien 2015 und 2016 zusammengeführt. Natürlich vorher die Endkennzeichen aus der 2015 und die Startkennzeichen aus der 2016 entfernt.

BEGIN:VEVENT
CREATED:20140820T031604Z
LAST-MODIFIED:20140820T031604Z
DTSTAMP:20140820T031604Z
SUMMARY:Schulferien 2015 Bayern
DTSTART;VALUE=DATE:20151102
DTEND;VALUE=DATE:20151108
URL:http://www.schulferien.org
DESCRIPTION;LANGUAGE=de:Schulferien 2015 Bayern
TRANSP:TRANSPARENT
UID:F_2015_6169@schulferien.org
END:VEVENT
BEGIN:VEVENT
CREATED:20140820T031604Z
LAST-MODIFIED:20140820T031604Z
DTSTAMP:20140820T031604Z
SUMMARY:Schulferien 2016 Bayern
DTSTART;VALUE=DATE:20161224
DTEND;VALUE=DATE:20160106
URL:http://www.schulferien.org
DESCRIPTION;LANGUAGE=de:Schulferien 2016 Bayern
TRANSP:TRANSPARENT
UID:F_2016_6170@schulferien.org
END:VEVENT
BEGIN:VEVENT
CREATED:20140820T031815Z
LAST-MODIFIED:20140820T031815Z
DTSTAMP:20140820T031815Z
SUMMARY:Winterferien 2016 Bayern
DTSTART;VALUE=DATE:20160208
DTEND;VALUE=DATE:20160213
URL:http://www.schulferien.org
DESCRIPTION:Alle Termine auf www.schulferien.org
TRANSP:TRANSPARENT
UID:F_2016_6249@schulferien.org
END:VEVENT
BEGIN:VEVENT
CREATED:20140820T031815Z
LAST-MODIFIED:20140820T031815Z
DTSTAMP:20140820T031815Z
SUMMARY:Osterferien 2016 Bayern
DTSTART;VALUE=DATE:20160321
DTEND;VALUE=DATE:20160402
URL:http://www.schulferien.org
DESCRIPTION:Alle Termine auf www.schulferien.org
TRANSP:TRANSPARENT
UID:F_2016_6250@schulferien.org
END:VEVENT


Damit sollte eigentlich in 2016 noch der Eintrag aus 2015 gültig sein. Aber die Tage für das neue Jahr hat das Modul ignoriert. Erst nachdem ich den 24. Dez. auf den 1. Jan geändert hatte wurden die Ferien wieder angezeigt.

Muss also doch irgendwie an dem Calendarmodul liegen.
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: Dr. Boris Neubert am 09 Januar 2016, 15:57:50
Um das nachzuvollziehen, benötige ich eine Datei, die das Problem reproduziert.

Ich habe derzeit keine Anhaltspunkte für die Suche nach den Ursachen.

Viele Grüße
Boris
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: raspklaus am 12 Januar 2016, 13:24:10
Sorry,

hat etwas gedauert. Musste erst meinen Rechner neu aufsetzen.

Anbei die ics
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: Dr. Boris Neubert am 16 Januar 2016, 19:19:53
Hallo,

im Kalender enden die Bayerischen Winterferien am 06.01.2016 um 00:00. Damit sind am 06.01.2016 keine Winterferien mehr. Problem gelöst.

Viele Grüße
Boris
Titel: Antw:Calendar Fehlfunktion ?
Beitrag von: betateilchen am 16 Januar 2016, 19:22:12
Zitat von: Dr. Boris Neubert am 16 Januar 2016, 19:19:53
im Kalender enden die Bayerischen Winterferien am 06.01.2016 um 00:00.

was für Bayern auch logisch ist, weil der 06.01. dort sowieso immer ein Feier- und kein Ferientag ist. Hatte ich ja eingangs schon vermutet :)