Homematic: Anwesenheit und Abwesenheit zuverlässig(!) über Apple HomeKit realisieren

Ich bastle nun ca. 1 Jahr sehr intensiv an Homematic herum und habe, wie Ihr sicher schon bemerkt habt, hier im Blog bereits die ein oder andere Anleitung zu diesem Thema verfasst. Doch an ein Thema habe ich mich noch nicht herangetraut. Die Erkennung von An- und Abwesenheit ist ein wirklich sehr schwieriges Thema.

Es wurden schon viele Versuche unternommen dieses Problem technisch zu lösen. Doch fangen wir von vorne an. Warum muss meine Steuerung wissen wann ich anwesend und wann ich abwesend bin? Ganz einfach: So kann automatisch Energie gespart, die Alarmanlage eingeschaltet und gewisse Programme ablaufen, die sonst händisch gestartet werden müssten. Die größte Motivation ist also wie fast immer der Komfort. Doch auch das Einsparpotential sollte an dieser Stelle nicht unterschätzt werden.


Was gibt es für Möglichkeiten und wo liegen die Schwächen? Ich habe mich schon länger zu diesem Thema schlau gemacht. Philipp hat schon mit iBeacons experimentiert, die ein Signal ausstrahlen, dass das Smartphone empfängt. Sobald dieses in Reichweite ist, wird eine System-Variable in der CCU2 auf anwesend gesetzt. Wird das Signal vom Handy nicht mehr empfangen (über Bluetooth low energie), dann muss sich das Gerät bei der Zentrale melden und die Variable auf Abwesend setzen. In der Theorie hört sich das einfacher an als es dann wirklich ist. Das System könnte sogar auf einzelne Personen herunter gebrochen werden. Doch leider hat es sehr viele Tücken. Es zeigte sich, dass es außerdem nicht sehr zuverlässig funktioniert was evtl. auch auf eine schlechte Reichweite de iBeacons zurückzuführen ist.

Eine weitere Möglichkeit besteht darin, das An- und Abmelden im WLAN von Smartphones, an der Fritz! Box auszuwerten. Doch hier kommen wir zum Problem bei Apple Geräten. Diese deaktivieren ihr Funkmodul im Standby. Dadurch ist ein Tracken nur sehr erschwert möglich und es müssen einige Tricks mit zusätzlichen Zeitbausteinen eingebaut werden. Daher war das System für mich auch eher ungeeignet.

Ein einfacher Taster an der Tür würde natürlich all diese Probleme aushebeln! Doch dieser kann morgens im Stress vergessen werden, daher ist die einfache Lösung für mich auch keine Alternative. Ich habe ein paar Tage mit dem ePaper-Display-Taster experimentiert. Dieser führte beim Tastendruck eine automatische Abfrage aus, ob alle Fenster geschlossen sind und ob alle Lichter ausgeschaltet wurden. Doch die Kommunikation dauert ca. 2 Sekunden und man muss gezwungenermaßen warten, bis die Rückmeldung kommt. Das hätte klappen können, doch schon nach dem 2. Tag ist das Projekt gestorben ;-)

Nun kommen wir zu einem Ansatz, den ich seit ca. 2 Wochen teste und bisher sehr überrascht über das Ergebnis bin! Warum? Weil es einfach funktioniert! Die Lösung ist so simpel wie praktisch. Ich will jetzt nicht wieder das Thema: „Was ist besser Android oder iOS…“ anschneiden doch manche Sache kann Apple einfach besser und das ist in diesem Fall die Ortsbestimmung.

Apple kann mit Events auf das Betreten oder Verlassen eines Ortes mit Aktionen reagieren. Da ich vor wenigen Wochen meine CCU2 Siri tauglich gemacht habe (zum Artikel), kann ich natürlich auch alle Funktionen von Apple HomeKit nutzen. Einer dieser Funktionen ist die Automation. Die meisten Funktionen sind für mich eher uninteressant, es können Direktverknüpfungen zwischen Sensor und Aktor erstellt werden wie z.B. wenn ein Bewegungsmelder Bewegung erkannt hat —> schalte Lampe ein.

