diff --git a/appdaemon/apps/timed_lights.py b/appdaemon/apps/timed_lights.py index 27bdf87..4a6bb94 100644 --- a/appdaemon/apps/timed_lights.py +++ b/appdaemon/apps/timed_lights.py @@ -8,22 +8,30 @@ class OutsideLights(Entities): self.listen_event(self.update, 'TOD_TOD') self.run_in(lambda *_: self.update(None, None, None), 2) + for l in self.args['lights']: + self.listen_event(self.found, l, old="unavailable") def update(self, event, data, kwarg): - state = self.get_app('timeofday').dark + self.state = self.get_app('timeofday').dark if self.get_app('timeofday').tod == 'night': - state = False + self.state = False - self.log(f"OUTSIDE LIGHTS - Turning lights {state}") + self.log(f"OUTSIDE LIGHTS - Turning lights {self.state}") for l in self.e: - self.e[l].state = state + self.e[l].state = self.state self.e[l].push() + def found(self, entity, attribute, old, new, kwargs): + if old == "unavailable": + self.log(f"{entity} showed up, setting to {self.state}") + self.e[entity].state = self.state + self.e[entity].push() + class DecorativeLights(OutsideLights): def update(self, event, data, kwarg): - state = self.get_app('timeofday').dark - self.log(f"DECOATIVE LIGHTS - Turning lights {state}") + self.state = self.get_app('timeofday').dark + self.log(f"DECORATIVE LIGHTS - Turning lights {self.state}") for l in self.e: - self.e[l].state = state + self.e[l].state = self.state self.e[l].push()