mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Allow user to configure server id to perform speed test against (#3008)
* Allow user to configure server id to perform speed test against * Don't overwrite list * Type-o * Convert to string * Append lists * str(None) => 'None' did not realize that.
This commit is contained in:
parent
821b3d7fac
commit
b6ad0bfbea
@ -29,6 +29,7 @@ CONF_SECOND = 'second'
|
|||||||
CONF_MINUTE = 'minute'
|
CONF_MINUTE = 'minute'
|
||||||
CONF_HOUR = 'hour'
|
CONF_HOUR = 'hour'
|
||||||
CONF_DAY = 'day'
|
CONF_DAY = 'day'
|
||||||
|
CONF_SERVER_ID = 'server_id'
|
||||||
SENSOR_TYPES = {
|
SENSOR_TYPES = {
|
||||||
'ping': ['Ping', 'ms'],
|
'ping': ['Ping', 'ms'],
|
||||||
'download': ['Download', 'Mbit/s'],
|
'download': ['Download', 'Mbit/s'],
|
||||||
@ -38,6 +39,7 @@ SENSOR_TYPES = {
|
|||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_MONITORED_CONDITIONS):
|
vol.Required(CONF_MONITORED_CONDITIONS):
|
||||||
vol.All(cv.ensure_list, [vol.In(list(SENSOR_TYPES.keys()))]),
|
vol.All(cv.ensure_list, [vol.In(list(SENSOR_TYPES.keys()))]),
|
||||||
|
vol.Optional(CONF_SERVER_ID): cv.positive_int,
|
||||||
vol.Optional(CONF_SECOND, default=[0]):
|
vol.Optional(CONF_SECOND, default=[0]):
|
||||||
vol.All(cv.ensure_list, [vol.All(vol.Coerce(int), vol.Range(0, 59))]),
|
vol.All(cv.ensure_list, [vol.All(vol.Coerce(int), vol.Range(0, 59))]),
|
||||||
vol.Optional(CONF_MINUTE, default=[0]):
|
vol.Optional(CONF_MINUTE, default=[0]):
|
||||||
@ -131,6 +133,7 @@ class SpeedtestData(object):
|
|||||||
def __init__(self, hass, config):
|
def __init__(self, hass, config):
|
||||||
"""Initialize the data object."""
|
"""Initialize the data object."""
|
||||||
self.data = None
|
self.data = None
|
||||||
|
self._server_id = config.get(CONF_SERVER_ID)
|
||||||
track_time_change(hass, self.update,
|
track_time_change(hass, self.update,
|
||||||
second=config.get(CONF_SECOND),
|
second=config.get(CONF_SECOND),
|
||||||
minute=config.get(CONF_MINUTE),
|
minute=config.get(CONF_MINUTE),
|
||||||
@ -143,9 +146,12 @@ class SpeedtestData(object):
|
|||||||
|
|
||||||
_LOGGER.info('Executing speedtest')
|
_LOGGER.info('Executing speedtest')
|
||||||
try:
|
try:
|
||||||
|
args = [sys.executable, speedtest_cli.__file__, '--simple']
|
||||||
|
if self._server_id:
|
||||||
|
args = args + ['--server', str(self._server_id)]
|
||||||
|
|
||||||
re_output = _SPEEDTEST_REGEX.split(
|
re_output = _SPEEDTEST_REGEX.split(
|
||||||
check_output([sys.executable, speedtest_cli.__file__,
|
check_output(args).decode("utf-8"))
|
||||||
'--simple']).decode("utf-8"))
|
|
||||||
except CalledProcessError as process_error:
|
except CalledProcessError as process_error:
|
||||||
_LOGGER.error('Error executing speedtest: %s', process_error)
|
_LOGGER.error('Error executing speedtest: %s', process_error)
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user