FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: weini am 21 Juni 2020, 10:50:08

Titel: 57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 21 Juni 2020, 10:50:08
Hallo zusammen!

Ich hatte mir vor ca. 1 Monat einen Abfallkalender aufgebaut. Grundlage ist ein iCAL Download von den AWM:
https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][B]=1/2;U&tx_awmabfuhrkalender_pi1[year]=2020
Die Adresse ist nicht meine, habe ich ausgetauscht  ;)

Bis vor ein paar Tagen hat das auch super funktioniert. Seitdem hängt sich leider FHEM beim Update-Versuch komplett auf.

Hier das List vom Calendar:
Internals:
   DEF        ical url https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][B]=1/2;U&tx_awmabfuhrkalender_pi1[year]=%Y 604800
   FUUID      5ed21c0b-f33f-b8ff-f8cd-412a40d5550d03af
   NAME       calAbfall
   NOTIFYDEV  global
   NR         526
   NTFY_ORDER 50-calAbfall
   STATE      triggered
   TYPE       Calendar
   READINGS:
     2020-06-20 22:15:37   modeAlarm       
     2020-06-20 22:15:37   modeAlarmOrStart
     2020-06-20 22:15:37   modeAlarmed     
     2020-06-20 22:15:37   modeChanged     
     2020-06-20 22:15:37   modeEnd         
     2020-06-20 22:15:37   modeEnded       
     2020-06-20 22:15:37   modeStart       
     2020-06-20 22:15:37   modeStarted     
     2020-06-20 22:15:37   modeUpcoming   
     2020-06-21 10:18:11   nextWakeup      2020-06-28 10:18:11
     2020-06-21 10:18:11   state           triggered
Attributes:
   group      Abfall
   hideLaterThan 14d
   hideOlderThan 0d
   room       Unsorted
   verbose    5



Im Log sieht das dann so aus:
2020.06.21 09:51:08.988 4: Calendar calAbfall: Updating...
2020.06.21 09:51:08.990 4: Calendar calAbfall: Getting data from URL <hidden>
2020.06.21 09:51:09.749 5: Calendar calAbfall: HTTP response code 200
2020.06.21 09:51:09.818 4: Calendar calAbfall: parsing data asynchronously (PID= 26868)
2020.06.21 09:51:09.821 5: Calendar calAbfall: control passed back to main loop.
2020.06.21 09:51:10.823 4: Calendar calAbfall: got result from asynchronous parsing.
2020.06.21 09:51:10.824 4: Calendar calAbfall: asynchronous parsing finished.
2020.06.21 09:51:10.841 4: Calendar calAbfall: merging data
2020.06.21 09:51:10.842 4: Calendar calAbfall: 3 records processed, 3 new, 0 known, 0 modified, 0 changed.
2020.06.21 09:51:10.842 4: Calendar calAbfall: creating calendar events
2020.06.21 09:51:10.843 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/57_Calendar.pm line 1516.
2020.06.21 09:51:10.843 3: Calendar calAbfall: keyword MO in RRULE FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO is not supported


Angehängt ist noch das vollständige iCal.
Ich habe zwischenzeitlich nichts im FHEM aktualisiert. Daher vermute ich, dass der Provider im iCAL die Daten nun etwas anders bereitstellt. Als das Problem aufgetreten ist, habe ich dann einen kompletten FHEM Update gemacht. Das hat leider nichts gebracht. Mein FHEM läuft auf einem aktuellen Raspbian und wurde erst vor ca. 3 Monaten neu aufgesetzt, die Bibliotheken sollten also auch alle recht up to date sein (hier habe ich aber seitdem nichts aktualisiert).

Das iCAL sieht für mich auf den ersten Blick korrekt aus. Die Warning zu RRULE im Log ist komisch, weil dort "BYDAY=;" angegeben wird, in der iCAL aber "BYDAY=MO,MO;" steht.

Es wäre super, wenn sich das jemand ansehen könnte. Bitte gerne melden, wenn ich noch weiteren Input liefern kann.

