forked from peter/volvo2mqtt
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:
co-authored by
Arthur van der Peijl
Arthur van der Peijl
parent
fb8c5ed269
commit
dc7b711219
+16
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user