diff --git a/custom_components/tekmar_482/trpc_sock.py b/custom_components/tekmar_482/trpc_sock.py index e2424dd..30a6e60 100644 --- a/custom_components/tekmar_482/trpc_sock.py +++ b/custom_components/tekmar_482/trpc_sock.py @@ -11,7 +11,6 @@ def __init__(self, addr=None, port=None): self._sock_writer = None self._is_open = False self._error = None - self._rx_queue = [] self.addr = addr self.port = port @@ -61,23 +60,17 @@ async def read(self): Otherwise a tHA object is returned. """ if self._sock_reader is not None: - if len(self._rx_queue) != 0: - return self._rx_queue.pop(0) - - else: - try: - rx_data = await asyncio.wait_for( - self._sock_reader.read(1024), timeout=0.5 - ) - rx_data = rx_data.rsplit("\n".encode()) - for st in [r for r in rx_data if r]: - self._rx_queue.append(TrpcPacket.from_rx_packet(st)) - - except asyncio.TimeoutError: - return None - - else: - return None + try: + rx_data = await asyncio.wait_for( + self._sock_reader.readline(), timeout=0.5 + ) + if rx_data: + return TrpcPacket.from_rx_packet(rx_data.rstrip(b"\n")) + + except asyncio.TimeoutError: + pass + + return None # ************************************************************************** async def write(self, trpc_packet) -> None: