Smart Home – openHAB 2 Anwesenheitserkennung

Smart Home – openHAB 2 Anwesenheitserkennung

Dieser Beitrag erklärt Euch die Möglichkeiten der openHAB 2 Anwesenheitserkennung. Es gibt diverse Möglichkeiten dies zu realisieren. Ich nutze für die Anwesenheitserkennung das FritzBox TR064 Binding. Dieses Binding bietet Euch die Möglichkeit zu erkennen, ob eine bestimmte MAC Adresse im Netzwerk angemeldet ist.  In diesem Beispiel wird überprüft, ob ein Smartphone im WLAN. Das Binding findet ihr nicht in der Paper UI, daher muss diesmal etwas anders vorgegangen werden. Ihr erfahrt also wie ihr das Binding auch ohne Paper UI installiert und wie die Einrichtung im Smart Home Designer aussieht. Ich habe ein FritzBox 6490 (kdg) und eine 7270 im Einsatz. Mit der 6490 hatte ich Probleme mit dem Update des Status, aber mit der 7270 v3 wurde der Status gut erkannt.

Das FritzBox TR064 Binding unterstüzt die folgenden Fritz Boxen

Letztes Update am 24. November 2017 0:13
.

Die FritzBox 7270 v3 ist eine günstige Alternative.

openHAB 2 Anwesenheitserkennung – manuelle Installation von Bindings

Inzwischen findet sich das FritzboxTR064 Binding in den Addons. Ruft die Seite http://<openHAB_IP>:8080/paperui/index.html#/extensions auf und sucht nach TR064 drückt anschließend Install (1)

openHAB-2-Install-TR064-Fritzbox

Falls ihr ein Binding ein Mal nicht in der Paper UI finden könnt, ist auch eine manuelle Installation möglich. Ihr könnt generell diesem Vorgehen folgen.

Geht in das Binding Wiki von openHAB und sucht nach dem Namen des Binding. In diesem Fall „FritzBox TR064“. Klickt den entsprechenden Link des Binding an und ihr kommt auf die Wiki-Seite FritzBox TR064 Binding. Hier findet ihr neben der Beschreibung des Binding auch den Link zum Download des FritzBox TR064 Binding. Ladet die aktuelle Version des .jar File herunter und legt diese Datei in Euer Installationsverzeichnis von openHAB2 in den Unterordner …\addons.

openHAB-2-Anwesenheitserkennung-FritzBoxTR064-Addons

Dies war der erste Schritt zur Installation. Ihr müsst nun das Binding entsprechend konfigurieren.

Werbung

openHAB 2 Anwesenheitserkennung – Binding Konfigurieren

Ihr könnt gleich noch mal in das Verzeichnis von openhab gehen und den Unterordner …\conf\transform öffnen. Hier legt eine neue Textdatei mit dem Namen presence.map an.

Öffnet nun den Smart Home Designer und geht in den Ordner Transform. Hier öffnet ihr die eben angelegte Datei presence.map und übersetzt den Zustand 1 mit „zu Hause“ und den Zustand 0 mit „Unterwegs“ oder was auch immer ihr als Text für den Status haben wollt.

openHAB-2-Smart-Home-Designer-Transform

