{"id":884,"date":"2026-06-11T20:47:30","date_gmt":"2026-06-11T18:47:30","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=884"},"modified":"2026-06-11T20:47:30","modified_gmt":"2026-06-11T18:47:30","slug":"anwesenheit-buendeln-mit-person-zone","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/anwesenheit-buendeln-mit-person-zone\/","title":{"rendered":"Anwesenheit b\u00fcndeln mit person &#038; zone"},"content":{"rendered":"<p>Wer mehrere Ger\u00e4te tr\u00e4gt \u2013 iPhone, iPad, MacBook \u2013, kennt das Problem: Home Assistant sieht jeden <code>device_tracker<\/code> einzeln, und pl\u00f6tzlich gilt das Haus als \u00ableer\u00bb, nur weil das iPhone kurz das WLAN verloren hat. Die L\u00f6sung steckt seit Jahren im Kern von HA und wird trotzdem untersch\u00e4tzt: die <code>person<\/code>-Entit\u00e4t in Kombination mit der <code>zone<\/code>. Sie fasst beliebig viele Tracker zu einer einzigen, verl\u00e4sslichen Aussage zusammen: zu Hause oder nicht. Dieser Beitrag zeigt, wie man daraus eine robuste Anwesenheitserkennung baut.<\/p>\n<h2>Das Problem mit einzelnen Trackern<\/h2>\n<p>Ein einzelner Tracker ist nie zuverl\u00e4ssig genug. Das iPhone wechselt zwischen WLAN und Mobilfunk, das MacBook schl\u00e4ft, das iPad liegt mal daheim, mal im B\u00fcro. Steuert man Automationen direkt \u00fcber einen einzelnen <code>device_tracker<\/code>, entstehen Fehlalarme: Licht geht aus, obwohl jemand da ist, oder die Heizung f\u00e4hrt hoch, obwohl niemand kommt.<\/p>\n<p>Die <code>person<\/code>-Entit\u00e4t l\u00f6st das, indem sie mehrere Tracker zu einer Person zusammenf\u00fchrt. Solange auch nur ein zugeordneter Tracker \u00abhome\u00bb meldet, gilt die Person als anwesend. Das ist genau das gew\u00fcnschte Verhalten \u2013 ein einzelner aussetzender Tracker kippt die Anwesenheit nicht mehr.<\/p>\n<h2>Schritt 1: Tracker einer Person zuordnen<\/h2>\n<p>Am einfachsten geht das \u00fcber die Oberfl\u00e4che unter <em>Einstellungen \u2192 Personen<\/em>. Dort w\u00e4hlt man pro Person alle Ger\u00e4te aus, die sie zuverl\u00e4ssig tr\u00e4gt. F\u00fcr ein Setup mit zwei Bewohnern k\u00f6nnten die Personen so aussehen:<\/p>\n<pre><code>\u2029# Beispielhafte Zuordnung (wird normalerweise \u00fcber die UI gepflegt)\u2029# person.mike_neuburger:\u2029#   - device_tracker.mikes_iphone_17_pro\u2029#   - device_tracker.ipad_pro_13_m5_von_mike\u2029#   - device_tracker.macbook_pro_m1_von_mike\u2029# person.louisa_neuburger:\u2029#   - device_tracker.ipad_pro_129_von_louisa_2\u2029<\/code><\/pre>\n<p>Wichtig: Nur Ger\u00e4te zuordnen, die wirklich mitgef\u00fchrt werden. Ein MacBook, das fast immer zu Hause steht, verf\u00e4lscht die Anwesenheit \u2013 es w\u00fcrde die Person dauerhaft als \u00abhome\u00bb melden, selbst wenn sie l\u00e4ngst weg ist.<\/p>\n<h2>Schritt 2: Die Zone als Bezugspunkt<\/h2>\n<p>Die <code>zone.home<\/code> definiert \u00fcber GPS-Koordinaten und Radius, was \u00abzu Hause\u00bb bedeutet. Standardm\u00e4ssig sind 100 Meter gesetzt \u2013 in dicht bebauten Quartieren lohnt es sich, den Radius etwas zu verkleinern, damit die Nachbarstrasse nicht schon als \u00abdaheim\u00bb z\u00e4hlt. In der <code>zones.yaml<\/code> oder \u00fcber die UI:<\/p>\n<pre><code>\u2029# zones.yaml\u2029home_genau:\u2029  name: Zuhause genau\u2029  latitude: 47.0000\u2029  longitude: 8.0000\u2029  radius: 75\u2029  icon: mdi:home\u2029<\/code><\/pre>\n<h2>Schritt 3: Eine zusammengefasste Hausanwesenheit<\/h2>\n<p>Oft will man nicht nur einzelne Personen, sondern wissen: Ist \u00fcberhaupt jemand zu Hause? Daf\u00fcr eignet sich ein <code>binary_sensor<\/code> per Template, der alle Personen pr\u00fcft:<\/p>\n<pre><code>\u2029# template.yaml\u2029- binary_sensor:\u2029    - name: \"Jemand zu Hause\"\u2029      unique_id: jemand_zu_hause\u2029      device_class: presence\u2029      state: &gt;\u2029        {{ is_state('person.mike_neuburger', 'home')\u2029           or is_state('person.louisa_neuburger', 'home') }}\u2029<\/code><\/pre>\n<p>Dieser Sensor ist die ideale Grundlage f\u00fcr Automationen \u2013 er bleibt \u00abon\u00bb, solange irgendjemand da ist, und schaltet erst auf \u00aboff\u00bb, wenn wirklich alle das Haus verlassen haben.<\/p>\n<h2>Schritt 4: Automation gegen Fehlalarme absichern<\/h2>\n<p>Selbst mit geb\u00fcndelter Anwesenheit lohnt sich eine kleine Verz\u00f6gerung, damit ein kurzer GPS-Aussetzer keine Aktion ausl\u00f6st. Die <code>for<\/code>-Bedingung wartet, bis der Zustand stabil ist:<\/p>\n<pre><code>\u2029# automations.yaml\u2029- alias: \"Alle weg \u2013 Energiesparmodus\"\u2029  trigger:\u2029    - platform: state\u2029      entity_id: binary_sensor.jemand_zu_hause\u2029      to: \"off\"\u2029      for:\u2029        minutes: 5\u2029  action:\u2029    - service: scene.turn_on\u2029      target:\u2029        entity_id: scene.alle_aus\u2029<\/code><\/pre>\n<p>Die f\u00fcnf Minuten Wartezeit fangen den klassischen Fall ab, in dem das letzte Telefon beim Verlassen kurz zwischen den Funkzellen pendelt.<\/p>\n<p>Das Gegenst\u00fcck \u2013 die Willkommens-Automation \u2013 funktioniert nach demselben Muster, reagiert aber auf den Wechsel von \u00aboff\u00bb auf \u00abon\u00bb. Hier braucht es meist keine Verz\u00f6gerung, denn ein zu sp\u00e4t begr\u00fcssender Flur ist \u00e4rgerlicher als ein verfr\u00fchter. Erg\u00e4nzt man die Bedingung um <code>sun.sun<\/code> (unter Horizont), schaltet das Ankunftslicht nur dann, wenn es draussen tats\u00e4chlich dunkel ist:<\/p>\n<pre><code>\u2029# automations.yaml\u2029- alias: \"Ankunft \u2013 Begr\u00fcssungslicht bei Dunkelheit\"\u2029  trigger:\u2029    - platform: state\u2029      entity_id: binary_sensor.jemand_zu_hause\u2029      to: \"on\"\u2029  condition:\u2029    - condition: state\u2029      entity_id: sun.sun\u2029      state: below_horizon\u2029  action:\u2029    - service: scene.turn_on\u2029      target:\u2029        entity_id: scene.ankunft\u2029<\/code><\/pre>\n<p>Wer die Anwesenheit zus\u00e4tzlich raumgenau verfeinern will, findet im Artikel zu <a href=\"https:\/\/www.coremind.ch\/wordpress\/\">mmWave-Presence sauber tunen mit ZHA und Tuya<\/a> die Erg\u00e4nzung f\u00fcr drinnen \u2013 <code>person<\/code> regelt das grobe \u00abim Haus oder nicht\u00bb, mmWave das feine \u00abin diesem Raum\u00bb.<\/p>\n<h2>Fazit<\/h2>\n<p>Die <code>person<\/code>-Entit\u00e4t ist eines der wirkungsvollsten Bordmittel von Home Assistant \u2013 und kostet nichts ausser ein paar Minuten Konfiguration. Wer seine Tracker sauber zuordnet, den Zonenradius anpasst und einen Template-Sensor f\u00fcr die Hausanwesenheit baut, bekommt eine Anwesenheitserkennung, die in der Praxis verl\u00e4sslich funktioniert. Das ist das Fundament, auf dem alle weiteren Anwesenheits-Automationen erst wirklich stabil werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer mehrere Ger\u00e4te tr\u00e4gt \u2013 iPhone, iPad, MacBook \u2013, kennt das Problem: Home Assistant sieht jeden device_tracker einzeln, und pl\u00f6tzlich gilt das Haus als \u00ableer\u00bb, nur weil das iPhone kurz das WLAN verloren hat. Die L\u00f6sung steckt seit Jahren im Kern von HA und wird trotzdem untersch\u00e4tzt: die person-Entit\u00e4t in Kombination mit der zone. Sie &#8230; <a title=\"Anwesenheit b\u00fcndeln mit person &#038; zone\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/anwesenheit-buendeln-mit-person-zone\/\" aria-label=\"Mehr Informationen \u00fcber Anwesenheit b\u00fcndeln mit person &#038; zone\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-884","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=884"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/884\/revisions"}],"predecessor-version":[{"id":956,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/884\/revisions\/956"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}