Alle Homematic Sensoren und Aktoren tauchen durch die Homebridge in der HomeKit App auf und können daher auch angesprochen werden. Das besondere ist, dass auch auf Programme und Variablen zugegriffen werden kann. Zweiteres nutze ich genau für meine Anwesenheitserkennung.

Was wird dazu benötigt? Klar, ihr braucht eine CCU2 mit einer Variable (bool) für die Anwesenheit. Dann benötigt Ihr einen Raspberry Pi auf dem die Homebridge läuft (zur Anleitung). Wie Ihr die Variablen ebenfalls in die Homebridge bekommt, habe ich hier genau erklärt. Dann benötigt Ihr natürlich (sorry Android-User!) ein Gerät auf dem iOS10.x läuft. Leider funktioniert die Automation nur dann, wenn ein Apple Gerät wie z.B. Apple TV4 oder iPad (iOS10.x) sich zu Hause befindet. Dieses übernimmt dann die Kommunikation mit iCloud, sodass Ihr Euch auch nicht um den externen Zugang kümmern müsst. Der Zugriff geschieht in diesem Fall komplett über die Cloud von Apple.

BezeichnungAmazonELV-ShopELV-Bausatz
4 GB SD-KarteLinkLinknicht verfügbar
CCU2LinkLinkBausatz
Raspberry Pi 2LinkLinknicht verfügbar
Raspberry Pi3LinkLinknicht verfügbar
Apple TV 4 Gen.aktuell bei eBay am günstigsten

Den Apple TV zur HomeKit Basisstation machen: Der Apple TV übernimmt wie oben schon kurz beschrieben die Gatewayfunktion zwischen Eurem heimischen LAN, der Homebridge und, falls vorhanden, den restlichen Bluetooth Geräten wie z.B. Elgato Eve Motion usw. Wie Ihr den Apple TV einrichten müsst, habe ich hier bereits beschrieben.

Die Einrichtung auf dem iPhone: Nachdem Ihr alles wie oben beschrieben eingerichtet habt, könnt Ihr die Apple HomeKit App starten. Dort klickt Ihr dann auf den Menüpunkt „Automation“ rechts unten in der Ecke. Dann erstellen wir eine neue Automation über die Schaltfläche „Neue Automation erstellen“.

Hier wählen wir nun den Punkt „Meine Standortänderung“ aus. Dort können wir nun frei wählen, bei welchem Ort unsere Funktion ausgeführt werden soll. Ich habe hier als Beispiel den Kölner Hbf ausgewählt. Ihr könnt hier auch Eure Adresse der Arbeitsstätte, den Flughafen, Euer Zuhause oder sonstige Orte eingeben.

Mit der kleinen blauen Kugel könnt Ihr den Radius, der abgedeckt werden soll variieren. 100m ist dabei aber leider der kleinste Abstand, der gewählt werden kann. Sollte keine GPS-Ortung verfügbar sein (in Gebäuden) kann dieser wert natürlich etwas abweichen! Dann solltet Ihr noch auswählen, ob Ihr überwachen wollt, ob der Bereich betreten oder verlassen wird. Das kann über die beiden Schaltflächen „Wenn ich erreiche“ und „Ich verlasse“ gemacht werden.

Im nächsten Schritt wählen wir nun aus, was beim Verlassen oder Betreten passieren soll. In meinem Fall will ich lediglich eine Variable in der CCU2 setzen. Daher wähle ich die Variable „Abwesenheit“ aus. Im letzten Schritt wird nun festgelegt welchen Zustand die Variable erhalten soll. Dazu wird der „Schalter“ der Variable entweder aktiviert oder deaktiviert. Mit einem Klick auf „Fertig“ ist die Automation abgeschlossen.

