added a listen_state for the scheduled transitions
This commit is contained in:
@@ -67,6 +67,9 @@ class RoomController(Hass):
|
|||||||
self.register_service(
|
self.register_service(
|
||||||
f'{self.name}/activate_all_off', self._service_activate_all_off, namespace='controller'
|
f'{self.name}/activate_all_off', self._service_activate_all_off, namespace='controller'
|
||||||
)
|
)
|
||||||
|
self.register_service(
|
||||||
|
f'{self.name}/activate_any_on', self._service_activate_any_on, namespace='controller'
|
||||||
|
)
|
||||||
self.register_service(
|
self.register_service(
|
||||||
f'{self.name}/deactivate', self._service_deactivate, namespace='controller'
|
f'{self.name}/deactivate', self._service_deactivate, namespace='controller'
|
||||||
)
|
)
|
||||||
@@ -139,7 +142,15 @@ class RoomController(Hass):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log(f'Failed with {type(e)}: {e}')
|
self.log(f'Failed with {type(e)}: {e}')
|
||||||
|
|
||||||
|
self.state_entity.listen_state(
|
||||||
|
lambda *args, **kwargs: self.call_service(
|
||||||
|
f'{self.name}/activate_any_on', namespace='controller', cause='state transition'
|
||||||
|
),
|
||||||
|
attribute='all'
|
||||||
|
)
|
||||||
|
|
||||||
def set_controller_scene(self, state: ControllerStateConfig):
|
def set_controller_scene(self, state: ControllerStateConfig):
|
||||||
|
"""Sets the internal state for the app. Only used by the scheduled transition"""
|
||||||
try:
|
try:
|
||||||
self.state_entity.set_state(attributes=state.model_dump())
|
self.state_entity.set_state(attributes=state.model_dump())
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
Reference in New Issue
Block a user