Skip to content

Commit 153df23

Browse files
committed
Let's keep gateway_id as api-callable
1 parent 21fbd3a commit 153df23

File tree

9 files changed

+25
-21
lines changed

9 files changed

+25
-21
lines changed

plugwise/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
DOMAIN_OBJECTS,
1212
LOGGER,
1313
MODULES,
14+
NONE,
1415
SMILES,
1516
STATUS,
1617
SYSTEM,
@@ -69,6 +70,7 @@ def __init__(
6970
self._websession = websession
7071

7172
self._cooling_present = False
73+
self._data: PlugwiseData = {}
7274
self._elga = False
7375
self._is_thermostat = False
7476
self._on_off_device = False
@@ -77,6 +79,7 @@ def __init__(
7779
self._stretch_v2 = False
7880
self._stretch_v3 = False
7981
self._target_smile: str
82+
self.gateway_id: str = NONE
8083
self.loc_data: dict[str, ThermoLoc] = {}
8184
self.smile_fw_version: str | None
8285
self.smile_hostname: str
@@ -135,6 +138,7 @@ async def connect(self) -> bool:
135138
self._opentherm_device,
136139
self._schedule_old_states,
137140
self._target_smile,
141+
self.gateway_id,
138142
self.loc_data,
139143
self.smile_fw_version,
140144
self.smile_hostname,
@@ -310,7 +314,9 @@ def get_all_devices(self) -> None:
310314

311315
async def async_update(self) -> PlugwiseData:
312316
"""Perform an incremental update for updating the various device states."""
313-
return await self._smile_api.async_update()
317+
self._data = await self._smile_api.async_update()
318+
self.gateway_id = self._data.gateway["gateway_id"]
319+
return self._data
314320

315321
########################################################################################################
316322
### API Set and HA Service-related Functions ###

plugwise/smile.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def __init__(
5555
_opentherm_device: bool,
5656
_schedule_old_states: dict[str, dict[str, str]],
5757
_target_smile: str | None,
58+
gateway_id: str,
5859
loc_data: dict[str, ThermoLoc],
5960
smile_fw_version: str | None,
6061
smile_hostname: str | None,
@@ -89,6 +90,7 @@ def __init__(
8990
self._opentherm_device = _opentherm_device
9091
self._schedule_old_states = _schedule_old_states
9192
self._target_smile = _target_smile
93+
self.gateway_id = gateway_id
9294
self.loc_data = loc_data
9395
self.smile_fw_version = smile_fw_version
9496
self.smile_hostname = smile_hostname
@@ -100,7 +102,6 @@ def __init__(
100102
self.smile_type = smile_type
101103
self.smile_version = smile_version
102104

103-
self._gateway_id: str
104105
self._heater_id: str
105106
self._cooling_enabled = False
106107

@@ -140,8 +141,6 @@ async def async_update(self) -> PlugwiseData:
140141
await self.full_update_device()
141142
self.get_all_devices()
142143

143-
144-
self._gateway_id = self.gw_data["gateway_id"]
145144
if "heater_id" in self.gw_data:
146145
self._heater_id = self.gw_data["heater_id"]
147146
if "cooling_enabled" in self.gw_devices[self._heater_id]["binary_sensors"]:
@@ -394,7 +393,7 @@ async def set_gateway_mode(self, mode: str) -> None:
394393
vacation_time = time_2 + "T23:00:00.000Z"
395394
valid = f"<valid_from>{vacation_time}</valid_from><valid_to>{end_time}</valid_to>"
396395

397-
uri = f"{APPLIANCES};id={self._gateway_id}/gateway_mode_control"
396+
uri = f"{APPLIANCES};id={self.gateway_id}/gateway_mode_control"
398397
data = f"<gateway_mode_control_functionality><mode>{mode}</mode>{valid}</gateway_mode_control_functionality>"
399398

400399
await self._request(uri, method="put", data=data)

tests/test_adam.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ async def test_connect_adam_zone_per_device(self):
3232
)
3333

3434
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
35-
assert self.gateway_id == "fe799307f1624099878210aa0b9f1475"
35+
assert smile.gateway_id == "fe799307f1624099878210aa0b9f1475"
3636
# assert smile._last_active["12493538af164a409c6a1c79e38afe1c"] == BADKAMER_SCHEMA
3737
# assert smile._last_active["c50f167537524366a5af7aa3942feb1e"] == GF7_WOONKAMER
3838
# assert smile._last_active["82fa13f017d240daa0d0ea1775420f24"] == CV_JESSIE
@@ -189,7 +189,7 @@ async def test_connect_adam_plus_anna(self):
189189
)
190190

191191
await self.device_test(smile, "2020-03-22 00:00:01", testdata)
192-
assert self.gateway_id == "b128b4bbbd1f47e9bf4d756e8fb5ee94"
192+
assert smile.gateway_id == "b128b4bbbd1f47e9bf4d756e8fb5ee94"
193193
# assert smile._last_active["009490cc2f674ce6b576863fbb64f867"] == "Weekschema"
194194
assert self.device_items == 70
195195
assert "6fb89e35caeb4b1cb275184895202d84" in self.notifications
@@ -238,7 +238,7 @@ async def test_connect_adam_plus_anna_new(self):
238238
)
239239

240240
await self.device_test(smile, "2023-12-17 00:00:01", testdata)
241-
assert self.gateway_id == "da224107914542988a88561b4452b0f6"
241+
assert smile.gateway_id == "da224107914542988a88561b4452b0f6"
242242
# assert smile._last_active["f2bf9048bef64cc5b6d5110154e33c81"] == "Weekschema"
243243
# assert smile._last_active["f871b8c4d63549319221e294e4f88074"] == "Badkamer"
244244
assert self.device_items == 147
@@ -342,7 +342,7 @@ async def test_adam_plus_jip(self):
342342
server, smile, client = await self.connect_wrapper()
343343

344344
await self.device_test(smile, "2021-06-20 00:00:01", testdata)
345-
assert self.gateway_id == "b5c2386c6f6342669e50fe49dd05b188"
345+
assert smile.gateway_id == "b5c2386c6f6342669e50fe49dd05b188"
346346
# assert smile._last_active["d58fec52899f4f1c92e4f8fad6d8c48c"] is None
347347
# assert smile._last_active["06aecb3d00354375924f50c47af36bd2"] is None
348348
# assert smile._last_active["d27aede973b54be484f6842d1b2802ad"] is None

tests/test_anna.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async def test_connect_anna_v4(self):
2828
)
2929

3030
await self.device_test(smile, "2020-04-05 00:00:01", testdata)
31-
assert self.gateway_id == "0466eae8520144c78afb29628384edeb"
31+
assert smile.gateway_id == "0466eae8520144c78afb29628384edeb"
3232
# assert smile._last_active["eb5309212bf5407bb143e5bfa3b18aee"] == "Standaard"
3333
assert self.device_items == 56
3434
assert not self.notifications
@@ -188,7 +188,7 @@ async def test_connect_anna_heatpump_heating(self):
188188
)
189189

190190
await self.device_test(smile, "2020-04-12 00:00:01", testdata)
191-
assert self.gateway_id == "015ae9ea3f964e668e490fa39da3870b"
191+
assert smile.gateway_id == "015ae9ea3f964e668e490fa39da3870b"
192192
# assert smile._last_active["c784ee9fdab44e1395b8dee7d7a497d5"] == "standaard"
193193
assert self.device_items == 66
194194
assert not self.notifications
@@ -315,7 +315,7 @@ async def test_connect_anna_elga_no_cooling(self):
315315
)
316316

317317
await self.device_test(smile, "2020-04-12 00:00:01", testdata)
318-
assert self.gateway_id == "015ae9ea3f964e668e490fa39da3870b"
318+
assert smile.gateway_id == "015ae9ea3f964e668e490fa39da3870b"
319319
# assert smile._last_active["c784ee9fdab44e1395b8dee7d7a497d5"] == "standaard"
320320
assert self.device_items == 62
321321
assert not self.notifications
@@ -345,7 +345,7 @@ async def test_connect_anna_elga_2(self):
345345
# == THERMOSTAT_SCHEDULE
346346
# )
347347
assert self.device_items == 62
348-
assert self.gateway_id == "fb49af122f6e4b0f91267e1cf7666d6f"
348+
assert smile.gateway_id == "fb49af122f6e4b0f91267e1cf7666d6f"
349349
assert self.cooling_present
350350
assert not self._cooling_enabled
351351
assert not self.notifications