Viele Grüße,
weini
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 21 Juni 2020, 16:37:01
Hallo,

mit der aktuellen Revision 21910 und dem angehängten iCalender bekomme ich die gezeigte Meldung nicht.

Viele Grüße
Boris
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 21 Juni 2020, 18:30:29
Hallo Boris!

Guten Punkt, mit der ICS direkt habe ich noch gar nicht getestet. Ok, ich kann es nachvollziehen:

defmod calAbfallTest Calendar ical file /opt/fhem/abfuhrkalender_landwehrstr_10_2020.ics
attr calAbfallTest group Abfall
attr calAbfallTest hideLaterThan 14d
attr calAbfallTest hideOlderThan 0d
attr calAbfallTest room Unsorted
attr calAbfallTest verbose 5


funktioniert, das Log dazu:

2020.06.21 18:23:43.547 4: Calendar calAbfallTest: Updating...
2020.06.21 18:23:43.547 4: Calendar calAbfallTest: Getting data from file /opt/fhem/abfuhrkalender_landwehrstr_10_2020.ics
2020.06.21 18:23:43.548 5: Calendar calAbfallTest: file retrieval successful
2020.06.21 18:23:43.569 4: Calendar calAbfallTest: parsing data asynchronously (PID= 21824)
2020.06.21 18:23:43.572 5: Calendar calAbfallTest: control passed back to main loop.
2020.06.21 18:23:44.573 4: Calendar calAbfallTest: got result from asynchronous parsing.
2020.06.21 18:23:44.574 4: Calendar calAbfallTest: asynchronous parsing finished.
2020.06.21 18:23:44.658 4: Calendar calAbfallTest: merging data
2020.06.21 18:23:44.658 4: Calendar calAbfallTest: 8 records processed, 8 new, 0 known, 0 modified, 0 changed.
2020.06.21 18:23:44.660 4: Calendar calAbfallTest: creating calendar events
2020.06.21 18:23:44.731 4: Calendar calAbfallTest: Checking times...
2020.06.21 18:23:44.742 4: Calendar calAbfallTest: process ended.


Wenn ich allerdings direkt über die URL gehe:

defmod calAbfallTest Calendar ical url https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][B]=1/2;U&tx_awmabfuhrkalender_pi1[year]=%Y 604800
attr calAbfallTest group Abfall
attr calAbfallTest hideLaterThan 14d
attr calAbfallTest hideOlderThan 0d
attr calAbfallTest room Unsorted
attr calAbfallTest verbose 5


dann hängt FHEM beim Abruf des Kalenders:

2020.06.21 18:16:33.418 1: Calendar calAbfallTest: retrieval failed with HTTP response code 400
2020.06.21 18:16:33.422 1: Calendar calAbfallTest: retrieved no or empty data
2020.06.21 18:17:39.690 4: Calendar calAbfallTest: Updating...
2020.06.21 18:17:39.694 4: Calendar calAbfallTest: Getting data from URL <hidden>
2020.06.21 18:17:40.290 5: Calendar calAbfallTest: HTTP response code 200
2020.06.21 18:17:40.345 4: Calendar calAbfallTest: parsing data asynchronously (PID= 21278)
2020.06.21 18:17:40.347 5: Calendar calAbfallTest: control passed back to main loop.
2020.06.21 18:17:41.347 4: Calendar calAbfallTest: got result from asynchronous parsing.
2020.06.21 18:17:41.348 4: Calendar calAbfallTest: asynchronous parsing finished.
2020.06.21 18:17:41.361 4: Calendar calAbfallTest: merging data
2020.06.21 18:17:41.361 4: Calendar calAbfallTest: 3 records processed, 3 new, 0 known, 0 modified, 0 changed.
2020.06.21 18:17:41.362 4: Calendar calAbfallTest: creating calendar events
2020.06.21 18:17:41.362 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/57_Calendar.pm line 1516.
2020.06.21 18:17:41.363 3: Calendar calAbfallTest: keyword MO in RRULE FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO is not supported


