Check for recharge keys before returning them

This commit is contained in:
Linus Dietz
2023-06-19 10:01:54 +02:00
parent d6aeddbe3a
commit 8565742752
+31 -16
View File
@@ -13,7 +13,7 @@ session.headers = {
"accept": "*/*" "accept": "*/*"
} }
token_expires_at = None token_expires_at: datetime
refresh_token = None refresh_token = None
vin = "" vin = ""
recharge_response = {} recharge_response = {}
@@ -145,23 +145,38 @@ def api_call(url, method, sensor_id=None):
if url == VEHICLE_DETAILS_URL: if url == VEHICLE_DETAILS_URL:
return data["data"] return data["data"]
elif sensor_id == "battery_charge_level": elif sensor_id == "battery_charge_level":
return data["data"]["batteryChargeLevel"]["value"] if "batteryChargeLevel" in data["data"]:
elif sensor_id == "electric_range": return data["data"]["batteryChargeLevel"]["value"]
return data["data"]["electricRange"]["value"]
elif sensor_id == "charging_system_status":
return charging_system_states[data["data"]["chargingSystemStatus"]["value"]]
elif sensor_id == "estimated_charging_time":
charging_system_state = charging_system_states[data["data"]["chargingSystemStatus"]["value"]]
if charging_system_state == "Charging":
return data["data"]["estimatedChargingTime"]["value"]
else: else:
return 0 return ""
elif sensor_id == "electric_range":
if "electricRange" in data["data"]:
return data["data"]["electricRange"]["value"]
else:
return ""
elif sensor_id == "charging_system_status":
if "charging_system_status" in data["data"]:
return charging_system_states[data["data"]["chargingSystemStatus"]["value"]]
else:
return ""
elif sensor_id == "estimated_charging_time":
if "chargingSystemStatus" in data["data"]:
charging_system_state = charging_system_states[data["data"]["chargingSystemStatus"]["value"]]
if charging_system_state == "Charging":
return data["data"]["estimatedChargingTime"]["value"]
else:
return 0
else:
return ""
elif sensor_id == "estimated_charging_finish_time": elif sensor_id == "estimated_charging_finish_time":
charging_system_state = charging_system_states[data["data"]["chargingSystemStatus"]["value"]] if "chargingSystemStatus" in data["data"]:
if charging_system_state == "Charging": charging_system_state = charging_system_states[data["data"]["chargingSystemStatus"]["value"]]
charging_time = int(data["data"]["estimatedChargingTime"]["value"]) if charging_system_state == "Charging":
charging_finished = datetime.now() + timedelta(minutes=charging_time) charging_time = int(data["data"]["estimatedChargingTime"]["value"])
return format_datetime(charging_finished, format="medium", locale=settings["babelLocale"]) charging_finished = datetime.now() + timedelta(minutes=charging_time)
return format_datetime(charging_finished, format="medium", locale=settings["babelLocale"])
else:
return None
else: else:
return None return None
elif sensor_id == "lock_status": elif sensor_id == "lock_status":