Skip to content

Commit 44a6772

Browse files
authored
Fix Anglian Water sensor setup (home-assistant#157457)
1 parent f874ba1 commit 44a6772

File tree

3 files changed

+56
-49
lines changed

3 files changed

+56
-49
lines changed

homeassistant/components/anglian_water/entity.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,21 @@
1818
class AnglianWaterEntity(CoordinatorEntity[AnglianWaterUpdateCoordinator]):
1919
"""Defines a Anglian Water entity."""
2020

21+
_attr_has_entity_name = True
22+
2123
def __init__(
2224
self,
2325
coordinator: AnglianWaterUpdateCoordinator,
2426
smart_meter: SmartMeter,
27+
key: str,
2528
) -> None:
2629
"""Initialize Anglian Water entity."""
2730
super().__init__(coordinator)
2831
self.smart_meter = smart_meter
32+
self._attr_unique_id = f"{smart_meter.serial_number}_{key}"
2933
self._attr_device_info = DeviceInfo(
3034
identifiers={(DOMAIN, smart_meter.serial_number)},
31-
name="Smart Water Meter",
35+
name=smart_meter.serial_number,
3236
manufacturer="Anglian Water",
3337
serial_number=smart_meter.serial_number,
3438
)

homeassistant/components/anglian_water/sensor.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,8 @@ def __init__(
108108
description: AnglianWaterSensorEntityDescription,
109109
) -> None:
110110
"""Initialize Anglian Water sensor."""
111-
super().__init__(coordinator, smart_meter)
111+
super().__init__(coordinator, smart_meter, description.key)
112112
self.entity_description = description
113-
self._attr_unique_id = f"{smart_meter.serial_number}_{description.key}"
114113

115114
@property
116115
def native_value(self) -> float | None:

tests/components/anglian_water/snapshots/test_sensor.ambr

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# serializer version: 1
2-
# name: test_sensor[sensor.anglian_water_testsn_latest_reading-entry]
2+
# name: test_sensor[sensor.testsn_latest_reading-entry]
33
EntityRegistryEntrySnapshot({
44
'aliases': set({
55
}),
@@ -14,8 +14,8 @@
1414
'disabled_by': None,
1515
'domain': 'sensor',
1616
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
17-
'entity_id': 'sensor.anglian_water_testsn_latest_reading',
18-
'has_entity_name': False,
17+
'entity_id': 'sensor.testsn_latest_reading',
18+
'has_entity_name': True,
1919
'hidden_by': None,
2020
'icon': None,
2121
'id': <ANY>,
@@ -29,7 +29,7 @@
2929
}),
3030
'original_device_class': <SensorDeviceClass.WATER: 'water'>,
3131
'original_icon': None,
32-
'original_name': None,
32+
'original_name': 'Latest reading',
3333
'platform': 'anglian_water',
3434
'previous_unique_id': None,
3535
'suggested_object_id': None,
@@ -39,126 +39,129 @@
3939
'unit_of_measurement': <UnitOfVolume.CUBIC_METERS: 'm³'>,
4040
})
4141
# ---
42-
# name: test_sensor[sensor.anglian_water_testsn_latest_reading-state]
42+
# name: test_sensor[sensor.testsn_latest_reading-state]
4343
StateSnapshot({
4444
'attributes': ReadOnlyDict({
4545
'device_class': 'water',
46+
'friendly_name': 'TESTSN Latest reading',
4647
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
4748
'unit_of_measurement': <UnitOfVolume.CUBIC_METERS: 'm³'>,
4849
}),
4950
'context': <ANY>,
50-
'entity_id': 'sensor.anglian_water_testsn_latest_reading',
51+
'entity_id': 'sensor.testsn_latest_reading',
5152
'last_changed': <ANY>,
5253
'last_reported': <ANY>,
5354
'last_updated': <ANY>,
5455
'state': '50',
5556
})
5657
# ---
57-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_consumption-entry]
58+
# name: test_sensor[sensor.testsn_yesterday_s_sewerage_cost-entry]
5859
EntityRegistryEntrySnapshot({
5960
'aliases': set({
6061
}),
6162
'area_id': None,
62-
'capabilities': dict({
63-
'state_class': <SensorStateClass.TOTAL: 'total'>,
64-
}),
63+
'capabilities': None,
6564
'config_entry_id': <ANY>,
6665
'config_subentry_id': <ANY>,
6766
'device_class': None,
6867
'device_id': <ANY>,
6968
'disabled_by': None,
7069
'domain': 'sensor',
7170
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
72-
'entity_id': 'sensor.anglian_water_testsn_yesterday_consumption',
73-
'has_entity_name': False,
71+
'entity_id': 'sensor.testsn_yesterday_s_sewerage_cost',
72+
'has_entity_name': True,
7473
'hidden_by': None,
7574
'icon': None,
7675
'id': <ANY>,
7776
'labels': set({
7877
}),
7978
'name': None,
8079
'options': dict({
81-
'sensor': dict({
82-
'suggested_display_precision': 2,
83-
}),
8480
}),
85-
'original_device_class': <SensorDeviceClass.WATER: 'water'>,
81+
'original_device_class': <SensorDeviceClass.MONETARY: 'monetary'>,
8682
'original_icon': None,
87-
'original_name': None,
83+
'original_name': "Yesterday's sewerage cost",
8884
'platform': 'anglian_water',
8985
'previous_unique_id': None,
9086
'suggested_object_id': None,
9187
'supported_features': 0,
92-
'translation_key': <AnglianWaterSensor.YESTERDAY_CONSUMPTION: 'yesterday_consumption'>,
93-
'unique_id': 'TESTSN_yesterday_consumption',
94-
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
88+
'translation_key': <AnglianWaterSensor.YESTERDAY_SEWERAGE_COST: 'yesterday_sewerage_cost'>,
89+
'unique_id': 'TESTSN_yesterday_sewerage_cost',
90+
'unit_of_measurement': 'GBP',
9591
})
9692
# ---
97-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_consumption-state]
93+
# name: test_sensor[sensor.testsn_yesterday_s_sewerage_cost-state]
9894
StateSnapshot({
9995
'attributes': ReadOnlyDict({
100-
'device_class': 'water',
101-
'state_class': <SensorStateClass.TOTAL: 'total'>,
102-
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
96+
'device_class': 'monetary',
97+
'friendly_name': "TESTSN Yesterday's sewerage cost",
98+
'unit_of_measurement': 'GBP',
10399
}),
104100
'context': <ANY>,
105-
'entity_id': 'sensor.anglian_water_testsn_yesterday_consumption',
101+
'entity_id': 'sensor.testsn_yesterday_s_sewerage_cost',
106102
'last_changed': <ANY>,
107103
'last_reported': <ANY>,
108104
'last_updated': <ANY>,
109-
'state': '50',
105+
'state': '0.5',
110106
})
111107
# ---
112-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_sewerage_cost-entry]
108+
# name: test_sensor[sensor.testsn_yesterday_s_usage-entry]
113109
EntityRegistryEntrySnapshot({
114110
'aliases': set({
115111
}),
116112
'area_id': None,
117-
'capabilities': None,
113+
'capabilities': dict({
114+
'state_class': <SensorStateClass.TOTAL: 'total'>,
115+
}),
118116
'config_entry_id': <ANY>,
119117
'config_subentry_id': <ANY>,
120118
'device_class': None,
121119
'device_id': <ANY>,
122120
'disabled_by': None,
123121
'domain': 'sensor',
124122
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
125-
'entity_id': 'sensor.anglian_water_testsn_yesterday_sewerage_cost',
126-
'has_entity_name': False,
123+
'entity_id': 'sensor.testsn_yesterday_s_usage',
124+
'has_entity_name': True,
127125
'hidden_by': None,
128126
'icon': None,
129127
'id': <ANY>,
130128
'labels': set({
131129
}),
132130
'name': None,
133131
'options': dict({
132+
'sensor': dict({
133+
'suggested_display_precision': 2,
134+
}),
134135
}),
135-
'original_device_class': <SensorDeviceClass.MONETARY: 'monetary'>,
136+
'original_device_class': <SensorDeviceClass.WATER: 'water'>,
136137
'original_icon': None,
137-
'original_name': None,
138+
'original_name': "Yesterday's usage",
138139
'platform': 'anglian_water',
139140
'previous_unique_id': None,
140141
'suggested_object_id': None,
141142
'supported_features': 0,
142-
'translation_key': <AnglianWaterSensor.YESTERDAY_SEWERAGE_COST: 'yesterday_sewerage_cost'>,
143-
'unique_id': 'TESTSN_yesterday_sewerage_cost',
144-
'unit_of_measurement': 'GBP',
143+
'translation_key': <AnglianWaterSensor.YESTERDAY_CONSUMPTION: 'yesterday_consumption'>,
144+
'unique_id': 'TESTSN_yesterday_consumption',
145+
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
145146
})
146147
# ---
147-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_sewerage_cost-state]
148+
# name: test_sensor[sensor.testsn_yesterday_s_usage-state]
148149
StateSnapshot({
149150
'attributes': ReadOnlyDict({
150-
'device_class': 'monetary',
151-
'unit_of_measurement': 'GBP',
151+
'device_class': 'water',
152+
'friendly_name': "TESTSN Yesterday's usage",
153+
'state_class': <SensorStateClass.TOTAL: 'total'>,
154+
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
152155
}),
153156
'context': <ANY>,
154-
'entity_id': 'sensor.anglian_water_testsn_yesterday_sewerage_cost',
157+
'entity_id': 'sensor.testsn_yesterday_s_usage',
155158
'last_changed': <ANY>,
156159
'last_reported': <ANY>,
157160
'last_updated': <ANY>,
158-
'state': '0.5',
161+
'state': '50',
159162
})
160163
# ---
161-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_water_cost-entry]
164+
# name: test_sensor[sensor.testsn_yesterday_s_water_cost-entry]
162165
EntityRegistryEntrySnapshot({
163166
'aliases': set({
164167
}),
@@ -171,8 +174,8 @@
171174
'disabled_by': None,
172175
'domain': 'sensor',
173176
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
174-
'entity_id': 'sensor.anglian_water_testsn_yesterday_water_cost',
175-
'has_entity_name': False,
177+
'entity_id': 'sensor.testsn_yesterday_s_water_cost',
178+
'has_entity_name': True,
176179
'hidden_by': None,
177180
'icon': None,
178181
'id': <ANY>,
@@ -183,7 +186,7 @@
183186
}),
184187
'original_device_class': <SensorDeviceClass.MONETARY: 'monetary'>,
185188
'original_icon': None,
186-
'original_name': None,
189+
'original_name': "Yesterday's water cost",
187190
'platform': 'anglian_water',
188191
'previous_unique_id': None,
189192
'suggested_object_id': None,
@@ -193,14 +196,15 @@
193196
'unit_of_measurement': 'GBP',
194197
})
195198
# ---
196-
# name: test_sensor[sensor.anglian_water_testsn_yesterday_water_cost-state]
199+
# name: test_sensor[sensor.testsn_yesterday_s_water_cost-state]
197200
StateSnapshot({
198201
'attributes': ReadOnlyDict({
199202
'device_class': 'monetary',
203+
'friendly_name': "TESTSN Yesterday's water cost",
200204
'unit_of_measurement': 'GBP',
201205
}),
202206
'context': <ANY>,
203-
'entity_id': 'sensor.anglian_water_testsn_yesterday_water_cost',
207+
'entity_id': 'sensor.testsn_yesterday_s_water_cost',
204208
'last_changed': <ANY>,
205209
'last_reported': <ANY>,
206210
'last_updated': <ANY>,

0 commit comments

Comments
 (0)