Skip to content

Commit 9dcc86f

Browse files
committed
Improve
1 parent 365ef1d commit 9dcc86f

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

plugwise/data.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
from plugwise.helper import SmileHelper
2020
from plugwise.util import remove_empty_platform_dicts
2121

22-
from packaging import version
23-
2422

2523
class SmileData(SmileHelper):
2624
"""The Plugwise Smile main class."""
@@ -169,13 +167,9 @@ def _get_location_data(self, loc_id: str) -> GwEntityData:
169167
if str(ctrl_state) == "off":
170168
data["control_state"] = "idle"
171169
self._count += 1
172-
# control_state not present in regulation_mode off (issue #776)
173-
elif self.smile_version is not None and self.smile_version >= version.parse("3.2.0"):
174-
data["control_state"] = "idle"
175-
self._count += 1
176170

177-
# data.pop("setpoint") # remove, only used in _control_state()
178-
# self._count -= 1
171+
data["sensors"].pop("setpoint") # remove, only used in _control_state()
172+
self._count -= 1
179173

180174
# Thermostat data (presets, temperatures etc)
181175
self._climate_data(loc_id, zone, data)

plugwise/helper.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import asyncio
88
import datetime as dt
9+
from packaging import version
910
from typing import cast
1011

1112
from plugwise.common import SmileCommon
@@ -932,12 +933,17 @@ def _control_state(self, data: GwEntityData, loc_id: str) -> str:
932933
if (ctrl_state := location.find(locator)) is not None:
933934
return ctrl_state.text
934935

935-
# Older Adam firmware does not have the control_state key
936-
# Work around this by comparing the reported temperature and setpoint for a location
937-
setpoint = data["setpoint"]
938-
temperature = data["temperature"]
939-
# No cooling available in older firmware
940-
return "heating" if temperature < setpoint else "idle"
936+
# control_state not present in regulation_mode off (issue #776)
937+
if self.smile_version is not None:
938+
if self.smile_version >= version.parse("3.2.0"):
939+
return "off"
940+
941+
# Older Adam firmware does not have the control_state key
942+
# Work around this by comparing the reported temperature and setpoint for a location
943+
setpoint = data["sensors"]["setpoint"]
944+
temperature = data["sensors"]["temperature"]
945+
# No cooling available in older firmware
946+
return "heating" if temperature < setpoint else "off"
941947

942948
def _heating_valves(self) -> int | bool:
943949
"""Helper-function for smile.py: _get_adam_data().

0 commit comments

Comments
 (0)