From 44a6772947133a4b4e0cab5154d3bb8f631b31cf Mon Sep 17 00:00:00 2001 From: Jordan Harvey Date: Fri, 28 Nov 2025 06:25:04 +0000 Subject: [PATCH] Fix Anglian Water sensor setup (#157457) --- .../components/anglian_water/entity.py | 6 +- .../components/anglian_water/sensor.py | 3 +- .../anglian_water/snapshots/test_sensor.ambr | 138 +++++++++--------- 3 files changed, 77 insertions(+), 70 deletions(-) diff --git a/homeassistant/components/anglian_water/entity.py b/homeassistant/components/anglian_water/entity.py index 763a63737d9..81d3f6a6a7f 100644 --- a/homeassistant/components/anglian_water/entity.py +++ b/homeassistant/components/anglian_water/entity.py @@ -18,17 +18,21 @@ _LOGGER = logging.getLogger(__name__) class AnglianWaterEntity(CoordinatorEntity[AnglianWaterUpdateCoordinator]): """Defines a Anglian Water entity.""" + _attr_has_entity_name = True + def __init__( self, coordinator: AnglianWaterUpdateCoordinator, smart_meter: SmartMeter, + key: str, ) -> None: """Initialize Anglian Water entity.""" super().__init__(coordinator) self.smart_meter = smart_meter + self._attr_unique_id = f"{smart_meter.serial_number}_{key}" self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, smart_meter.serial_number)}, - name="Smart Water Meter", + name=smart_meter.serial_number, manufacturer="Anglian Water", serial_number=smart_meter.serial_number, ) diff --git a/homeassistant/components/anglian_water/sensor.py b/homeassistant/components/anglian_water/sensor.py index 3cb31926845..c12dd45212e 100644 --- a/homeassistant/components/anglian_water/sensor.py +++ b/homeassistant/components/anglian_water/sensor.py @@ -108,9 +108,8 @@ class AnglianWaterSensorEntity(AnglianWaterEntity, SensorEntity): description: AnglianWaterSensorEntityDescription, ) -> None: """Initialize Anglian Water sensor.""" - super().__init__(coordinator, smart_meter) + super().__init__(coordinator, smart_meter, description.key) self.entity_description = description - self._attr_unique_id = f"{smart_meter.serial_number}_{description.key}" @property def native_value(self) -> float | None: diff --git a/tests/components/anglian_water/snapshots/test_sensor.ambr b/tests/components/anglian_water/snapshots/test_sensor.ambr index 0e7965f87d6..d63bd9296d2 100644 --- a/tests/components/anglian_water/snapshots/test_sensor.ambr +++ b/tests/components/anglian_water/snapshots/test_sensor.ambr @@ -1,5 +1,5 @@ # serializer version: 1 -# name: test_sensor[sensor.anglian_water_testsn_latest_reading-entry] +# name: test_sensor[sensor.testsn_latest_reading-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14,8 +14,8 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.anglian_water_testsn_latest_reading', - 'has_entity_name': False, + 'entity_id': 'sensor.testsn_latest_reading', + 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , @@ -29,7 +29,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': None, + 'original_name': 'Latest reading', 'platform': 'anglian_water', 'previous_unique_id': None, 'suggested_object_id': None, @@ -39,22 +39,73 @@ 'unit_of_measurement': , }) # --- -# name: test_sensor[sensor.anglian_water_testsn_latest_reading-state] +# name: test_sensor[sensor.testsn_latest_reading-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'water', + 'friendly_name': 'TESTSN Latest reading', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.anglian_water_testsn_latest_reading', + 'entity_id': 'sensor.testsn_latest_reading', 'last_changed': , 'last_reported': , 'last_updated': , 'state': '50', }) # --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_consumption-entry] +# name: test_sensor[sensor.testsn_yesterday_s_sewerage_cost-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.testsn_yesterday_s_sewerage_cost', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': "Yesterday's sewerage cost", + 'platform': 'anglian_water', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': , + 'unique_id': 'TESTSN_yesterday_sewerage_cost', + 'unit_of_measurement': 'GBP', + }) +# --- +# name: test_sensor[sensor.testsn_yesterday_s_sewerage_cost-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'monetary', + 'friendly_name': "TESTSN Yesterday's sewerage cost", + 'unit_of_measurement': 'GBP', + }), + 'context': , + 'entity_id': 'sensor.testsn_yesterday_s_sewerage_cost', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0.5', + }) +# --- +# name: test_sensor[sensor.testsn_yesterday_s_usage-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -69,8 +120,8 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_consumption', - 'has_entity_name': False, + 'entity_id': 'sensor.testsn_yesterday_s_usage', + 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , @@ -84,7 +135,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': None, + 'original_name': "Yesterday's usage", 'platform': 'anglian_water', 'previous_unique_id': None, 'suggested_object_id': None, @@ -94,22 +145,23 @@ 'unit_of_measurement': , }) # --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_consumption-state] +# name: test_sensor[sensor.testsn_yesterday_s_usage-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'water', + 'friendly_name': "TESTSN Yesterday's usage", 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_consumption', + 'entity_id': 'sensor.testsn_yesterday_s_usage', 'last_changed': , 'last_reported': , 'last_updated': , 'state': '50', }) # --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_sewerage_cost-entry] +# name: test_sensor[sensor.testsn_yesterday_s_water_cost-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -122,8 +174,8 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_sewerage_cost', - 'has_entity_name': False, + 'entity_id': 'sensor.testsn_yesterday_s_water_cost', + 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , @@ -134,56 +186,7 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': None, - 'platform': 'anglian_water', - 'previous_unique_id': None, - 'suggested_object_id': None, - 'supported_features': 0, - 'translation_key': , - 'unique_id': 'TESTSN_yesterday_sewerage_cost', - 'unit_of_measurement': 'GBP', - }) -# --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_sewerage_cost-state] - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'monetary', - 'unit_of_measurement': 'GBP', - }), - 'context': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_sewerage_cost', - 'last_changed': , - 'last_reported': , - 'last_updated': , - 'state': '0.5', - }) -# --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_water_cost-entry] - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'config_subentry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_water_cost', - 'has_entity_name': False, - 'hidden_by': None, - 'icon': None, - 'id': , - 'labels': set({ - }), - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': None, + 'original_name': "Yesterday's water cost", 'platform': 'anglian_water', 'previous_unique_id': None, 'suggested_object_id': None, @@ -193,14 +196,15 @@ 'unit_of_measurement': 'GBP', }) # --- -# name: test_sensor[sensor.anglian_water_testsn_yesterday_water_cost-state] +# name: test_sensor[sensor.testsn_yesterday_s_water_cost-state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'monetary', + 'friendly_name': "TESTSN Yesterday's water cost", 'unit_of_measurement': 'GBP', }), 'context': , - 'entity_id': 'sensor.anglian_water_testsn_yesterday_water_cost', + 'entity_id': 'sensor.testsn_yesterday_s_water_cost', 'last_changed': , 'last_reported': , 'last_updated': ,