Damit dies unter openHAB2 auch greift, fehlt ein Addon. Das Addon ist eine sogenannte Transformation und nennt sich entsprechend Map Transformation. Öffnet also die Extension in der Paper UI (http://localhost:8080/ui/index.html#/extensions) und installiert Map Transformation

openHAB-2-Install-Transform-map

Nun geht es wieder in den Smart Home Designer. Ihr legt nun Euer Item an. Wie das geht habe ich bereits im Beitrag openHAB 2 Sprachsteuerung Konfiguration im Kapitel „openHAB2 Sprachsteuerung – Konfiguration openHAB2 Designer“ beschrieben.  Fügt bei Bedarf eine Gruppe für die Anwesenheit ein. Ich fasse meine Anwesenheiten in der Gruppe Anwesenheit  zusammen. Aber nun zum Item. Fügt folgende Zeilen hinzu:

Was bedeuten diese Zeilen? Über diese Syntax wird ein Kontakt

  1. mit dem Namen fritzboxMacOnline
  2. mit der Bezeichnung Anwesenheitsstatus
  3. mit einem Mapping  [MAP(presence.map):%s] wird der Status 0 und 1 in den Text aus der presence.map. übersetzt
  4. mit dem Icon <present>
  5. in der Gruppe (Anwesenheit)
  6. mit der Prüfung auf die MAC Adresse { fritzboxtr064=“maconline:AA-BB-CC-DD-EE-FF“}  definiert

Anstatt AA-BB-CC-DD-EE-FF gebt ihr natürlich Eure MAC Adresse an. Diese ermittelt ihr entweder direkt über die FritzBox oder ihr macht es am Handy, in dem ihr in die erweiterten WLAN Einstellungen geht. (Screenshots Android)

openHAB-2-Anwesenheitserkennung-Handy-WLANopenHAB-2-Anwesenheitserkennung-Handy-MACAdresse

Wollt ihr den Status über Eure Sitemap erreichen, pflegt entsprechend Eure Sitemap. Bei mir läuft es wie beschrieben über eine eigene Gruppe. Daher ergänze ich bei mir  folgende Zeile.

Nach diesen Schritten sollte bereits die Anwesenheit ergänzt sein.

openHAB-2-Anwesenheitserkennung-Sitemap

Innerhalb der Gruppe könnt ihr den Status sehen.

openHAB-2-Anwesenheitserkennung-Status

Dieser wechselt entsprechend von „zu Hause“ nach „Unterwegs“ sobald jemand das Haus verlässt.

Mein nächster Beitrag wird sich mit der Einbindung eines Google Kalendar per CalDAV Binding befassen. Warum wird noch nicht verraten. Bleibt dran …

Werbung
38 Comments
  1. […] im Haus aus und Außen aus. Weiterhin verwende ich das FritzBox Binding, welches ich auch zur Anwesenheitserkennung nutze, zum Ausschalten des WLAN. Ich könnte auch weitere Dinge automatisieren wie z.B. einen Wecker […]

  2. […] Smart Home – openHAB 2 Anwesenheitserkennung […]

  3. Reply
    Stefan 1. November 2016 at 17:47

    Danke für das Tutorial.
    Kleine Anmerkung: ich vermisse zu Anfang eine Erläuterung, wie die Anwesenheitserkennung denn eigentlich funktioniert.
    Nur aus dem Kontext heraus kann ich in etwa erschließen, dass diese Methode wohl so funktioniert, dass ein Smartphone mit aktivem WLan der „Auslöser“ ist.
    Die Info zu Anfang wäre für mich ganz hilfreich gewesen, da diese Methode für mich dann schonmal ausscheidet, weil ich zu Hause kein WLan am Smartphone aktiv habe. Zum Surfen nutze ich den Laptop / PC / Tablet, für WHatsapp etc. brauche ich kein WLan und schone lieber den Smartpfone-Akku.

    • Reply
      Thomas Schwarz 1. November 2016 at 19:25

      Gerne. Da hast Du recht. Ich werde die Einleitung nochmal anpassen.

  4. Reply
    Reinhard 6. Dezember 2016 at 2:37

    Hallo,

    hat schon jemand die Erkennung mit einer FritzBox 7490 (OS 6.60) erfolgreich getestet?
    Das Script funktioniert bei mir wie oben beschrieben.

    Bei der FritzBox ist die Mac-Adresse aber immer als „Aktive Verbindung“ vorhanden – auch wenn ich mit dem SmartPhone das Haus (WLAN) verlasse. Starte ich dann die FritzBox einmal neu, wird die Mac-Adresse entfernt.

    Schöne Grüße,
    Reinhard

  5. Reply
    Reinhard 10. Dezember 2016 at 10:37

    Ich habe jetzt meine FritzBox zurückgesetzt. Jetzt scheint die Präsenzsteuerung mit der 7490 un der aktuellen Firmware zu funktionieren.

    • Reply
      Thomas Schwarz 12. Dezember 2016 at 7:50

      Hallo Reinhard,

      Danke für die Info und viel Erfolg weiterhin.

      Beste Grüße
      Thomas

  6. Reply
    Stefan 14. Dezember 2016 at 10:24

    Sorry aber hierbei gibt es ein Problem, moderne Handys schalten zum Strom sparen das WLAN ab, somit funktioniert die WLAN Methode nicht, man sollte da er etwas mit Bluetooth LE versuchen, welches sich automatisch beim Eintritt in das Haus verbindet und auch verbunden bleibt.

    • Reply
      Thomas Schwarz 16. Dezember 2016 at 7:04

      Hallo Stefan,

      ist bei Android normalerweise einfach eine Einstellungssache. Oben siehst Du den Screenshot mit den WLAN Einstellungen vom Smartphone. Hier gibt es eine Option „WLAN im Standby an“. Die steht bei mir auf Immer. Daher habe ich hier keinerlei Probleme. Bluetooth LE ist eine Alternative aufgrund der geringen Reichweite war es für mich keine Alternative. WLAN läuft stabil und hat ausreichend Empfang für meine Bedürfnisse.

      Grüße
      Thomas

  7. Reply
    Thomas 14. Dezember 2016 at 11:48

    Hallo Thomas,

    jetzt habe ich noch ein Problem, sobald ich das Binding in den Addon Ordner werfe, habe ich Papier UI und im REST API immer die Fehlermeldung „ERROR: 500 – Intenral Server Error.

    Die geht auch nicht mehr weg. Auch nicht wenn ich das Binding aus dem Addon Ordner lösche 🙁

    Liebe Grüße Thomas

    • Reply
      Thomas 14. Dezember 2016 at 11:51

      Sorry habe den Fehler schon gefunden. Ist an den Fritzbox Items gelegen.

      • Reply
        Tobias 19. Dezember 2016 at 7:49

        Hallo Thomas,
        könntest du bitte deine Erkenntnisse zum ERROR 500 Problem teilen, ich habe genau das selbe Thema. Sobald ich ein Contact Item zur Anwesenheitserkennung eintrage, kommt dieser Fehler.

        Contact fboxOnlineTobi "Tobi Handy [MAP(presence.map):%d]" (gAnwesend) {fritzboxtr064="maconline:xx-xx-xx-xx-xx-xx"}

        Gruß Tobi

        • Thomas Schwarz 23. Dezember 2016 at 20:45

          Hallo Tobi,

          kann mit der Sitemap zusammenhängen. Mehr kann ich ohne Debug Log nicht sagen. Prüfe, ob hier alles richtig ist.

          Grüße
          Thomas

  8. Reply
    Thomas 27. Dezember 2016 at 11:22

    Hallo,

    es liegt an dem %d
    Wenn ich das einfüge bekomme ich nur noch ERROR 500

    • Reply
      Thomas Schwarz 29. Dezember 2016 at 14:15

      Hallo Thomas,

      danke für deinen Hinweis. Fehler hört sich nach diesem Bug an: https://github.com/openhab/openhab.android/issues/193. Ich lasse mich nun über den Status informieren. Wenn der Bug weg ist, schreibe ich es hier rein. So können die Nutzer gezielt ein Update machen =)

      Grüße
      Thomas

      • Reply
        Thomas 30. Dezember 2016 at 14:20

        Hallo Thomas,

        ich habe das ganze jetzt umgangen, indem ich das %d in den Items weggelassen habe. Dafür aber in der Sitemap eingefügt. So funktioniert das bei mir einwandfrei.

        Item:
        Contact Julia_status „Presence (Wifi)“ { fritzboxtr064=“maconline:00-00-00-00-00-00″ }

        Sitemap:
        Frame label=“Wer ist zuhause?“ {

        Text item=Julia_status label=“Anwesenheitsstatus Julia [MAP(presence.map):%d]“
        }

        Ich hoffe das hilf einigen weiter 🙂

        • Carsten 13. Januar 2017 at 20:20

          Danke 🙂

          Hab es so wie du gemacht und funktioniert!

  9. […] Smart Home – openHAB 2 Anwesenheitserkennung […]

  10. Reply
    Jan Morawe 5. Februar 2017 at 22:46

    Moin Zusammen,

    hat es einen bestimmten Grund warum dieses Binding nicht mit jeder Fritzbox funktioniert? habe es zum testen im Büro an eine 7490 gehabt da hat es funktioniert! Bei mir zuhause an der 3370 funktioniert es nicht obwohl ich in den Heimnetz Einstellungen tr064 aktiviert hab.

    jemand eine Idee wodran das liegen könnte?

    Danke im vorraus!

    MfG Jan

    • Reply
      Thomas Schwarz 6. Februar 2017 at 19:46

      Hallo Jan,

      in der Original Binding Beschreibung steht nicht, dass die FB 3370 unterstützt wird. Muss nichts heißen, aber daher bin ich mir nicht ganz sicher. Was Du auf jeden Fall testen solltest ist ein Neustart der FB, falls Du dies noch nicht gemacht hast.

      Beste Grüße
      Thomas

  11. Reply
    Christian 5. März 2017 at 20:07

    hmm.. bei mir funzt das nicht … 🙁 hab ne 6360 von kdg sogar User und PW im den Services /Binding und der 6360 hinterlegt. aber irgendwie wird die presence.map im Group Item nicht angezeigt. das Feld beliebt immer leer.

    was ich nicht verstanden hab bei der Item anfrage : Contact FritzboxMacOnline holt er sich da den Kontakt über den Service ? und ist das Wort FritzboxMacOnline über das Binding gegeben ?

    • Reply
      Thomas Schwarz 6. März 2017 at 6:14

      Hallo Christian,

      Lass die Map Transformation mal aus dem Binding. Zeigt der Contact den Zustand überhaupt an? Falls nicht, hast du nach der Aktivierung des Zugriffs in der Fritz die Box noch mal gestartet?

      Merke auch gerade, dass ich den Beitrag aktualisieren muss =)

      Beste Grüße
      Thomas

  12. Reply
    christian 6. März 2017 at 19:40

    Hallo Thomas,
    Transform Binding deinstalliert , und Fritzbox neu gestartet. Anwesenheitsstatus ist weiterhin leer.

    Wie kann ich testen das der Login in der Fritzbox funktioniert?

    lg
    Christian

    • Reply
      Thomas Schwarz 6. März 2017 at 20:44

      Hey Christian,

      was sagt denn folgender Aufruf: http://:49000/tr64desc.xml? Siehst Du den Inhalt der XML Datei?

      Grüße
      Thomas

  13. Reply
    christian 7. März 2017 at 6:57

    Moin Thomas,
    ja unter http://IP Fritzbox:49000/tr64desc.xml
    bekomm ich eine Auflistung der Fitzboxdaten, das spielt.

    • Reply
      Thomas Schwarz 7. März 2017 at 7:04

      Moin Christian,

      hmpf, wie sieht dein Item und die Sitemap aus?

      Grüße
      Thomas

  14. Reply
    christian 8. März 2017 at 19:37

    Hi Thomas,
    eigentlich genau so wie du es angegeben hast, ich hab auch schon die Version Tobias versucht, ohne Erfolg

    Sidemap:

    Group item=Anwesenheit label=“Anwesenheit“

    Item:
    Contact fritzboxMacOnline „Anwesenheitsstatus [MAP(presence.map):%d]“ (Anwesenheit) { fritzboxtr064=“maconline: xx:xx:xx:xx:xx:xx“ }

    lg christian

    • Reply
      Thomas Schwarz 8. März 2017 at 20:11

      Nimm mal die MAP Transformation raus. Siehst Du dann etwas?


      Contact fritzboxMacOnline "Anwesenheitsstatus" (Anwesenheit) { fritzboxtr064="maconline: xx:xx:xx:xx:xx:xx" }

  15. Reply
    christian 9. März 2017 at 8:22

    Das ist wieder die Abteilung , Hokuspokus :-)…. alle Binding deinstalliert, danach alles nochmal gemacht.Zack da ging es.
    Allerdings mit der Sidemap :

    Text item=fbMACOnline label=“Anwesend [MAP(presence.map):%d]“

    Danke bis hierher !… #derteufelisteineichhörnchen

    Eine Frage :

    wie könnte denn eine Rule aussehen , wenn ich die Anwesenheit in einen KNX Befehl umwandeln möchte ?

    lg
    christian

    • Reply
      Thomas Schwarz 9. März 2017 at 8:53

      Au Backe, so ist das manchmal. Aber wenn es läuft, dann läuft es. =)

      Schau Dir mal den aktuellen Beitrag HomeMatic Heizungssteuerung an. Hier steht im Kapitel „HomeMatic – Heizungssteuerung Regeln konfigurieren“ eine Regel, die Du kopieren kannst. Den Kontakt co_fenster erstetzt Du durch deinen Kontakt fbMACOnline. Die IF Abfrage auf den Status passt du entsprechend deiner Begriffe an („CLOSED“ ist z.B. „zu Hause“ oder was auch immer). Wenn Du bereits KNX Items hast, ersetzt Du zu guter Letzt das Item he_set_temp durch dein KNX Item. Den Wert in der Klammer von sendCommand änderst auf die entspechenden Werte für den KNX Bus. z.B. ON / OFF für Schalter/Licht, MOVE, STOP für Rollo… postUpdate brauchst Du nicht.

      Ich hoffe, dass ist einigermaßen Verständlich…

      BG
      Thomas

  16. Reply
    christian 9. März 2017 at 20:42

    Mega !…

    Danke, hab ich soweit verstanden,
    ich hab mal zum testen eine Rule angelegt:

    rule „Christian Anwesenheit“

    when Item fbMACOnlineCR received update
    then

    if

    (fbMACOnlineCR.state.toString == „zuhause“)
    sendTelegram(„christian“,“zuhause“)

    else

    (fbMACOnlineCR.state.toString == „unterwegs“)
    sendTelegram(„christian“,“tschüss“)
    end

    daraus resultierend sendet er alle 10 Sekunden (de Takt indem die Fritzbox abgefragt wird ein Telegramm mit tschüss. Obwohl der Status zuhause ist. …hmm

    Auf jeden Fall ein spannendes Thema 🙂

    lg christian

    • Reply
      Thomas Schwarz 10. März 2017 at 13:14

      Hallo Christian,

      als Ergänzung. Vielleicht hilft Dir Regel von Rich. Scheint schön schlank zu sein und mögliche kurze Unterbrechungen über das Expire Binding zu regeln.
      https://community.openhab.org/t/generic-presence-detection/17878/11

      Beste Grüße
      Thomas

    • Reply
      Thomas Schwarz 9. März 2017 at 21:11

      Hallo Christian,

      erst mal Danke für die Spende. Ich finde es super, dass Du immer etwas gibst =)

      Hmm, hast Du mal im openHAB Verzeichnis unter …userdata\logs deine Events zum Item fbMACOnlineCR geprüft. Wechselt der Status hier auch hin und her?

      LGz
      Thomas

  17. Reply
    W. Hornberger 3. Juni 2017 at 13:14

    Hallo;

    Erstmal grosses Danke an den Verfasser! Super beschrieben und gut verständlich!

    Leider funktioniert bei mir die Anwesenheitserkennung auch nicht. Ich hab die verschiedenen Vorschläge getestet, und auch alles nochmal neu aufgesetzt incl. FB Restart.

    Ich sehe den Status nicht ob ich anwesend bin oder nicht. Also in der Gruppe ist gar kein Eintrag zu sehen.

    Ich müsste nochmal im Detail wissen, wie ich prüfen kann, ob der Contact überhaupt einen Wert von der FB bekommt und ob er den auch ausgibt. Gibts dazu irgendeine Möglichkeit?

    Vielen Dank vorab;

    Wilhelm

  18. Reply
    Carsten 27. Oktober 2017 at 18:43

    Super Anleitungen hier!

    Trotzdem bekomme ich das leider irgendwie nicht hin: sobald ich das item ( Contact fritzboxMacOnline „Anwesenheitsstatus [MAP(presence.map):%d]“ (Anwesenheit) { fritzboxtr064=“maconline:XY:XY:XY:BA:B6:68″ } ) hinzufüge bekomme ich im log folgenden Fehler:

    2017-10-27 18:38:37.615 [ERROR] [ing.fritzboxtr064.internal.Tr064Comm] – Error received from FritzBox:


    s:Client
    UPnPError

    402
    Invalid Args

    . SOAP request was: maconline:XY:XY:XY:BA:B6:68

    Fritz!Box ist eine 7430, openhab2.1 und ich bin verzweifelt 😉

    • Reply
      Carsten 27. Oktober 2017 at 18:51

      ich korrigiere: der Fehler kommt auch ohne Eintrag des Items – anscheinend ist das Binding bei mir nicht in Ordnung?! Dann weiß ich auch nicht weiter…

      • Reply
        Thomas Schwarz 1. November 2017 at 21:40

        Hallo Carsten,

        wie hast Du das Binding installiert? So wie im Beitrag? Das gibt es inzwischen auch über die Paper UI. Beitrag ist aktualisiert. Versuchs mal und Sorry.

        Beste Grüße
        Thomas

  19. Reply
    Jörg 29. Oktober 2017 at 0:50

    Hallo zusammen,

    hat jemand von Euch das Binding mit der FritzBox 7580 getestet?

    Danke für Eure Hilfe!

    Gruß
    Jörg

Hinterlasse einen Kommentar

One Smart Home - Ein Smart Home Blog

CYBER

MONDAY

ES IST CYBER MONDAY WOCHE!

Bis zu 50 % Rabatt!

Auch auf Smart Home Produkte

20.11.2017 - 27.11.2017

50 %

LIMITIERTE ANZAHL

WERBUNG

AMAZON

CYBER

MONDAY

ES IST CYBER MONDAY WOCHE!

Bis zu 50 % Rabatt!

Auch auf Smart Home Produkte

Nur solange der Vorrat reicht!

20.11.2017 - 27.11.2017

50 %

LIMITIERTE ANZAHL

WERBUNG

AMAZON