scaarup / aula

Fetches information from Aula about your children
GNU General Public License v3.0
60 stars 17 forks source link

Ingen sensors bliver oprettet #186

Closed PatrickFrederiksen closed 23 hours ago

PatrickFrederiksen commented 2 months ago

Hvis jeg vælger "Add ugeplaner as sensor attributes?" Bliver der ikke oprettet nogen sensorer.

Fravælger jeg den bliver der oprettet nogle stykker.

Loggen viser at en af institutionerne ikke har licens til ugeplanner funktionen, jeg ser fint data da de andre.

Kan det være det der for sensor oprettelsen for de andre til at fejle ?

Please answer the following

2024-09-23 11:48:48.233 DEBUG (SyncWorker_16) [custom_components.aula.client] EasyIQ Opgaver response {'ErrorCode': '1', 'ErrorDescription': 'Institutionen har ikke licens til EasyIQ Ugeplan widget.'} 2024-09-23 11:48:48.234 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up aula platform for sensor Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 361, in _async_setup_platform await asyncio.shield(awaitable) File "/config/custom_components/aula/sensor.py", line 75, in async_setup_entry await hass.async_add_executor_job(client.update_data) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/aula/client.py", line 762, in update_data ugeplan(thisweek, "this") File "/config/custom_components/aula/client.py", line 555, in ugeplan for i in ugeplaner.json()["Events"]:


KeyError: 'Events'
scaarup commented 2 months ago

Hej Patrick Jeg tror vi er lidt ude i en edge case her. Institutionens licens til EasyIQ er udløbet, men widget'en bliver stadig listet for dig som bruger i Aula. Det kan jeg ikke rigtig gøre så meget ved, andet end at lave noget fejlhåndtering på det.

PatrickFrederiksen commented 2 months ago

Det er en dagpleje, så tror ikke de bruger easyiq der. så noget fejhåndtering eller mulighed for at filtrere det "defekte barn" fra ville være fedt

PatrickFrederiksen commented 1 week ago

Jeg har forsøgt at smide for loopet der kigger ugeplaner["Events"] igennem, i en try / except, Det løser problemet hos mig med den manglende key fordi der ikke er easyiq i dagplejen..

Er det noget du kan smide med i næste update ?

                        try:
                            for i in ugeplaner.json()["Events"]:
                                if is_correct_format(i["start"], "%Y/%m/%d %H:%M"):
                                    _LOGGER.debug("No Event")
                                    start_datetime = datetime.datetime.strptime(
                                        i["start"], "%Y/%m/%d %H:%M"
                                    )
                                    _LOGGER.debug(start_datetime)
                                    end_datetime = datetime.datetime.strptime(
                                    i["end"], "%Y/%m/%d %H:%M"
                                    )
                                    if start_datetime.date() == end_datetime.date():
                                        formatted_day = findDay(
                                            start_datetime.strftime("%d %m %Y")
                                        )
                                        formatted_start = start_datetime.strftime(" %H:%M")
                                        formatted_end = end_datetime.strftime("- %H:%M")
                                        dresult = f"{formatted_day} {formatted_start} {formatted_end}"
                                    else:
                                        formatted_start = findDay(
                                            start_datetime.strftime("%d %m %Y")
                                        )
                                        formatted_end = findDay(
                                            end_datetime.strftime("%d %m %Y")
                                        )
                                        dresult = f"{formatted_start} {formatted_end}"
                                    _ugep = _ugep + "<br><b>" + dresult + "</b><br>"
                                    if i["itemType"] == "5":
                                        _ugep = (
                                            _ugep + "<br><b>" + str(i["title"]) + "</b><br>"
                                        )
                                    else:
                                        _ugep = (
                                            _ugep
                                            + "<br><b>"
                                            + str(i["ownername"])
                                            + "</b><br>"
                                        )
                                    _ugep = _ugep + str(i["description"]) + "<br>"
                                else:
                                    _LOGGER.debug("None")
                        except KeyError:
                                    _LOGGER.debug("None")
scaarup commented 1 week ago

Fedt, tak! Vil du lave en PR på det i stedet? Det er noget nemmere. Jeg har ikke selv easyiq, så jeg kan ikke teste det.