Просмотр исходного кода

Add debug logging to CalDAV connection, auth test, and calendar/event search

ZiB 4 месяцев назад
Родитель
Сommit
a58def6080

+ 5 - 0
custom_components/room_cal_ha/config_flow.py

@@ -1,11 +1,14 @@
 from __future__ import annotations
 
+import logging
 from typing import Any
 
 import caldav
 import caldav.lib.error as caldav_error
 import voluptuous as vol
 
+_LOGGER = logging.getLogger(__name__)
+
 from homeassistant.config_entries import ConfigEntry, ConfigFlow, ConfigFlowResult, OptionsFlow
 from homeassistant.core import callback
 from homeassistant.helpers.selector import (
@@ -141,5 +144,7 @@ class RoomCalOptionsFlow(OptionsFlow):
 
 def _test_caldav_auth(url: str, username: str, password: str) -> None:
   """Blocking: verify credentials by fetching the principal."""
+  _LOGGER.debug("CalDAV auth test: connecting to %s as %r", url, username)
   client = caldav.DAVClient(url=url, username=username, password=password)
   client.principal()
+  _LOGGER.debug("CalDAV auth test: success")

+ 10 - 2
custom_components/room_cal_ha/coordinator.py

@@ -111,12 +111,17 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
     username = self.entry.data.get(CONF_USERNAME, "")
     password = self.entry.data.get(CONF_PASSWORD, "")
 
+    _LOGGER.debug("CalDAV connecting to %s as %r", url, username)
     client = caldav.DAVClient(url=url, username=username, password=password)
     principal = client.principal()
+    _LOGGER.debug("CalDAV principal resolved: %s", principal)
 
+    _LOGGER.debug("CalDAV searching for calendar %r", cal_name)
     calendar = None
     for cal in principal.calendars():
-      if cal_name and cal.name == cal_name:
+      name = cal.get_display_name()
+      _LOGGER.debug("CalDAV found calendar %r", name)
+      if cal_name and name == cal_name:
         calendar = cal
         break
       if not cal_name:
@@ -124,15 +129,18 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
         break
 
     if calendar is None:
-      _LOGGER.warning("Calendar %r not found", cal_name)
+      _LOGGER.warning("CalDAV calendar %r not found", cal_name)
       return None, None
 
+    _LOGGER.debug("CalDAV using calendar %r", cal.get_display_name())
     now = dt_util.now()
+    _LOGGER.debug("CalDAV searching events from %s to %s", now, now + timedelta(days=90))
     events = calendar.date_search(
       start=now,
       end=now + timedelta(days=90),
       expand=True,
     )
+    _LOGGER.debug("CalDAV found %d event(s)", len(events) if hasattr(events, "__len__") else -1)
 
     parsed = sorted(
       [e for e in (_parse_event(ev) for ev in events) if e is not None],