mirror of
https://github.com/Dielee/volvo2mqtt.git
synced 2026-07-22 02:13:01 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d2285f59e | ||
|
|
e444b6a838 | ||
|
|
ce856d91c4 | ||
|
|
9c749001c9 |
@@ -37,6 +37,7 @@ If you like my work:<br>
|
||||
- XC90 B5 Mildhybrid (2024)
|
||||
- V90 PHEV T8 (2019)*
|
||||
- V90 PHEV T6 (2024)
|
||||
- V90 B5 Mildhybrid (2023)
|
||||
|
||||
*only partly working
|
||||
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
## v1.8.26
|
||||
### 🚀 Features:
|
||||
|
||||
- Add option to disable updates #160
|
||||
|
||||
## v1.8.25
|
||||
### 🚀 Features:
|
||||
|
||||
- Fix INTERNAL_SERVER_ERROR #165
|
||||
|
||||
## v1.8.24
|
||||
### 🚀 Features:
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
name: "Volvo2Mqtt"
|
||||
description: "Volvo AAOS MQTT bridge"
|
||||
version: "1.8.24"
|
||||
version: "1.8.26"
|
||||
slug: "volvo2mqtt"
|
||||
init: false
|
||||
url: "https://github.com/Dielee/volvo2mqtt"
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
from config import settings
|
||||
|
||||
VERSION = "v1.8.24"
|
||||
VERSION = "v1.8.26"
|
||||
|
||||
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
|
||||
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v2/vehicles"
|
||||
@@ -132,7 +132,7 @@ supported_entities = [
|
||||
{"name": "Service warning status", "domain": "sensor", "id": "service_warning_status", "icon": "alert-outline", "url": VEHICLE_DIAGNOSTICS_URL},
|
||||
{"name": "Washer Fluid Level warning", "domain": "sensor", "id": "washer_fluid_warning", "icon": "alert-outline", "url": VEHICLE_DIAGNOSTICS_URL},
|
||||
{"name": "API Backend status", "domain": "sensor", "id": "api_backend_status", "icon": "alert"},
|
||||
{"name": "Update Interval", "domain": "number", "id": "update_interval", "unit": "seconds", "icon": "timer", "min": 60, "max": 600, "mode": "box"},
|
||||
{"name": "Update Interval", "domain": "number", "id": "update_interval", "unit": "seconds", "icon": "timer", "min": -1, "max": 600, "mode": "box"},
|
||||
{"name": "Warnings", "domain": "sensor", "id": "warnings", "icon": "alert", "url": WARNINGS_URL}
|
||||
]
|
||||
|
||||
|
||||
+20
-7
@@ -115,7 +115,12 @@ def on_message(client, userdata, msg):
|
||||
if payload == "PRESS":
|
||||
update_car_data(True)
|
||||
elif "update_interval" in msg.topic:
|
||||
settings.update({"updateInterval": int(payload)})
|
||||
update_interval = int(payload)
|
||||
if update_interval >= 60 or update_interval == -1:
|
||||
settings.update({"updateInterval": int(update_interval)})
|
||||
else:
|
||||
logging.warning("Interval " + str(update_interval) + " seconds is to low. Doing nothing!")
|
||||
update_car_data()
|
||||
elif "schedule" in msg.topic:
|
||||
try:
|
||||
d = json.loads(payload)
|
||||
@@ -216,11 +221,15 @@ def start_climate(vin):
|
||||
def update_loop():
|
||||
create_ha_devices()
|
||||
while True:
|
||||
logging.info("Sending mqtt update...")
|
||||
send_heartbeat()
|
||||
update_car_data()
|
||||
logging.info("Mqtt update done. Next run in " + str(settings["updateInterval"]) + " seconds.")
|
||||
time.sleep(settings["updateInterval"])
|
||||
if settings["updateInterval"] > 0:
|
||||
logging.info("Sending mqtt update...")
|
||||
send_heartbeat()
|
||||
update_car_data()
|
||||
logging.info("Mqtt update done. Next run in " + str(settings["updateInterval"]) + " seconds.")
|
||||
time.sleep(settings["updateInterval"])
|
||||
else:
|
||||
logging.info("Data update is disabled, doing nothing for 30 seconds")
|
||||
time.sleep(30)
|
||||
|
||||
|
||||
def update_car_data(force_update=False, overwrite={}):
|
||||
@@ -265,7 +274,11 @@ def update_car_data(force_update=False, overwrite={}):
|
||||
f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/attributes",
|
||||
json.dumps(state)
|
||||
)
|
||||
state = sum(value == "FAILURE" for value in state.values())
|
||||
if state:
|
||||
state = sum(value == "FAILURE" for value in state.values())
|
||||
else:
|
||||
state = 0
|
||||
|
||||
topic = f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/state"
|
||||
else:
|
||||
topic = f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/state"
|
||||
|
||||
Reference in New Issue
Block a user