Im immerwährenden Geplänkel zwischen mir und dem Sohnemann, wer denn nun die bessere Smart Home Lösung hat, fehlen mir immer dann die Argumente, wenn er mir in Apple Home die Trigger “Wenn die letzte Person das Zuhause verlässt.” oder “Wenn die erste Person zu Hause ankommt“ vorführt. Auch mit viel KI und RTFM, kriege ich keine hstabile Lösung hin.
Habt ihr’n Tipp?
Am Start wären HA Mobile auf den Smartphones meiner Frau und mir, alternativ die iCloud3 v3 Integration.
Danke euch. LG Paul
Nachtrag:
Sieh mal an. Nach dem Veröffentlichen meines Threads wurde mir der hier vorgeschlagen: Zuhause Erkennung - #2 von sirector . Den probiere ich mal aus, gerne dennoch her mit euren Vorschlägen.
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
So ein Zufall. Genau das hab ich heute es fertig bekommen.
Ist noch nicht komplett ausgetestet, aber dann hast Du immerhin schonmal einen Anfang.
alias: Der erste kommt
description: >-
Bei Ankunft der ersten Person (home > 0) wird eine Benachrichtigung geschickt,
wenn etwas die Aufmerksamkeit erfordert, z.B. Waschmaschine wurde fertig, die
Post war da, ...
triggers:
- trigger: state
entity_id:
- device_tracker.claudias_iphone
to: home
id: claudia_kommt_nach_hause
- trigger: state
entity_id:
- device_tracker.orns_imer
to: home
id: oern_kommt_nach_hause
conditions:
- condition: state
entity_id: zone.home
state: "1"
alias: Der letzte geht
description: ""
triggers:
- trigger: state
entity_id:
- device_tracker.claudias_iphone
to: not_home
id: claudia_geht
- trigger: state
entity_id:
- device_tracker.orns_imer
to: not_home
id: oern_geht
Wenn die letzte Person das Haus verlässt, ist der zone.home Wert gerade noch bei 1. Damit wird die Bedingung “false” und die Automation wird beendet. Machst du ähnliche Erfahrungen?
Aktuell schraube ich an mehrereren Stellen gleichzeitig und lasse diese Automation erstmal ein paar Tage mitlaufen, damit ich genügend Daten habe es zu beurteilen. Ich guck mir dazu den Verlauf alter Entitäten an, die involviert sind.
Aus dem Stegreif würde ich sagen, dass Du z.B. eine Verzögerung einsetzen könntest. Verzögerungen sind allerdings recht unzuverlässig.
Stattdessen nimmst Du vielleicht, wie Tarag vorgeschlagen hat, direkt bzw. nur die Zone:
Du prüfst also so:
alias: Der letzte geht (zonenbasiert)
description: ""
triggers:
- trigger: numeric_state
entity_id:
- zone.home
below: 1
conditions: []
actions: []
mode: single
Das ist, eingedenk Deiner Erfahrung, ebenfalls verzögert, nähme ich an. Es hängt halt davon ab, wie schnell die zone.home aktualisiert wird.
Ich hab auf jeden Fall jetzt mal beide Automationen laufen und guck mir in ein paar Tagen an, welche davon besser funktioniert.
Das ist zunächst mal genau das, was Oern vorgeschlagen hat. Theoretisch sieht das gut und sogar echt pfiffig aus, weil man erkennt, wer als Letztes das Haus verlassen hat - und darauf gesondert reagieren kann.
Wenn es ein und der gleiche Device Tracker ist, den Du als Auslöser verwenden tust und der gleiche und kein zweiter der Person zugeordnet wurde. Dann darf das nicht passieren!
Ansonsten verwende als Auslöser nicht den Device Tracker sondern die Person.
trigger: state
entity_id:
- person.xyz
from: home
to: not_home
Ok, dann also 35 Automationen zum Testen. Irgendeine davon muss ja ordentlich funktionieren. Hoffentlich.
Wobei ich davon ausgehe, dass die beiden zone numeric und zone person äquivalent sind. Aber wer weiß schon, wie genau es unter der Haube von HA funktioniert?
Ich jedenfalls noch nicht.
alias: Der letzte geht (device_tracker)
description: ""
triggers:
- trigger: state
entity_id:
- device_tracker.claudias_iphone
to: not_home
id: claudia_geht
- trigger: state
entity_id:
- device_tracker.orns_imer
to: not_home
id: oern_geht
conditions:
- condition: template
value_template: "{{trigger.from_state.state != 'unavailable'}}"
- condition: template
value_template: "{{trigger.from_state.state != 'unknown'}}"
- condition: state
entity_id: zone.home
state: "0"
actions:
- action: notify.mobile_app_orns_imer
metadata: {}
data:
message: Der letzte ist gegangen (device_tracker)
title: "{{now().strftime('%d.%m. %H:%M')}}"
mode: single
alias: Der letzte geht (person)
description: ""
triggers:
- trigger: state
entity_id:
- person.claudia
to: not_home
id: claudia_geht
- trigger: state
entity_id:
- person.orn
to: not_home
id: oern_geht
conditions:
- condition: template
value_template: "{{trigger.from_state.state != 'unavailable'}}"
- condition: template
value_template: "{{trigger.from_state.state != 'unknown'}}"
- condition: state
entity_id: zone.home
state: "0"
actions:
- action: notify.mobile_app_orns_imer
metadata: {}
data:
message: Der letzte ist gegangen (person)
title: "{{now().strftime('%d.%m. %H:%M')}}"
mode: single
alias: Der letzte geht (zone numeric)
description: ""
triggers:
- trigger: numeric_state
entity_id:
- zone.home
below: 1
conditions:
- condition: template
value_template: "{{trigger.from_state.state != 'unavailable'}}"
- condition: template
value_template: "{{trigger.from_state.state != 'unknown'}}"
actions:
- action: notify.mobile_app_orns_imer
metadata: {}
data:
message: Der letzte ist gegangen (zone numeric)
title: "{{now().strftime('%d.%m. %H:%M')}}"
mode: single
alias: Der letzte geht (zone persons)
description: ""
triggers:
- trigger: numeric_state
entity_id:
- zone.home
attribute: persons
below: 1
conditions:
- condition: template
value_template: "{{trigger.from_state.state != 'unavailable'}}"
- condition: template
value_template: "{{trigger.from_state.state != 'unknown'}}"
actions:
- action: notify.mobile_app_orns_imer
metadata: {}
data:
message: Der letzte ist gegangen (zone persons)
title: "{{now().strftime('%d.%m. %H:%M')}}"
mode: single
alias: Der letzte geht (device)
description: ""
triggers:
- device_id: e9abdb641c66736ba7eaae1fc8e76faf
domain: device_tracker
entity_id: 54381306f2be06c2c37779a04abf29ef
type: leaves
trigger: device
zone: zone.home
- device_id: b3cad5b43ba638512d189aefd9b415f5
domain: device_tracker
entity_id: c2f0c88dfa75ec79ff79c2dcaff7c56f
type: leaves
trigger: device
zone: zone.home
conditions:
- condition: template
value_template: "{{trigger.from_state.state != 'unavailable'}}"
- condition: template
value_template: "{{trigger.from_state.state != 'unknown'}}"
- condition: state
entity_id: zone.home
state: "0"
actions:
- action: notify.mobile_app_orns_imer
metadata: {}
data:
message: Der letzte ist gegangen (device)
title: "{{now().strftime('%d.%m. %H:%M')}}"
mode: single
Eigentlich ist es ganz einfach. Die device_tracker die getriggert werden müssen auch den Personen zugeordnet sein. Es dürfen keine weiteren Devices den Personen zugeordnet sein, da sich die zone.home evtl. nicht auf 0 ändert.
Ich würde vermutlich eh mit diesem Trigger arbeiten
- trigger: state
entity_id:
- person.maxe
from: home
to: not_home
Das ist klar. Sonst kann es ja nicht funktionieren.
Aber wie werden die verschiedenen Entitäten oder Attribute unter der Haube ver- oder bearbeitet? Wenn das alles in ein- und derselben Routine gemacht wird und gleichzeitig die verschiedenen Entitäten und Attribute geschrieben werden, dann ist es im Prinzip wurscht, welche man nutzt. Dazu kommt noch, dass die Signale ja auch erstmal vom Endgerät zu HA gemeldet werden müssen.
Ich hab auf jeden Fall 5 verschiedene Automation laufen und guck mal, ob sich da was unterscheidet und ob vielleicht eine der Methoden anders (besser / schlechter) läuft.
Der (halbe) Physiker und verrückte Professor läuft schon wieder zur Hochform auf.
Nachtrag#1
Hm, laden darf man sein Endgerät also scheinbar nicht.
Ich kontrolliere auf jeden Fall mal die Einstellungen im iPhone. Vielleicht hab ich da irgendwo noch einen Haken oder eine Einstellung Immer erlauben vergessen. Falls dem nicht so ist, muss ich mal tief(er) graben. So ist das jedenfalls zu unzuverlässig.
Ein Wechsel im Status sensor.claudias_iphone_battery_state scheint HA auch nicht zu gefallen. Die Zeiten passen perfekt zusammen.
Dir @Oern wünsche ich, dass du die ID-gesteuerte Unterscheidung “wer als letzter geht” oder “als erster kommt” noch hinkriegst. Hänge übrigens noch an deinem “halben Physiker und verrückten Prof. Ich dachte, ich kenne die alle.