Skip to content

Commit bb7cb71

Browse files
authored
Merge pull request #641 from plugwise/local-timeout
Make timeout an internal parameter.
2 parents 3fd9aeb + 7e09b7d commit bb7cb71

File tree

5 files changed

+28
-23
lines changed

5 files changed

+28
-23
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## v1.5.0
4+
5+
- Make timeout an internal parameter.
6+
37
## v1.4.4
48

59
- Change connect() function to output the gateway firmware-version.

plugwise/__init__.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
from __future__ import annotations
66

77
from plugwise.constants import (
8+
DEFAULT_LEGACY_TIMEOUT,
89
DEFAULT_PORT,
10+
DEFAULT_TIMEOUT,
911
DEFAULT_USERNAME,
1012
DOMAIN_OBJECTS,
1113
LOGGER,
@@ -43,26 +45,25 @@ def __init__(
4345
self,
4446
host: str,
4547
password: str,
46-
timeout: int,
4748
websession: aiohttp.ClientSession,
4849
port: int = DEFAULT_PORT,
4950
username: str = DEFAULT_USERNAME,
5051
) -> None:
5152
"""Set the constructor for this class."""
52-
super().__init__(
53-
host,
54-
password,
55-
port,
56-
timeout,
57-
username,
58-
websession,
59-
)
60-
6153
self._host = host
62-
self._passwd = password
54+
self._password = password
6355
self._port = port
64-
self._user = username
56+
self._timeout = DEFAULT_LEGACY_TIMEOUT
57+
self._username = username
6558
self._websession = websession
59+
super().__init__(
60+
self._host,
61+
self._password,
62+
self._port,
63+
self._timeout,
64+
self._username,
65+
self._websession,
66+
)
6667

6768
self._cooling_present = False
6869
self._elga = False
@@ -126,7 +127,7 @@ async def connect(self) -> Version | None:
126127

127128
self._smile_api = SmileAPI(
128129
self._host,
129-
self._passwd,
130+
self._password,
130131
self._request,
131132
self._websession,
132133
self._cooling_present,
@@ -147,10 +148,10 @@ async def connect(self) -> Version | None:
147148
self.smile_name,
148149
self.smile_type,
149150
self._port,
150-
self._user,
151+
self._username,
151152
) if not self.smile_legacy else SmileLegacyAPI(
152153
self._host,
153-
self._passwd,
154+
self._password,
154155
self._request,
155156
self._websession,
156157
self._is_thermostat,
@@ -168,7 +169,7 @@ async def connect(self) -> Version | None:
168169
self.smile_type,
169170
self.smile_zigbee_mac_address,
170171
self._port,
171-
self._user,
172+
self._username,
172173
)
173174

174175
# Update all endpoints on first connect
@@ -212,6 +213,9 @@ async def _smile_detect(self, result: etree, dsmrmain: etree) -> None:
212213
)
213214
raise UnsupportedDeviceError
214215

216+
if not self.smile_legacy:
217+
self._timeout = DEFAULT_TIMEOUT
218+
215219
if self._target_smile in ("smile_open_therm_v2", "smile_thermo_v3"):
216220
LOGGER.error(
217221
"Your Smile identified as %s needs a firmware update as it's firmware is severely outdated",

plugwise/helper.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ async def _create_session() -> ClientSession:
100100

101101
self._auth = BasicAuth(username, password=password)
102102
self._endpoint = f"http://{host}:{str(port)}"
103-
self._timeout = timeout
104103

105104
async def _request(
106105
self,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "plugwise"
7-
version = "1.4.4"
7+
version = "1.5.0"
88
license = {file = "LICENSE"}
99
description = "Plugwise Smile (Adam/Anna/P1) and Stretch module for Python 3."
1010
readme = "README.md"

tests/test_init.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,6 @@ async def connect(
323323
username=pw_constants.DEFAULT_USERNAME,
324324
password=test_password,
325325
port=server.port,
326-
timeout=pw_constants.DEFAULT_TIMEOUT,
327326
websession=None,
328327
)
329328
lack_of_websession = False
@@ -337,18 +336,18 @@ async def connect(
337336
username=pw_constants.DEFAULT_USERNAME,
338337
password=test_password,
339338
port=server.port,
340-
timeout=pw_constants.DEFAULT_TIMEOUT,
341339
websession=websession,
342340
)
343341

344342
if not timeout:
345-
assert smile._timeout == 10
343+
assert smile._timeout == 30
346344

347345
# Connect to the smile
348346
version = None
349347
try:
350348
version = await smile.connect()
351349
assert version is not None
350+
assert smile._timeout == 10
352351
return server, smile, client
353352
except (
354353
pw_exceptions.ConnectionFailedError,
@@ -408,7 +407,6 @@ async def connect_legacy(
408407
username=pw_constants.DEFAULT_USERNAME,
409408
password=test_password,
410409
port=server.port,
411-
timeout=pw_constants.DEFAULT_LEGACY_TIMEOUT,
412410
websession=None,
413411
)
414412
lack_of_websession = False
@@ -422,7 +420,6 @@ async def connect_legacy(
422420
username=pw_constants.DEFAULT_USERNAME,
423421
password=test_password,
424422
port=server.port,
425-
timeout=pw_constants.DEFAULT_LEGACY_TIMEOUT,
426423
websession=websession,
427424
)
428425

@@ -434,6 +431,7 @@ async def connect_legacy(
434431
try:
435432
version = await smile.connect()
436433
assert version is not None
434+
assert smile._timeout == 30
437435
return server, smile, client
438436
except (
439437
pw_exceptions.ConnectionFailedError,

0 commit comments

Comments
 (0)