Es können natürlich mehrere Orte und Variablen überwacht und geschaltet werden, daher ist man sehr flexibel unterwegs. Die Auswertung der Variablen und Programme, die je nach Zustand ausgeführt werden sollen, wird aber weiterhin in der CCU2 abgebildet.

Vorteile: Funktioniert auch bei mehreren Personen. Es wird intern anscheinend eine oder-Abfrage durchgeführt. Das bedeutet, dass wenn Euer Partner das Haus verlässt, Ihr aber noch anwesend seid, dann wird die Variable von HomeKit nicht automatisch gekippt. Daher funktioniert die Erkennung ob jemand im Haus ist sehr gut und genau. Es können unterschiedliche Orte festgelegt werden. So habe ich z.B. eine zusätzliche Variable, wenn ich mich auf der Arbeit befinde. Dann weiß meine Steuerung auch, wenn ich meinen Arbeitsplatz in Richtung Zuhause verlasse um so z.B. die Heizung bereits auf Komforttemperatur zu heizen oder andere Aktionen auszuführen. Es können beliebig viele Orte festgelegt werden. Beispiele wäre hier z.B. der Flughafen für einen automatischen Urlaubsmodus usw..

Nachteile: Leider nicht für Android-User, externes System, das nur schwer durchschaubar ist, der Akkuverbrauch steigt durch die Ortung etwas an. Der Radius kann nicht kleiner als 100m um das Haus gelegt werden. Aktuell ist es nicht möglich, für jede Person eine einzelne Variable anzulegen. Es werden aktuell nur alle zugelassenen Personen in Summe ausgewertet.




Passende Beiträge


