client_id: <**INSERT_YOUR_CLIENT_ID**>
client_secret: <**INSERT_YOUR_CLIENT_SECRET**>
vehicle_id: <**INSERT_YOUR_VEHICLE_ID**>
- scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES **>
+ enable_resources_file: <**ENABLE (True) OR DISABLE (False) RESOURCES - OPTIONAL **>
+ 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 **>
```
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.
self.client_id = ""
self.client_secret = ""
self.vin = ""
+ self.enable_resources_file = True
self.token = ""
########################
if not self.vin:
_LOGGER.error(f"No {CONF_VEHICLE_ID} found in the 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})"
+ )
+ 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})"
+ )
# Read Token
self.token = MercedesMeOauth(self.client_id, self.client_secret)
if not self.token.ReadToken():
CONF_CLIENT_ID = "CLIENT_ID"
CONF_CLIENT_SECRET = "CLIENT_SECRET"
CONF_VEHICLE_ID = "VEHICLE_ID"
+CONF_ENABLE_RESOURCES_FILE = "ENABLE_RESOURCES_FILE"
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)
),
self.client_id = ""
self.client_secret = ""
self.vin = ""
+ self.enable_resources_file = True
self.token = ""
########################
self.client_secret = config[CONF_CLIENT_SECRET]
# Vehicle ID
self.vin = config[CONF_VEHICLE_ID]
- # Scan Interval
+ # 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})")
+ # Scan Interval (optional)
self.scan_interval = config[CONF_SCAN_INTERVAL]
# Read Token
self.token = MercedesMeOauth(self.hass, self.client_id, self.client_secret)
CONF_CLIENT_ID = "client_id"
CONF_CLIENT_SECRET = "client_secret"
CONF_VEHICLE_ID = "vehicle_id"
+CONF_ENABLE_RESOURCES_FILE = "enable_resources_file"
https://github.com/xraver/mercedes_me_api/
"""
import logging
+
import requests
from .const import *
found = False
resources = None
- if not os.path.isfile(self.resources_file):
- # Resources File not present - Retrieving new one from server
- _LOGGER.error("Resource File missing - Creating a new one.")
- found = False
- else:
- with open(self.resources_file, "r") as file:
- try:
- resources = json.load(file)
- if not self.CheckResources(resources):
- raise ValueError
- else:
- found = True
- except ValueError:
- _LOGGER.error("Error reading resource file - Creating a new one.")
- found = False
+ if (self.mercedesConfig.enable_resources_file == True):
+ if not os.path.isfile(self.resources_file):
+ # Resources File not present - Retrieving new one from server
+ _LOGGER.error("Resource File missing - Creating a new one.")
+ found = False
+ else:
+ with open(self.resources_file, "r") as file:
+ try:
+ resources = json.load(file)
+ if not self.CheckResources(resources):
+ raise ValueError
+ else:
+ found = True
+ except ValueError:
+ _LOGGER.error("Error reading resource file - Creating a new one.")
+ found = False
if not found:
# Not valid or file missing
# Write Resources File
########################
def WriteResourcesFile(self):
- output = []
- # Extract List
- for res in self.database:
- output.append(res.getJson())
- # Write File
- with open(self.resources_file, "w") as file:
- json.dump(output, file)
+ if (self.mercedesConfig.enable_resources_file == True):
+ output = []
+ # Extract List
+ for res in self.database:
+ output.append(res.getJson())
+ # Write File
+ with open(self.resources_file, "w") as file:
+ json.dump(output, file)
########################
# Print Available Resources
client_id: <**INSERT_YOUR_CLIENT_ID**>
client_secret: <**INSERT_YOUR_CLIENT_SECRET**>
vehicle_id: <**INSERT_YOUR_VEHICLE_ID**>
- scan_interval: <** TIME PERIOD (NUMBER OF SECONDS) TO REFRESH RESOURCES **>
+ enable_resources_file: <**ENABLE (True) OR DISABLE (False) RESOURCES - OPTIONAL **>
+ 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)
found = False
resources = None
- if not os.path.isfile(self.resources_file):
- # Resources File not present - Retrieving new one from server
- _LOGGER.error("Resource File missing - Creating a new one.")
- found = False
- else:
- with open(self.resources_file, "r") as file:
- try:
- resources = json.load(file)
- if not self.CheckResources(resources):
- raise ValueError
- else:
- found = True
- except ValueError:
- _LOGGER.error("Error reading resource file - Creating a new one.")
- found = False
+ if self.mercedesConfig.enable_resources_file == True:
+ if not os.path.isfile(self.resources_file):
+ # Resources File not present - Retrieving new one from server
+ _LOGGER.error("Resource File missing - Creating a new one.")
+ found = False
+ else:
+ with open(self.resources_file, "r") as file:
+ try:
+ resources = json.load(file)
+ if not self.CheckResources(resources):
+ raise ValueError
+ else:
+ found = True
+ except ValueError:
+ _LOGGER.error(
+ "Error reading resource file - Creating a new one."
+ )
+ found = False
if not found:
# Not valid or file missing
# Write Resources File
########################
def WriteResourcesFile(self):
- output = []
- # Extract List
- for res in self.database:
- output.append(res.getJson())
- # Write File
- with open(self.resources_file, "w") as file:
- json.dump(output, file)
+ if self.mercedesConfig.enable_resources_file == True:
+ output = []
+ # Extract List
+ for res in self.database:
+ output.append(res.getJson())
+ # Write File
+ with open(self.resources_file, "w") as file:
+ json.dump(output, file)
########################
# Print Available Resources