ich nutzte seit ca. 3 Jahren den iOBroker und bin nun alles auf den Home-Assistant am umziehen. Bez. der An- und Abwesenheit hatte ich bisher immer einen Virtuellen Schalter in iOB welcher über homekit gesteuert wurde (wir haben alle iPhones). Ich hatte die Geofencing-Funktion der iPhone mit jeweils 3 Schalter genutzt und dann, wenn alle Schalter auf OFF waren Automationen wie z.B. das automatische Scharfstellen der Alarmanlage genutzt. Nun will ich aber auch Alarmo nutzen und automatisch den Zustand bei Abwesenheit ändern.
Wie kann ich nun eine Gruppe definieren in der unsere 3 Iphones mittels Device-Tracker der HA-App ausgelesen werden und den Status z.B. “Jemand ist anwesend” und “alle abwesend” auslesen.
Danke für eure Tipps… und Simon, du bist seit Wochen mein Smarthome-Held!
Na dann Willkommen in der Home Assistant Community!
Du kannst in den Home Assistant-Einstellungen Personen anlegen, diesen Trackern zuordnen. Dann kannst du den Status der Person abfragen. Du kannst natürlich auch die Tracker direkt der Gruppe zuordnen. Der saubere Weg ist ersterer.
Soweit mir bekannt ist, gibt es keine Gruppen über die Benutzeroberfläche für Personen oder Device-Tracker. Die Lösung führt hier über YAML.
Hinweis: Ich bin mir nicht ganz sicher (kann es auch gerade nicht testen), aber wenn alle Personen den Status ‘home’ haben, dann sollte die Gruppe den Status ‘home’ haben. Wenn das nicht der Fall sein sollte, kannst du mit dem Code aus Block 2 abfragen, ob alle Zuhause sind.
In Block 1 wird die Gruppe und die zugehörigen Entitäten definiert und ein Sensor definiert, welche die Anzahl der Personen zurückgibt, welche den Status ‘home’ haben.
################################################
## Groups
################################################
group:
all_residents:
entities:
- person.max
- person.isabelle
- person.wer_auch_immer
################################################
## Sensors
################################################
sensor:
- platform: template
sensors:
# Gibt die Anzahl der Personen mit dem Status "home" zurück.
residents_at_home_count:
friendly_name: "Anzahl der Personen Zuhause"
value_template: >-
{{ states.person|selectattr('entity_id','in',state_attr('group.all_residents','entity_id'))|selectattr('state','eq','home')|list|count }}
Block2:
################################################
## Binary Sensors
################################################
binary_sensor:
- platform: template
sensors:
all_residents_are_at_home:
friendly_name: "Sind alle Personen zuhause?"
value_template: >-
{% set all_res_count = state_attr('group.cel_sol_all_lights', 'entity_id')|count %}
{{ states('sensor.residents_at_home_count')|int == all_res_count }}