Homematic Anwesenheiterkennung per Bluetooth

Im Artikel Homematic Anwesenheitserkennung per Smartphone habe ich bereits eine gut funktionierende Lösung zur Anwesenheitserkennung vorgestellt.
Warum jetzt auch noch eine Homematic Bluetooth Anwesenheitserkennung?
Zum einen ist die Lösung an Wlan-fähige Geräte gebunden und zum anderen wird es immer mehr Mode, ein Smartphone mit Standby-Wlan auf den Markt zu bringen.
Mit dieser Anleitung möchte ich Ihnen zeigen, wie man die Homematic Anwesenheitserkennung mit Bluetooth erweitert. So können die Smartphones zusätzlich auf Bluetooth-Erreichbarkeit und viele weitere Geräte Wie Fitness-Tracker, G-Tags, usw. auf Anwesenheit geprüft werden.

Voraussetzung: Lauffähige ioBroker Installation (auf Raspberry Pi)

-> ioBroker auf Raspberry Pi installieren

Los gehts!

Benötigte Linux-Pakete installieren

Mit Hilfe des Programms Putty auf dem Raspberry Pi per SSH einloggen

  • Putty starten
  • Homematic Bluetooth Putty
    Unter Host/IP den Hostnamen oder die IP-Adresse eurer ioBroker-Insallation eintragen
    Port 22 / SSH
    Open
  • Benutzernamen und Passwort eingeben
  • Hat sich die Console erfolgreich geöffnet, können folgende Befehle eingegeben werden:
    sudo apt-get update
    sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev fping arp-scan
    systemctl start bluetooth 

    Damit holt sich der APT-Paketmanager die neuesten Source-Listen und installiert anschließend die benötigten Pakete.
    Hat alles erfolgreich geklappt, kann die Console mit dem Befehl exit geschlossen werden.

  • ioBroker Adapter

    • Die iobroker.Admin Seite (http://deine-iobroker-ip:8081) aufrufen
      • ioBroker Radar Adapter hinzufügen
      • Homematic Bluetooth Anwesenheitserkennung
        mit + wird der Adapter hinzugefügt. Bitte hierbei achten, dass mindestens Version 1.1.3 installiert wird.
        Falls eine niedrigere Version installiert wurde, so bitte über Github auf die neueste Version updaten.
        Dazu auf das iobroker github update Icon klicken, Radar auswählen und Installieren klicken.

      • ioBroker Radar-Adapter konfigurieren
      • Homematic Bluetooth Anwesenheitserkennung
        Sobald der Adapter installiert ist, taucht er unter Instanzen auf.
        Über das Homematic Blueooth Anwesenheitserkennung Icon Konfiguration Icon gelangt man zur Konfiguration.
        Homematic Bluetooth Konfiguration
        Homematic Bluetooth Gerät hinzufügen
        Über + werden jetzt neue Geräte hinzugefügt, die auf IP-Adresse und Bluetooth Mac-Adresse geprüft werden.

        Wie man die IP-Adresse für das Smartphone fest vergibt, das habe ich bereits im Artikel Homematic Anwesenheitserkennung per Smartphone beschrieben.
        Die Bluetooth-Adresse bekommt man bei Android-Geräten unter Einstellungen – Geräteinformationen – Status leicht heraus. Man kann auch die Geräte erstmal weglassen und den Adapter starten. Dann werden unter den ioBroker-Zuständen bei dem Wert radar.0.AllUnknownBTs alle unbekannten Bluetooth-Adressen aufgelistet.

        Bei den Einstellungen „Verzögerung in Sekunden zwischen Abfragen“ und „Wie oft muss ein Device nicht verfügbar sein bevor es als ’nicht da‘ markiert wird“ muss man ein wenig experimentieren, falls es zu einem Fehlstatus kommt. Bei diesem Beispiel haben die Werte 30 / 6 sehr gut beim Samsung Galaxy S7 und dem Iphone 6 funktioniert. Für G-Tags lieber 60 / 10 benutzen, da diese seltener ein Bluetooth-Signal aussenden. Möchte man für verschiedene Geräte auch verschiedene Parameter nutzen, so können auch mehrere Adapter hinzugefügt werden.

        Nun wird der Radar-Adapter noch aktiviert
        Homematic Bluetooth Adapter

      • ioBroker Javascript Adapter hinzufügen
        Homematic Javascript Adapter
        mit + wird der Adapter hinzugefügt.

      • ioBroker Javascript Adapter konfigurieren
        Homematic Javascript Adapter konfigurieren
        Sobald der Adapter installiert ist, taucht er unter Instanzen auf.
        Über das Homematic Blueooth Anwesenheitserkennung Icon Konfiguration Icon gelangt man zur Konfiguration.
        Ist alles erledigt, kann dieser Adapter nun ebenfalls gestartet werden.

    ioBroker Script

  • Bevor wir das Script einfügen können, müssen wir zuerst den Reiter SCRIPTE in der Ansicht anzeigen lassen.
    Dies geschieht über das Icon ioBroker Javascript und anschließendem Klick auf Ansicht -> Scripte.
    Ist der Reiter Script jetzt zu sehen, kann der Bearbeitungsmodus mit erneutem Klick auf das Symbol beendet werden.

  • Homematic Javascript
    Wechseln wir nun zum Reiter Scripte.
    Anschließend wird per Klick auf das Icon ioBroker Javascript NEU ein neues Script vom Typ Javascript erstellt.
    Diesem geben wir einen sinnvollen Namen (z.B. Anwesenheitserkennung) und fügen folgenden Code ein:

    // ioBroker-Script für Homematic Bluetooth Anwesenheitserkennung by Homematic-Guru.de
    // https://homematic-guru.de/homematic-bluetooth-anwesenheitserkennung
    var tuerkontakt = "hm-rpc.0.NEQ0123456.1.STATE"; /*Hier die ID des Türkontakts eintragen*/
    var anwesenheit = "hm-rega.0.12345"; /*Hier die ID der Anwesenheitsvariable eintragen*/
    var min = 15; /*Hier die Zeitspanne der aktiven Abwesenheitserkennung nach Türschließung*/
    var inrange = false; /*Falls kein Türkontakt vorhanden auf true setzen*/
    
    on(tuerkontakt, function(obj) {
       if (obj.newState.val === false) {
            inrange = true;
            setTimeout(function() {
                inrange = false;
            }, min * 60 * 1000);
        }
    });
    on("radar.0.countHere", function(obj) {
       if (obj.newState.val === 0) {
            if (inrange === true) {
            setState(anwesenheit,false);
            } else {
                log("Radar CountHere 0 nach Zeit abgelaufen", "warn");
                }
            }
        if (obj.newState.val > 0) { setState(anwesenheit,true); }
    });
    // Script Ende
    

    Jetzt werden noch die Parameter anwesenheit und tuerkontakt und ggf. min angepasst.
    anwesenheit steht für die ID der Homematic-Variable Anwesenheit
    tuerkontakt steht für die ID des Homematic Türkontakts.
    min steht für die Zeitspanne, in der das Script greift, nachdem die Türe geschlossen wurde.
    Somit wird ein Fehlverhalten bei z.B. Akku vom Smartphone leer unterbunden. Ist kein Türkontakt vorhanden, so kann der Parameter inrange auf true gesetzt werden. Die Logik überspringt dann die Abfrage.
    Die dazu jeweiligen IDs findet man im ioBroker unter Objekte.
    ioBroker Objekte

    Ist alles soweit erledigt, kann das Script gespeichert und gestartet werden.

  • Fertig!

    Verwendete Hardware

    Funktionsweise Homematic Bluetooth Anwesenheitserkennung

    • Der Radar-Adapter prüft alle X Sekunden ob die Geräte (Smartphone, G-TAG, Fitness-Tracker) per IP oder Bluetooth erreichbar sind und füllt Objekt-Variablen mit dessen Zustand.
      Die Objekt-IDs beginnen mit radar.0.*
      Wichtig ist hierbei die radar.0.countHere. Diese Variable zählt die anwesenden Geräte/Personen.
    • Das von mir erstellte Script prüft die Variable radar.0.countHere auf Änderung und setzt die Homematic Anwesenheitsvariable im Fall größer 0 immer sofort auf Anwesend.
      Im Fall 0 wird zusätzlich geprüft, ob die Türe innerhalb einer Zeitspanne (Standard 15 Minuten) geöffnet wurde und setzt im positiven Fall die Homematic Anwesenheitsvariable auf Abwesend. Dies verhindert, dass man nicht plötzlich im Dunkeln steht, wenn das Smartphone nicht erreichbar ist.
      Ist keine zusätzliche Prüfung gewünscht, kann man im Script die Variable inrange auf true setzen.

    Schreibe einen Kommentar

    Dir hat der Beitrag gefallen?

    Trage dich kostenlos & unverbindlich in den Newsletter ein
    und verpasse keinen Beitrag mehr!

    Schaue auch gerne auf Facebook vorbei: