added transition config
This commit is contained in:
@@ -2,6 +2,7 @@ bar_lights:
|
||||
module: light
|
||||
class: StagedLight
|
||||
activate-at-start: true
|
||||
transition: 3
|
||||
stages:
|
||||
- start: '03:00 am'
|
||||
scene:
|
||||
|
||||
@@ -75,9 +75,17 @@ class StagedLight(Hass):
|
||||
|
||||
### Actions
|
||||
|
||||
def activate(self, scene: dict | None = None, **kwargs):
|
||||
scene = scene if scene is not None else self.current_scene()
|
||||
return self.call_service('scene/apply', entities=scene, transition=5)
|
||||
def activate(self, scene: dict | None = None, **kwargs: Any):
|
||||
if scene is None:
|
||||
stage = self.current_stage()
|
||||
kwargs['entities'] = stage.scene_json()
|
||||
else:
|
||||
kwargs['entities'] = scene
|
||||
|
||||
if t := self.args.get('transition'):
|
||||
kwargs['transition'] = t
|
||||
|
||||
return self.call_service('scene/apply', **kwargs)
|
||||
|
||||
def deactivate(self, stage: Stage | None = None, **kwargs):
|
||||
stage = stage if stage is not None else self.current_stage()
|
||||
|
||||
@@ -23,8 +23,9 @@ class EntityState(BaseModel, extra='allow'):
|
||||
class Stage(BaseModel):
|
||||
# start: Annotated[time, BeforeValidator(lambda v: parser(v).time())]
|
||||
start: str
|
||||
_start: datetime = PrivateAttr()
|
||||
scene: dict[str, EntityState]
|
||||
_start: datetime = PrivateAttr()
|
||||
transition: int | None = None
|
||||
|
||||
def assign_start(self, dt: datetime):
|
||||
self._start = dt
|
||||
|
||||
Reference in New Issue
Block a user