From 0a257f08f3b30f965fa9e2ffa3a98cbb0e4fd6f0 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 11:39:27 +0100 Subject: [PATCH 01/15] Try alternative test-method --- tests/components/plugwise/test_init.py | 57 ++++++++++++++++++-------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 7d0883774..9531c7a08 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -15,7 +15,6 @@ from freezegun.api import FrozenDateTimeFactory from homeassistant.components.plugwise.const import DOMAIN -from homeassistant.components.plugwise.coordinator import PlugwiseDataUpdateCoordinator from homeassistant.config_entries import ConfigEntryState from homeassistant.const import ( CONF_HOST, @@ -29,7 +28,8 @@ from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryError from homeassistant.helpers import device_registry as dr, entity_registry as er -from homeassistant.helpers.update_coordinator import UpdateFailed + +# from homeassistant.helpers.update_coordinator import UpdateFailed from homeassistant.setup import async_setup_component from tests.common import MockConfigEntry, async_fire_time_changed @@ -118,32 +118,53 @@ async def test_gateway_config_entry_not_ready( @pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True) @pytest.mark.parametrize("cooling_present", [True], indirect=True) @pytest.mark.parametrize( - ("side_effect", "expected_raise"), + "side_effect", [ - (ConnectionFailedError, UpdateFailed), - (InvalidAuthentication, ConfigEntryError), - (InvalidSetupError, ConfigEntryError), - (InvalidXMLError, UpdateFailed), - (ResponseError, UpdateFailed), - (UnsupportedDeviceError, ConfigEntryError), + ConnectionFailedError, + InvalidXMLError, + ResponseError, ], ) -async def test_coordinator_connect_exceptions( +async def test_coordinator_connect_exceptions_1( hass: HomeAssistant, mock_config_entry: MockConfigEntry, mock_smile_anna: MagicMock, side_effect: Exception, - expected_raise: Exception, ) -> None: """Ensure _connect raises translated errors.""" mock_smile_anna.connect.side_effect = side_effect - coordinator = PlugwiseDataUpdateCoordinator( - hass, - cooldown=0, - config_entry=mock_config_entry, - ) - with pytest.raises(expected_raise): - await coordinator._connect() + + mock_config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(mock_config_entry.entry_id) + await hass.async_block_till_done() + + assert len(mock_smile_anna.connect.mock_calls) == 1 + assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY + + +@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True) +@pytest.mark.parametrize("cooling_present", [True], indirect=True) +@pytest.mark.parametrize( + ("side_effect", "raise_match"), + [ + (InvalidAuthentication, "Invalid authentication"), + (InvalidSetupError, "invalid_setup"), + (UnsupportedDeviceError, "Device with unsupported firmware"), + ], +) +async def test_coordinator_connect_exceptions_2( + hass: HomeAssistant, + mock_config_entry: MockConfigEntry, + mock_smile_anna: MagicMock, + side_effect: Exception, + raise_match: str, +) -> None: + """Ensure _connect raises translated errors.""" + mock_smile_anna.connect.side_effect = side_effect + + with pytest.raises(ConfigEntryError, match=raise_match): + mock_config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(mock_config_entry.entry_id) @pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True) From 37cd2826d45683433e1f0ec0583d73332aac54e0 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 17:20:46 +0100 Subject: [PATCH 02/15] Try 2 --- tests/components/plugwise/test_init.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 9531c7a08..733b56c1f 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -162,10 +162,12 @@ async def test_coordinator_connect_exceptions_2( """Ensure _connect raises translated errors.""" mock_smile_anna.connect.side_effect = side_effect - with pytest.raises(ConfigEntryError, match=raise_match): - mock_config_entry.add_to_hass(hass) - await hass.config_entries.async_setup(mock_config_entry.entry_id) + mock_config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(mock_config_entry.entry_id) + await hass.async_block_till_done() + assert len(mock_smile_anna.connect.mock_calls) == 1 + assert mock_config_entry.state is ConfigEntryState.SETUP_ERROR @pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True) @pytest.mark.parametrize("gateway_id", ["a455b61e52394b2db5081ce025a430f3"], indirect=True) From 418a8405daa9d8eafb8ecf3457b0f2e9fcc84af6 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 17:31:44 +0100 Subject: [PATCH 03/15] Save missed snapshot updates --- tests/components/plugwise/snapshots/test_select.ambr | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/components/plugwise/snapshots/test_select.ambr b/tests/components/plugwise/snapshots/test_select.ambr index c2680f7bc..90ace520e 100644 --- a/tests/components/plugwise/snapshots/test_select.ambr +++ b/tests/components/plugwise/snapshots/test_select.ambr @@ -141,7 +141,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.bathroom_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, @@ -263,7 +263,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.living_room_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, @@ -386,7 +386,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.badkamer_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, @@ -451,7 +451,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.bios_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, @@ -516,7 +516,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.jessie_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, @@ -581,7 +581,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'select', - 'entity_category': , + 'entity_category': None, 'entity_id': 'select.woonkamer_thermostat_schedule', 'has_entity_name': True, 'hidden_by': None, From a2bf8641c63e9b3a3610b6a85b786bdba48fccb6 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 17:32:11 +0100 Subject: [PATCH 04/15] Try 3 --- tests/components/plugwise/test_init.py | 46 ++++++-------------------- 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 733b56c1f..9504c09db 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -2,6 +2,7 @@ from datetime import timedelta from unittest.mock import MagicMock, patch +from freezegun.api import FrozenDateTimeFactory from plugwise.exceptions import ( ConnectionFailedError, InvalidAuthentication, @@ -13,7 +14,6 @@ ) import pytest -from freezegun.api import FrozenDateTimeFactory from homeassistant.components.plugwise.const import DOMAIN from homeassistant.config_entries import ConfigEntryState from homeassistant.const import ( @@ -26,7 +26,6 @@ Platform, ) from homeassistant.core import HomeAssistant -from homeassistant.exceptions import ConfigEntryError from homeassistant.helpers import device_registry as dr, entity_registry as er # from homeassistant.helpers.update_coordinator import UpdateFailed @@ -118,18 +117,22 @@ async def test_gateway_config_entry_not_ready( @pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True) @pytest.mark.parametrize("cooling_present", [True], indirect=True) @pytest.mark.parametrize( - "side_effect", + ("side_effect", "entry_state"), [ - ConnectionFailedError, - InvalidXMLError, - ResponseError, + (ConnectionFailedError, ConfigEntryState.SETUP_RETRY), + (InvalidAuthentication, ConfigEntryState.SETUP_ERROR), + (InvalidXMLError, ConfigEntryState.SETUP_RETRY), + (ResponseError, ConfigEntryState.SETUP_RETRY), + (PlugwiseError, ConfigEntryState.SETUP_RETRY), + (UnsupportedDeviceError, ConfigEntryState.SETUP_ERROR), ], ) -async def test_coordinator_connect_exceptions_1( +async def test_coordinator_connect_exceptions( hass: HomeAssistant, mock_config_entry: MockConfigEntry, mock_smile_anna: MagicMock, side_effect: Exception, + entry_state: ConfigEntryState, ) -> None: """Ensure _connect raises translated errors.""" mock_smile_anna.connect.side_effect = side_effect @@ -139,36 +142,9 @@ async def test_coordinator_connect_exceptions_1( await hass.async_block_till_done() assert len(mock_smile_anna.connect.mock_calls) == 1 - assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY + assert mock_config_entry.state is entry_state -@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True) -@pytest.mark.parametrize("cooling_present", [True], indirect=True) -@pytest.mark.parametrize( - ("side_effect", "raise_match"), - [ - (InvalidAuthentication, "Invalid authentication"), - (InvalidSetupError, "invalid_setup"), - (UnsupportedDeviceError, "Device with unsupported firmware"), - ], -) -async def test_coordinator_connect_exceptions_2( - hass: HomeAssistant, - mock_config_entry: MockConfigEntry, - mock_smile_anna: MagicMock, - side_effect: Exception, - raise_match: str, -) -> None: - """Ensure _connect raises translated errors.""" - mock_smile_anna.connect.side_effect = side_effect - - mock_config_entry.add_to_hass(hass) - await hass.config_entries.async_setup(mock_config_entry.entry_id) - await hass.async_block_till_done() - - assert len(mock_smile_anna.connect.mock_calls) == 1 - assert mock_config_entry.state is ConfigEntryState.SETUP_ERROR - @pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True) @pytest.mark.parametrize("gateway_id", ["a455b61e52394b2db5081ce025a430f3"], indirect=True) async def test_device_in_dr( From b01ffcbee5f8429c0fb098c8155f2243ee360ef0 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 17:38:46 +0100 Subject: [PATCH 05/15] Try 4 --- tests/components/plugwise/test_init.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 9504c09db..d9bae064e 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -2,7 +2,6 @@ from datetime import timedelta from unittest.mock import MagicMock, patch -from freezegun.api import FrozenDateTimeFactory from plugwise.exceptions import ( ConnectionFailedError, InvalidAuthentication, @@ -14,6 +13,7 @@ ) import pytest +from freezegun.api import FrozenDateTimeFactory from homeassistant.components.plugwise.const import DOMAIN from homeassistant.config_entries import ConfigEntryState from homeassistant.const import ( @@ -121,6 +121,7 @@ async def test_gateway_config_entry_not_ready( [ (ConnectionFailedError, ConfigEntryState.SETUP_RETRY), (InvalidAuthentication, ConfigEntryState.SETUP_ERROR), + (InvalidSetupError, ConfigEntryState.SETUP_ERROR), (InvalidXMLError, ConfigEntryState.SETUP_RETRY), (ResponseError, ConfigEntryState.SETUP_RETRY), (PlugwiseError, ConfigEntryState.SETUP_RETRY), From b2c0fb3419aca6f04d6c8093c459e6bf0b81fe87 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 17:55:49 +0100 Subject: [PATCH 06/15] Clean up --- tests/components/plugwise/test_init.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index d9bae064e..14e40558a 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -27,8 +27,6 @@ ) from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er - -# from homeassistant.helpers.update_coordinator import UpdateFailed from homeassistant.setup import async_setup_component from tests.common import MockConfigEntry, async_fire_time_changed From d7a7d56d269c9a279ebc0c312a3cb784e9d22869 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 18:09:55 +0100 Subject: [PATCH 07/15] Update docstring --- tests/components/plugwise/test_init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 14e40558a..20339a338 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -101,7 +101,7 @@ async def test_gateway_config_entry_not_ready( mock_smile_anna: MagicMock, side_effect: Exception, ) -> None: - """Test the Plugwise configuration entry not ready.""" + """Test the Plugwise config-entry not being ready.""" mock_smile_anna.async_update.side_effect = side_effect mock_config_entry.add_to_hass(hass) From b3423b20140c9421d2153c1b5ad8b759e3f1ad0b Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 18:48:32 +0100 Subject: [PATCH 08/15] More clean up --- tests/components/plugwise/test_init.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/components/plugwise/test_init.py b/tests/components/plugwise/test_init.py index 20339a338..035c52038 100644 --- a/tests/components/plugwise/test_init.py +++ b/tests/components/plugwise/test_init.py @@ -358,9 +358,6 @@ async def test_delete_removed_device( ) -> None: """Test device removal at integration init.""" data = mock_smile_adam_heat_cool.async_update.return_value - mock_config_entry.add_to_hass(hass) - assert await async_setup_component(hass, DOMAIN, {}) - await hass.async_block_till_done() item_list: list[str] = [] for device_entry in device_registry.devices.values(): From 3c1fbd69e3211f134837c73ad24079a89317faff Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 19:40:44 +0100 Subject: [PATCH 09/15] Revert exceptions-change, line up with Core Plugwise --- custom_components/plugwise/coordinator.py | 60 +++++++++---------- custom_components/plugwise/strings.json | 2 +- .../plugwise/translations/en.json | 2 +- .../plugwise/translations/nl.json | 2 +- 4 files changed, 32 insertions(+), 34 deletions(-) diff --git a/custom_components/plugwise/coordinator.py b/custom_components/plugwise/coordinator.py index 8896f024a..363a9083f 100644 --- a/custom_components/plugwise/coordinator.py +++ b/custom_components/plugwise/coordinator.py @@ -87,34 +87,7 @@ async def _connect(self) -> None: A Version object is received when the connection succeeds. """ - try: - version = await self.api.connect() - except ConnectionFailedError as err: - raise UpdateFailed( - translation_domain=DOMAIN, - translation_key="failed_to_connect", - ) from err - except InvalidAuthentication as err: - raise ConfigEntryError( - translation_domain=DOMAIN, - translation_key="authentication_failed", - ) from err - except InvalidSetupError as err: - raise ConfigEntryError( - translation_domain=DOMAIN, - translation_key="invalid_setup", - ) from err - except (InvalidXMLError, ResponseError) as err: - raise UpdateFailed( - translation_domain=DOMAIN, - translation_key="invalid_xml_data", - ) from err - except UnsupportedDeviceError as err: - raise ConfigEntryError( - translation_domain=DOMAIN, - translation_key="unsupported_firmware", - ) from err - + version = await self.api.connect() self._connected = isinstance(version, Version) if self._connected: self.update_interval = DEFAULT_SCAN_INTERVAL.get( @@ -125,7 +98,7 @@ async def _connect(self) -> None: seconds=int(custom_time) ) # pragma: no cover # pw-beta options - LOGGER.debug("DUC update interval: %s", self.update_interval) # pw-beta options + LOGGER.debug("DUC update interval: %s", self.update_interval) # pw-beta options async def _async_setup(self) -> None: """Initialize the update_data process.""" @@ -142,15 +115,40 @@ async def _async_setup(self) -> None: async def _async_update_data(self) -> dict[str, GwEntityData]: """Fetch data from Plugwise.""" - if not self._connected: - await self._connect() try: + if not self._connected: + await self._connect() data = await self.api.async_update() + except ConnectionFailedError as err: + raise UpdateFailed( + translation_domain=DOMAIN, + translation_key="failed_to_connect", + ) from err + except InvalidAuthentication as err: + raise ConfigEntryError( + translation_domain=DOMAIN, + translation_key="authentication_failed", + ) from err + except InvalidSetupError as err: + raise ConfigEntryError( + translation_domain=DOMAIN, + translation_key="invalid_setup", + ) from err + except (InvalidXMLError, ResponseError) as err: + raise UpdateFailed( + translation_domain=DOMAIN, + translation_key="response_error", + ) from err except PlugwiseError as err: raise UpdateFailed( translation_domain=DOMAIN, translation_key="data_incomplete_or_missing", ) from err + except UnsupportedDeviceError as err: + raise ConfigEntryError( + translation_domain=DOMAIN, + translation_key="unsupported_firmware", + ) from err await self._async_add_remove_devices(data) LOGGER.debug("%s data: %s", self.api.smile.name, data) diff --git a/custom_components/plugwise/strings.json b/custom_components/plugwise/strings.json index abe61ab69..bc39c4391 100644 --- a/custom_components/plugwise/strings.json +++ b/custom_components/plugwise/strings.json @@ -323,7 +323,7 @@ "failed_to_connect": { "message": "Failed to connect" }, - "invalid_xml_data": { + "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch" }, "set_schedule_first": { diff --git a/custom_components/plugwise/translations/en.json b/custom_components/plugwise/translations/en.json index 8d2f26d06..c2afc3cda 100644 --- a/custom_components/plugwise/translations/en.json +++ b/custom_components/plugwise/translations/en.json @@ -306,7 +306,7 @@ "failed_to_connect": { "message": "Failed to connect" }, - "invalid_xml_data": { + "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch" }, "set_schedule_first": { diff --git a/custom_components/plugwise/translations/nl.json b/custom_components/plugwise/translations/nl.json index 5cd6e90b2..48e93bbbd 100644 --- a/custom_components/plugwise/translations/nl.json +++ b/custom_components/plugwise/translations/nl.json @@ -321,7 +321,7 @@ "failed_to_connect": { "message": "Verbinden mislukt" }, - "invalid_xml_data": { + "response_error": { "message": "Ongeldige XML data, of foutmelding ontvangen van de Plugwise Adam/Smile/Stretch" }, "set_schedule_first": { From 0479e59860227d409e13603a555652643d1ec786 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 19:47:05 +0100 Subject: [PATCH 10/15] Update CHANGELOG, bump to v0.62.2 --- CHANGELOG.md | 4 ++++ custom_components/plugwise/manifest.json | 2 +- pyproject.toml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b36a63b7a..8ed48286c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ Versions from 0.40 and up +## v0.62.2 + +- Revert exceptions-move in coordinator.py, line up with Core Plugwise via PR [#990](https://github.com/plugwise/plugwise-beta/pull/990) + ## v0.62.1 - Implement Core PR's [#158901](https://github.com/home-assistant/core/pull/158901) and [#158094](https://github.com/home-assistant/core/pull/158094) diff --git a/custom_components/plugwise/manifest.json b/custom_components/plugwise/manifest.json index 027da8594..f7a6e0250 100644 --- a/custom_components/plugwise/manifest.json +++ b/custom_components/plugwise/manifest.json @@ -8,6 +8,6 @@ "iot_class": "local_polling", "loggers": ["plugwise"], "requirements": ["plugwise==1.11.0"], - "version": "0.62.1", + "version": "0.62.2", "zeroconf": ["_plugwise._tcp.local."] } diff --git a/pyproject.toml b/pyproject.toml index d125fcb03..93262f475 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "plugwise-beta" -version = "0.62.1" +version = "0.62.2" description = "Plugwise beta custom-component" readme = "README.md" requires-python = ">=3.13" From cf11a5b133e6da89de21975da107f4fe7d5246ae Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 19:52:15 +0100 Subject: [PATCH 11/15] Add missing string --- custom_components/plugwise/strings.json | 3 +++ custom_components/plugwise/translations/en.json | 3 +++ custom_components/plugwise/translations/nl.json | 3 +++ 3 files changed, 9 insertions(+) diff --git a/custom_components/plugwise/strings.json b/custom_components/plugwise/strings.json index bc39c4391..7ea5225c4 100644 --- a/custom_components/plugwise/strings.json +++ b/custom_components/plugwise/strings.json @@ -323,6 +323,9 @@ "failed_to_connect": { "message": "Failed to connect" }, + "invalid_setup": { + "message": "Add your Adam instead of your Anna, see the documentation" + }, "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch" }, diff --git a/custom_components/plugwise/translations/en.json b/custom_components/plugwise/translations/en.json index c2afc3cda..23ab5dbea 100644 --- a/custom_components/plugwise/translations/en.json +++ b/custom_components/plugwise/translations/en.json @@ -306,6 +306,9 @@ "failed_to_connect": { "message": "Failed to connect" }, + "invalid_setup": { + "message": "Add your Adam instead of your Anna, see the documentation" + }, "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch" }, diff --git a/custom_components/plugwise/translations/nl.json b/custom_components/plugwise/translations/nl.json index 48e93bbbd..910040951 100644 --- a/custom_components/plugwise/translations/nl.json +++ b/custom_components/plugwise/translations/nl.json @@ -321,6 +321,9 @@ "failed_to_connect": { "message": "Verbinden mislukt" }, + "invalid_setup": { + "message": "Voeg je Adam toe in plaats van je Anna, lees de documentatie" + }, "response_error": { "message": "Ongeldige XML data, of foutmelding ontvangen van de Plugwise Adam/Smile/Stretch" }, From c5ed2083fa3125b43db3a8873152935f928a58f0 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 16 Dec 2025 19:57:14 +0100 Subject: [PATCH 12/15] Fix indents --- custom_components/plugwise/strings.json | 2 +- custom_components/plugwise/translations/nl.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/plugwise/strings.json b/custom_components/plugwise/strings.json index 7ea5225c4..4921336ed 100644 --- a/custom_components/plugwise/strings.json +++ b/custom_components/plugwise/strings.json @@ -324,7 +324,7 @@ "message": "Failed to connect" }, "invalid_setup": { - "message": "Add your Adam instead of your Anna, see the documentation" + "message": "Add your Adam instead of your Anna, see the documentation" }, "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch" diff --git a/custom_components/plugwise/translations/nl.json b/custom_components/plugwise/translations/nl.json index 910040951..f12a3d93d 100644 --- a/custom_components/plugwise/translations/nl.json +++ b/custom_components/plugwise/translations/nl.json @@ -322,7 +322,7 @@ "message": "Verbinden mislukt" }, "invalid_setup": { - "message": "Voeg je Adam toe in plaats van je Anna, lees de documentatie" + "message": "Voeg je Adam toe in plaats van je Anna, lees de documentatie" }, "response_error": { "message": "Ongeldige XML data, of foutmelding ontvangen van de Plugwise Adam/Smile/Stretch" From bc738725f3289c37c3e9fe9c6f0a20a202426368 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 23 Dec 2025 10:01:09 +0100 Subject: [PATCH 13/15] Revert back to v0.62.1, CHANGELOG --- CHANGELOG.md | 2 +- custom_components/plugwise/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ed48286c..37aba796e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ Versions from 0.40 and up -## v0.62.2 +## Ongoing - Revert exceptions-move in coordinator.py, line up with Core Plugwise via PR [#990](https://github.com/plugwise/plugwise-beta/pull/990) diff --git a/custom_components/plugwise/manifest.json b/custom_components/plugwise/manifest.json index f7a6e0250..027da8594 100644 --- a/custom_components/plugwise/manifest.json +++ b/custom_components/plugwise/manifest.json @@ -8,6 +8,6 @@ "iot_class": "local_polling", "loggers": ["plugwise"], "requirements": ["plugwise==1.11.0"], - "version": "0.62.2", + "version": "0.62.1", "zeroconf": ["_plugwise._tcp.local."] } From 88ba9d0405cdb9e19a669ef24895086431885fa1 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 23 Dec 2025 10:08:28 +0100 Subject: [PATCH 14/15] Line up response_error messages --- custom_components/plugwise/strings.json | 2 +- custom_components/plugwise/translations/en.json | 2 +- custom_components/plugwise/translations/nl.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/custom_components/plugwise/strings.json b/custom_components/plugwise/strings.json index 4921336ed..640054917 100644 --- a/custom_components/plugwise/strings.json +++ b/custom_components/plugwise/strings.json @@ -42,7 +42,7 @@ "invalid_setup": "Add your Adam instead of your Anna, see the documentation", "network_down": "Plugwise Zigbee network is down", "network_timeout": "Network communication timeout", - "response_error": "Invalid XML data, or error indication received", + "response_error": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch", "stick_init": "Initialization of Plugwise USB-stick failed", "unknown": "Unknown error!", "unsupported": "Device with unsupported firmware" diff --git a/custom_components/plugwise/translations/en.json b/custom_components/plugwise/translations/en.json index 23ab5dbea..388ad0073 100644 --- a/custom_components/plugwise/translations/en.json +++ b/custom_components/plugwise/translations/en.json @@ -12,7 +12,7 @@ "invalid_setup": "Add your Adam instead of your Anna, see the documentation", "network_down": "Plugwise Zigbee network is down", "network_timeout": "Network communication timeout", - "response_error": "Invalid XML data, or error indication received", + "response_error": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch", "stick_init": "Initialization of Plugwise USB-stick failed", "unknown": "Unknown error!", "unsupported": "Device with unsupported firmware" diff --git a/custom_components/plugwise/translations/nl.json b/custom_components/plugwise/translations/nl.json index f12a3d93d..696fd05cc 100644 --- a/custom_components/plugwise/translations/nl.json +++ b/custom_components/plugwise/translations/nl.json @@ -42,7 +42,7 @@ "invalid_setup": "Voeg je Adam toe in plaats van je Anna, lees de documentatie", "network_down": "Plugwise Zigbee netwerk is onbereikbaar", "network_timeout": "Network communicatie timeout", - "response_error": "Ongeldige XML data, of error-indicatie ontvangen", + "response_error": "Ongeldige XML data, of foutmelding ontvangen van de Plugwise Adam/Smile/Stretch", "stick_init": "Initaliseren van USB-stick mislukt", "unknown": "Onbekende fout!", "unsupported": "Apparaat met onbekende firmware" From f4f370ebcb49b41b13ebb117215d4f6f251ba333 Mon Sep 17 00:00:00 2001 From: Bouwe Westerdijk Date: Tue, 23 Dec 2025 11:46:32 +0100 Subject: [PATCH 15/15] Fix ident --- custom_components/plugwise/strings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/plugwise/strings.json b/custom_components/plugwise/strings.json index 640054917..d7434a97c 100644 --- a/custom_components/plugwise/strings.json +++ b/custom_components/plugwise/strings.json @@ -324,7 +324,7 @@ "message": "Failed to connect" }, "invalid_setup": { - "message": "Add your Adam instead of your Anna, see the documentation" + "message": "Add your Adam instead of your Anna, see the documentation" }, "response_error": { "message": "Invalid XML data, or error indication received from the Plugwise Adam/Smile/Stretch"