From e4a19656a2af8a46e1b719e6a28ba6b9b8addac6 Mon Sep 17 00:00:00 2001 From: Christopher Peplin Date: Wed, 28 Feb 2024 15:39:53 -0500 Subject: [PATCH] Update error handling for compatibility with latest pyModbusTCP The newer version converted the `last_error` method to a @property. There's also a new helper @property that converts error codes to strings for us, so I just opted to use that. --- solaredge.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/solaredge.py b/solaredge.py index bfa418a..ee5fbdf 100644 --- a/solaredge.py +++ b/solaredge.py @@ -122,15 +122,10 @@ def decode_value(data, scalefactor): await solar_client.write(datapoint) else: - # Error during data receive - if client.last_error() == 2: - logger.error( - f"Failed to connect to SolarEdge inverter {client.host()}!" - ) - elif client.last_error() == 3 or client.last_error() == 4: - logger.error("Send or receive error!") - elif client.last_error() == 5: - logger.error("Timeout during send or receive operation!") + logger.error( + "Failed while connecting or receiving data from " + f"SolarEdge inverter {client.host}: {client.last_error_as_txt}" + ) except InfluxDBWriteError as e: logger.error(f"Failed to write to InfluxDb: {e}") except IOError as e: