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