From 5ac8d8d7ae07022eae0c02873ddc7765ba9ff48e Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Mon, 1 Apr 2024 14:31:03 +0200 Subject: [PATCH] only check pack_num once --- .../bluetti_bt_lib/bluetooth/device_reader.py | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py index ffd309d..c8cc38b 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py @@ -110,6 +110,8 @@ class DeviceReader: # We need to wait after switching packs for the data to be available await asyncio.sleep(5) + pack_ok = False + for command in pack_commands: # Request & parse result for each pack try: @@ -121,17 +123,19 @@ class DeviceReader: ) _LOGGER.debug("Parsed data: %s", parsed) - pack_number = parsed.get("pack_num") - if ( - not isinstance(pack_number, int) - or pack_number != pack - ): - _LOGGER.debug( - "Parsed pack_num(%s) does not match expected '%s'", - pack_number, - pack, - ) - continue + if not pack_ok: # Only check this once + pack_number = parsed.get("pack_num") + if ( + not isinstance(pack_number, int) + or pack_number != pack + ): + _LOGGER.debug( + "Parsed pack_num(%s) does not match expected '%s'", + pack_number, + pack, + ) + continue + pack_ok = True for key, value in parsed.items(): parsed_data.update({key + str(pack): value})