@@ -75,48 +75,52 @@ async def stop(self) -> None:
7575 _LOGGER .debug ("queue stopped" )
7676
7777 async def submit (self , request : PlugwiseRequest ) -> PlugwiseResponse | None :
78- """Add request to queue and return the response of node. Raises an error when something fails."""
78+ """Add request to queue and return the received node-response when applicable.
79+
80+ Raises an error when something fails.
81+ """
7982 if request .waiting_for_response :
8083 raise MessageError (
8184 f"Cannot send message { request } which is currently waiting for response."
8285 )
8386
84- while request .resend and not request . waiting_for_response :
87+ while request .resend :
8588 _LOGGER .debug ("submit | start (%s) %s" , request .retries_left , request )
8689 if not self ._running or self ._stick is None :
8790 raise StickError (
8891 f"Cannot send message { request .__class__ .__name__ } for"
8992 + f"{ request .mac_decoded } because queue manager is stopped"
9093 )
94+
9195 await self ._add_request_to_queue (request )
9296 try :
9397 if not request .node_response_expected :
9498 return None
9599 response : PlugwiseResponse = await request .response_future ()
96100 return response
97- except (NodeTimeout , StickTimeout ) as e :
101+ except (NodeTimeout , StickTimeout ) as exc :
98102 if isinstance (request , NodePingRequest ):
99103 # For ping requests it is expected to receive timeouts, so lower log level
100104 _LOGGER .debug (
101- "%s, cancel because timeout is expected for NodePingRequests" , e
105+ "%s, cancel because timeout is expected for NodePingRequests" , exc
102106 )
103107 elif request .resend :
104- _LOGGER .debug ("%s, retrying" , e )
108+ _LOGGER .debug ("%s, retrying" , exc )
105109 else :
106- _LOGGER .warning ("%s, cancel request" , e ) # type: ignore[unreachable]
107- except StickError as exception :
108- _LOGGER .error (exception )
110+ _LOGGER .warning ("%s, cancel request" , exc ) # type: ignore[unreachable]
111+ except StickError as exc :
112+ _LOGGER .error (exc )
109113 self ._stick .correct_received_messages (1 )
110114 raise StickError (
111115 f"No response received for { request .__class__ .__name__ } "
112116 + f"to { request .mac_decoded } "
113- ) from exception
114- except BaseException as exception :
117+ ) from exc
118+ except BaseException as exc :
115119 self ._stick .correct_received_messages (1 )
116120 raise StickError (
117121 f"No response received for { request .__class__ .__name__ } "
118122 + f"to { request .mac_decoded } "
119- ) from exception
123+ ) from exc
120124
121125 return None
122126
0 commit comments