Das ICS File habe ich exakt über die angegebene URL via Firefox gezogen.
Spannend finde ich, dass er einmal "8 Records" und einmal nur "3 Records" findet.

Viele Grüße,
Christian
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 21 Juni 2020, 18:40:39
Hallo,

ich denke, hier liegt das Problem:

Zitat von: weini am 21 Juni 2020, 18:30:29
2020.06.21 18:16:33.418 1: Calendar calAbfallTest: retrieval failed with HTTP response code 400


Es gab kürzlich Änderungen an HttpUtils.pm. Das könnte die Ursache sein.

Wenn Du mal auf eine Version von FHEM von vor dem 25.05.2020 zurückgehst und es dann wieder geht, dann bin ich ziehmlich sicher, dass die Änderung an HttpUtils der Grund ist.

Viele Grüße
Boris

Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 21 Juni 2020, 19:27:08
Hallo Boris!

Bist du sicher?
Die Meldung "retrieval failed with HTTP response code 400" kommt beim Anlegen des Device.
Wenn ich dann "reload" ausführe, dann kommen die Logs ab
2020.06.21 18:17:39.690 4: Calendar calAbfallTest: Updating...
und erst dann hängt FHEM.

Das würde auch nicht dazu passen, dass das bei mir mal wunderbar funktioniert hat und dann (mit dem identischen SW-Stand, keine Updates) jetzt nicht mehr. Den Thread zu HttpUtils  hatte ich gelesen. Da aber das Problem in HttpUtils angeblich gefixt ist und ich bei mir gestern alles upgedated habe, sollte das nicht mehr auftreten.

Ich probiere es jetzt aber trotzdem gleich nochmal aus, Rückmeldung folgt.

Viele Grüße,
weini
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 21 Juni 2020, 19:37:33
Habs getestet mit der HttpUtils die du hier https://forum.fhem.de/index.php/topic,111718.msg1060852.html#msg1060852 (https://forum.fhem.de/index.php/topic,111718.msg1060852.html#msg1060852) angehängt hattest.
Es kommen die selben Log-Meldungen und FHEM hängt sich nach Ausführen von reload auch damit auf.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 21 Juni 2020, 22:26:47
Hi,

was meinst Du mit aufhängen?

Viele Grüße
Boris
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 21 Juni 2020, 23:03:58
Totales Blockieren!
Die geposteten Log-Einträge sind das Ende, danach passiert nichts mehr. Web & Telnet Interfaces sind tot.
Normal schlägt dann nach 180 Sekunden der systemd Watchdog zu. Ich hatte ihn aber auch schon mal deaktiviert. Auch nach 5-10 Minuten hat sich nichts getan.

VG,
weini
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 02:05:47
Hast Du mal versucht, den Kalender über deine URL zu holen, und mit einem Editor drinn zu gucken?

Habs gerade gemacht:
Die VEVENTS sehen so aus:
BEGIN:VEVENT
DTSTAMP:20200621T234728Z
UID:PuL3pjhuYtPdRnpoa93WMDSNq1AKYQJOkuSJN9eM@awm-muenchen.de
SUMMARY:Restmülltonne, Landwehrstr. 10

DTSTART;TZID=Europe/Berlin;VALUE=DATE:19700101
DTEND;TZID=Europe/Berlin;VALUE=DATE:19700101

LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED

RRULE:FREQ=WEEKLY;UNTIL=%Y1231;BYDAY=MO,MO;WKST=MO

BEGIN:VALARM
TRIGGER:-PT15H
ACTION:DISPLAY

DESCRIPTION:Restmülltonne, Landwehrstr. 10
END:VALARM
END:VEVENT



Ich weiss nicht, wie das Modul gebaut ist, aber mit Anfang 1970 und wöchentliche Wiederholung bis Ende dieses Jahres (wenn er schon UNTIL=%Y1231 richtig interpretieren kann) könnte ich mir schon vorstellen, dass er viel zu tun hat... Das macht nur für Restmülltonne potentiel 2600 Termine zu kalkulieren. Genauso für Papier. Zum Glück ist Biotonne nur jede 2. Woche ;)
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 22 Juni 2020, 07:10:58
Das ist ja spannend!

