summaryrefslogtreecommitdiff
path: root/src/polaris/kettle.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/polaris/kettle.py')
-rw-r--r--src/polaris/kettle.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/polaris/kettle.py b/src/polaris/kettle.py
index 6f76279..d6e0dd6 100644
--- a/src/polaris/kettle.py
+++ b/src/polaris/kettle.py
@@ -149,16 +149,18 @@ class Kettle(DeviceListener, ConnectionStatusListener):
device_token: str
conn: Optional[UDPConnection]
conn_status: Optional[ConnectionStatus]
+ _read_timeout: Optional[int]
_logger: logging.Logger
_find_evt: threading.Event
- def __init__(self, mac: str, device_token: str):
+ def __init__(self, mac: str, device_token: str, read_timeout: Optional[int] = None):
super().__init__()
self.mac = mac
self.device = None
self.device_token = device_token
self.conn = None
self.conn_status = None
+ self._read_timeout = read_timeout
self._find_evt = threading.Event()
self._logger = logging.getLogger(f'{__name__}.{self.__class__.__name__}')
@@ -205,10 +207,13 @@ class Kettle(DeviceListener, ConnectionStatusListener):
assert self.device.curve == 29, f'curve type {self.device.curve} is not implemented'
assert self.device.protocol == 2, f'protocol {self.device.protocol} is not supported'
+ kw = {}
+ if self._read_timeout is not None:
+ kw['read_timeout'] = self._read_timeout
self.conn = UDPConnection(addr=self.device.addr,
port=self.device.port,
device_pubkey=self.device.pubkey,
- device_token=bytes.fromhex(self.device_token))
+ device_token=bytes.fromhex(self.device_token), **kw)
if incoming_message_listener:
self.conn.add_incoming_message_listener(incoming_message_listener)