Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 20 additions & 18 deletions appdaemon/plugins/hass/hassapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,31 +355,33 @@ async def noone_home(self, person: bool = True, namespace: str | None = None) ->

def constrain_presence(self, value: Literal["everyone", "anyone", "noone"] | None = None) -> bool:
"""Returns True if unconstrained"""
match value.lower():
case "everyone":
return not self.everyone_home()
case "anyone":
return not self.anyone_home()
case "noone":
return not self.noone_home()
match value:
case None:
return True
case _:
raise ValueError(f'Invalid presence constraint: {value}')
case str(value_str):
match value_str.strip().lower():
case "everyone":
return self.everyone_home()
case "anyone":
return self.anyone_home()
case "noone":
return self.noone_home()
raise ValueError(f'Invalid presence constraint: {value}')

def constrain_person(self, value: Literal["everyone", "anyone", "noone"] | None = None) -> bool:
"""Returns True if unconstrained"""
match value.lower():
case "everyone":
return not self.everyone_home(person=True)
case "anyone":
return not self.anyone_home(person=True)
case "noone":
return not self.noone_home(person=True)
match value:
case None:
return True
case _:
raise ValueError(f'Invalid presence constraint: {value}')
case str(value_str):
match value_str.strip().lower():
case "everyone":
return self.everyone_home(person=True)
case "anyone":
return self.anyone_home(person=True)
case "noone":
return self.noone_home(person=True)
raise ValueError(f'Invalid presence constraint: {value}')

def constrain_input_boolean(self, value: str | Iterable[str]) -> bool:
"""Returns True if unconstrained - all input_booleans match the desired
Expand Down
Loading