scaarup / aula

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

Calendar update fails #109

Closed niklas-petersen closed 1 year ago

niklas-petersen commented 1 year ago

Calendar update Fails

Først of fremmest tak for at stykke dette sammen 👍

Vores skole udfylder tilsyneladende ikke teacher for en eller flere af events i kalenderen, hvilket resulterer i denne fejl i loggen:

2023-08-21 19:53:11.513 ERROR (MainThread) [homeassistant.helpers.entity] Update for calendar.skoleskema_XXX fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 699, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 940, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aula/calendar.py", line 62, in update
    self.data.update()
  File "/usr/src/homeassistant/homeassistant/util/__init__.py", line 190, in wrapper
    result = method(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/aula/calendar.py", line 126, in update
    self.parseCalendarData(self)
  File "/config/custom_components/aula/calendar.py", line 112, in parseCalendarData
    summary=summary+", "+teacher,
            ~~~~~~~~~~~~^~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str

Please answer the following

Please provide debug log from the integration

niklas-petersen commented 1 year ago

Jeg tror det kan fixes ved at rette denne linje: https://github.com/scaarup/aula/blob/main/custom_components/aula/calendar.py#L112

Til dette:

                    summary=f"{summary}, {teacher}" if teacher else summary,
scaarup commented 1 year ago

Aha spændende :)

Vil du først prøve at rette linje 103 til:

teacher = str(c['lesson']['participants'][0]['teacherInitials']) Og linje 107: teacher = str(c['lesson']['participants'][0]['teacherName'])

Evt. ændre de to _LOGGER.debug til _LOGGER.warn, så vi kan se hvor vi ender i den try-except.