36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import appdaemon.plugins.hass.hassapi as hass
|
|
import datetime
|
|
|
|
#
|
|
# App to control main room light based on Aqara FP1 presence sensor
|
|
#
|
|
# Args:
|
|
# presence_sensor: presence sensor entity_id (default: sensor.presence_aqara_mainroom_presence_event)
|
|
# light: light entity_id (default: light.light_mainroom_pc_spotlight)
|
|
#
|
|
# Release Notes
|
|
#
|
|
# Version 1.0:
|
|
# Initial Version
|
|
|
|
class MainRoomLightControl(hass.Hass):
|
|
def initialize(self):
|
|
self.presence_sensor = self.args.get("presence_sensor", "sensor.presence_aqara_mainroom_presence_event")
|
|
self.light = self.args.get("light", "light.light_mainroom_pc_spotlight")
|
|
|
|
self.log("Initializing light control application")
|
|
self.log(f"Presence sensor: {self.presence_sensor}")
|
|
self.log(f"Light: {self.light}")
|
|
|
|
# Listen for presence events
|
|
self.listen_state(self.state_change, self.args['presence_sensor'])
|
|
self.log("Presence event handler registered")
|
|
|
|
def state_change(self, entity, attribute, old, new, kwargs):
|
|
self.log(f"entity: {entity}, attribute: {attribute}, old: {old}, new: {new}")
|
|
if new == "away":
|
|
self.log("Status 'away' - turning off light")
|
|
self.turn_off(self.light)
|
|
else:
|
|
self.log("Presence detected - turning on light")
|
|
self.turn_on(self.light) |