Mit welcher URL genau hast du denn dieses ICS gezogen?
Die ICS, die ich erhalte, sehe alle so aus:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Abfallwirtschaftsbetrieb München//Abfuhrkalender//DE
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20200621T083649Z
UID:XuQMUwV1fwfAfzIsM0EUHJBEeHfERP7OjXBduwfK@awm-muenchen.de
SUMMARY:Restmülltonne, Landwehrstr. 10
DTSTART;TZID=Europe/Berlin;VALUE=DATE:20200615
DTEND;TZID=Europe/Berlin;VALUE=DATE:20200616
LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=MO,MO;WKST=MO
EXDATE;VALUE=DATE:20201221T000000
EXDATE;VALUE=DATE:20201228T000000
EXDATE;VALUE=DATE:20200406T000000
EXDATE;VALUE=DATE:20200413T000000
EXDATE;VALUE=DATE:20200504T000000
EXDATE;VALUE=DATE:20200601T000000


URL:
=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus]=1/2;U&tx_awmabfuhrkalender_pi1[year]=2020]https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus]=1/2;U&tx_awmabfuhrkalender_pi1[year]=2020 (https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection)

Ich sehe gerade in der Vorschau, dass die Board-SW die Formatierung der URL durcheinanderbringt. Wenn man sie klickt, dann sollte es aber stimmen.

Ich habe nochmal einen Versuch via IE gemacht (normal nutze ich FF), nicht dass die Website bei mir irgendwelche Cookies gesetzt hat. Meine ICS Dateien haben aber nie ein 1970er Datum drin.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 22 Juni 2020, 10:54:44
Hallo,

um amenomades Idee nachzuspüren bitte ich Dich, in Zeile 2803 von Calender.pm im Code folgendes einzubauen:

main::Debug $ics;

Dann wird ins Log geschrieben, wie der heruntergeladene Kalender tatsächlich aussieht. Das ist die Grundlage für weitere Analysen.

Grüße
Boris
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 11:06:11
Nur zur Info: ich habe einfach die URL aus der DEF genommen, ohne %Y durch 2020 zu ersetzen.

Mit Ersetzung sieht es so aus:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Abfallwirtschaftsbetrieb München//Abfuhrkalender//DE
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20200622T090115Z
UID:igXuY9LXEDcBbSKd0PwJP2V7gNgl5lYoBWSA6EyK@awm-muenchen.de
SUMMARY:Restmülltonne, Landwehrstr. 10
DTSTART;TZID=Europe/Berlin;VALUE=DATE:20200622
DTEND;TZID=Europe/Berlin;VALUE=DATE:20200623
LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=MO,MO;WKST=MO
EXDATE;VALUE=DATE:20201221T000000
EXDATE;VALUE=DATE:20201228T000000
EXDATE;VALUE=DATE:20200406T000000
EXDATE;VALUE=DATE:20200413T000000
EXDATE;VALUE=DATE:20200504T000000
EXDATE;VALUE=DATE:20200601T000000
BEGIN:VALARM
TRIGGER:-PT15H
ACTION:DISPLAY
DESCRIPTION:Restmülltonne, Landwehrstr. 10
END:VALARM
END:VEVENT

Das war nur eine Idee. Da müsste man aber doch ins Debug gehen, wie Boris gesagt hat. Wenn Calendar Probleme macht, gehe ich immer eher davon aus, dass die Daten des Kalenders die Ursache sind.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 22 Juni 2020, 11:26:48
@amenomade: Ok, das erklärt die Diskrepanz

@Boris: Gerne, hier das Log:


2020.06.22 11:20:18.290 1: DEBUG>BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Abfallwirtschaftsbetrieb München//Abfuhrkalender//DE
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20200622T092018Z
UID:DyXRNF1Mfmh0vJZSwWhx15x0q8xDIzPm7MdUsfGI@awm-muenchen.de
SUMMARY:Restmülltonne, landwehrstr. 10
DTSTART;TZID=Europe/Berlin;VALUE=DATE:20200621
DTEND;TZID=Europe/Berlin;VALUE=DATE:20200622
LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO
BEGIN:VALARM
TRIGGER:-PT15H
ACTION:DISPLAY
DESCRIPTION:Restmülltonne, landwehrstr. 10
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20200622T092018Z
UID:CXJ7HJZdFhKGnhHNpeq8OgvW3JQwYxfAvYIdHIrn@awm-muenchen.de
SUMMARY:Papiertonne, landwehrstr. 10
DTSTART;TZID=Europe/Berlin;VALUE=DATE:20200621
DTEND;TZID=Europe/Berlin;VALUE=DATE:20200622
LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO
BEGIN:VALARM
TRIGGER:-PT15H
ACTION:DISPLAY
DESCRIPTION:Papiertonne, landwehrstr. 10
END:VALARM
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20200622T092018Z
UID:Zc4ntLaT0B2OSyLVhBsf9HQFFzSnhkLhwPE0BPUB@awm-muenchen.de
SUMMARY:Biotonne, landwehrstr. 10
DTSTART;TZID=Europe/Berlin;VALUE=DATE:20200621
DTEND;TZID=Europe/Berlin;VALUE=DATE:20200622
LOCATION:Landwehrstr. 10, München
DESCRIPTION:Stellplatz: Landwehrstr. 10
STATUS:CONFIRMED
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO
BEGIN:VALARM
TRIGGER:-PT15H
ACTION:DISPLAY
DESCRIPTION:Biotonne, landwehrstr. 10
END:VALARM
END:VEVENT
END:VCALENDAR
2020.06.22 11:20:19.390 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/57_Calendar.pm line 1516.
2020.06.22 11:20:19.391 3: Calendar calAbfallTest: keyword MO in RRULE FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO is not supported


Die RRULE ist tatsächlich durch die Mangel gedreht. Die sieht im heruntergeladenen ICS File auch anders aus.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 22 Juni 2020, 16:49:03
Zitat von: weini am 22 Juni 2020, 11:26:48
Die RRULE ist tatsächlich durch die Mangel gedreht. Die sieht im heruntergeladenen ICS File auch anders aus.

Das ist sehr komisch. Wenn ich die URL aus der Definition des Kalenders (mit 2020 statt %Y) im Browser eingebe, bekomme ich die korrekte Datei. FHEM lädt aber etwas anderes herunter.

Wie kommt das? Ich bin ratlos. Müsste man einen Test für HttpUtils schreiben.

Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 22 Juni 2020, 16:56:28
Da bin ich ja froh, dass es mir nicht alleine so geht.

Jetzt kann ich aber nochmal etwas Licht ins Dunkel bringen: Wenn ich von meinem Raspi aus die URL mit "wget" ziehe, dann bekomme ich den selben Mist - also auch die fehlerhafte RULE Zeile.

Das sieht mir eher nach einem Server-seitigem Issue aus...
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 19:28:47
Anscheinend ist es die Webseite, die Probleme macht.
Wenn ich es richtig sehe, pflegt sie so eine Art Sitzung Cookie...

EDIT:
Ne, das ist nicht die Sitzung das Problem. Diese wird von der Webseite zwar mitgeschickt, aber scheint keinen Einfluss zu haben.
ABER: Die Webseite braucht ein "User-Agent"

wget -O test.ics 'https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection%5D=ics&tx_awmabfuhrkalender_pi1%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_pi1%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_pi1%5Bstrasse%5D=Landwehrstr.&tx_awmabfuhrkalender_pi1%5Bhausnummer%5D=10&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Brestmuell%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bpapier%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bbio%5D=70057572&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BR%5D=002%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BP%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_pi1%5Byear%5D=2020'
geht nicht.

