Fix #12 - Climate for multiple cars

This commit is contained in:
Linus Dietz
2023-06-20 14:56:26 +02:00
parent 07b144cc38
commit fcf8f968ab
3 changed files with 15 additions and 8 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
VERSION = "v1.0.10"
VERSION = "v1.0.11"
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles"
+5 -5
View File
@@ -12,7 +12,7 @@ from const import VEHICLE_DETAILS_URL, CLIMATE_START_URL, CLIMATE_STOP_URL, CAR_
mqtt_client: mqtt.Client
subscribed_topics = []
assumed_climate_state = "OFF"
assumed_climate_state = {}
last_data_update = None
@@ -49,14 +49,14 @@ def on_message(client, userdata, msg):
if payload == "ON":
api_thread = threading.Thread(target=volvo.api_call, args=(CLIMATE_START_URL, "POST", vin))
api_thread.start()
assumed_climate_state = "ON"
assumed_climate_state[vin] = "ON"
# Starting timer to disable climate after 30 mins
threading.Timer(30 * 60, volvo.disable_climate).start()
threading.Timer(30 * 60, volvo.disable_climate, (vin, )).start()
update_car_data()
elif payload == "OFF":
api_thread = threading.Thread(target=volvo.api_call, args=(CLIMATE_STOP_URL, "POST", vin))
api_thread.start()
assumed_climate_state = "OFF"
assumed_climate_state[vin] = "OFF"
update_car_data()
elif "lock_status" in msg.topic:
if payload == "LOCK":
@@ -92,7 +92,7 @@ def update_car_data():
for switch in supported_switches:
if switch["id"] == "climate_status":
state = assumed_climate_state
state = assumed_climate_state[vin]
else:
state = "OFF"
+9 -2
View File
@@ -95,11 +95,18 @@ def get_vehicles():
if len(vins) == 0:
raise Exception("No vehicle found, exiting application!")
else:
initialize_climate(vins)
print("Vin: " + str(vins) + " found!")
def disable_climate():
mqtt.assumed_climate_state = "OFF"
def initialize_climate(vins):
for vin in vins:
mqtt.assumed_climate_state[vin] = "OFF"
def disable_climate(vin):
print("Turning climate off by timer!")
mqtt.assumed_climate_state[vin] = "OFF"
mqtt.update_car_data()