20 Comments

  • Michael

    9. Mai 2017

    Hi. Ich habe mittlerweile auch seit ein paar Monaten zwei Variablen für meine Frau und mich um die Abwesenheit zu erkennen. Das klappt eigentlich sehr gut.
    Aus irgendeinem Grund werden aber manchmal die Automationen einfach nicht ausgelöst. Habe es jetzt schon mehrfach gehabt das wir das Haus verlassen haben, aber die HomeKit Automation zum ändern der Variablen einfach nicht ausgeführt wird.

    Hat jemand ähnliches bei HomeKit beobachtet?

    Reply
  • Roman

    12. April 2017

    Hallo,
    erstmal vielen Dank für dieses tolle Tutorial!

    Ich habe dies gestern bei mir nachgebildet und bin in diesem Zusammenhang auf eine Frage gestoßen.
    Bei uns zu Hause gibt es zwei iPhones und zwei iPad. Als Homekit Zentrale fungiert mein iPad. Als Variable nutze ich, die bereits auf der CCU2 hinterlegte „Anwesenheit“ (aktiv = anwesend, deaktiv = abwesend).
    Jetzt habe ich auf meinem iPhone die oben beschriebene Automatisierung in Homekit eingerichtet (bei erreichen = aktivieren, bei verlassen = deaktivieren).
    Meine Frau hatte ich zuvor schon zu unseren zu Hause in Homekit hinzugefügt, allerdings bisher mit eingeschränkten Rechten! Ich habe ihr jetzt nach Einrichtung der Automatisierung volle Rechte eingerichtet. Die von mir eingerichtet Automatisierung, sieht sie nun auch auf ihrem iPhone (vorher war der Punkt Automatisierung bei eingeschränken Rechten für sie nicht vorhanden).

    Nun verhielt es sich heute Morgen bei uns so, dass die Anwesenheitsvariable deaktivierte, als ich dass Haus verlies (meine Frau war aber noch zu Hause).
    Ich hätte jetzt erwartet, dass die Variabl solang aktiv bleibt, bis auch meine Frau das Haus verlässt. Liegt das daran, dass ich ihr volle Rechte eingerichtet habe?

    Außerdem ist mir aufgefallen, dass ich die Variable auch manuell durch anklicken aktivieren bzw. deaktivieren kann. Hier hätte ich erwartet, dass die Variable durch die Automatisierung entweder gar nicht manuell beeinflussbar ist oder aber aufgrund meiner Position automatisch wieder in den entsprechenden Status umspringt.

    Viele Grüße
    Roman
    Liegt das daran, dass ich

    Reply
  • Holger

    8. Februar 2017

    Hallo Sebastian,
    ganz blöde Frage zur Anwesenheitserkennung: was spricht gegen das Geofencing von pocket control HM?
    Hierüber bekommt doch jeder Benutzer eine Systemvariable „Zone iPhone Benutzer_n“ in die CCU2 eingetragen. Diese zeigt ja, ob der Benutzer anwesend oder abwesend ist. Und dazu habe ich ein Programm, was die Systemvariable „Anwesenheit“ abhängig von der Systemvariablen von Benutzer A oder B auf Anwesend / Abwesend stellt.
    Ich habe nur noch nicht die 100%ige Zuverlässigkeit der Erkennung von pocket control HM kontrolliert, habe aber anfangs bei jedem Betreten und Verlassen der HomeZone auch eine Push-Mitteilung auf dem iPhone erhalten, bis ich die iregendwann mal abgestellt habe, weil ich ja weiß, wann ich nach Hause komme.
    Gruß
    Holger

    Reply
    • Sebastian

      Sebastian

      9. Februar 2017

      Hallo Holger,
      ich betreibe die App mit eine VPN Tunnel, daher klappt das Geofencing dann bei mir nicht. Es müsste jedesmal ein VPn-Tunnel aufgebaut werden, daher für mich wenig funktionabel.

      Reply
      • Markus

        13. Februar 2017

        Hallöchen,
        kann ich so nicht bestätigen. Ich nutze einen VPN Tunnel, pocket control HM App für iOS und die Geofencing-Funktion in der App. Das alles funktioniert hervorragend: ist keiner Zuhause, so springt die Variable in der CCU2 auf „abwesend“ und die damit gekoppelten Programme werden ausgelöst (z.B. Heizungssteuerung).
        Gruß Markus

        Reply
  • Torsten

    7. Februar 2017

    Ich hab’s jetzt auch. Ich habe für jedes Familienmitglied eine Anwesenheitsvariable angelegt. Dann diese Variablen via Homebridge in Richtung HomeKit annonciert. Von meinem iPhone aus der Home-App hab ich dann Einladungen an meine Familienmitglieder geschickt. Dabei ist wichtig, dass man den Eingeladenen volle Rechte gibt. Denn – jetzt kommt’s:
    Ich habe dann wie hier beschrieben eine Automatisierung auf dem iPhone von Person A eingerichtet, die die Anwesenheitsvariable eben dieser Person ändert. Das hab ich auf allen iPhones gemacht und voila: es geht.
    Das Kuriose ist, dass auf allen iPhones alle Automatisierungen zu sehen sind und scheinbar dort laufen. Tun sie aber wohl doch nicht. Wenn meine Frau das Haus verlässt verändert sich nur ihre Variable. Wenn ich das tue meine, usw.

    Damit werd ich jetzt mal anfangen zu spielen.

    Gruß
    Torsten

    Reply
    • Sebastian

      Sebastian

      7. Februar 2017

      Hallo Torsten, top! Das habe ich gar nicht ausprobiert. Wenn es so läuft dann ist es sogar besser ;-)

      Reply
      • Torsten

        15. Februar 2017

        Nach ner knappen Woche kann ich sagen: läuft super. Ich schalte die Unterhaltungselektronik meiner Söhne aus, sobald sie weg sind. Wie alle Jugendlichen vergessen die permanent, das selber zu machen. Ausserdem schalte ich Aussen- und Flurlicht an, wenn jemand heimkommt und nach der „offiziellen“ automatischen Hausbeleuchtungszeit, an Land kommt (= spät, äh früh). Klappt auch klasse. Als nächstes kommt die Heizung im Bad meiner Söhne und in meinem Homeoffice dran. Für’s Homeoffice suche ich noch einen Weg, wie ich von der Homematic aus (am liebsten ohne große Umwege), ical Daten auswerten kann (in meinem Kalender steht immer ein ganztägiges „HO“ drin, wenn ich im Homeoffice arbeite)…

        Gruß
        Torsten

        Reply
  • Torsten

    6. Februar 2017

    Als Homematic Neuling hätte ich da mal eine Frage:

    Wäre es nicht cleverer, für jeden Hausbewohner eine eigene An-/Abwesenheitsvariable zu setzen und die „Gesamtabwesenheit“ dann mit einem AND aller individuellen An-/Abwesenheiten zu erzeugen? Mit der individuellen Abwesenheit könnte man dann ja auch noch weitere Steuerungen (z.B. Temperaturabsenkung im Kinderzimmer bei Abwesenheit des Stammhalters) realisieren.

    Das wäre jetzt eigentlich so meine Gedanke gewesen. Allerdings ist mir im Moment schleierhaft, wie ich mit der komischen grafischen Oberfläche der CCU ein AND zwischen den Systemvariablen hinbekomme. Vielleicht kann mir da einer von Euch Profis auf’s Pferd helfen.

    Gruß
    Torsten

    Reply
    • Sebastian

      Sebastian

      6. Februar 2017

      Hallo Torsten, das war auch ein Ansatz. Leider ist es über HomeKit aktuell nicht möglich personenbezogene ortungen durchzuführen. Daher ist über HomeKit aktuell nur eine Anwesenheit aller Personen möglich. man könnte natürlich das System erweitern und zusätzlich die Handys pingen. Dann kann man genauer unterscheiden.

      Reply
      • Torsten

        6. Februar 2017

        Ich hab mich unklar ausgedrückt. Mein Gedanke war: Deine Lösung nehmen (also setzen einer Homematic Variablen via HomeKit, wie von Dir beschrieben). Aber eben individuell pro iPhone user. Das scheint bei mir auch so zu gehen. Die Variable steht aktuell auf abwesend (bin nicht daheim), aber meine Frau ist daheim. Sprich: nur mein iPhone scheint die Variable zu ändern.

        Wenn man jetzt eine Variable pro Bewohne definiert, dann kann man halt individuell verfolgen, wer da ist und wer nicht. Für die Gesamtabwesenheit braucht man dann vermutlich ein Skript, wie dieses hier:

        var bewohner_a = dom.GetObject („Anwesenheit-bewohner_a“);
        var bewohner_b = dom.GetObject („Anwesenheit-bewohner_b“);
        var bewohner_c = dom.GetObject („Anwesenheit-bewohner_c“);
        var bewohner_d = dom.GetObject („Anwesenheit-bewohner_d“);
        var homekit_anwesenheit = dom.GetObject („Homekit-Anwesenheit“);

        boolean jemand_da;
        jemand_da = bewohner_a && bewohner_b && bewohner_c && bewohner_d;

        homekit_anwesenheit.Variable(jemand_da);

        Damit werde ich jetzt mal rumprobieren…..

        Gruß
        Torsten

        Reply
        • Daniel

          6. Februar 2017

          Hallo Torsten,
          warum legst du nicht eine neue Systemvariable an und steuerst diese über ein Programm auf der CCU?
          Also wenn User 1 oder User2 oder User3 anwesend dann setzte Gesamtanwesenheit auf anwesend. ansonsten auf abwesend.
          Fertig.

          Lg
          Daniel

          Reply
          • Torsten

            6. Februar 2017

            Ok, auch denkbar. Welche Bedingung muß ich denn für die Variablen setzen? Bei Änderung oder bei Aktualisierung?

            Gruß
            Torsten

  • Pedromania

    4. Februar 2017

    Hallo Sebastian,

    Danke für die super Anleitung. Ich selbst habe anfangs mit geofencing experimentIert. Leider ging das voll zu Lasten des Akkus.
    Mit Ping funktioniert es nicht wegen des standby Modus des iPhone….

    In Zusammenarbeit mit der fritzbox ging es ein Plugin für die ccu (hm_detect), welches zyklisch und zuverlässig an der FB den online Status pollt und dann die systemvariablen setzt. Dabei können mehrere Geräte durch Eingabe der MAC identifiziert werden. Ich habe das Polling auf zwei Min. Gesetzt, kann aber auch auf 5 Sec gesetzt werden.

    Reply
  • Ali

    26. Januar 2017

    Hallo,
    bei mir funktioniert die Lösung über 2 im Haus befindliche iBeacons sehr gut. Auf den iPhones läuft Geofancy und Locate. Über Geofancy wird im lokalen Netz die Variable Anwesenheit in der CCU2 gesetzt (für jede Person). Locate checkt die Verbindung zu den iBeacons im Hintergrund (ohne Locate klappt es irgendwie nicht). Damit dieses auch außerhalb des WLAN-Netzes funktioniert (=Abwesenheit), wurde auf jedem iPhone eine automatische VPN-Verbindung eingerichtet (VPN on-demand). Und es klappt perfekt – Geofancy wartet mit dem Aufruf der URL zum Setzen der Variable solange, bis VPN aufgebaut wurde (auch im Standby).

    Reply
    • Sebastian

      Sebastian

      27. Januar 2017

      Hallo Ali,
      auch eine gute Idee, welche iBeacons verwendest Du?

      Reply
  • Carsten

    23. Januar 2017

    Tipp: Bei Android mit der App „Tasker“ ebenfalls zu realisieren.

    Reply
    • Sebastian

      Sebastian

      23. Januar 2017

      Hallo Carsten,
      Danke für den Hinweis, versteht sich die App mit HomeKit? Ich selbst habe leider kein Android um dies zu testen…

      Reply
  • Daniel

    21. Januar 2017

    Hallo,
    habe das genau so wie du realisiert.
    Habe mein „Haus“ in der HomeKit App auch mit meiner Lebensgefährtin geteilt (geht in den Einstellungen) und dann jeweils auf unseren iPhones eine Automation zum setzen der Anwesend Variablen angelegt.
    Es sieht zwar genau ident aus aber ich denke es wird auch auf den erzeuger der Automation geschaut.
    Bisher funktioniert das Einwandfrei. Wenn ich das Haus verlasse wird auch nur meine Variable auf abwesend gesetzt.
    Somit kann die Heizung bzw. das Licht auch nur dann abgeschalten werden wenn beide Personen das Haus verlassen haben.
    Wie du bin auch ich der Meinung dass das die einzige „Automation“ in HomeKit ist die sinnvoll ist.
    Alles andere läuft bei mir auch über die CCU.
    Hatte ähnliche probleme mit der Anwesenheitskontrolle mit iOS.
    Versucht beim öffnen der Tür eine Push Nachricht und gleichzeitig einen Ping (da das iPhone durch die Push Nachricht „wach“ ist) an das iPhone mit einer fixen IP zu senden funktionieren zwar aber auf die dauer nerven die ständigen „Haustüre wurde geöffnet“ Nachrichten! ;-)
    Verwendet ihr nur noch Telegram für alle anderen Pushnachrichten?
    Ich hatte anfangs Prowl und danach @Home.
    Was ist der Vorteil an Telegram?
    Lg
    Daniel

    Reply
    • Sebastian

      Sebastian

      21. Januar 2017

      Hey Daniel,
      danke für die ausführliche Rückmeldung!
      Wie Du schon sagst ist die Funktion leider etwas undurchsichtig im Bezug auf Multi-User. Das ist aber Apple typisch ;-) Solange es funktioniert ist alles top! Ich verwende Telegram, da hat Philipp ja einen super Artikel zu geschrieben. Bei mit klappt das sehr gut, daher habe ich auch noch nicht viele andere Dienste getestet…

      Reply

Schreibe einen Kommentar