wget -O test.ics --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0" 'https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][B]=1/2;U&tx_awmabfuhrkalender_pi1[year]=2020' also, das gleiche mit nur ein Header User-Agent dazu, geht

Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 19:45:16
Und das ist wahrscheinlich kein Server-seitiges Issue sondern eher ein Feature ;)
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 22 Juni 2020, 20:00:34
Bingo!

Genau in die Richtung wollte ich suchen, das hätte mich nur Ewigkeiten gekostet, weil ich in der Materie leider nicht so gut drin bin.
Ich denke nicht unbedingt, dass es ein "Featue" ist. Wie ich eingangs im Thread geschrieben habe, hat es bis vor gut einer Woche noch funktioniert. Sieht mir eher nach einer Systemumstellung mit Nebenwirkungen aus....

@Boris: Es gibt nicht zufällig einen Weg, für ein "Calendar" Objekt den User-Agent für den URL Abruf festzulegen?  ;-
Ich denke, ich bastle mir einen separaten HTTPS/wget/HTTPMOD what so ever Abruf und lasse Calendar dann das File laden.

Vielen Dank auch euch für die tolle Unterstützung!
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 22 Juni 2020, 20:12:36
Zitat von: weini am 22 Juni 2020, 20:00:34
@Boris: Es gibt nicht zufällig einen Weg, für ein "Calendar" Objekt den User-Agent für den URL Abruf festzulegen?  ;-

Neee.....

Ansonsten ist der Weg der Richtige. Allerdings dürften sich alle Module aus FHEM, die HttpUtils verwenden, gleich verhalten.


Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 20:14:52
Zitat von: Dr. Boris Neubert am 22 Juni 2020, 20:12:36
Allerdings dürften sich alle Module aus FHEM, die HttpUtils verwenden, gleich verhalten.

Ja, aber ggf erlauben diese Module das Setzen von Headers. Z.B. HTTPMOD.
Zitat von: httputils.pmheader => ("" or HASH)
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Dr. Boris Neubert am 22 Juni 2020, 20:29:49
Zitat von: amenomade am 22 Juni 2020, 20:14:52
Ja, aber ggf erlauben diese Module das Setzen von Headers. Z.B. HTTPMOD.

Stimmt. Aber der User-Agent wird in HttpUtils::HttpUtils_Connect2() hart auf fhem gesetzt.

Man könnte nun natürlich...  :-X

Aber alles wegen einem Server, der sich so bekloppt verhält?
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 22 Juni 2020, 20:32:03
Definitiv, das ist viel zu exotisch...

Ich sehe mir mal an, wie man das in Anbetracht der Umstände möglichst "vernünftig" machen kann und lasse euch wissen, wie ich es gelöst habe.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 20:34:41
Zitat von: Dr. Boris Neubert am 22 Juni 2020, 20:29:49

Aber alles wegen einem Server, der sich so bekloppt verhält?
Entscheidung des Modulautors ;)
Ich würde es auch nicht machen, insb. weil es einen Umweg gibt, sprich was er schon gesagt hat: wget mit allem drum und dran, und dann die Datei statt die URL vom Modul lesen lassen
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: betateilchen am 22 Juni 2020, 21:40:40
Zitat von: amenomade am 22 Juni 2020, 19:28:47
ABER: Die Webseite braucht ein "User-Agent"

wget -O test.ics 'https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection%5D=ics&tx_awmabfuhrkalender_pi1%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_pi1%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_pi1%5Bstrasse%5D=Landwehrstr.&tx_awmabfuhrkalender_pi1%5Bhausnummer%5D=10&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Brestmuell%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bpapier%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bbio%5D=70057572&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BR%5D=002%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BP%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_pi1%5Byear%5D=2020'

geht nicht.

Das funktioniert bei mir einwandfrei und liefert ein gültiges ics file zurück.


