Skip to content

Commit 85cf9f2

Browse files
committed
Don't expect a node response for NodeAddRequest
1 parent f9ad56d commit 85cf9f2

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

plugwise_usb/connection/queue.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ async def submit(self, request: PlugwiseRequest) -> PlugwiseResponse | None:
9393
)
9494

9595
await self._add_request_to_queue(request)
96+
if request.no_response:
97+
return None
98+
9699
try:
97100
response: PlugwiseResponse = await request.response_future()
98101
return response

plugwise_usb/messages/requests.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ def __init__(
108108
self._response_future: Future[PlugwiseResponse] = self._loop.create_future()
109109
self._waiting_for_response = False
110110

111+
self.no_response = False
112+
111113
def __repr__(self) -> str:
112114
"""Convert request into writable str."""
113115
if self._seq_id is None:
@@ -408,11 +410,11 @@ class NodeAddRequest(PlugwiseRequest):
408410
"""Add node to the Plugwise Network and add it to memory of Circle+ node.
409411
410412
Supported protocols : 1.0, 2.0
411-
Response message : NodeRejoinResponse, b"0061" (@bouwew)
413+
Response message : None
414+
There will be a delayed NodeRejoinResponse, b"0061", picked up by a separate subscription.
412415
"""
413416

414417
_identifier = b"0007"
415-
_reply_identifier = b"0061"
416418

417419
def __init__(
418420
self,
@@ -426,19 +428,11 @@ def __init__(
426428
self._args.append(Int(accept_value, length=2))
427429

428430
self.max_retries = 1 # No retrying, will delay the NodeRejoinResponse
431+
self.no_response = True
429432

430-
async def send(self) -> NodeRejoinResponse | None:
433+
async def send(self) -> None:
431434
"""Send request."""
432-
result = await self._send_request()
433-
if isinstance(result, NodeRejoinResponse):
434-
return result
435-
436-
if result is None:
437-
return None
438-
439-
raise MessageError(
440-
f"Invalid response message. Received {result.__class__.__name__}, expected NodeRejoinResponse"
441-
)
435+
await self._send_request()
442436

443437
# This message has an exceptional format (MAC at end of message)
444438
# and therefore a need to override the serialize method

0 commit comments

Comments
 (0)