Fix recharge caching while using multiple cars

This commit is contained in:
Linus Dietz
2023-06-20 08:56:45 +02:00
parent 2b6a2a4f4c
commit 71f03e505b
3 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
VERSION = "v1.0.4"
VERSION = "v1.0.5"
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles"
+1
View File
@@ -74,6 +74,7 @@ def update_loop():
while True:
print("Sending mqtt update...")
update_car_data()
print("Mqtt update done. Next run in " + str(settings["updateInterval"]) + " seconds.")
time.sleep(settings["updateInterval"])
+6 -3
View File
@@ -115,18 +115,18 @@ def api_call(url, method, vin, sensor_id=None):
# No API Data cached, get fresh data from API
print("Starting " + method + " call against " + url)
response = session.get(url.format(vin), timeout=15)
recharge_response = response
recharge_response[vin] = response
recharge_last_update = datetime.now()
else:
if (datetime.now() - recharge_last_update).total_seconds() >= settings["updateInterval"]:
# Old Data in Cache, updateing
print("Starting " + method + " call against " + url)
response = session.get(url.format(vin), timeout=15)
recharge_response = response
recharge_response[vin] = response
recharge_last_update = datetime.now()
else:
# Data is up do date, returning cached data
response = recharge_response
response = recharge_response[vin]
elif method == "GET":
print("Starting " + method + " call against " + url)
response = session.get(url.format(vin), timeout=15)
@@ -147,7 +147,10 @@ def api_call(url, method, vin, sensor_id=None):
else:
print("API Call failed. Status Code: " + str(response.status_code) + ". Error: " + response.text)
return ""
return parse_api_data(url, data, sensor_id)
def parse_api_data(url, data, sensor_id=None):
if url == VEHICLE_DETAILS_URL:
return data["data"]
elif sensor_id == "battery_charge_level":