mirror of
https://github.com/Dielee/volvo2mqtt.git
synced 2026-08-13 11:19:52 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
781e1da8e8 | ||
|
|
6b419cfe3a |
@@ -1,3 +1,17 @@
|
|||||||
|
## v1.8.8
|
||||||
|
### 🐛 Bug Fixes:
|
||||||
|
|
||||||
|
- Fix json decode error, if volvo API returns a simple string #104
|
||||||
|
|
||||||
|
## v1.8.7
|
||||||
|
### 🚀 Features:
|
||||||
|
|
||||||
|
- Add option to disable log completely #96
|
||||||
|
|
||||||
|
### 🐛 Bug Fixes:
|
||||||
|
|
||||||
|
- Fix regex error for some mailaddresses #97
|
||||||
|
|
||||||
## v1.8.6
|
## v1.8.6
|
||||||
### 🚀 Features:
|
### 🚀 Features:
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -1,6 +1,6 @@
|
|||||||
name: "Volvo2Mqtt"
|
name: "Volvo2Mqtt"
|
||||||
description: "Volvo AAOS MQTT bridge"
|
description: "Volvo AAOS MQTT bridge"
|
||||||
version: "1.8.6"
|
version: "1.8.7"
|
||||||
slug: "volvo2mqtt"
|
slug: "volvo2mqtt"
|
||||||
init: false
|
init: false
|
||||||
url: "https://github.com/Dielee/volvo2mqtt"
|
url: "https://github.com/Dielee/volvo2mqtt"
|
||||||
@@ -15,6 +15,7 @@ options:
|
|||||||
babelLocale: null
|
babelLocale: null
|
||||||
TZ: null
|
TZ: null
|
||||||
debug: false
|
debug: false
|
||||||
|
disable_logging: false
|
||||||
mqtt:
|
mqtt:
|
||||||
broker: "auto_broker"
|
broker: "auto_broker"
|
||||||
port: "auto_port"
|
port: "auto_port"
|
||||||
@@ -34,13 +35,14 @@ schema:
|
|||||||
babelLocale: str
|
babelLocale: str
|
||||||
TZ: match(^.+/.+$)
|
TZ: match(^.+/.+$)
|
||||||
debug: bool
|
debug: bool
|
||||||
|
disable_logging: bool
|
||||||
mqtt:
|
mqtt:
|
||||||
broker: str
|
broker: str
|
||||||
port: str
|
port: str
|
||||||
username: str?
|
username: str?
|
||||||
password: str?
|
password: str?
|
||||||
volvoData:
|
volvoData:
|
||||||
username: match(^([\w+\.]+@([\w-]+\.)+[\w-]{2,4})|(\+\d{5,20})$)
|
username: match(^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)|(\+\d{5,20})$)
|
||||||
password: str
|
password: str
|
||||||
vin: str?
|
vin: str?
|
||||||
vccapikey:
|
vccapikey:
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
from config import settings
|
from config import settings
|
||||||
|
|
||||||
VERSION = "v1.8.6"
|
VERSION = "v1.8.8"
|
||||||
|
|
||||||
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
|
OAUTH_URL = "https://volvoid.eu.volvocars.com/as/token.oauth2"
|
||||||
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles"
|
VEHICLES_URL = "https://api.volvocars.com/connected-vehicle/v1/vehicles"
|
||||||
|
|||||||
+6
-5
@@ -255,11 +255,12 @@ def update_car_data(force_update=False, overwrite={}):
|
|||||||
else:
|
else:
|
||||||
topic = f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/state"
|
topic = f"homeassistant/{entity['domain']}/{vin}_{entity['id']}/state"
|
||||||
|
|
||||||
mqtt_client.publish(
|
if state:
|
||||||
topic,
|
mqtt_client.publish(
|
||||||
json.dumps(state) if isinstance(state, dict) or isinstance(state, list) else state
|
topic,
|
||||||
)
|
json.dumps(state) if isinstance(state, dict) or isinstance(state, list) else state
|
||||||
update_ha_device(entity, vin, state)
|
)
|
||||||
|
update_ha_device(entity, vin, state)
|
||||||
|
|
||||||
|
|
||||||
def update_ha_device(entity, vin, state):
|
def update_ha_device(entity, vin, state):
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
"updateInterval": 300,
|
"updateInterval": 300,
|
||||||
"babelLocale": "de",
|
"babelLocale": "de",
|
||||||
"TZ": "Europe/Berlin",
|
"TZ": "Europe/Berlin",
|
||||||
|
"debug": false,
|
||||||
|
"disable_logging": false,
|
||||||
"mqtt": {
|
"mqtt": {
|
||||||
"broker": "",
|
"broker": "",
|
||||||
"port": 1883,
|
"port": 1883,
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ configuration:
|
|||||||
debug:
|
debug:
|
||||||
name: API debug mode
|
name: API debug mode
|
||||||
description: Enable Volvo API debug, normaly this can stay off. If enabled, the complete log file can be found under \\<Your HA Host IP>\addons\volvo2mqtt\log\volvo2mqtt.log.
|
description: Enable Volvo API debug, normaly this can stay off. If enabled, the complete log file can be found under \\<Your HA Host IP>\addons\volvo2mqtt\log\volvo2mqtt.log.
|
||||||
|
disable_logging:
|
||||||
|
name: Disable logging
|
||||||
|
description: Disable logging completely to reduce IO and SD card access.
|
||||||
mqtt:
|
mqtt:
|
||||||
name: MQTT Broker settings
|
name: MQTT Broker settings
|
||||||
description: Leave the settings as they are if you are using the MQTT Mosquitto Addon. If not, take a look at the readme from volvo2mqtt.
|
description: Leave the settings as they are if you are using the MQTT Mosquitto Addon. If not, take a look at the readme from volvo2mqtt.
|
||||||
|
|||||||
@@ -68,6 +68,10 @@ def setup_logging():
|
|||||||
if settings["debug"]:
|
if settings["debug"]:
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
if "disable_logging" in settings:
|
||||||
|
if settings["disable_logging"]:
|
||||||
|
logger.setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
|
||||||
def check_existing_folder():
|
def check_existing_folder():
|
||||||
Path("/addons/volvo2mqtt/log/").mkdir(parents=True, exist_ok=True)
|
Path("/addons/volvo2mqtt/log/").mkdir(parents=True, exist_ok=True)
|
||||||
|
|||||||
+6
-1
@@ -8,6 +8,7 @@ from threading import currentThread
|
|||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from config import settings
|
from config import settings
|
||||||
from babel.dates import format_datetime
|
from babel.dates import format_datetime
|
||||||
|
from json import JSONDecodeError
|
||||||
from const import charging_system_states, charging_connection_states, door_states, window_states, \
|
from const import charging_system_states, charging_connection_states, door_states, window_states, \
|
||||||
OAUTH_URL, VEHICLES_URL, VEHICLE_DETAILS_URL, RECHARGE_STATE_URL, CLIMATE_START_URL, \
|
OAUTH_URL, VEHICLES_URL, VEHICLE_DETAILS_URL, RECHARGE_STATE_URL, CLIMATE_START_URL, \
|
||||||
WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL, supported_entities, BATTERY_CHARGE_STATE_URL, \
|
WINDOWS_STATE_URL, LOCK_STATE_URL, TYRE_STATE_URL, supported_entities, BATTERY_CHARGE_STATE_URL, \
|
||||||
@@ -347,7 +348,11 @@ def api_call(url, method, vin, sensor_id=None, force_update=False, key_change=Fa
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
logging.debug("Response status code: " + str(response.status_code))
|
logging.debug("Response status code: " + str(response.status_code))
|
||||||
data = response.json()
|
try:
|
||||||
|
data = response.json()
|
||||||
|
except JSONDecodeError as e:
|
||||||
|
logging.error("Fetched json decode error, Volvo API seems to return garbage. Skipping update. Error: " + str(e))
|
||||||
|
return None
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
logging.debug(response.text)
|
logging.debug(response.text)
|
||||||
|
|||||||
Reference in New Issue
Block a user