Use voluptuous for Device Sun Light Trigger (#3105)
* Migrate to voluptuous * Use default
This commit is contained in:
parent
53c8115f82
commit
5bf66cae1f
1 changed files with 25 additions and 10 deletions
|
@ -7,23 +7,38 @@ https://home-assistant.io/components/device_sun_light_trigger/
|
||||||
import logging
|
import logging
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
from homeassistant.const import STATE_HOME, STATE_NOT_HOME
|
from homeassistant.const import STATE_HOME, STATE_NOT_HOME
|
||||||
from homeassistant.helpers.event import track_point_in_time
|
from homeassistant.helpers.event import track_point_in_time
|
||||||
from homeassistant.helpers.event_decorators import track_state_change
|
from homeassistant.helpers.event_decorators import track_state_change
|
||||||
from homeassistant.loader import get_component
|
from homeassistant.loader import get_component
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
|
||||||
DOMAIN = "device_sun_light_trigger"
|
DOMAIN = 'device_sun_light_trigger'
|
||||||
DEPENDENCIES = ['light', 'device_tracker', 'group', 'sun']
|
DEPENDENCIES = ['light', 'device_tracker', 'group', 'sun']
|
||||||
|
|
||||||
|
CONF_DEVICE_GROUP = 'device_group'
|
||||||
|
CONF_DISABLE_TURN_OFF = 'disable_turn_off'
|
||||||
|
CONF_LIGHT_GROUP = 'light_group'
|
||||||
|
CONF_LIGHT_PROFILE = 'light_profile'
|
||||||
|
|
||||||
|
DEFAULT_DISABLE_TURN_OFF = False
|
||||||
|
DEFAULT_LIGHT_PROFILE = 'relax'
|
||||||
|
|
||||||
LIGHT_TRANSITION_TIME = timedelta(minutes=15)
|
LIGHT_TRANSITION_TIME = timedelta(minutes=15)
|
||||||
|
|
||||||
# Light profile to be used if none given
|
CONFIG_SCHEMA = vol.Schema({
|
||||||
LIGHT_PROFILE = 'relax'
|
DOMAIN: vol.Schema({
|
||||||
|
vol.Optional(CONF_DEVICE_GROUP): cv.entity_id,
|
||||||
CONF_LIGHT_PROFILE = 'light_profile'
|
vol.Optional(CONF_DISABLE_TURN_OFF, default=DEFAULT_DISABLE_TURN_OFF):
|
||||||
CONF_LIGHT_GROUP = 'light_group'
|
cv.boolean,
|
||||||
CONF_DEVICE_GROUP = 'device_group'
|
vol.Optional(CONF_LIGHT_GROUP): cv.string,
|
||||||
|
vol.Optional(CONF_LIGHT_PROFILE, default=DEFAULT_LIGHT_PROFILE):
|
||||||
|
cv.string,
|
||||||
|
}),
|
||||||
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=too-many-locals
|
# pylint: disable=too-many-locals
|
||||||
|
@ -35,10 +50,10 @@ def setup(hass, config):
|
||||||
light = get_component('light')
|
light = get_component('light')
|
||||||
sun = get_component('sun')
|
sun = get_component('sun')
|
||||||
|
|
||||||
disable_turn_off = 'disable_turn_off' in config[DOMAIN]
|
disable_turn_off = config[DOMAIN].get(CONF_DISABLE_TURN_OFF)
|
||||||
light_group = config[DOMAIN].get(CONF_LIGHT_GROUP,
|
light_group = config[DOMAIN].get(CONF_LIGHT_GROUP,
|
||||||
light.ENTITY_ID_ALL_LIGHTS)
|
light.ENTITY_ID_ALL_LIGHTS)
|
||||||
light_profile = config[DOMAIN].get(CONF_LIGHT_PROFILE, LIGHT_PROFILE)
|
light_profile = config[DOMAIN].get(CONF_LIGHT_PROFILE)
|
||||||
device_group = config[DOMAIN].get(CONF_DEVICE_GROUP,
|
device_group = config[DOMAIN].get(CONF_DEVICE_GROUP,
|
||||||
device_tracker.ENTITY_ID_ALL_DEVICES)
|
device_tracker.ENTITY_ID_ALL_DEVICES)
|
||||||
device_entity_ids = group.get_entity_ids(hass, device_group,
|
device_entity_ids = group.get_entity_ids(hass, device_group,
|
||||||
|
@ -52,7 +67,7 @@ def setup(hass, config):
|
||||||
light_ids = group.get_entity_ids(hass, light_group, light.DOMAIN)
|
light_ids = group.get_entity_ids(hass, light_group, light.DOMAIN)
|
||||||
|
|
||||||
if not light_ids:
|
if not light_ids:
|
||||||
logger.error("No lights found to turn on ")
|
logger.error("No lights found to turn on")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def calc_time_for_light_when_sunset():
|
def calc_time_for_light_when_sunset():
|
||||||
|
|
Loading…
Add table
Reference in a new issue