mirror of
https://github.com/Dielee/volvo2mqtt.git
synced 2026-08-13 11:19:52 +02:00
Add average fuel consumption and average speed #30
This commit is contained in:
+5
-1
@@ -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"
|
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"
|
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"
|
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"
|
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": "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": "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": "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": "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": "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": ""},
|
{"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 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": "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": "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}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -319,6 +319,8 @@ def parse_api_data(data, sensor_id=None):
|
|||||||
return data["rearRightDoorOpen"]["value"] if util.keys_exists(data, "rearRightDoorOpen") else None
|
return data["rearRightDoorOpen"]["value"] if util.keys_exists(data, "rearRightDoorOpen") else None
|
||||||
elif sensor_id == "tailgate":
|
elif sensor_id == "tailgate":
|
||||||
return data["tailGateOpen"]["value"] if util.keys_exists(data, "tailGateOpen") else None
|
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":
|
elif sensor_id == "engine_hood":
|
||||||
return data["hoodOpen"]["value"] if util.keys_exists(data, "hoodOpen") else None
|
return data["hoodOpen"]["value"] if util.keys_exists(data, "hoodOpen") else None
|
||||||
elif sensor_id == "tank_lid":
|
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
|
return data["engineRunning"]["value"] if util.keys_exists(data, "engineRunning") else None
|
||||||
elif sensor_id == "fuel_level":
|
elif sensor_id == "fuel_level":
|
||||||
return data["fuelAmount"]["value"] if util.keys_exists(data, "fuelAmount") else None
|
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":
|
elif sensor_id == "location":
|
||||||
coordinates = {}
|
coordinates = {}
|
||||||
if util.keys_exists(data, "geometry"):
|
if util.keys_exists(data, "geometry"):
|
||||||
|
|||||||
Reference in New Issue
Block a user