From 33f18d1b1304edfae91728374c09a0a29abbc3e7 Mon Sep 17 00:00:00 2001 From: Dmitry Vasilyev Date: Fri, 11 Oct 2024 02:58:20 +0400 Subject: [PATCH] Improved stability while fetching data locally. --- custom_components/sscpoe/coordinator.py | 5 ++++- custom_components/sscpoe/manifest.json | 2 +- custom_components/sscpoe/protocol.py | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/custom_components/sscpoe/coordinator.py b/custom_components/sscpoe/coordinator.py index c38c5fe..539f870 100644 --- a/custom_components/sscpoe/coordinator.py +++ b/custom_components/sscpoe/coordinator.py @@ -57,7 +57,10 @@ def _fetch_data(self) -> None: if self._sn: j, err = SSCPOE_local_request({"callcmd": "detail", "sn": self._sn}) if j is None: - raise ApiError(f"SSCPOE_local_request(detail, {self._sn}): timeout") + # Second try + j, err = SSCPOE_local_request({"callcmd": "detail", "sn": self._sn}) + if j is None: + raise ApiError(f"SSCPOE_local_request(detail, {self._sn}): timeout") if isinstance(j, str): raise ApiAuthError(j) if err != 0: diff --git a/custom_components/sscpoe/manifest.json b/custom_components/sscpoe/manifest.json index c2fd049..c733d6b 100644 --- a/custom_components/sscpoe/manifest.json +++ b/custom_components/sscpoe/manifest.json @@ -9,6 +9,6 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/slydiman/sscpoe/issues", "requirements": ["requests"], - "version": "2024.09.30", + "version": "2024.10.11", "zeroconf": [] } diff --git a/custom_components/sscpoe/protocol.py b/custom_components/sscpoe/protocol.py index 9a1c513..ac2de91 100644 --- a/custom_components/sscpoe/protocol.py +++ b/custom_components/sscpoe/protocol.py @@ -502,9 +502,9 @@ def SSCPOE_local_search(): def SSCPOE_local_request(dt): sock, syn = SSCPOE_local_send(dt) - res = SSCPOE_local_recv(sock, syn) + d, err = SSCPOE_local_recv(sock, syn) sock.close() - return res + return d, err def SSCPOE_local_login(sn: str, password: str, cmd="login"):