added a listen_state for the scheduled transitions

This commit is contained in:
John Lancaster
2024-07-27 15:09:26 -05:00
parent 9af8db9198
commit 92ddcaa25d

View File

@@ -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: