Try to catch battery charge state from connected-vehicle v2 if no energy api is available // Fix assumed climate state

This commit is contained in:
Linus Dietz
2023-06-23 09:47:04 +02:00
parent 5275b53685
commit 1c4fbb649d
2 changed files with 6 additions and 2 deletions
+1
View File
@@ -16,6 +16,7 @@ ODOMETER_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0
LOCATION_STATE_URL = "https://api.volvocars.com/location/v1/vehicles/{0}/location"
TYRE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/tyres"
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"
charging_system_states = {"CHARGING_SYSTEM_CHARGING": "Charging", "CHARGING_SYSTEM_IDLE": "Idle",
"CHARGING_SYSTEM_FAULT": "Fault", "CHARGING_SYSTEM_UNSPECIFIED": "Unspecified"}
+5 -2
View File
@@ -6,7 +6,7 @@ from babel.dates import format_datetime
from util import keys_exists
from const import charging_system_states, charging_connection_states, CLIMATE_START_URL, \
OAUTH_URL, VEHICLES_URL, VEHICLE_DETAILS_URL, RECHARGE_STATE_URL, \
WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL, supported_entities
WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL, supported_entities, BATTERY_CHARGE_STATE_URL
session = requests.Session()
@@ -201,8 +201,11 @@ def api_call(url, method, vin, sensor_id=None, force_update=False):
else:
if url == CLIMATE_START_URL and response.status_code == 503:
print("Car in use, cannot start pre climatization")
mqtt.assumed_climate_state = "OFF"
mqtt.assumed_climate_state[vin] = "OFF"
mqtt.update_car_data()
if sensor_id == "battery_charge_level" and url == RECHARGE_STATE_URL and response.status_code == 404:
# Try to get battery charge level from another endpoint than energy api
api_call(BATTERY_CHARGE_STATE_URL, method, vin, sensor_id)
else:
print("API Call failed. Status Code: " + str(response.status_code) + ". Error: " + response.text)
return ""