From 71b8c59ba8bdd38ae1ec084c765de0f1c24e1b03 Mon Sep 17 00:00:00 2001 From: Linus Dietz <45101649+Dielee@users.noreply.github.com> Date: Sun, 25 Jun 2023 07:22:15 +0200 Subject: [PATCH] Fix unlockstate for multiple car usage --- src/config.yaml | 2 +- src/const.py | 2 +- src/mqtt.py | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/config.yaml b/src/config.yaml index db4cf8e..1afc395 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -1,6 +1,6 @@ name: "Volvo2Mqtt" description: "Volvo AAOS MQTT bridge" -version: "1.4.3" +version: "1.4.4" slug: "volvo2mqtt" init: false url: "https://github.com/Dielee/volvo2mqtt" diff --git a/src/const.py b/src/const.py index f32fdbf..5f40576 100644 --- a/src/const.py +++ b/src/const.py @@ -1,6 +1,6 @@ from config import settings -VERSION = "v1.4.3" +VERSION = "v1.4.4" OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2" VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles" diff --git a/src/mqtt.py b/src/mqtt.py index 1795787..3340b26 100644 --- a/src/mqtt.py +++ b/src/mqtt.py @@ -79,10 +79,10 @@ def on_message(client, userdata, msg): elif "lock_status" in msg.topic: if payload == "LOCK": volvo.api_call(CAR_LOCK_URL, "POST", vin) - update_car_data(True, {"entity_id": "lock_status", "state": "LOCKED"}) + update_car_data(True, {"entity_id": "lock_status", "vin": vin, "state": "LOCKED"}) elif payload == "UNLOCK": volvo.api_call(CAR_UNLOCK_URL, "POST", vin) - update_car_data(True, {"entity_id": "lock_status", "state": "UNLOCKED"}) + update_car_data(True, {"entity_id": "lock_status", "vin": vin, "state": "UNLOCKED"}) elif "update_data" in msg.topic: if payload == "PRESS": update_car_data(True) @@ -106,9 +106,11 @@ def update_car_data(force_update=False, overwrite={}): continue ov_entity_id = "" + ov_vin = "" ov_state = "" if bool(overwrite): ov_entity_id = overwrite["entity_id"] + ov_vin = overwrite["vin"] ov_state = overwrite["state"] if entity["id"] == "climate_status": @@ -116,7 +118,7 @@ def update_car_data(force_update=False, overwrite={}): elif entity["id"] == "last_data_update": state = last_data_update else: - if entity["id"] == ov_entity_id: + if entity["id"] == ov_entity_id and vin == ov_vin: state = ov_state else: state = volvo.api_call(entity["url"], "GET", vin, entity["id"], force_update)