tests/test_init.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,6 @@ async def device_test(
568568
if "cooling_present" in data.gateway:
569569
self.cooling_present = data.gateway["cooling_present"]
570570
self.notifications = data.gateway["notifications"]
571-
self.gateway_id = data.gateway["gateway_id"]
572571
self.device_items = data.gateway["item_count"]
573572

574573
self._cooling_active = False

tests/test_legacy_anna.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ async def test_connect_legacy_anna(self):
2929
)
3030

3131
await self.device_test(smile, "2020-03-22 00:00:01", testdata)
32-
assert self.gateway_id == "0000aaaa0000aaaa0000aaaa0000aa00"
32+
assert smile.gateway_id == "0000aaaa0000aaaa0000aaaa0000aa00"
3333
assert self.device_items == 44
3434
assert not self.notifications
3535

@@ -66,7 +66,7 @@ async def test_connect_legacy_anna_2(self):
6666

6767
await self.device_test(smile, "2020-05-03 00:00:01", testdata)
6868

69-
assert self.gateway_id == "be81e3f8275b4129852c4d8d550ae2eb"
69+
assert smile.gateway_id == "be81e3f8275b4129852c4d8d550ae2eb"
7070
assert self.device_items == 44
7171
assert not self.notifications
7272

tests/test_legacy_p1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async def test_connect_smile_p1_v2(self):
2828
)
2929

3030
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
31-
assert self.gateway_id == "aaaa0000aaaa0000aaaa0000aaaa00aa"
31+
assert smile.gateway_id == "aaaa0000aaaa0000aaaa0000aaaa00aa"
3232
assert self.device_items == 26
3333
assert not self.notifications
3434

tests/test_legacy_stretch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async def test_connect_stretch_v31(self):
3030
)
3131

3232
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
33-
assert self.gateway_id == "0000aaaa0000aaaa0000aaaa0000aa00"
33+
assert smile.gateway_id == "0000aaaa0000aaaa0000aaaa0000aa00"
3434
assert self.device_items == 83
3535

3636
switch_change = await self.tinker_switch(

tests/test_p1.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ async def test_connect_p1v4(self):
2727
)
2828

2929
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
30-
assert self.gateway_id == "a455b61e52394b2db5081ce025a430f3"
30+
assert smile.gateway_id == "a455b61e52394b2db5081ce025a430f3"
3131
assert self.device_items == 29
3232
assert "97a04c0c263049b29350a660b4cdd01e" in self.notifications
3333

@@ -51,7 +51,7 @@ async def test_connect_p1v4_442_single(self):
5151
)
5252

5353
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
54-
assert self.gateway_id == "a455b61e52394b2db5081ce025a430f3"
54+
assert smile.gateway_id == "a455b61e52394b2db5081ce025a430f3"
5555
assert self.device_items == 31
5656
assert not self.notifications
5757

@@ -85,7 +85,7 @@ async def test_connect_p1v4_442_triple(self):
8585
)
8686

8787
await self.device_test(smile, "2022-05-16 00:00:01", testdata)
88-
assert self.gateway_id == "03e65b16e4b247a29ae0d75a78cb492e"
88+
assert smile.gateway_id == "03e65b16e4b247a29ae0d75a78cb492e"
8989
assert self.device_items == 40
9090
assert self.notifications
9191

0 commit comments

Comments
 (0)