From 7cffa585a97270d7ff6f9651913140c6aba699d0 Mon Sep 17 00:00:00 2001 From: dennismdejong Date: Mon, 27 Jul 2026 21:50:38 +0200 Subject: [PATCH] fix: log Aquarea detected zones for thermostat-availability diagnosis (Refs #459) --- README.md | 3 +++ .../panasonic_cc/aquarea/__init__.py | 25 +++++++++++++++++++ .../panasonic_cc/aquarea/climate.py | 5 ++++ 3 files changed, 33 insertions(+) diff --git a/README.md b/README.md index 1ea88f0..2f4a298 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,9 @@ data: - **Energy data not updating** — Ensure "Enable daily energy sensors" is checked in the integration options. Note that energy data resets daily. - **Current power seems inaccurate** — Current power is extrapolated from the daily energy reading and may not reflect instantaneous power accurately. +### Aquarea +If no thermostat/climate entity appears for your Aquarea monoblock (e.g. WH-SDC0509 + WH-WDG), the device may report no zones to the integration. Enable debug logging — the number of detected zones is logged at startup. Zone availability depends on the upstream aioaquarea library. + --- ## Dependencies diff --git a/custom_components/panasonic_cc/aquarea/__init__.py b/custom_components/panasonic_cc/aquarea/__init__.py index 3a9a6c2..84bf125 100644 --- a/custom_components/panasonic_cc/aquarea/__init__.py +++ b/custom_components/panasonic_cc/aquarea/__init__.py @@ -65,6 +65,11 @@ async def async_setup_aquarea( aquarea_coordinators_uninitialized: list[tuple[AquareaDeviceCoordinator, AquareaDeviceInfo]] = [] for aquarea_device in aquarea_devices: + _LOGGER.debug( + "Aquarea device discovered: id=%s name=%s", + getattr(aquarea_device, "id", None), + aquarea_device.name, + ) try: aquarea_coordinator = AquareaDeviceCoordinator( hass, config, aquarea_api, aquarea_device @@ -90,6 +95,26 @@ async def _init_aquarea(coordinator: AquareaDeviceCoordinator, device_info: Aqua exc, exc_info=True, ) + return + + device = coordinator.device + zones = device.zones + zone_summary = [ + {"zone_id": zone_id, "name": zone.name} for zone_id, zone in zones.items() + ] + _LOGGER.debug( + "Aquarea device %s (model=%s, id=%s) reported %d zone(s): %s", + device.device_name, + device.model, + device.device_id, + len(zones), + zone_summary, + ) + if not zones: + _LOGGER.info( + "Aquarea device %s reported no zones; no climate/thmostat entity will be created. Zone exposure may depend on the aioaquarea library.", + device.device_name, + ) await asyncio.gather( *(_init_aquarea(coordinator, device_info) for coordinator, device_info in aquarea_coordinators_uninitialized), diff --git a/custom_components/panasonic_cc/aquarea/climate.py b/custom_components/panasonic_cc/aquarea/climate.py index 073c79c..7d710ea 100644 --- a/custom_components/panasonic_cc/aquarea/climate.py +++ b/custom_components/panasonic_cc/aquarea/climate.py @@ -301,4 +301,9 @@ async def async_setup_entry( ), ) ) + _LOGGER.debug( + "Aquarea climate: created %d climate entity(ies) across %d coordinator(s)", + len(entities), + len(aquarea_coordinators), + ) async_add_entities(entities)