Skip to content

Commit b15d5a1

Browse files
committed
Rework legacy
1 parent f7c9019 commit b15d5a1

File tree

2 files changed

+29
-32
lines changed

2 files changed

+29
-32
lines changed

plugwise/legacy/data.py

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,67 +28,63 @@ def _update_gw_entities(self) -> None:
2828
Collect data for each entity and add to self.gw_entities.
2929
"""
3030
for entity_id, entity in self.gw_entities.items():
31-
data = self._get_entity_data(entity_id)
32-
entity.update(data)
31+
self._get_entity_data(entity_id, entity)
3332
remove_empty_platform_dicts(entity)
3433

35-
def _get_entity_data(self, entity_id: str) -> GwEntityData:
34+
def _get_entity_data(self, entity_id: str, entity: GwEntityData) -> None:
3635
"""Helper-function for _all_entity_data() and async_update().
3736
3837
Provide entity-data, based on Location ID (= entity_id), from APPLIANCES.
3938
"""
40-
entity = self.gw_entities[entity_id]
41-
data = self._get_measurement_data(entity_id)
39+
self._get_measurement_data(entity_id, entity)
4240

4341
# Switching groups data
44-
self._entity_switching_group(entity, data)
42+
self._entity_switching_group(entity)
4543

4644
# Skip obtaining data when not a thermostat
4745
if entity["dev_class"] != "thermostat":
48-
return data
46+
return
4947

5048
# Thermostat data (presets, temperatures etc)
51-
self._climate_data(entity, data)
52-
self._get_anna_control_state(data)
49+
self._climate_data(entity)
50+
self._get_anna_control_state(entity)
5351

54-
return data
55-
56-
def _climate_data(self, entity: GwEntityData, data: GwEntityData) -> None:
52+
def _climate_data(self, entity: GwEntityData) -> None:
5753
"""Helper-function for _get_entity_data().
5854
5955
Determine climate-control entity data.
6056
"""
6157
# Presets
62-
data["preset_modes"] = None
63-
data["active_preset"] = None
58+
entity["preset_modes"] = None
59+
entity["active_preset"] = None
6460
self._count += 2
6561
if presets := self._presets():
66-
data["preset_modes"] = list(presets)
67-
data["active_preset"] = self._preset()
62+
entity["preset_modes"] = list(presets)
63+
entity["active_preset"] = self._preset()
6864

6965
# Schedule
70-
data["available_schedules"] = []
71-
data["select_schedule"] = None
66+
entity["available_schedules"] = []
67+
entity["select_schedule"] = None
7268
self._count += 2
7369
avail_schedules, sel_schedule = self._schedules()
7470
if avail_schedules != [NONE]:
75-
data["available_schedules"] = avail_schedules
76-
data["select_schedule"] = sel_schedule
71+
entity["available_schedules"] = avail_schedules
72+
entity["select_schedule"] = sel_schedule
7773

7874
# Set HA climate HVACMode: auto, heat
79-
data["climate_mode"] = "auto"
75+
entity["climate_mode"] = "auto"
8076
self._count += 1
8177
if sel_schedule in (NONE, OFF):
82-
data["climate_mode"] = "heat"
78+
entity["climate_mode"] = "heat"
8379

84-
def _get_anna_control_state(self, data: GwEntityData) -> None:
80+
def _get_anna_control_state(self, entity: GwEntityData) -> None:
8581
"""Set the thermostat control_state based on the opentherm/onoff device state."""
86-
data["control_state"] = "idle"
82+
entity["control_state"] = "idle"
8783
self._count += 1
88-
for entity in self.gw_entities.values():
89-
if entity["dev_class"] != "heater_central":
84+
for device in self.gw_entities.values():
85+
if device["dev_class"] != "heater_central":
9086
continue
9187

92-
binary_sensors = entity["binary_sensors"]
88+
binary_sensors = device["binary_sensors"]
9389
if binary_sensors["heating_state"]:
94-
data["control_state"] = "heating"
90+
entity["control_state"] = "heating"

plugwise/legacy/helper.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,20 +249,20 @@ def _p1_smartmeter_info_finder(self, appl: Munch) -> None:
249249

250250
self._create_gw_entities(appl)
251251

252-
def _get_measurement_data(self, entity_id: str) -> GwEntityData:
252+
def _get_measurement_data(self, entity_id: str, entity: GwEntityData) -> None:
253253
"""Helper-function for smile.py: _get_entity_data().
254254
255255
Collect the appliance-data based on entity_id.
256256
"""
257257
data: GwEntityData = {"binary_sensors": {}, "sensors": {}, "switches": {}}
258258
# Get P1 smartmeter data from MODULES
259-
entity = self.gw_entities[entity_id]
260259
# !! DON'T CHANGE below two if-lines, will break stuff !!
261260
if self.smile.type == "power":
262261
if entity["dev_class"] == "smartmeter":
263262
data.update(self._power_data_from_modules())
264263

265-
return data
264+
entity.update(data)
265+
return
266266

267267
measurements = DEVICE_MEASUREMENTS
268268
if self._is_thermostat and entity_id == self.heater_id:
@@ -290,7 +290,8 @@ def _get_measurement_data(self, entity_id: str) -> GwEntityData:
290290
data.pop("c_heating_state")
291291
self._count -= 1
292292

293-
return data
293+
entity.update(data)
294+
return
294295

295296
def _power_data_from_modules(self) -> GwEntityData:
296297
"""Helper-function for smile.py: _get_entity_data().

0 commit comments

Comments
 (0)