Added vehicle diagnostics sensors (#78)

* Added vehicle diagnostics for additional sensors (#76)

Add support for vehicle diagnostics data

---------

Co-authored-by: Arthur van der Peijl <arthur@artned.org>

* Reduce VEHICLE_DIAGNOSTICS_URL api calls

* Bump version

---------

Co-authored-by: Arthur van der Peijl <aavanderpeijl@gmail.com>
Co-authored-by: Arthur van der Peijl <arthur@artned.org>
This commit is contained in:
Linus Dietz
2023-08-05 21:01:04 +02:00
committed by GitHub
co-authored by Arthur van der Peijl Arthur van der Peijl
parent fb8c5ed269
commit dc7b711219
4 changed files with 30 additions and 4 deletions
+16 -1
View File
@@ -228,7 +228,8 @@ def api_call(url, method, vin, sensor_id=None, force_update=False):
if datetime.now(util.TZ) >= token_expires_at:
refresh_auth()
if url in [RECHARGE_STATE_URL, WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL, STATISTICS_URL]:
if url in [RECHARGE_STATE_URL, WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL,
STATISTICS_URL, ENGINE_DIAGNOSTICS_URL]:
# Minimize API calls for endpoints with multiple values
response = cached_request(url, method, vin, force_update)
if response is None:
@@ -436,5 +437,19 @@ def parse_api_data(data, sensor_id=None):
if distance_to_empty > 0:
return util.convert_metric_values(data["distanceToEmpty"]["value"])
return None
elif sensor_id == "hours_to_service":
return data["engineHoursToService"]["value"] if util.keys_exists(data, "engineHoursToService") else None
elif sensor_id == "km_to_service":
if util.keys_exists(data, "kmToService"):
km_to_service = int(data["kmToService"]["value"])
if km_to_service > 0:
return util.convert_metric_values(data["kmToService"]["value"])
return None
elif sensor_id == "months_to_service":
return data["monthsToService"]["value"] if util.keys_exists(data, "monthsToService") else None
elif sensor_id == "service_warning_status":
return data["serviceWarningStatus"]["value"] if util.keys_exists(data, "serviceWarningStatus") else None
elif sensor_id == "service_warning_trigger":
return data["serviceWarningTrigger"]["value"] if util.keys_exists(data, "serviceWarningTrigger") else None
else:
return None