mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-11 22:34:04 +02:00
simplification and don't add trackers when lights is []
This commit is contained in:
parent
4870b7c405
commit
7b79096abc
1 changed files with 24 additions and 25 deletions
|
|
@ -334,24 +334,26 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
|
|||
|
||||
async def async_added_to_hass(self):
|
||||
"""Call when entity about to be added to hass."""
|
||||
async_track_state_change(
|
||||
self.hass,
|
||||
self._unpack_light_groups(self._lights),
|
||||
self._light_state_changed,
|
||||
to_state="on",
|
||||
)
|
||||
track_kwargs = dict(hass=self.hass, action=self._state_changed)
|
||||
if self._sleep_entity is not None:
|
||||
sleep_kwargs = dict(track_kwargs, entity_ids=self._sleep_entity)
|
||||
async_track_state_change(**sleep_kwargs, to_state=self._sleep_state)
|
||||
async_track_state_change(**sleep_kwargs, from_state=self._sleep_state)
|
||||
|
||||
if self._disable_entity is not None:
|
||||
if self._lights:
|
||||
async_track_state_change(
|
||||
**track_kwargs,
|
||||
entity_ids=self._disable_entity,
|
||||
from_state=self._disable_state,
|
||||
self.hass,
|
||||
self._unpack_light_groups(self._lights),
|
||||
self._light_state_changed,
|
||||
to_state="on",
|
||||
from_state="off",
|
||||
)
|
||||
track_kwargs = dict(hass=self.hass, action=self._state_changed)
|
||||
if self._sleep_entity is not None:
|
||||
sleep_kwargs = dict(track_kwargs, entity_ids=self._sleep_entity)
|
||||
async_track_state_change(**sleep_kwargs, to_state=self._sleep_state)
|
||||
async_track_state_change(**sleep_kwargs, from_state=self._sleep_state)
|
||||
|
||||
if self._disable_entity is not None:
|
||||
disable_kwargs = dict(track_kwargs, entity_ids=self._disable_entity)
|
||||
async_track_state_change(
|
||||
**disable_kwargs, from_state=self._disable_state
|
||||
)
|
||||
async_track_state_change(**disable_kwargs, to_state=self._disable_state)
|
||||
|
||||
last_state = await self.async_get_last_state()
|
||||
if last_state and last_state.state == STATE_ON:
|
||||
|
|
@ -569,9 +571,7 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
|
|||
)
|
||||
|
||||
def _should_adjust(self):
|
||||
if not self.is_on:
|
||||
return False
|
||||
if self._is_disabled():
|
||||
if not self._lights or not self.is_on or self._is_disabled():
|
||||
return False
|
||||
return True
|
||||
|
||||
|
|
@ -587,12 +587,11 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
|
|||
await asyncio.wait(tasks)
|
||||
|
||||
async def _light_state_changed(self, entity_id, from_state, to_state):
|
||||
assert to_state.state == "on"
|
||||
if from_state is None or from_state.state != "on":
|
||||
_LOGGER.debug(_difference_between_states(from_state, to_state))
|
||||
await self._update_lights(
|
||||
lights=[entity_id], transition=self._initial_transition, force=True
|
||||
)
|
||||
assert to_state.state == "on" and from_state.state == "off"
|
||||
_LOGGER.debug(_difference_between_states(from_state, to_state))
|
||||
await self._update_lights(
|
||||
lights=[entity_id], transition=self._initial_transition, force=True
|
||||
)
|
||||
|
||||
async def _state_changed(self, entity_id, from_state, to_state):
|
||||
_LOGGER.debug(_difference_between_states(from_state, to_state))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue