forked from peter/volvo2mqtt
* Convert km to miles, km/h to mp/h if babelLocale is en_GB or en_US #34 * Remove unused variable * Change speed unit for imperial system // Bump version
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import pytz
|
|
import os
|
|
from const import units
|
|
from config import settings
|
|
|
|
TZ = None
|
|
|
|
|
|
def keys_exists(element, *keys):
|
|
""""
|
|
Check if *keys (nested) exists in `element` (dict).
|
|
Thanks stackoverflow: https://stackoverflow.com/questions/43491287/elegant-way-to-check-if-a-nested-key-exists-in-a-dict
|
|
"""
|
|
if not isinstance(element, dict):
|
|
raise AttributeError('keys_exists() expects dict as first argument.')
|
|
if len(keys) == 0:
|
|
raise AttributeError('keys_exists() expects at least two arguments, one given.')
|
|
|
|
_element = element
|
|
for key in keys:
|
|
try:
|
|
_element = _element[key]
|
|
except KeyError:
|
|
return False
|
|
return True
|
|
|
|
|
|
def set_tz():
|
|
global TZ
|
|
env_tz = os.environ.get("TZ")
|
|
settings_tz = settings.get("TZ")
|
|
if env_tz:
|
|
TZ = pytz.timezone(env_tz)
|
|
elif settings_tz:
|
|
TZ = pytz.timezone(settings_tz)
|
|
else:
|
|
raise Exception("No timezone setting found! Please read the README!")
|
|
|
|
|
|
def convert_metric_values(value):
|
|
if keys_exists(units, settings["babelLocale"]):
|
|
divider = units[settings["babelLocale"]]["divider"]
|
|
return round((float(value) / divider), 2)
|
|
else:
|
|
return value
|