Add average fuel consumption and average speed #30

This commit is contained in:
Linus Dietz
2023-06-26 07:57:11 +02:00
parent c5ed7b7971
commit c72e99bcf8
2 changed files with 11 additions and 1 deletions
+5 -1
View File
@@ -18,6 +18,7 @@ TYRE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/ty
ENGINE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/engine-status"
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"
availability_topic = "volvoAAOS2mqtt/availability"
@@ -48,6 +49,7 @@ supported_entities = [
{"name": "Tailgate", "domain": "sensor", "id": "tailgate", "icon": "car-door-lock", "url": LOCK_STATE_URL},
{"name": "Engine Hood", "domain": "sensor", "id": "engine_hood", "icon": "car-door-lock", "url": LOCK_STATE_URL},
{"name": "Tank Lid", "domain": "sensor", "id": "tank_lid", "icon": "car-door-lock", "url": LOCK_STATE_URL},
{"name": "Sunroof", "domain": "sensor", "id": "sunroof", "icon": "car-door-lock", "url": LOCK_STATE_URL},
{"name": "Air Conditioning", "domain": "switch", "id": "climate_status", "icon": "air-conditioner"},
{"name": "Lock state", "domain": "lock", "id": "lock_status", "icon": "lock", "url": LOCK_STATE_URL},
{"name": "Force Update Data", "domain": "button", "id": "update_data", "icon": "update", "url": ""},
@@ -57,5 +59,7 @@ supported_entities = [
{"name": "Tire Rear Left", "domain": "sensor", "id": "tyre_rear_left", "icon": "car-tire-alert", "url": TYRE_STATE_URL},
{"name": "Tire Rear Right", "domain": "sensor", "id": "tyre_rear_right", "icon": "car-tire-alert", "url": TYRE_STATE_URL},
{"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": "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 settings["babelLocale"] != "en_US" else "mp/h", "icon": "fuel", "url": STATISTICS_URL}
]
+6
View File
@@ -319,6 +319,8 @@ def parse_api_data(data, sensor_id=None):
return data["rearRightDoorOpen"]["value"] if util.keys_exists(data, "rearRightDoorOpen") else None
elif sensor_id == "tailgate":
return data["tailGateOpen"]["value"] if util.keys_exists(data, "tailGateOpen") else None
elif sensor_id == "sunroof":
return data["capOpen"]["value"] if util.keys_exists(data, "capOpen") else None
elif sensor_id == "engine_hood":
return data["hoodOpen"]["value"] if util.keys_exists(data, "hoodOpen") else None
elif sensor_id == "tank_lid":
@@ -335,6 +337,10 @@ def parse_api_data(data, sensor_id=None):
return data["engineRunning"]["value"] if util.keys_exists(data, "engineRunning") else None
elif sensor_id == "fuel_level":
return data["fuelAmount"]["value"] if util.keys_exists(data, "fuelAmount") else None
elif sensor_id == "average_fuel_consumption":
return data["averageFuelConsumption"]["value"] if util.keys_exists(data, "averageFuelConsumption") else None
elif sensor_id == "average_speed":
return data["averageSpeed"]["value"] if util.keys_exists(data, "averageSpeed") else None
elif sensor_id == "location":
coordinates = {}
if util.keys_exists(data, "geometry"):