Ankündigung

Einklappen
Keine Ankündigung bisher.

Bluetooth LE presence detection

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Bluetooth LE presence detection

    Hallo zusammen,

    bevor ich auf edomi stieß, hatte ich (habe ich noch immer) Domoticz als Smart Home Zentrale auf einem RaspberryPi laufen.
    Darüber steuere ich ebenfalls eine An/Abwesenheitserkennung über Bluetooth LE Beacons (NUT mini (nur diese von NUT) http://nutspace.com/products/nutmini)
    Die Ansteuerung der Beacons erfolgt hierbei über ein python Script, welches den Status der Beacons in eine Uservariable schreibt.
    Vielleicht könnte man dieses Script zu einem Edomi-LBS umschreiben.
    Findet sich jemand der daran Interesse hat? Ich würde ggf. auch eine kleine Aufwandsentschädigung in Form eines NUT minis beisteuern.

    Hier der Artikel zum Script: https://www.domoticz.com/wiki/Presen..._energy_Beacon)
    Es funktioniert allerdings nur mit Beacons, die ständig an sind und ein Bluetooth Signal ausstrahlen, wie z.B. mit den NUT minis. Im Artikel ist noch die Rede von NUT 2, die allerdings nicht funktionieren, das habe ich bereits getestet.

    Ich würde mich freuen, wenn jemand Interesse daran hat und einen LBS schreiben könnte.

    Viele Grüße!

    #2
    Das klingt interessant. Ich hatte geplant etwas ähnliches mit einem RPi zero und Mobiltelefonen zu machen. Ich kannte diese NUT minis bislang nicht.
    Ist es richtig, dass hier ein BLE4 Empfänger in der Nähe der Anwesenheitserkennung benötigt wird, also z.B. ein RPi mit einem BLE4 USB Adapter?
    Eigentlich is ja dann gar kein EDOMI LBS notwendig, sondern es müsste lediglich ein Skript auf dem RPi laufen, welches regelmäßig über die Remote-API von EDOMI oder z.B. über den UDP Receiver LBS einen Trigger zur Verfügung stellt, welches NUTS sich gerade im Empfangsbereich aufhalten.

    BTW: Wie sicher ist eigentlich die Kommunikation. Ist ein BT-Pairing erforderlich? Können solche NUTS gefaked werden? Oder könnte man sowas auch als Zugangsberechtigung einsetzen?

    Kommentar


      #3
      die Anwesenheitserkennung mit Smartphone (über wlan) habe ich auch schon getestet, was in der Praxis aber nicht funktionierte, da zumindest bei den iPhones das WLAN im Standby immer ausgeschaltet wird.
      Ja, du benötigst in jedem Fall einen BLE Gegenpart. Bei mir ist es, genau wie du geschrieben hast, ein BLE Adapter am RaspberryPi.

      Kannst du mir das mit der Remote API und dem UDP Receiver noch mal genauer erklären und ggf. ein Beispiel beschreiben?
      Ein Pairing ist in diesem Fall nicht erforderlich.

      Bezüglich der Sicherheit: Da wäre ich in jedem Fall vorsichtig und würde mich noch mal ganz genau erkundigen wie die Kommunikation im Detail funktioniert.
      Grob gesagt ist es so, dass der "Server", hier das Raspberry, über BLE alle in der Nähe befindlichen Beacons scannt und somit erkennen kann. im Script ist die entsprechende MAC Adresse der eingesetzten Beacons hinterlegt, anhand welcher der Server erkennt wer Anwesend ist und wer nicht.

      Ich könnte mir vorstellen, dass es möglich ist über eine gefälschte MAC Adresse, sich als einer dieser Beacons auszugeben und somit ggf. auch Zutritt zu erlangen.
      Das ist aber auch nur eine Mutmaßung.

      Kommentar


        #4
        ich glaube ich weiß was du meinst. Das wäre ja ideal!
        Somit müsste man lediglich eine Zeile im Script anpassen und könnte direkt ein KO mit dem entsprechenden Wert des Beacons befüllen.
        z.B. http://<edomi-IP>/remote/?login=user&pass=user&koid=XXXX&kovalue=1

        richtig?

        Kommentar


          #5
          Ganz genau! So sollte das funktionieren.

          Bzgl. Security: Das war genau die Frage, ob nur die MAC Adresse gescannt wird oder ob ein erfolgreiches Pairing gemacht wird. Letzteres wäre deutlich sicherer. Aber ich weiß nicht, ob das die NUTS überhaupt unterstützen.

          Kommentar


            #6
            Die Frage ist nicht ob sie das Pairing unterstützen, sondern ob es für eine Kommunikation (zwingend) erforderlich ist, um ein System sicher(er) zu machen.
            In diesem Fall findet die Kommunikation ja nur auf den untersten Schichten statt und es wird auch nur geprüft ob ein Gerät in der Nähe ist oder nicht. Je nach dem, wird dann der Status auf z.B. "HOME" oder "AWAY" gesetzt.
            Ich habe die NUTs über die Kommandline auch schon miteinander "pairen" und "trusten" und "untrusten" können. Alles aber ohne jegliche gegenseitige Authentifizierung. Hört sich also irgendwie sehr unsicher an. Wie weit man dabei gehen kann, habe ich aber nicht getestet, wäre aber sicher interessant.

            Danke erst mal für deinen Tip mit der remote API von Edomi. Ich werde das mal testen und dann hier noch mal berichten.

            VG

            Kommentar


              #7
              Klingt wirklich interessant.
              Aber wo wird der NUT angebracht, damit er sicher mit den Personen das Haus verlässt?
              Beim Schlüsselbund schwierig, wenn der nicht immer mitgeht (Mitfahrgelegenheit)
              Handtasche, wenn diese ständig gewechselt wird
              ...
              Grüße,
              Lio

              Kommentar


                #8
                Zitat von nillix Beitrag anzeigen
                Die Frage ist nicht ob sie das Pairing unterstützen, sondern ob es für eine Kommunikation (zwingend) erforderlich ist, um ein System sicher(er) zu machen.
                es ist zwingend erforderlich wenn es sicher sein soll. Für die reine Anwesenheit ist es unkritisch.
                Wenn nur auf unterster Ebene geprüft wird, ob ein Device in der Nähe ist, dann kann es ganz einfach gefaked werden.

                Zitat von nillix Beitrag anzeigen
                In diesem Fall findet die Kommunikation ja nur auf den untersten Schichten statt und es wird auch nur geprüft ob ein Gerät in der Nähe ist oder nicht. Je nach dem, wird dann der Status auf z.B. "HOME" oder "AWAY" gesetzt.
                Ich habe die NUTs über die Kommandline auch schon miteinander "pairen" und "trusten" und "untrusten" können. Alles aber ohne jegliche gegenseitige Authentifizierung. Hört sich also irgendwie sehr unsicher an. Wie weit man dabei gehen kann, habe ich aber nicht getestet, wäre aber sicher interessant.
                Ja das wäre es. Werde mich auch noch mal etwas tiefer damit beschäftigen.


                Zitat von nillix Beitrag anzeigen
                Danke erst mal für deinen Tip mit der remote API von Edomi. Ich werde das mal testen und dann hier noch mal berichten.
                Ja, das ist sicher ein guter Anfang. Freue mich auf mehr Details.


                Kommentar


                  #9
                  Zitat von lio123 Beitrag anzeigen
                  Klingt wirklich interessant.
                  Aber wo wird der NUT angebracht, damit er sicher mit den Personen das Haus verlässt?
                  Beim Schlüsselbund schwierig, wenn der nicht immer mitgeht (Mitfahrgelegenheit)
                  Handtasche, wenn diese ständig gewechselt wird
                  Also bei uns hängen sie am Schlüsselbund, den haben wir immer dabei. Dafür habe ich die Dinger auch gekauft.
                  Muss natürlich jeder für sich sehen, wo er sie dann mit sich trägt, damit es auch sinnvoll ist.

                  Kommentar


                    #10
                    Moin zusammen,

                    ich habe nun endlich die Zeit gefunden alles zu testen und möchte euch nun noch das Ergebnis präsentieren.

                    Kurz und knapp: Es funktioniert!

                    Von jonofe auf die richtige Fährte gebracht, habe ich das Ganze über die Edomi remote API gelöst und musste nur ein paar kleine Änderungen an dem schon vorhandenen Python Script ändern.

                    Man benötigt auch lediglich ein paar Dinge:

                    1. ein KO vom Typ Variant
                    2. eine Eingangsbox mit so vielen Eingängen wie Beacons vorhanden oder eben mehrere Eingangsboxen
                    3. entsprechende Ausgangsboxen wo der Wert des KO´s, welches am Eingang der Eingangsbox hängt, an E1 oder E2 übergeben wird
                    4. das folgende, etwas modifizierte python script: https://www.dropbox.com/s/68zv3jqkfb...ection.py?dl=1
                    5. Script an eure Gegebenheiten anpassen (IP Adresse vom EDOMI Server, MAC Adressen der Beacons, ggf. Name und ID des KO´s anpassen, welches den Wert übergeben bekommen soll)
                    5. Bluetoothfähiger EDOMI Server oder anderen Rechner der als Bluetooth Empfänger fungiert (Bluetooth 4.0, alias BLE)
                    6. mindestens einen BLE Beacon, wie z.B.: diese hier: http://nutspace.com/products/nutmini

                    Das KO, welches den Wert aus dem Script übergeben bekommt, muss noch für den Fernzugriff in Edomi berechtigt werden:
                    Konfiguration->Fernzugriff

                    Im Script sind auch noch mal ein paar Erläuterungen zu den einzelnen Punkten aufgeführt.
                    Falls Bedarf besteht, kann ich gerne, bei Zeiten, noch mal eine bebilderte Anleitung verfassen.

                    Soweit fürs Erste.

                    Viele Grüße
                    Angehängte Dateien
                    Zuletzt geändert von nillix; 10.02.2017, 11:05.

                    Kommentar


                      #11
                      WAU!! Spannendes Thema!! Würde ich gerne auf meine APU1/ 2 installieren.
                      Aber vorher muss ein Bluetooth- USB Dongle her.

                      In der Hoffnung, dass der APU Meister (Micha/ vento66) das liest:
                      Geht das überhaupt? Was müsste ich installieren? Welchen Dongle?

                      Mal Tante Google bemüht, hmm hilft mir ehrlich gesagt nicht soo viel,
                      oder ich suche falsch…
                      Oder sollte man wegen der Reichweite eine pi laufen lassen, der in der Nähe
                      der „Eingangstür/ Bereich/ Schlüsselablage“ aufzubauen ist?
                      Ich bin mal gespannt wie das hier weiter geht…
                      DANKE DIR für die Arbeit/ die Idee…
                      Gruß Marcus
                      P.S. ist das die Richtung: http://linuxsoft.cern.ch/cern/centos...bluetooth.html

                      Kommentar


                        #12
                        Moin tunneltruppe,

                        du benötigst einen bluetooth 4.0 alias Bluetooth Low Energie Dongle. Z.B. so einen: https://www.amazon.de/dp/B01DM8WMW0?psc=1
                        hab noch einen OVP über, wenn du Interesse hast.
                        auf dem Hostsystem muss der Bluetooth Stack installiert werden. Unter Linux brauchst du die Pakete bluez, python-bluez und python-requests.
                        ob nun raspberryPi oder APU ist eigentlich egal.

                        viele Grüße

                        Kommentar


                          #13
                          Hi Nillix,

                          coole Idee. Inspieriert von Deiner Lösung habe ich mir diese Woche kurzfristig eine Anwesenheitserkennung auf Basis des TR-064 mit der Fritzbox realisiert (muss ich noch online stellen). Die funktioniert erstaunlich gut.

                          Ist mir allerdings um den Alarm anzuschalten noch etwas zu unsicher (WLan am Telefon aus....). Ich fände eine Kombination aus BLE + TR-064 ganz spannend. Jetzt zu meiner Frage: Hast Du schon mal versucht, gleich 2 BLE Stack´s auf dem Rasperry laufen zu lassen (Hintergrund: Habe 2 Eingänge und bewege mich u.U. lange im Keller - Da ist die Reichweite u.U. nicht ausreichen.

                          VG

                          Marc

                          Kommentar


                            #14
                            Moin MSW,

                            nein, das habe ich noch nicht gemacht. Du könntest doch aber einen zusätzlichen raspi (oder was auch immer) in den Keller stellen, der deine Anwesenheit auch erkennt wenn du durch den Eingang im Keller rein gehst?!

                            VG

                            Kommentar


                              #15
                              Hi Nillix,

                              muss mir die Beacons bestellen. Raspberry 3 und ein BT4 Adapter liegen noch rum. Somit habe ich theoretisch 2 BT und teste das ganze mit 2 Stacks.....

                              VG

                              Kommentar

                              Lädt...
                              X