client_id: <**INSERT_YOUR_CLIENT_ID**>
client_secret: <**INSERT_YOUR_CLIENT_SECRET**>
vehicle_id: <**INSERT_YOUR_VEHICLE_ID**>
- enable_resources_file: <**ENABLE (True) OR DISABLE (False) RESOURCES - OPTIONAL **>
- scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES - OPTIONAL **>
+ enable_resources_file: <**ENABLE (true) OR DISABLE (false) RESOURCES - OPTIONAL (DEFAULT DISABLED)**>
+ scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES - OPTIONAL**>
```
2) Actually it's not possible to retrieve the token from scratch. Please use the other script to retrieve the first token and copy it into hacs folder (.mercedesme_token)
CLIENT_ID=<**INSERT_YOUR_CLIENT_ID**>
CLIENT_SECRET=<**INSERT_YOUR_CLIENT_SECRET**>
VEHICLE_ID=<**INSERT_YOUR_VEHICLE_ID**>
-ENABLE_RESOURCES_FILE: <**ENABLE (True) OR DISABLE (False) RESOURCES - OPTIONAL **>
+ENABLE_RESOURCES_FILE: <**ENABLE (true) OR DISABLE (false) RESOURCES - (DEFAULT DISABLED)**>
```
where CLIENT_ID and CLIENT_SECRET referring to the application information that can be found in [Mercedes Developer Console](https://developer.mercedes-benz.com/console) and VEHICLE_ID is the VIN of your car.
########################
def __init__(self):
self.config_file = CONFIG_FILE
- self.client_id = ""
- self.client_secret = ""
- self.vin = ""
- self.enable_resources_file = True
- self.token = ""
########################
# Read Configuration
return False
# Enable Resources File (optional)
valueFromFile = f.get(CONF_ENABLE_RESOURCES_FILE)
- if not valueFromFile:
- _LOGGER.error(
- f"No {CONF_ENABLE_RESOURCES_FILE} found in the configuration, using default value ({self.enable_resources_file})"
- )
+ if (valueFromFile == "true") | (valueFromFile == "True"):
+ self.enable_resources_file = True
else:
- if valueFromFile == "True":
- self.enable_resources_file = True
- elif valueFromFile == "False":
- self.enable_resources_file = False
- else:
- _LOGGER.error(
- f"Wrong {CONF_ENABLE_RESOURCES_FILE} value found in the configuration ({valueFromFile}), using default value ({self.enable_resources_file})"
- )
+ self.enable_resources_file = False
# Read Token
self.token = MercedesMeOauth(self.client_id, self.client_secret)
if not self.token.ReadToken():
"""
from datetime import timedelta
import logging
+import voluptuous as vol
+
+from homeassistant.const import (
+ CONF_SCAN_INTERVAL,
+# LENGTH_KILOMETERS,
+# LENGTH_MILES,
+)
+from homeassistant.helpers import discovery, config_validation as cv
from .config import MercedesMeConfig
from .oauth import MercedesMeOauth
from .resources import MercedesMeResources
from .const import *
+# Config Schema
+CONFIG_SCHEMA = vol.Schema (
+ {
+ DOMAIN: vol.Schema (
+ {
+ vol.Required(CONF_CLIENT_ID): cv.string,
+ vol.Required(CONF_CLIENT_SECRET): cv.string,
+ vol.Required(CONF_VEHICLE_ID): cv.string,
+ vol.Optional(CONF_ENABLE_RESOURCES_FILE, default=False): cv.boolean,
+ vol.Optional(CONF_SCAN_INTERVAL, default=30): vol.All(
+ cv.positive_int, vol.Clamp(min=120)
+ ),
+ }
+ )
+ },
+ extra=vol.ALLOW_EXTRA,
+)
+
# Logger
_LOGGER = logging.getLogger(__name__)
https://github.com/xraver/mercedes_me_api/
"""
import logging
-import voluptuous as vol
from homeassistant.const import (
CONF_SCAN_INTERVAL,
# LENGTH_MILES,
)
-from homeassistant.helpers import discovery, config_validation as cv
-
-from .oauth import MercedesMeOauth
from .const import *
+from .oauth import MercedesMeOauth
# Logger
_LOGGER = logging.getLogger(__name__)
-CONFIG_SCHEMA = vol.Schema (
- {
- DOMAIN: vol.Schema (
- {
- vol.Required(CONF_CLIENT_ID): cv.string,
- vol.Required(CONF_CLIENT_SECRET): cv.string,
- vol.Required(CONF_VEHICLE_ID): cv.string,
- vol.Optional(CONF_ENABLE_RESOURCES_FILE, default=True): cv.boolean,
- vol.Optional(CONF_SCAN_INTERVAL, default=30): vol.All(
- cv.positive_int, vol.Clamp(min=60)
- ),
- }
- )
- },
- extra=vol.ALLOW_EXTRA,
-)
class MercedesMeConfig:
def __init__(self, hass, config):
# Home Assistant structures
self.hass = hass
- self.config = config
- self.client_id = ""
- self.client_secret = ""
- self.vin = ""
- self.enable_resources_file = True
- self.token = ""
+ self.config = config[DOMAIN]
########################
# Read Configuration
########################
def ReadConfig(self):
- needToRefresh = False
-
- config = self.config[DOMAIN]
# Client ID
- self.client_id = config[CONF_CLIENT_ID]
+ self.client_id = self.config.get(CONF_CLIENT_ID)
# Client Secret
- self.client_secret = config[CONF_CLIENT_SECRET]
+ self.client_secret = self.config.get(CONF_CLIENT_SECRET)
# Vehicle ID
- self.vin = config[CONF_VEHICLE_ID]
+ self.vin = self.config.get(CONF_VEHICLE_ID)
# Enable Resources File (optional)
- if (config[CONF_ENABLE_RESOURCES_FILE] == True):
- self.enable_resources_file = True
- elif(config[CONF_ENABLE_RESOURCES_FILE] == False):
- self.enable_resources_file = False
- else:
- _LOGGER.error(f"Wrong {CONF_ENABLE_RESOURCES_FILE} value found in configuration ({config[CONF_ENABLE_RESOURCES_FILE]}), using default value ({self.enable_resources_file})")
+ self.enable_resources_file = self.config.get(CONF_ENABLE_RESOURCES_FILE)
# Scan Interval (optional)
- self.scan_interval = config[CONF_SCAN_INTERVAL]
+ self.scan_interval = self.config.get(CONF_SCAN_INTERVAL)
# Read Token
self.token = MercedesMeOauth(self.hass, self.client_id, self.client_secret)
if not self.token.ReadToken():
client_id: <**INSERT_YOUR_CLIENT_ID**>
client_secret: <**INSERT_YOUR_CLIENT_SECRET**>
vehicle_id: <**INSERT_YOUR_VEHICLE_ID**>
- enable_resources_file: <**ENABLE (True) OR DISABLE (False) RESOURCES - OPTIONAL **>
- scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES - OPTIONAL **>
+ enable_resources_file: <**ENABLE (true) OR DISABLE (false) RESOURCES - OPTIONAL (DEFAULT DISABLED)**>
+ scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES - OPTIONAL**>
```
2) Actually it's not possible to retrieve the token from scratch. Please use the other script to retrieve the first token and copy it into hacs folder (.mercedesme_token)