udo@cubie ~ $ wget -O test.ics 'https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection%5D=ics&tx_awmabfuhrkalender_pi1%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_pi1%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_pi1%5Bstrasse%5D=Landwehrstr.&tx_awmabfuhrkalender_pi1%5Bhausnummer%5D=10&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Brestmuell%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bpapier%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bbio%5D=70057572&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BR%5D=002%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BP%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_pi1%5Byear%5D=2020'
--2020-06-22 21:38:32--  https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection%5D=ics&tx_awmabfuhrkalender_pi1%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_pi1%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_pi1%5Bstrasse%5D=Landwehrstr.&tx_awmabfuhrkalender_pi1%5Bhausnummer%5D=10&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Brestmuell%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bpapier%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bbio%5D=70057572&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BR%5D=002%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BP%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_pi1%5Byear%5D=2020
Resolving www.awm-muenchen.de (www.awm-muenchen.de)... 2a00:1830:a001:f001:80::a187, 194.246.148.87
Connecting to www.awm-muenchen.de (www.awm-muenchen.de)|2a00:1830:a001:f001:80::a187|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1598 (1,6K) [text/html]
Saving to: 'test.ics'

test.ics              100%[=========================>]   1,56K  --.-KB/s    in 0s

2020-06-22 21:38:33 (4,49 MB/s) - 'test.ics' saved [1598/1598]

udo@cubie ~ $ cat test.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Abfallwirtschaftsbetrieb München//Abfuhrkalender//DE
CALSCALE:GREGORIAN
BEGIN:VEVENT
...
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 22 Juni 2020, 21:43:53
Und wie sieht die RRULE aus?
RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=;WKST=MO
= geht nicht, bzw ist nicht richtig

RRULE:FREQ=WEEKLY;UNTIL=20201231;BYDAY=MO,MO;WKST=MO
EXDATE;VALUE=DATE:20201221T000000
EXDATE;VALUE=DATE:20201228T000000
EXDATE;VALUE=DATE:20200406T000000
EXDATE;VALUE=DATE:20200413T000000
EXDATE;VALUE=DATE:20200504T000000
EXDATE;VALUE=DATE:20200601T000000

= geht, ist richtig
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: betateilchen am 22 Juni 2020, 21:54:45
ok, dann war "geht nicht" für mich irreführend.
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 23 Juni 2020, 10:40:54
Ich habe jetzt ein einfaches DOIF gebaut:

defmod dif_Hole_Abfall_ICAL DOIF ([19:00|1]) {system("wget -O /var/lib/fhem/abfuhrkalender_marmolatastr_6.ics --header 'User-Agent: Mozilla/5.0 (Windows)' 'https://www.awm-muenchen.de/index/abfuhrkalender.html?tx_awmabfuhrkalender_pi1%5Bsection%5D=ics&tx_awmabfuhrkalender_pi1%5Bstandplatzwahl%5D=true&tx_awmabfuhrkalender_pi1%5Bsinglestandplatz%5D=false&tx_awmabfuhrkalender_pi1%5Bstrasse%5D=Landwehrstr.&tx_awmabfuhrkalender_pi1%5Bhausnummer%5D=10&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Brestmuell%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bpapier%5D=70057572&tx_awmabfuhrkalender_pi1%5Bstellplatz%5D%5Bbio%5D=70057572&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BR%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BP%5D=001%3BU&tx_awmabfuhrkalender_pi1%5Bleerungszyklus%5D%5BB%5D=1%2F2%3BU&tx_awmabfuhrkalender_pi1%5Byear%5D=2020'")}

Beim Herumprobieren ist mir aufgefallen, dass der AWM Server durchaus diverse User-Agents akzeptiert. Ich habe den User-Agent String im Aufruf oben auch deutlich vereinfacht.

Zitat von: Dr. Boris Neubert am 22 Juni 2020, 20:29:49
Aber der User-Agent wird in HttpUtils::HttpUtils_Connect2() hart auf fhem gesetzt.

Der Server stößt sich meiner Meinung nach eher an der nicht vorhandenen Systematik von "User-Agent: fhem".
Hier gibt es dazu z. B. eine schöne Übersicht: https://deviceatlas.com/blog/list-of-user-agent-strings (https://deviceatlas.com/blog/list-of-user-agent-strings)
Wenn FHEM in HttpUtils folgenden User-Agent String senden würde, dann würde FHEM sich mehr am "Standard" orientieren und die AWM Website würde korrekte Daten liefern.
"User-Agent: Mozilla/5.0 (Windows; FHEM)"  (alternativ auch Linux statt Windows)

Wäre das aus eurer Sicht sinnvoll?
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: amenomade am 23 Juni 2020, 11:09:19
Ne, also fhem ist kein "Mozilla unter Betriebssystem  Fhem". Fhem ist Fhem
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 23 Juni 2020, 15:24:29
So - und jetzt vergessen wir die ganze Bastelei, nehmen eine leicht modifizierte URL und alles funktioniert wieder wie früher:

defmod calAbfallTest Calendar ical url https://www.awm-muenchen.de/index/abfuhrkalender.html?text=1&tx_awmabfuhrkalender_pi1[section]=ics&tx_awmabfuhrkalender_pi1[standplatzwahl]=true&tx_awmabfuhrkalender_pi1[singlestandplatz]=false&tx_awmabfuhrkalender_pi1[strasse]=Landwehrstr.&tx_awmabfuhrkalender_pi1[hausnummer]=10&tx_awmabfuhrkalender_pi1[stellplatz][restmuell]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][papier]=70057572&tx_awmabfuhrkalender_pi1[stellplatz][bio]=70057572&tx_awmabfuhrkalender_pi1[leerungszyklus][R]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][P]=001;U&tx_awmabfuhrkalender_pi1[leerungszyklus][B]=1/2;U&tx_awmabfuhrkalender_pi1[year]=%Y 604800


Man beachte das zusätzliche "text=1" als ersten Parameter in der URL. Damit ist dann der User-Agent wieder egal. Wer bitte baut solche Webseiten?
Das ist jetzt hauptsächlich, falls noch andere Anwender aus München kommen und den Abfallkalender nutzen wollen.

Viele Grüße,
weini
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: Beta-User am 23 Juni 2020, 15:36:26
Nur interessehalber: Wie oft ändert sich denn der Abfuhrkalender bei euch in München?
Unserer hier ist so statisch, wie er nur sein kann, daher lade ich das Ding einmal p.a. und das paßt dann auch das ganze Jahr so.

Auch wenn du das hier auf 1x pro Woche stehen hast, meine ich, dass das lokale Vorhalten eines solchen Kalenders die bessere Variante ist, denn:
Manchmal kommen Anbieter auf komische Ideen, wenn (aus deren Sicht zu) viele (automatisierte) Anfragen nach solchen Services kommen. U.a. deswegen scheint der eine oder andere Anbieter von Ferienkalendern dazu übergegangen zu sein, irgendwelche aufwändigeren "ich bin kein Roboter"-Verfahren zu implementieren (da gab es aber auch Spezialisten, die das mehrfach am Tag aktualisiert haben wollten...).
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: weini am 23 Juni 2020, 15:54:59
Fairer Punkt! Vor Corona hätte ich das Intervall vermutlich auf ein 1/4 Jahr gestellt  ::)

Was ich aber nicht mag: Manuelle Aktualisierungen zum Jahreswechsel, zur Zeitumstellung etc. Dann lebe ich lieber damit, dass mein FHEM zu husten beginnt, falls die AWM ihren Server so umkonfigurieren, dass in einem Jahr auch im Textmodus ein User-Agent angegeben werden muss.

Das ist persönliche Präferenz - kann man natürlich auch anders machen
Titel: Antw:57_Calendar.pm - Abruf von AWM München blockiert FHEM
Beitrag von: betateilchen am 23 Juni 2020, 19:07:15
Zitat von: Beta-User am 23 Juni 2020, 15:36:26
da gab es aber auch Spezialisten, die das mehrfach am Tag aktualisiert haben wollten...).

Es gab hier im Forum auch schon Spezialisten, die alle zwei Minuten das Fernsehprogramm aktualisieren wollten...