Bluetooth Anwesenheitssteuerung

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

darkbrain85
Beiträge: 1343
Registriert: 27.06.2015, 22:17
Hat sich bedankt: 43 Mal
Danksagung erhalten: 32 Mal

Bluetooth Anwesenheitssteuerung

Beitrag von darkbrain85 » 27.06.2015, 22:34

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.
Zuletzt geändert von darkbrain85 am 03.07.2015, 21:51, insgesamt 8-mal geändert.

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Herbert_Testmann » 28.06.2015, 09:51

Es gibt User, die möchten keine externen SEiten aufrufen, denen sie nicht vertrauen.
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

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Homoran » 28.06.2015, 09:56

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
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

darkbrain85
Beiträge: 1343
Registriert: 27.06.2015, 22:17
Hat sich bedankt: 43 Mal
Danksagung erhalten: 32 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von darkbrain85 » 28.06.2015, 10:33

Herbert_Testmann hat geschrieben:Es gibt User, die möchten keine externen SEiten aufrufen, denen sie nicht vertrauen.
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.
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.
Homoran hat geschrieben:Die Idee finde ich gut.
Mein Bluetooth im handy ist wegen der freisprechanlage im auto eh ständig an.
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.
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.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Homoran » 28.06.2015, 11:45

darkbrain85 hat geschrieben:a der Raspberry hier aber auch noch als USV Server und ccuio Server dient, kann er das auch noch machen.
bei mir laufen davon auch einige, als lxccu, als ccu.io-server und als ioBroker-server.
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.
darkbrain85 hat geschrieben:Aufruf:
script.sh BTMAC WIFIMAC ise_id
ich gehe mal davon aus, dass dies auf dem raspi passieren muss, wobei:
- 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
Set the "ise_id" of the CCU variable. Check xmlapi menu on CCU for more details.
ist.
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!

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Herbert_Testmann » 28.06.2015, 11:51

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.
Ok, verstehe ich.

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

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Homoran » 28.06.2015, 11:56

Herbert_Testmann hat geschrieben:Da es immer wieder User gibt, die über externe Links hier meckern
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.
Code lässt sich mit Tapatalk sowieso nicht (gut) lesen.
Herbert_Testmann hat geschrieben:und bin hier raus.
muss nicht sein.

Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Tobias78 » 28.06.2015, 12:33

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 :D .
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

darkbrain85
Beiträge: 1343
Registriert: 27.06.2015, 22:17
Hat sich bedankt: 43 Mal
Danksagung erhalten: 32 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von darkbrain85 » 28.06.2015, 13:22

auf Wunsch des Erfinders wieder gelöscht.
Danke Herbert!
Wie Du siehst habe ich den Code aber auch nach deinem Hinweis als Anhang hinzugefügt!

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 :D .
Gruß, Tobias.
Hi 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

Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

Re: Bluetooth Anwesenheitssteuerung

Beitrag von Tobias78 » 28.06.2015, 18:00

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.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“