mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 13:57:10 +00:00
Make asuswrt sensor optional (#19736) @kennedyshead
* Dont load if not in config * Adding config options for sensors * Fixed mistake with iterating over wrong things * lint * lint * Setting None state * Using .get when fetching optional config
This commit is contained in:
parent
410f19c777
commit
377b129c9c
@ -26,6 +26,8 @@ CONF_SSH_KEY = 'ssh_key'
|
|||||||
CONF_REQUIRE_IP = 'require_ip'
|
CONF_REQUIRE_IP = 'require_ip'
|
||||||
DEFAULT_SSH_PORT = 22
|
DEFAULT_SSH_PORT = 22
|
||||||
SECRET_GROUP = 'Password or SSH Key'
|
SECRET_GROUP = 'Password or SSH Key'
|
||||||
|
CONF_SENSORS = 'sensors'
|
||||||
|
SENSOR_TYPES = ['upload_speed', 'download_speed', 'download', 'upload']
|
||||||
|
|
||||||
CONFIG_SCHEMA = vol.Schema({
|
CONFIG_SCHEMA = vol.Schema({
|
||||||
DOMAIN: vol.Schema({
|
DOMAIN: vol.Schema({
|
||||||
@ -37,7 +39,9 @@ CONFIG_SCHEMA = vol.Schema({
|
|||||||
vol.Optional(CONF_REQUIRE_IP, default=True): cv.boolean,
|
vol.Optional(CONF_REQUIRE_IP, default=True): cv.boolean,
|
||||||
vol.Exclusive(CONF_PASSWORD, SECRET_GROUP): cv.string,
|
vol.Exclusive(CONF_PASSWORD, SECRET_GROUP): cv.string,
|
||||||
vol.Exclusive(CONF_SSH_KEY, SECRET_GROUP): cv.isfile,
|
vol.Exclusive(CONF_SSH_KEY, SECRET_GROUP): cv.isfile,
|
||||||
vol.Exclusive(CONF_PUB_KEY, SECRET_GROUP): cv.isfile
|
vol.Exclusive(CONF_PUB_KEY, SECRET_GROUP): cv.isfile,
|
||||||
|
vol.Optional(CONF_SENSORS): vol.All(
|
||||||
|
cv.ensure_list, [vol.In(SENSOR_TYPES)]),
|
||||||
}),
|
}),
|
||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
@ -62,7 +66,8 @@ async def async_setup(hass, config):
|
|||||||
hass.data[DATA_ASUSWRT] = api
|
hass.data[DATA_ASUSWRT] = api
|
||||||
|
|
||||||
hass.async_create_task(async_load_platform(
|
hass.async_create_task(async_load_platform(
|
||||||
hass, 'sensor', DOMAIN, {}, config))
|
hass, 'sensor', DOMAIN, config[DOMAIN].get(CONF_SENSORS), config))
|
||||||
hass.async_create_task(async_load_platform(
|
hass.async_create_task(async_load_platform(
|
||||||
hass, 'device_tracker', DOMAIN, {}, config))
|
hass, 'device_tracker', DOMAIN, {}, config))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
@ -17,13 +17,23 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
async def async_setup_platform(
|
async def async_setup_platform(
|
||||||
hass, config, add_entities, discovery_info=None):
|
hass, config, add_entities, discovery_info=None):
|
||||||
"""Set up the asuswrt sensors."""
|
"""Set up the asuswrt sensors."""
|
||||||
|
if discovery_info is None:
|
||||||
|
return
|
||||||
|
|
||||||
api = hass.data[DATA_ASUSWRT]
|
api = hass.data[DATA_ASUSWRT]
|
||||||
add_entities([
|
|
||||||
AsuswrtRXSensor(api),
|
devices = []
|
||||||
AsuswrtTXSensor(api),
|
|
||||||
AsuswrtTotalRXSensor(api),
|
if 'download' in discovery_info:
|
||||||
AsuswrtTotalTXSensor(api)
|
devices.append(AsuswrtTotalRXSensor(api))
|
||||||
])
|
if 'upload' in discovery_info:
|
||||||
|
devices.append(AsuswrtTotalTXSensor(api))
|
||||||
|
if 'download_speed' in discovery_info:
|
||||||
|
devices.append(AsuswrtRXSensor(api))
|
||||||
|
if 'upload_speed' in discovery_info:
|
||||||
|
devices.append(AsuswrtTXSensor(api))
|
||||||
|
|
||||||
|
add_entities(devices)
|
||||||
|
|
||||||
|
|
||||||
class AsuswrtSensor(Entity):
|
class AsuswrtSensor(Entity):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user