Compare commits

...
2 Commits
Author SHA1 Message Date
Linus Dietz 50b5eb9863 Add mqtt availability 2023-06-24 20:06:59 +02:00
Linus DietzandGitHub 02793accfa Update README.md 2023-06-24 19:53:03 +02:00
4 changed files with 15 additions and 6 deletions
+5 -2
View File
@@ -12,9 +12,12 @@ Maybe this component works also with other Volvo cars. Please try out the native
- XC90 T8 PHEV (2023)
- XC60 PHEV (2023)
- XC60 PHEV (2022)
- V90 PHEV T8 (2019)
- V90 PHEV T8 (2019)*
*only partly working
Please let me know if your car works with this addon so I can expand the list!<br>
Please let me know if your car works with this addon so I can expand the list!
## Supported features
- Lock/unlock car
+1 -1
View File
@@ -1,6 +1,6 @@
name: "Volvo2Mqtt"
description: "Volvo AAOS MQTT bridge"
version: "1.4.2"
version: "1.4.3"
slug: "volvo2mqtt"
init: false
url: "https://github.com/Dielee/volvo2mqtt"
+3 -1
View File
@@ -1,6 +1,6 @@
from config import settings
VERSION = "v1.4.2"
VERSION = "v1.4.3"
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles"
@@ -19,6 +19,8 @@ ENGINE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/
BATTERY_CHARGE_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/battery-charge-level"
FUEL_STATE_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles/{0}/fuel"
availability_topic = "volvoAAOS2mqtt/availability"
charging_system_states = {"CHARGING_SYSTEM_CHARGING": "Charging", "CHARGING_SYSTEM_IDLE": "Idle",
"CHARGING_SYSTEM_FAULT": "Fault", "CHARGING_SYSTEM_UNSPECIFIED": "Unspecified"}
+6 -2
View File
@@ -8,7 +8,7 @@ from datetime import datetime
from babel.dates import format_datetime
from config import settings
from const import CLIMATE_START_URL, CLIMATE_STOP_URL, CAR_LOCK_URL, \
CAR_UNLOCK_URL
CAR_UNLOCK_URL, availability_topic
mqtt_client: mqtt.Client
@@ -20,6 +20,7 @@ climate_timer = {}
def connect():
client = mqtt.Client("volvoAAOS2mqtt")
client.will_set(availability_topic, "offline", 0, False)
if settings["mqtt"]["username"] and settings["mqtt"]["password"]:
client.username_pw_set(settings["mqtt"]["username"], settings["mqtt"]["password"])
port = 1883
@@ -39,6 +40,7 @@ def connect():
def on_connect(client, userdata, flags, rc):
mqtt_client.publish(availability_topic, "online")
if len(subscribed_topics) > 0:
for topic in subscribed_topics:
mqtt_client.subscribe(topic)
@@ -142,7 +144,8 @@ def create_ha_devices():
"icon": f"mdi:{entity['icon']}",
"state_topic": f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/state",
"device": device,
"unique_id": f"volvoAAOS2mqtt_{vin}_{entity['id']}"
"unique_id": f"volvoAAOS2mqtt_{vin}_{entity['id']}",
"availability_topic": availability_topic
}
if entity.get('unit'):
config["unit_of_measurement"] = entity["unit"]
@@ -162,3 +165,4 @@ def create_ha_devices():
retain=True
)
time.sleep(2)
mqtt_client.publish(availability_topic, "online")