Bluetooth Anwesenheitssteuerung
Moderator: Co-Administratoren
-
- Beiträge: 1343
- Registriert: 27.06.2015, 22:17
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 32 Mal
Bluetooth Anwesenheitssteuerung
Hi!
Ich habe seit einiger Zeit eine Anwesenheitserkennung auf Basis von Bluetooth, Wifi und dem Raspberry Pi im Einsatz.
Nachdem ich jetzt ein Jahr lang ein recht redimentäres (eigenes) Script genutzt habe, habe ich nun mit Hilfe eines bestehenden Scipts für eine andere Haussteuerung das ganz etwas schöner gestaltet. Unter anderem unterstützt die Steuerung nun verschiedene Intervalle zur Überprüfung. So ist es möglich, bei erkannter Anwesenheit seltener zu prüfen als bei Abwesenheit. Dies sorgt für eine Erkennung innerhalb von Sekunden wenn das Bluetooth Gerät in Reichweite kommt.
Ich möchte mich hier bei "realwheel" aus dem Domoticz Forum für das original Script bedanken, welches ich für Homematic angepasst habe.
Was ihr braucht:
Einen Raspberry Pi mit Raspbian
Einen Bluetooth Dongle (ich nutze einen Bluetooth 4.0 Dongle)
l2ping und arp-scan
XMLAPI auf der CCU
Die Installation und der Test von Bluetooth unter Raspbian ist hier gut beschrieben:
http://www.modmypi.com/blog/installing- ... oth-dongle
Unter Raspbian muss Bluetooth eingerichtet werden (siehe Google) und der Befehl l2ping funktionieren. Darauf gehe ich jetzt nicht im Detail ein. Es gibt unzählige Howto's im Internet die beschrieben wie das einzurichten ist. Für den Wifi Ping ist ebenfalls arp-scan notwendig (apt-get install arp-scan)
Ich bin gespannt auf Vorschläge, Kritik oder Hinweise zu dem Script. Vielleicht habt ihr auch noch Ideen für Verbesserungen.
Bei Fragen zur Installation stehe ich natürlich gerne zur Verfügung.
Ich kann aktuell mit einem Bluetooth 4.0 Dongle (Klasse 1) eine ganze 100 m2 Wohnung über zwei Etagen abdecken. Für Häuser und größere Bereiche muss man das ganze mal testen. Ich behaupte aber mal das man bei zentraler Positionierung des Dongles so schnell keine Probleme bekommt. Test's dazu muss ich mal bei Gelegenheit machen...
Aufruf:
script.sh BTMAC WIFIMAC ise_id
Ein automatischer Start lässt sich über die rc.local bei jedem Start einrichten. Ich habe einfach für jedes Bluetooth Gerät einen eigenen Eintrag in der rc.local vorgenommen. Ein Beispielaufruf für "/etc/rc.local" (Pfad muss natürlich an euren angepasst werden):
sh /usr/bin/homematic/anwesenheit.sh AA:BB:CC:DD:EE:FF AA:BB:CC:DD:EE:FF 1234 iPhone_Michel &
Ich freue mich auf Kommentare!
Update auf 1.2! Änderungen siehe Changelog im Script! Zum updaten einfach das Script ersetzen und im Aufruf in der rc.local den 4. Parameter hinzufügen.
Gruß
Michèl
P.S.: iOS Geräte schalten im Standby das WLAN Modul aus. Also kann die Anwesenheit hier nur über Bluetooth erfolgen, welches immer an ist. Das script kann aber zumindest zusätzlich prüfen ob das Gerät per WLAN erreichbar ist wenn es per Bluetooth mal nicht erreichbar ist.
Möchte man WLAN nicht nutzen, kann man als WLAN MAC einfach 00:00:00:00:00:00 eintragen.
Ich habe seit einiger Zeit eine Anwesenheitserkennung auf Basis von Bluetooth, Wifi und dem Raspberry Pi im Einsatz.
Nachdem ich jetzt ein Jahr lang ein recht redimentäres (eigenes) Script genutzt habe, habe ich nun mit Hilfe eines bestehenden Scipts für eine andere Haussteuerung das ganz etwas schöner gestaltet. Unter anderem unterstützt die Steuerung nun verschiedene Intervalle zur Überprüfung. So ist es möglich, bei erkannter Anwesenheit seltener zu prüfen als bei Abwesenheit. Dies sorgt für eine Erkennung innerhalb von Sekunden wenn das Bluetooth Gerät in Reichweite kommt.
Ich möchte mich hier bei "realwheel" aus dem Domoticz Forum für das original Script bedanken, welches ich für Homematic angepasst habe.
Was ihr braucht:
Einen Raspberry Pi mit Raspbian
Einen Bluetooth Dongle (ich nutze einen Bluetooth 4.0 Dongle)
l2ping und arp-scan
XMLAPI auf der CCU
Die Installation und der Test von Bluetooth unter Raspbian ist hier gut beschrieben:
http://www.modmypi.com/blog/installing- ... oth-dongle
Unter Raspbian muss Bluetooth eingerichtet werden (siehe Google) und der Befehl l2ping funktionieren. Darauf gehe ich jetzt nicht im Detail ein. Es gibt unzählige Howto's im Internet die beschrieben wie das einzurichten ist. Für den Wifi Ping ist ebenfalls arp-scan notwendig (apt-get install arp-scan)
Ich bin gespannt auf Vorschläge, Kritik oder Hinweise zu dem Script. Vielleicht habt ihr auch noch Ideen für Verbesserungen.
Bei Fragen zur Installation stehe ich natürlich gerne zur Verfügung.
Ich kann aktuell mit einem Bluetooth 4.0 Dongle (Klasse 1) eine ganze 100 m2 Wohnung über zwei Etagen abdecken. Für Häuser und größere Bereiche muss man das ganze mal testen. Ich behaupte aber mal das man bei zentraler Positionierung des Dongles so schnell keine Probleme bekommt. Test's dazu muss ich mal bei Gelegenheit machen...
Aufruf:
script.sh BTMAC WIFIMAC ise_id
Ein automatischer Start lässt sich über die rc.local bei jedem Start einrichten. Ich habe einfach für jedes Bluetooth Gerät einen eigenen Eintrag in der rc.local vorgenommen. Ein Beispielaufruf für "/etc/rc.local" (Pfad muss natürlich an euren angepasst werden):
sh /usr/bin/homematic/anwesenheit.sh AA:BB:CC:DD:EE:FF AA:BB:CC:DD:EE:FF 1234 iPhone_Michel &
Ich freue mich auf Kommentare!
Update auf 1.2! Änderungen siehe Changelog im Script! Zum updaten einfach das Script ersetzen und im Aufruf in der rc.local den 4. Parameter hinzufügen.
Gruß
Michèl
P.S.: iOS Geräte schalten im Standby das WLAN Modul aus. Also kann die Anwesenheit hier nur über Bluetooth erfolgen, welches immer an ist. Das script kann aber zumindest zusätzlich prüfen ob das Gerät per WLAN erreichbar ist wenn es per Bluetooth mal nicht erreichbar ist.
Möchte man WLAN nicht nutzen, kann man als WLAN MAC einfach 00:00:00:00:00:00 eintragen.
Zuletzt geändert von darkbrain85 am 03.07.2015, 21:51, insgesamt 8-mal geändert.
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Bluetooth Anwesenheitssteuerung
Es gibt User, die möchten keine externen SEiten aufrufen, denen sie nicht vertrauen.
Hier das o.g. script
Hier das o.g. script
Code: Alles auswählen
auf Wunsch des Erfinders wieder gelöscht.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Re: Bluetooth Anwesenheitssteuerung
Die Idee finde ich gut.
Mein Bluetooth im handy ist wegen der freisprechanlage im auto eh ständig an.
@Herbert:
In diesem speziellen Fall ist ein link IMHO OK, damit der Autor bei Änderungen im script nicht überall wo er es mal vorgestellt hat dieses ebenfalls andern muss.
Gruß
Rainer
Gesendet von meinem Cynus T7 mit Tapatalk
Mein Bluetooth im handy ist wegen der freisprechanlage im auto eh ständig an.
@Herbert:
In diesem speziellen Fall ist ein link IMHO OK, damit der Autor bei Änderungen im script nicht überall wo er es mal vorgestellt hat dieses ebenfalls andern muss.
Gruß
Rainer
Gesendet von meinem Cynus T7 mit Tapatalk
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
-
- Beiträge: 1343
- Registriert: 27.06.2015, 22:17
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 32 Mal
Re: Bluetooth Anwesenheitssteuerung
Der Code ist auf Pastebin deutlich übersichtlicher als hier im Forum. Ich wüsste auch nicht was das mit vertrauen zu tun hat. Die Seite an sich ist in keiner Weise bedenklich und der Code ist ja quasi selbst kontrollierbar.Herbert_Testmann hat geschrieben:Es gibt User, die möchten keine externen SEiten aufrufen, denen sie nicht vertrauen.
Tatsächlich würde ich Dich aber auch bitten den Code aus deinem Beitrag wieder zu entfernen. Ich kann diesen nicht aktuell halten was schnell zu Problemen bei "bequemen" Nutzern führt. Wenn gewünscht kann ich den Code als Datei an meinen Post anhängen. Wobei ich wirklich nicht weiss was an Pastebin schlimm ist.
Selbst wenn nicht, ist das hier spätestens ein Grund Bluetooth eingeschaltet zu lassen. Zumal Bluetooth 4.0 in modernen Smartphones so wenig Strom braucht, das es nicht wirklich auffällt. Ich denke hier ist der Nutzen um vieles größer. Jedenfalls hat man hier eine Anwesenheitssteuerung die auch tatsächlich voll automatisch funktioniert.Homoran hat geschrieben:Die Idee finde ich gut.
Mein Bluetooth im handy ist wegen der freisprechanlage im auto eh ständig an.
Ich habe das über eine Variable für jedes Gerät gelöst. Sobald eine dieser variablen auf "Anwesend" springt, wird die "Anwesenheit" variable auch auf "wahr" gesetzt.
Zusätzlich habe ich noch eine Variable für die Automatik, um im Bedarfsfall auch einen manuellen Betrieb zu ermöglichen.
Da hier im Haushalt jeder ein Handy hat, was auch immer mitgeführt wird, ist das die für uns optimale Lösung. Aber selbst bei (kleinen)Kindern ohne Smartphone wäre es möglich einen kleinen USB Dongle dafür zu nutzen. Entsprechende Hardware dafür gibt es ja. Die Möglichkeiten sind quasi nahezu unbegrenzt.
Selbstverständlich kann man das auch ohne RaspberryPi realisieren. Ich habe das ganze z.B. auch anfangs auf einem Virtualisierten Debian unter ESXi genutzt. Da der Raspberry hier aber auch noch als USV Server und ccuio Server dient, kann er das auch noch machen.
Re: Bluetooth Anwesenheitssteuerung
bei mir laufen davon auch einige, als lxccu, als ccu.io-server und als ioBroker-server.darkbrain85 hat geschrieben:a der Raspberry hier aber auch noch als USV Server und ccuio Server dient, kann er das auch noch machen.
Leider habe ich nur sehr rudimentäre Linux-Kenntnisse, würde aber (wie bei ccu.io und ioBroker) eine anfängerfreundliche step by step Anleitung schreiben, nachdem ich es selber am Laufen habe.
Muss mich daher erst einmal reinarbeiten. Das dauert wohl noch etwas.
Außer dass der BT-Dongle im RPi drin steckt, und ich das Script in Notepad++ kopiert habe, bin ich noch nicht weiter.
ich gehe mal davon aus, dass dies auf dem raspi passieren muss, wobei:darkbrain85 hat geschrieben:Aufruf:
script.sh BTMAC WIFIMAC ise_id
- script.sh: Name des scripts
- BT MAC: die MAC-Adresse des BT-Dongles (bei cubietruck und Cubox wohl auch die des integrierten BT-Moduls)
- WiFi MAC: die MAC-Adresse des WLAN-Dongles (bei cubietruck und Cubox wohl auch die des integrierten WLAN-Moduls)
- ise_id: die ID von der Variable anwesend (???) auf der CCU
ist.Set the "ise_id" of the CCU variable. Check xmlapi menu on CCU for more details.
Ich habe leider kein WiFi am RasPi, geht das auch per LAN??
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Bluetooth Anwesenheitssteuerung
Ok, verstehe ich.Homoran hat geschrieben: @Herbert:
In diesem speziellen Fall ist ein link IMHO OK, damit der Autor bei Änderungen im script nicht überall wo er es mal vorgestellt hat dieses ebenfalls andern muss.
Da es immer wieder User gibt, die über externe Links hier meckern, wenn es dafür interne Funktionen gibt, wollte ich nur helfen.
Ausserdem gibt es da noch das Argument ... Wenn die externe Seite nicht mehr existiert oder die Struktur ändert, funktioniert der Link nicht mehr.
Ich richte mich natürlich nach den Kundenwünschen
und bin hier raus.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Re: Bluetooth Anwesenheitssteuerung
Da gehöre ich eigentlich auch zu, weil ich viel von unterwegs mit Tapatalk auf dem Handy mache und gerade extern gespeicherte Bilder sich nicht immer "mal eben" öffnen lassen.Herbert_Testmann hat geschrieben:Da es immer wieder User gibt, die über externe Links hier meckern
Code lässt sich mit Tapatalk sowieso nicht (gut) lesen.
muss nicht sein.Herbert_Testmann hat geschrieben:und bin hier raus.
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
-
- Beiträge: 1464
- Registriert: 27.06.2010, 01:01
- Wohnort: Braunschweig
- Hat sich bedankt: 4 Mal
Re: Bluetooth Anwesenheitssteuerung
Hallo darkbrain,
vielen Dank für das Skript. Ich habe es nach 2h inklusive Bluetooth Einrichtung auf meinem Cubietruck zum laufen bekommen. Hast genau die richtigen Stichworte geliefert, so dass es einem Anfänger möglich ist, aber auch nicht zu einfach gemacht wird .
Gruß, Tobias.
vielen Dank für das Skript. Ich habe es nach 2h inklusive Bluetooth Einrichtung auf meinem Cubietruck zum laufen bekommen. Hast genau die richtigen Stichworte geliefert, so dass es einem Anfänger möglich ist, aber auch nicht zu einfach gemacht wird .
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------
-
- Beiträge: 1343
- Registriert: 27.06.2015, 22:17
- Hat sich bedankt: 43 Mal
- Danksagung erhalten: 32 Mal
Re: Bluetooth Anwesenheitssteuerung
Danke Herbert!auf Wunsch des Erfinders wieder gelöscht.
Wie Du siehst habe ich den Code aber auch nach deinem Hinweis als Anhang hinzugefügt!
Hi Tobias!Tobias78 hat geschrieben:Hallo darkbrain,
vielen Dank für das Skript. Ich habe es nach 2h inklusive Bluetooth Einrichtung auf meinem Cubietruck zum laufen bekommen. Hast genau die richtigen Stichworte geliefert, so dass es einem Anfänger möglich ist, aber auch nicht zu einfach gemacht wird .
Gruß, Tobias.
Super! Freut mich tierisch das es schonmal dem ersten geholfen hat.
Aktuell denke ich noch über eine Integration von Bluetooth LE nach, damit Bluetooth Tags z.B. am Schlüsselbund erkannt werden können.
Da ich das aber wahrscheinlich nicht benötige, würde ich das erst bei entsprechender Nachfrage in Angriff nehmen.
Ich persönlich würde eher meinen Schlüssel vergessen bevor ich mein iPhone liegen lasse.
Hast du noch Ideen oder Verbesserungsvorschläge für das Script?
Auch freue ich mich über alle Hinweise zu Problemen die mit dem Script auftreten.
Gruß
Michèl
-
- Beiträge: 1464
- Registriert: 27.06.2010, 01:01
- Wohnort: Braunschweig
- Hat sich bedankt: 4 Mal
Re: Bluetooth Anwesenheitssteuerung
Hallo Michèl,
so, die ersten Testläufe verliefen ebenfalls positiv mit einem iPhone 4S. Mit einem Blackberry scheint es nicht so einfach zu funktionieren.
Bei der Rumspielerei mit dem Bluetooth Modul ist mir aufgefallen, dass man ja auch nach unbekannten BT und wahrscheinlich auch WLAN Geräten bzw. MAC Adressen suchen kann. D.h. momentan erkennt mein System nur Gäste, die aktiv in meinem WLAN angemeldet sind und anpingbar sind, was immer ein Sicherheitsrisiko bedeutet da sie mein Passwort benötigen und jenseits der Firewall "wüten" könnten.
Wäre es denkbar analog zu Deinem Makro eins zu entwickeln, dass auch nicht angemeldete Geräte bzw. deren MAC Adressen erkennt und z.B. in eine Systemvariable speichert?
Ich würde gern meine Gäste und "Facilitymanagerin" anhand der MAC Adressen erkennen und auf einem Display begrüßen wollen. Ist dies aus Deiner Sicht machbar?
Gruß, Tobias.
so, die ersten Testläufe verliefen ebenfalls positiv mit einem iPhone 4S. Mit einem Blackberry scheint es nicht so einfach zu funktionieren.
Bei der Rumspielerei mit dem Bluetooth Modul ist mir aufgefallen, dass man ja auch nach unbekannten BT und wahrscheinlich auch WLAN Geräten bzw. MAC Adressen suchen kann. D.h. momentan erkennt mein System nur Gäste, die aktiv in meinem WLAN angemeldet sind und anpingbar sind, was immer ein Sicherheitsrisiko bedeutet da sie mein Passwort benötigen und jenseits der Firewall "wüten" könnten.
Wäre es denkbar analog zu Deinem Makro eins zu entwickeln, dass auch nicht angemeldete Geräte bzw. deren MAC Adressen erkennt und z.B. in eine Systemvariable speichert?
Ich würde gern meine Gäste und "Facilitymanagerin" anhand der MAC Adressen erkennen und auf einem Display begrüßen wollen. Ist dies aus Deiner Sicht machbar?
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------