diff --git a/plugins/sources/EVCharger/evcharger.py b/plugins/sources/EVCharger/evcharger.py index bc3eb15..d44b1c3 100644 --- a/plugins/sources/EVCharger/evcharger.py +++ b/plugins/sources/EVCharger/evcharger.py @@ -26,7 +26,8 @@ def env_vars(config): if os.environ.get('EVCHARGER_PASSWORD'): config['server']['password'] = os.environ.get('EVCHARGER_PASSWORD') if os.environ.get('EVCHARGER_UPDATEFREQ'): - config['behavior']['updateFreq'] = os.environ.get('EVCHARGER_UPDATEFREQ') + config['behavior']['updateFreq'] = os.environ.get( + 'EVCHARGER_UPDATEFREQ') if os.environ.get('EVCHARGER_PREFIX'): config['behavior']['sensorPrefix'] = os.environ.get('EVCHARGER_PREFIX') @@ -62,9 +63,11 @@ def execute(config, add_data, dostop): # Login & Extract Access-Token try: - response = session.post(loginurl, data=postdata, timeout=5, verify=verify_tls) + response = session.post(loginurl, data=postdata, + timeout=5, verify=verify_tls) except requests.exceptions.ConnectTimeout: - logging.fatal(f"Charger not reachable via HTTP: {config.get('server', 'address')}") + logging.fatal( + f"Charger not reachable via HTTP: {config.get('server', 'address')}") return except requests.exceptions.ConnectionError as e: logging.fatal(f"Charger connection error: {e.args[0]}") @@ -74,7 +77,8 @@ def execute(config, add_data, dostop): logging.fatal("Username or Password wrong") return if (404 == response.status_code): - logging.fatal(f"HTTP connection to {config.get('server', 'address')} refused (status 404)") + logging.fatal( + f"HTTP connection to {config.get('server', 'address')} refused (status 404)") return token = response.json()["access_token"] @@ -103,12 +107,14 @@ def execute(config, add_data, dostop): try: url = f"{config.get('server', 'protocol')}://{config.get('server', 'address')}/api/v1/measurements/live" - response = session.post(url, headers=headers, data='[{"componentId":"IGULD:SELF"}]', verify=verify_tls) + response = session.post( + url, headers=headers, data='[{"componentId":"IGULD:SELF"}]', verify=verify_tls) # Check if a new acccess token is neccesary (TODO use refresh token) if (response.status_code == 401): logging.info(f"Got {response.status_code} - trying reauth") - response = requests.post(loginurl, data=postdata, verify=verify_tls) + response = requests.post( + loginurl, data=postdata, verify=verify_tls) token = response.json()['access_token'] headers = {"Authorization": "Bearer " + token} continue @@ -126,7 +132,8 @@ def execute(config, add_data, dostop): try: v = round(float(v), 2) except Exception as e: - logging.error(f"Error rounding value for parameter '{name}': value='{v}', type={type(v).__name__}, error: {e}") + logging.error( + f"Error rounding value for parameter '{name}': value='{v}', type={type(v).__name__}, error: {e}") raise unit = get_parameter_unit('SENSORS_EVCHARGER', name) if unit: @@ -141,7 +148,8 @@ def execute(config, add_data, dostop): try: v = round(float(v), 2) except Exception as e: - logging.error(f"Error rounding value for parameter '{name}[{idx}]': value='{v}', type={type(v).__name__}, error: {e}") + logging.error( + f"Error rounding value for parameter '{name}[{idx}]': value='{v}', type={type(v).__name__}, error: {e}") raise idxname = dname + "." + str(idx + 1) unit = get_parameter_unit('SENSORS_EVCHARGER', name) @@ -150,7 +158,8 @@ def execute(config, add_data, dostop): else: add_data(idxname, v) else: - logging.debug(f"value of {name} is currently not availably (nighttime?)") + logging.debug( + f"value of {name} is currently not availably (nighttime?)") pass time.sleep(int(config.get('behavior', 'updateFreq'))) @@ -309,7 +318,7 @@ def execute(config, add_data, dostop): 'name': "Reactive power", 'device_class': "reactive_power", 'icon': "mdi:home-lightning-bolt-outline", - 'unit_of_measurement': "VAR", + 'unit_of_measurement': "var", 'state_class': "measurement", 'suggested_display_precision': 2, }, diff --git a/plugins/sources/TripowerX/tripowerx.py b/plugins/sources/TripowerX/tripowerx.py index d77a7b7..7a455ce 100644 --- a/plugins/sources/TripowerX/tripowerx.py +++ b/plugins/sources/TripowerX/tripowerx.py @@ -662,7 +662,7 @@ def execute(config, add_data, dostop): 'enabled': "false", 'name': "Reactive power", 'suggested_display_precision': 2, - 'unit_of_measurement': "VAR", + 'unit_of_measurement': "var", 'device_class': "reactive_power", 'state_class': "measurement", 'icon': "mdi:home-lightning-bolt-outline", @@ -722,7 +722,7 @@ def execute(config, add_data, dostop): 'enabled': "false", 'name': "Phase 1 reactive power", 'suggested_display_precision': 2, - 'unit_of_measurement': "VAR", + 'unit_of_measurement': "var", 'device_class': "reactive_power", 'state_class': "measurement", 'icon': "mdi:home-lightning-bolt-outline", @@ -732,7 +732,7 @@ def execute(config, add_data, dostop): 'enabled': "false", 'name': "Phase 2 reactive power", 'suggested_display_precision': 2, - 'unit_of_measurement': "VAR", + 'unit_of_measurement': "var", 'device_class': "reactive_power", 'state_class': "measurement", 'icon': "mdi:home-lightning-bolt-outline", @@ -742,7 +742,7 @@ def execute(config, add_data, dostop): 'enabled': "false", 'name': "Phase 3 reactive power", 'suggested_display_precision': 2, - 'unit_of_measurement': "VAR", + 'unit_of_measurement': "var", 'device_class': "reactive_power", 'state_class': "measurement", 'icon': "mdi:home-lightning-bolt-outline", diff --git a/pyproject.toml b/pyproject.toml index 049fb2e..5578702 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"] [project] name = "smahub" -version = "1.7.4" +version = "1.7.5" authors = [{ name = "Daniel Krippner", email = "dk.mailbox@gmx.net" }] description = "Little daemon that runs plugins for collecting data from SMA PV products, and publishes to eg MQTT via other plugins." readme = "README.md" @@ -14,7 +14,7 @@ classifiers = [ "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Operating System :: OS Independent", - "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.10", ] dependencies = [ "debugpy ~=1.8",