Skip to content

Commit 759c065

Browse files
committed
Subscribe to messages
1 parent c445b15 commit 759c065

File tree

4 files changed

+20
-27
lines changed

4 files changed

+20
-27
lines changed

plugwise_usb/connection/__init__.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,21 +117,19 @@ def subscribe_to_stick_events(
117117
events,
118118
)
119119

120-
def subscribe_to_node_responses(
120+
async def subscribe_to_messages(
121121
self,
122122
node_response_callback: Callable[[PlugwiseResponse], Coroutine[Any, Any, bool]],
123123
mac: bytes | None = None,
124124
message_ids: tuple[bytes] | None = None,
125+
seq_id: bytes | None = None,
125126
) -> Callable[[], None]:
126127
"""Subscribe a awaitable callback to be called when a specific message is received.
127128
128129
Returns function to unsubscribe.
129130
"""
130-
131-
return self._manager.subscribe_to_node_responses(
132-
node_response_callback,
133-
mac,
134-
message_ids,
131+
return await self._manager.subscribe_to_messages(
132+
node_response_callback, mac, message_ids, seq_id
135133
)
136134

137135
async def _handle_stick_event(self, event: StickEvent) -> None:

plugwise_usb/connection/manager.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from ..api import StickEvent
1414
from ..exceptions import StickError
1515
from ..messages.requests import PlugwiseRequest
16-
from ..messages.responses import PlugwiseResponse, StickResponse
16+
from ..messages.responses import PlugwiseResponse
1717
from .receiver import StickReceiver
1818
from .sender import StickSender
1919

@@ -94,22 +94,12 @@ def remove_subscription() -> None:
9494
)
9595
return remove_subscription
9696

97-
def subscribe_to_stick_replies(
98-
self,
99-
callback: Callable[[StickResponse], Coroutine[Any, Any, None]],
100-
) -> Callable[[], None]:
101-
"""Subscribe to response messages from stick."""
102-
if self._receiver is None or not self._receiver.is_connected:
103-
raise StickError(
104-
"Unable to subscribe to stick response when receiver " + "is not loaded"
105-
)
106-
return self._receiver.subscribe_to_stick_responses(callback)
107-
108-
def subscribe_to_node_responses(
97+
async def subscribe_to_messages(
10998
self,
11099
node_response_callback: Callable[[PlugwiseResponse], Coroutine[Any, Any, bool]],
111100
mac: bytes | None = None,
112101
message_ids: tuple[bytes] | None = None,
102+
seq_id: bytes | None = None,
113103
) -> Callable[[], None]:
114104
"""Subscribe a awaitable callback to be called when a specific message is received.
115105
@@ -119,8 +109,8 @@ def subscribe_to_node_responses(
119109
raise StickError(
120110
"Unable to subscribe to node response when receiver " + "is not loaded"
121111
)
122-
return self._receiver.subscribe_to_node_responses(
123-
node_response_callback, mac, message_ids
112+
return await self._receiver.subscribe_to_node_responses(
113+
node_response_callback, mac, message_ids, seq_id
124114
)
125115

126116
async def setup_connection_to_stick(self, serial_path: str) -> None:

plugwise_usb/network/__init__.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,20 @@ def _subscribe_to_protocol_events(self) -> None:
170170
self._handle_stick_event,
171171
(StickEvent.CONNECTED, StickEvent.DISCONNECTED),
172172
)
173-
self._unsubscribe_node_awake = self._controller.subscribe_to_node_responses(
173+
174+
async def _subscribe_to_node_events(self) -> None:
175+
"""Subscribe to events from protocol."""
176+
self._unsubscribe_node_awake = await self._controller.subscribe_to_messages(
174177
self.node_awake_message,
175178
None,
176179
(NODE_AWAKE_RESPONSE_ID,),
177-
)
178-
self._unsubscribe_node_join = self._controller.subscribe_to_node_responses(
179-
self.node_join_available_message,
180180
None,
181-
(NODE_JOIN_ID,),
181+
)
182+
self._unsubscribe_node_join = await self._controller.subscribe_to_messages(
183+
self.node_join_available_message, None, (NODE_JOIN_ID,), None
184+
)
185+
self._unsubscribe_node_rejoin = await self._controller.subscribe_to_messages(
186+
self.node_rejoin_message, None, (NODE_REJOIN_ID,), None
182187
)
183188

184189
async def _handle_stick_event(self, event: StickEvent) -> None:

plugwise_usb/nodes/node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def __init__(
6262
):
6363
"""Initialize Plugwise base node class."""
6464
self._loaded_callback = loaded_callback
65-
self._message_subscribe = controller.subscribe_to_node_responses
65+
self._message_subscribe = controller.subscribe_to_messages
6666
self._features: tuple[NodeFeature, ...] = NODE_FEATURES
6767
self._last_update = datetime.now(UTC)
6868
self._node_info = NodeInfo(mac, address)

0 commit comments

Comments
 (0)