diff --git a/src/config.yaml b/src/config.yaml index 7852028..1244e5e 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -1,6 +1,6 @@ name: "Volvo2Mqtt" description: "Volvo AAOS MQTT bridge" -version: "1.6.2" +version: "1.6.3" slug: "volvo2mqtt" init: false url: "https://github.com/Dielee/volvo2mqtt" diff --git a/src/const.py b/src/const.py index 44fd2fe..0f7784a 100644 --- a/src/const.py +++ b/src/const.py @@ -1,6 +1,6 @@ from config import settings -VERSION = "v1.6.2" +VERSION = "v1.6.3" OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2" VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles" @@ -19,8 +19,6 @@ ENGINE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/ BATTERY_CHARGE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/battery-charge-level" FUEL_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/fuel" STATISTICS_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/statistics" -DISTANCE_TO_EMPTY_URL = "https://api.volvocars.com/extended-vehicle/v1/vehicles/{0}/resources/distanceToEmpty" -WASHER_FLUID_LEVEL_URL = "https://api.volvocars.com/extended-vehicle/v1/vehicles/{0}/resources/washerFluidLevel" units = { "en_GB": { @@ -81,7 +79,6 @@ supported_entities = [ {"name": "Engine State", "domain": "sensor", "id": "engine_state", "icon": "engine", "url": ENGINE_STATE_URL}, {"name": "Fuel Level", "domain": "sensor", "id": "fuel_level", "unit": "liters", "icon": "fuel", "url": FUEL_STATE_URL}, {"name": "Average Fuel Consumption", "domain": "sensor", "id": "average_fuel_consumption", "unit": "liters", "icon": "fuel", "url": STATISTICS_URL}, - {"name": "Average Speed", "domain": "sensor", "id": "average_speed", "unit": "km/h" if not units.get(settings["babelLocale"]) else units[settings["babelLocale"]]["average_speed"]["unit"], "icon": "speedometer", "url": STATISTICS_URL}, - {"name": "Distance to Empty", "domain": "sensor", "id": "distance_to_empty", "unit": "km" if not units.get(settings["babelLocale"]) else units[settings["babelLocale"]]["odometer"]["unit"], "icon": "map-marker-distance", "url": DISTANCE_TO_EMPTY_URL}, - {"name": "Washer Fluid Level", "domain": "sensor", "id": "washer_fluid_level", "icon": "wiper-wash", "url": WASHER_FLUID_LEVEL_URL}, + {"name": "Distance to Empty", "domain": "sensor", "id": "distance_to_empty", "unit": "km" if not units.get(settings["babelLocale"]) else units[settings["babelLocale"]]["odometer"]["unit"], "icon": "map-marker-distance", "url": STATISTICS_URL}, + {"name": "Average Speed", "domain": "sensor", "id": "average_speed", "unit": "km/h" if not units.get(settings["babelLocale"]) else units[settings["babelLocale"]]["average_speed"]["unit"], "icon": "speedometer", "url": STATISTICS_URL} ] diff --git a/src/volvo.py b/src/volvo.py index fea1f86..6ac187f 100644 --- a/src/volvo.py +++ b/src/volvo.py @@ -1,5 +1,4 @@ import logging - import requests import mqtt import util @@ -290,8 +289,7 @@ def parse_api_data(data, sensor_id=None): return data["estimatedChargingTime"]["value"] if util.keys_exists(data, "estimatedChargingTime") else "" else: return 0 - else: - return None + return None elif sensor_id == "estimated_charging_finish_time": if util.keys_exists(data, "chargingSystemStatus"): charging_system_state = charging_system_states[data["chargingSystemStatus"]["value"]] @@ -303,8 +301,7 @@ def parse_api_data(data, sensor_id=None): return format_datetime(charging_finished, format="medium", locale=settings["babelLocale"]) else: return "" - else: - return None + return None elif sensor_id == "lock_status": return data["carLocked"]["value"] if util.keys_exists(data, "carLocked") else None elif sensor_id == "odometer": @@ -361,10 +358,7 @@ def parse_api_data(data, sensor_id=None): fuel_amount = int(data["fuelAmount"]["value"]) if fuel_amount > 0: return fuel_amount - else: - return None - else: - return None + return None elif sensor_id == "average_fuel_consumption": if util.keys_exists(data, "averageFuelConsumption"): average_fuel_con = float(data["averageFuelConsumption"]["value"]) @@ -377,10 +371,7 @@ def parse_api_data(data, sensor_id=None): elif multiplier < 1: multiplier = 1 return average_fuel_con * multiplier - else: - return None - else: - return None + return None elif sensor_id == "average_speed": if util.keys_exists(data, "averageSpeed"): average_speed = int(data["averageSpeed"]["value"]) @@ -393,10 +384,7 @@ def parse_api_data(data, sensor_id=None): elif divider < 1: divider = 1 return util.convert_metric_values(average_speed / divider) - else: - return None - else: - return None + return None elif sensor_id == "location": coordinates = {} if util.keys_exists(data, "geometry"): @@ -407,9 +395,10 @@ def parse_api_data(data, sensor_id=None): "gps_accuracy": 1} return coordinates elif sensor_id == "distance_to_empty": - return util.convert_metric_values(data["distanceToEmpty"]["value"]) \ - if util.keys_exists(data, "distanceToEmpty") else None - elif sensor_id == "washer_fluid_level": - return data["washerFluidLevel"]["value"] if util.keys_exists(data, "washerFluidLevel") else None + if util.keys_exists(data, "distanceToEmpty"): + distance_to_empty = int(data["distanceToEmpty"]["value"]) + if distance_to_empty > 0: + return util.convert_metric_values(data["distanceToEmpty"]["value"]) + return None else: return None