mampfes / hacs_waste_collection_schedule

Home Assistant integration framework for (garbage collection) schedules
MIT License
1.08k stars 658 forks source link

ICS Datei (Abo) der Abfallwirtschaft Alzey funktioniert das Parsen nicht. #1851

Closed Continueless closed 8 months ago

Continueless commented 8 months ago

I Have A Problem With:

A specific source

What's Your Problem

Der Abfallkalender der Abfallwirtschaft Alzey funktioniert nicht. Er lädt die Datei, doch im log sieht man dann, das das parsen überhaupt nicht funktioniert. Es werden keine Daten in den Kalender von Homeassistant übernommen.

https://www.kreis-alzey-worms.eu/verwaltung/abfall/termine.php

Das parsen in Iobroker mit dem gleichen Kalender funktioniert problemlos.

Source (if relevant)

No response

Logs

2024-02-29 21:21:30.264 ERROR (SyncWorker_8) [waste_collection_schedule.source_shell] fetch failed for source ICS:
Traceback (most recent call last):
File "/config/custom_components/waste_collection_schedule/waste_collection_schedule/source_shell.py", line 134, in fetch
entries = self._source.fetch()
^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/waste_collection_schedule/waste_collection_schedule/source/ics.py", line 179, in fetch
return self.fetch_url(self._url, self._params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/waste_collection_schedule/waste_collection_schedule/source/ics.py", line 204, in fetch_url
return self._convert(r.text)
^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/waste_collection_schedule/waste_collection_schedule/source/ics.py", line 215, in _convert
dates = self._ics.convert(data)
^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/waste_collection_schedule/waste_collection_schedule/service/ICS.py", line 39, in convert
end_date = start_date.replace(year=start_date.year + 1)

Relevant Configuration

nichts relantes.

Checklist Source Error

Checklist Sensor Error

Required

SneakpodStefan commented 8 months ago

Es scheint ein Problem mit dem Schalttag zu geben. Vermutlich ist morgen alles wieder gut :-)

Continueless commented 8 months ago

Verblüffend, aber es scheint zu stimmen. Das ICS.py scheint ein Problem mit dem 29.02. zu haben. Sollte trotzdem behoben werden für 2028

5ila5 commented 8 months ago

Behoben in #1855

Unser ICS helper berechnet ein Endtag, indem er beim aktuellen Datum das Jahr um 1 erhöht, dass führt am 29.02 zu einem Fehler, da es ihn im nächsten Jahr nicht gibt.

Continueless commented 8 months ago

Hallo,

Ist das nun wirklich behoben, oder wurde das hier nur zu gemacht ? Das es funktioniert beweist ja der Adapter vom iobroker, sowie auch der maikei alexa skill.

Am 1. März 2024, 19:14, um 19:14, 5ila5 @.***> schrieb:

Behoben in #1855

Unser ICS helper berechnet ein Endtag, indem er beim aktuellen Datum das Jahr um 1 erhöht, dass führt am 29.02 zu einem Fehler, da es ihn im nächsten Jahr nicht gibt.

-- Reply to this email directly or view it on GitHub: https://github.com/mampfes/hacs_waste_collection_schedule/issues/1851#issuecomment-1973686170 You are receiving this because you authored the thread.

Message ID: @.***>

5ila5 commented 8 months ago

@Continueless

Ich verstehe ehrlich gesagt nicht, was iobroker oder irgendein alexa skill damit zu tun hat.

Aber wie in der Nachricht oben beschrieben wurde der Fehler in PR #1855 behoben und wird teil des nächsten Releases sein, indem in der service/ICS.py Datei die Zeile end_date = start_date.replace(year=start_date.year + 1) durch end_date = start_date + datetime.timedelta(days=365) ersetzt wurde und so nicht mehr der Fehler auftritt, dass es den 29.02. des nächsten Jahres nicht mehr gibt, sondern einfach ein delta von 356 Tagen addiert wird.