From 8408420c2cf1bc0dd56a3cc0849e8d8b598c7ec3 Mon Sep 17 00:00:00 2001 From: Marc Dirix Date: Sat, 20 Jun 2026 15:07:50 +0200 Subject: [PATCH 1/6] Change logging from warning to debug to reduce logging --- plugwise_usb/nodes/node.py | 2 +- plugwise_usb/nodes/scan.py | 4 ++-- plugwise_usb/nodes/sed.py | 4 ++-- plugwise_usb/nodes/sense.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugwise_usb/nodes/node.py b/plugwise_usb/nodes/node.py index fd66b967e..66b189a43 100644 --- a/plugwise_usb/nodes/node.py +++ b/plugwise_usb/nodes/node.py @@ -379,7 +379,7 @@ async def _load_cache_file(self) -> bool: if self._loaded: return True if not self._cache_enabled: - _LOGGER.warning( + _LOGGER.debug( "Unable to load node %s from cache because caching is disabled", self.mac, ) diff --git a/plugwise_usb/nodes/scan.py b/plugwise_usb/nodes/scan.py index 2c536a04b..438afb869 100644 --- a/plugwise_usb/nodes/scan.py +++ b/plugwise_usb/nodes/scan.py @@ -357,7 +357,7 @@ async def _switch_group(self, response: PlugwiseResponse) -> bool: raise MessageError( f"Invalid response message type ({response.__class__.__name__}) received, expected NodeSwitchGroupResponse" ) - _LOGGER.warning("%s received %s", self.name, response) + _LOGGER.debug("%s received %s", self.name, response) await gather( self._available_update_state(True, response.timestamp), self._motion_state_update(response.switch_state, response.timestamp), @@ -393,7 +393,7 @@ async def _motion_state_update( ) await self._scan_configure_update() elif reset_timer < self._motion_config.reset_timer: - _LOGGER.warning( + _LOGGER.debug( "Adjust reset timer for %s from %s -> %s", self.name, self._motion_config.reset_timer, diff --git a/plugwise_usb/nodes/sed.py b/plugwise_usb/nodes/sed.py index b9b049c12..bb1040cc3 100644 --- a/plugwise_usb/nodes/sed.py +++ b/plugwise_usb/nodes/sed.py @@ -477,7 +477,7 @@ def _detect_maintenance_interval(self, timestamp: datetime) -> None: timestamp - self._last_awake[NodeAwakeResponseType.MAINTENANCE] ).seconds new_interval_in_min = round(new_interval_in_sec // 60) - _LOGGER.warning( + _LOGGER.debug( "Detect current maintenance interval for %s: %s (seconds), current %s (min)", self.name, new_interval_in_sec, @@ -528,7 +528,7 @@ async def _awake_timer(self) -> None: # Mark node as unavailable if self._available: last_awake = self._last_awake.get(NodeAwakeResponseType.MAINTENANCE) - _LOGGER.warning( + _LOGGER.debug( "No awake message received from %s | last_maintenance_awake=%s | interval=%s (%s) | Marking node as unavailable", self.name, last_awake, diff --git a/plugwise_usb/nodes/sense.py b/plugwise_usb/nodes/sense.py index 0681460af..8fb2dd866 100644 --- a/plugwise_usb/nodes/sense.py +++ b/plugwise_usb/nodes/sense.py @@ -619,7 +619,7 @@ async def _switch_group(self, response: PlugwiseResponse) -> bool: raise MessageError( f"Invalid response message type ({response.__class__.__name__}) received, expected NodeSwitchGroupResponse" ) - _LOGGER.warning("%s received %s", self.name, response) + _LOGGER.debug("%s received %s", self.name, response) await gather( self._available_update_state(True, response.timestamp), self._hysteresis_state_update( From 82a43991de3721d57e18fac156f44356c3501d09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 00:56:29 +0000 Subject: [PATCH 2/6] Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.19 (#460) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4dbd347b6..7f7138573 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ default_language_version: repos: # Run manually in CI skipping the branch checks - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.18 + rev: v0.15.19 hooks: - id: ruff name: "Ruff check" From 9c99be2c550c56062f2c8e1252e2b89784cce13f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 04:44:59 +0000 Subject: [PATCH 3/6] Update pre-commit hook biomejs/pre-commit to v2.5.1 (#461) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7f7138573..e9bec0489 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -55,7 +55,7 @@ repos: - id: yamllint name: "YAML linting" - repo: https://github.com/biomejs/pre-commit - rev: v2.5.0 + rev: v2.5.1 hooks: - id: biome-lint name: "Verifying/updating code with biome (improved prettier)" From ea3aad261ae739e028b2c1c1c28097b9dc8fe00e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 01:05:12 +0000 Subject: [PATCH 4/6] Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.20 (#462) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e9bec0489..355941ddf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ default_language_version: repos: # Run manually in CI skipping the branch checks - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.19 + rev: v0.15.20 hooks: - id: ruff name: "Ruff check" From 01024f96deea84e40fb3b85a545ebaa731ae853c Mon Sep 17 00:00:00 2001 From: Marc Dirix Date: Sat, 20 Jun 2026 15:07:50 +0200 Subject: [PATCH 5/6] Change logging from warning to debug to reduce logging --- plugwise_usb/nodes/node.py | 2 +- plugwise_usb/nodes/scan.py | 4 ++-- plugwise_usb/nodes/sed.py | 4 ++-- plugwise_usb/nodes/sense.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugwise_usb/nodes/node.py b/plugwise_usb/nodes/node.py index fd66b967e..66b189a43 100644 --- a/plugwise_usb/nodes/node.py +++ b/plugwise_usb/nodes/node.py @@ -379,7 +379,7 @@ async def _load_cache_file(self) -> bool: if self._loaded: return True if not self._cache_enabled: - _LOGGER.warning( + _LOGGER.debug( "Unable to load node %s from cache because caching is disabled", self.mac, ) diff --git a/plugwise_usb/nodes/scan.py b/plugwise_usb/nodes/scan.py index 2c536a04b..438afb869 100644 --- a/plugwise_usb/nodes/scan.py +++ b/plugwise_usb/nodes/scan.py @@ -357,7 +357,7 @@ async def _switch_group(self, response: PlugwiseResponse) -> bool: raise MessageError( f"Invalid response message type ({response.__class__.__name__}) received, expected NodeSwitchGroupResponse" ) - _LOGGER.warning("%s received %s", self.name, response) + _LOGGER.debug("%s received %s", self.name, response) await gather( self._available_update_state(True, response.timestamp), self._motion_state_update(response.switch_state, response.timestamp), @@ -393,7 +393,7 @@ async def _motion_state_update( ) await self._scan_configure_update() elif reset_timer < self._motion_config.reset_timer: - _LOGGER.warning( + _LOGGER.debug( "Adjust reset timer for %s from %s -> %s", self.name, self._motion_config.reset_timer, diff --git a/plugwise_usb/nodes/sed.py b/plugwise_usb/nodes/sed.py index b9b049c12..bb1040cc3 100644 --- a/plugwise_usb/nodes/sed.py +++ b/plugwise_usb/nodes/sed.py @@ -477,7 +477,7 @@ def _detect_maintenance_interval(self, timestamp: datetime) -> None: timestamp - self._last_awake[NodeAwakeResponseType.MAINTENANCE] ).seconds new_interval_in_min = round(new_interval_in_sec // 60) - _LOGGER.warning( + _LOGGER.debug( "Detect current maintenance interval for %s: %s (seconds), current %s (min)", self.name, new_interval_in_sec, @@ -528,7 +528,7 @@ async def _awake_timer(self) -> None: # Mark node as unavailable if self._available: last_awake = self._last_awake.get(NodeAwakeResponseType.MAINTENANCE) - _LOGGER.warning( + _LOGGER.debug( "No awake message received from %s | last_maintenance_awake=%s | interval=%s (%s) | Marking node as unavailable", self.name, last_awake, diff --git a/plugwise_usb/nodes/sense.py b/plugwise_usb/nodes/sense.py index 0681460af..8fb2dd866 100644 --- a/plugwise_usb/nodes/sense.py +++ b/plugwise_usb/nodes/sense.py @@ -619,7 +619,7 @@ async def _switch_group(self, response: PlugwiseResponse) -> bool: raise MessageError( f"Invalid response message type ({response.__class__.__name__}) received, expected NodeSwitchGroupResponse" ) - _LOGGER.warning("%s received %s", self.name, response) + _LOGGER.debug("%s received %s", self.name, response) await gather( self._available_update_state(True, response.timestamp), self._hysteresis_state_update( From 8fcc6b5368adb23195778008d77f76623018bcf8 Mon Sep 17 00:00:00 2001 From: Marc Dirix Date: Wed, 1 Jul 2026 10:25:48 +0200 Subject: [PATCH 6/6] update changelog and version --- CHANGELOG.md | 4 ++++ pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1839dd0dc..4cf26710c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v0.47.8 - 2026-07-01 + +PR [459](https://github.com/plugwise/python-plugwise-usb/pull/459): Reduce logging for SEDs + ## v0.47.7 - 2026-05-18 PR [443](https://github.com/plugwise/python-plugwise-usb/pull/443): Migrate to serialx diff --git a/pyproject.toml b/pyproject.toml index 0ccb1d1ae..af3076d59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "plugwise_usb" -version = "0.47.7" +version = "0.47.8" license = "MIT" keywords = ["home", "automation", "plugwise", "module", "usb"] classifiers = [