started gone app

This commit is contained in:
John Lancaster
2025-12-02 22:08:15 -06:00
parent 61d5d99dee
commit e21eca4f42
2 changed files with 35 additions and 0 deletions

27
apps/gone.py Normal file
View File

@@ -0,0 +1,27 @@
from typing import Any
from appdaemon.plugins.hass import Hass
class Gone(Hass):
def initialize(self):
people = self.get_state('person')
# self.log(json.dumps(people, indent=2))
self.log(list(people.keys()))
for person in self.get_state('person'):
self.listen_state(self.handle_state, entity_id=person, new='not_home')
self.log(f'No one home: {self.no_one_home()}')
def no_one_home(self) -> bool:
return all(state.get('state') != 'home' for state in self.get_state('person', copy=False).values())
def handle_state(self, entity: str, attribute: str, old: Any, new: Any, **kwargs: Any) -> None:
if self.no_one_home():
for ent in self.args['entities']:
try:
self.turn_off(ent)
except Exception:
self.log(f'Failed to turn off {ent}', level='ERROR')
continue