scene detector

This commit is contained in:
John Lancaster
2023-11-24 14:49:18 -06:00
parent d72ebbdeb4
commit 10d19e99d1

24
apps/scene_detect.py Normal file
View File

@@ -0,0 +1,24 @@
from appdaemon.plugins.hass.hassapi import Hass
class SceneDetector(Hass):
def initialize(self):
self.scene_entity = self.args['scene'] if self.args['scene'].startswith('scene.') else f'scene.{self.args["scene"]}'
self.scene_entity = self.get_entity(self.scene_entity)
self.listen_event(self.event_callback, event='call_service', domain='scene', service='turn_on')
self.log(f'Waiting for {self.scene_entity.friendly_name} to activate')
def event_callback(self, event_name, data, cb_args):
entity_id = data['service_data']['entity_id']
if entity_id == self.scene_entity.entity_id:
self.scene_detected()
def scene_detected(self):
self.log(f'Detected scene activation: {self.scene_entity.friendly_name}')
class BedroomDetector(SceneDetector):
def scene_detected(self):
super().scene_detected()
app = self.get_app('bedroom')
app.cancel_motion_callback(new='off')