@@ -57,15 +57,13 @@ def __init__(self, host: str, local_key: str):
5757 self._protocol: _LocalProtocol | None = None
5858 self._subscribers: CallbackList[RoborockMessage] = CallbackList(_LOGGER)
5959 self._is_connected = False
60- self._local_key = local_key
6160 self._local_protocol_version: LocalProtocolVersion | None = None
62- self._connect_nonce = get_next_int(10000, 32767)
63- self._params: LocalChannelParams | None = None
64- self._update_encoder_decoder()
61+ self._params = LocalChannelParams(local_key=local_key, connect_nonce=get_next_int(10000, 32767), ack_nonce=None)
62+ self._update_encoder_decoder(self._params)
6563
66- def _update_encoder_decoder(self, params: LocalChannelParams | None = None ):
64+ def _update_encoder_decoder(self, params: LocalChannelParams):
6765 if params is None:
68- params = LocalChannelParams(local_key= self._local_key, connect_nonce=self._connect_nonce, ack_nonce=None)
66+ params = self._params
6967 self._params = params
7068 self._encoder = create_local_encoder(
7169 local_key=params.local_key, connect_nonce=params.connect_nonce, ack_nonce=params.ack_nonce
@@ -86,7 +84,7 @@ async def _do_hello(self, local_protocol_version: LocalProtocolVersion) -> Local
8684 request = RoborockMessage(
8785 protocol=RoborockMessageProtocol.HELLO_REQUEST,
8886 version=local_protocol_version.encode(),
89- random=self._connect_nonce ,
87+ random=self._params.connect_nonce ,
9088 seq=1,
9189 )
9290 try:
@@ -101,7 +99,7 @@ async def _do_hello(self, local_protocol_version: LocalProtocolVersion) -> Local
10199 local_protocol_version,
102100 )
103101 return LocalChannelParams(
104- local_key=self._local_key , connect_nonce=self._connect_nonce , ack_nonce=response.random
102+ local_key=self._params.local_key , connect_nonce=self._params.connect_nonce , ack_nonce=response.random
105103 )
106104 except RoborockException as e:
107105 _LOGGER.debug(
@@ -114,7 +112,7 @@ async def _do_hello(self, local_protocol_version: LocalProtocolVersion) -> Local
114112
115113 async def _hello(self):
116114 """Send hello to the device to negotiate protocol."""
117- attempt_versions = [LocalProtocolVersion.L01 , LocalProtocolVersion.L01]
115+ attempt_versions = [LocalProtocolVersion.V1 , LocalProtocolVersion.L01]
118116 if self._local_protocol_version:
119117 # Sort to try the preferred version first
120118 attempt_versions.sort(key=lambda v: v != self._local_protocol_version)
0 commit comments