diff --git a/custom_components/adaptive_lighting/config_flow.py b/custom_components/adaptive_lighting/config_flow.py index e22f7d5d..fe4867ff 100644 --- a/custom_components/adaptive_lighting/config_flow.py +++ b/custom_components/adaptive_lighting/config_flow.py @@ -94,8 +94,8 @@ class OptionsFlowHandler(config_entries.OptionsFlow): disable_brightness_adjust = options.get( CONF_DISABLE_BRIGHTNESS_ADJUST, DEFAULT_DISABLE_BRIGHTNESS_ADJUST ) - disable_entity = options.get(CONF_DISABLE_ENTITY) - disable_state = options.get(CONF_DISABLE_STATE) + disable_entity = options.get(CONF_DISABLE_ENTITY, "none") + disable_state = options.get(CONF_DISABLE_STATE, "none") initial_transition = options.get( CONF_INITIAL_TRANSITION, DEFAULT_INITIAL_TRANSITION ) @@ -107,12 +107,12 @@ class OptionsFlowHandler(config_entries.OptionsFlow): only_once = options.get(CONF_ONLY_ONCE, DEFAULT_ONLY_ONCE) sleep_brightness = options.get(CONF_SLEEP_BRIGHTNESS, DEFAULT_SLEEP_BRIGHTNESS) sleep_color_temp = options.get(CONF_SLEEP_COLOR_TEMP, DEFAULT_SLEEP_COLOR_TEMP) - sleep_entity = options.get(CONF_SLEEP_ENTITY) - sleep_state = options.get(CONF_SLEEP_STATE) + sleep_entity = options.get(CONF_SLEEP_ENTITY, "none") + sleep_state = options.get(CONF_SLEEP_STATE, "none") sunrise_offset = options.get(CONF_SUNRISE_OFFSET, DEFAULT_SUNRISE_OFFSET) - sunrise_time = options.get(CONF_SUNRISE_TIME) + sunrise_time = options.get(CONF_SUNRISE_TIME, "none") sunset_offset = options.get(CONF_SUNSET_OFFSET, DEFAULT_SUNSET_OFFSET) - sunset_time = options.get(CONF_SUNSET_TIME) + sunset_time = options.get(CONF_SUNSET_TIME, "none") transition = options.get(CONF_TRANSITION, DEFAULT_TRANSITION) all_lights = self.hass.states.async_entity_ids("light") @@ -124,8 +124,8 @@ class OptionsFlowHandler(config_entries.OptionsFlow): vol.Optional( CONF_DISABLE_BRIGHTNESS_ADJUST, default=disable_brightness_adjust ): bool, - # vol.Optional(CONF_DISABLE_ENTITY, default=disable_entity): str, - # vol.Optional(CONF_DISABLE_STATE, default=disable_state): str, + vol.Optional(CONF_DISABLE_ENTITY, default=disable_entity): str, + vol.Optional(CONF_DISABLE_STATE, default=disable_state): str, vol.Optional( CONF_INITIAL_TRANSITION, default=initial_transition ): VALID_TRANSITION, @@ -149,8 +149,8 @@ class OptionsFlowHandler(config_entries.OptionsFlow): vol.Optional(CONF_SLEEP_COLOR_TEMP, default=sleep_color_temp): vol.All( vol.Coerce(int), vol.Range(min=1000, max=10000) ), - # vol.Optional(CONF_SLEEP_ENTITY, default=sleep_entity): str, - # vol.Optional(CONF_SLEEP_STATE, default=sleep_state): str, + vol.Optional(CONF_SLEEP_ENTITY, default=sleep_entity): str, + vol.Optional(CONF_SLEEP_STATE, default=sleep_state): str, vol.Optional(CONF_SUNRISE_OFFSET, default=sunrise_offset): int, vol.Optional(CONF_SUNRISE_TIME, default=sunrise_time): str, vol.Optional(CONF_SUNSET_OFFSET, default=sunset_offset): int, diff --git a/custom_components/adaptive_lighting/const.py b/custom_components/adaptive_lighting/const.py index bf83bced..e6cd5989 100644 --- a/custom_components/adaptive_lighting/const.py +++ b/custom_components/adaptive_lighting/const.py @@ -39,7 +39,6 @@ UNDO_UPDATE_LISTENER = "undo_update_listener" # _COMMON_SCHEMA = { # vol.Optional(CONF_DISABLE_ENTITY): cv.entity_id, # vol.Optional(CONF_DISABLE_STATE): vol.All(cv.ensure_list, [cv.string]), -# vol.Optional(CONF_INTERVAL, default=DEFAULT_INTERVAL): cv.time_period, # vol.Optional(CONF_SLEEP_ENTITY): cv.entity_id, # vol.Optional(CONF_SLEEP_STATE): vol.All(cv.ensure_list, [cv.string]), # } diff --git a/custom_components/adaptive_lighting/switch.py b/custom_components/adaptive_lighting/switch.py index c0ccd2b6..16b64166 100755 --- a/custom_components/adaptive_lighting/switch.py +++ b/custom_components/adaptive_lighting/switch.py @@ -198,11 +198,17 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity): ("_sunrise_offset", cv.time_period), ("_sunset_offset", cv.time_period), ("_interval", cv.time_period), + ("_disable_entity", cv.entity_id), + ("_sleep_entity", cv.entity_id), + ("_disable_state", vol.All(cv.ensure_list_csv, [cv.string])), + ("_sleep_state", vol.All(cv.ensure_list_csv, [cv.string])), ]: attr = getattr(self, name) - if attr is not None: - dt = validate(attr) - setattr(self, name, dt) + if attr is not None and attr != "none": + setattr(self, name, validate(attr)) + elif attr == "none": + setattr(self, name, None) + # Initialize attributes that will be set in self._update_attrs self._percent = None