Anwesenheitserkennung per Bluetooth unter Linux

Hallo Zusammen,

ich bin neu hier und teste gerade Symcon mit einer CCU2.
Ein Ziel ist es die Anwesenheit per BT zu erkennen. Leider hab ich nichts hierzu gefunden, was vor allem auf meinem RPi (Linux) läuft.
Somit habe ich schnell mal selber etwas gebaut und möchte es euch nicht vorenthalten.

Zuerst muss auf dem Linuxsystem der Bluetoothsupport eingerichtet werden. Dazu muss ein Paket installiert werden:

apt-get install bluez

Dann habe ich 3 Boolean-Variablen angelegt. (2x für 2 Handies und einen als Zusammenfassung ob überhaupt jemand da ist)

Dann habe ich noch ein kleines Script gebaut, welches bei mit im 1 Minuten-Talk läuft:


<?

$group = 10001 /*[Status\Anwesenheit\Bewohner]*/;
$check = array();
$check['00:00:00:00:00:00'] = 10002 /*[Status\Anwesenheit\Marco]*/;
$check['00:00:00:00:00:00'] = 10003 /*[Status\Anwesenheit\Sarah]*/;

// will check
$group_check = false;
foreach($check as $mac => $id) {
  $search = shell_exec("hcitool name $mac");
  SetValueBoolean($id, $search != '');
  if($search != '') $group_check = true;
}
SetValueBoolean($group, $group_check);

?>

In diesem Script, müsst Ihr natürlich noch eure Variable und Macadressen der Handies hinterlegen.

Ich hoffe dem ein oder anderen hilft es.

Abend!

Erst einmal herzlich Willkommen im Forum :slight_smile: Und dann noch > Danke für deine Beitrag :slight_smile: So könnten öfter 1. Posts aussehen :wink:

Du hast quasi einen Beacon-Server gebaut. Hab ich so auch noch nicht gehört. Normal machen es alle (mich eingeschlossen) andersrum. Also einen Beacon der ein Signal aussendet und das Handy meldet dann die Anwesenheit/Abwesenheit (z.B. über Geofency) an IPS.

Beispiel:
Create an iBeacon Transmitter with the Raspberry Pi – Wade Wegner

Zu Geofency gibt es auch einiges schon hier im Forum, falls du es nicht schon gesehen hast :slight_smile:

Aber nochmal für mich, ob ich es richtig verstanden habe > du hast einen Raspberry mit USB-Bluetooth-Dongle am laufen. Das hcitool scannt regelmäßig (durch das Skript), nach der Mac-Adresse vom Handy. Sobald ein Handy erkannt wird, wird im IPS die entsprechende Variable gesetzt. Korrekt?

Was mich daran besonders interessiert…wie sieht das mit dem Stromverbrauch aus? Wird der Handy-Akku dadurch überhaupt belastet? Weil bei Geofency in Kombination mit Beacons, kann bei zu kleinen Intervallen, der Handy-Akku ganz schön leer gesaugt werden… Aber in deinem Fall ist das Handy ja total passiv, oder? Also auch keine Belastung für das Handy bzw. dessen Akku? Oder wird durch das hcitool eine Verbindung mit dem Handy aufgebaut und das Handy ist doch nicht nur passiv bei so einer Abfrage?

Danke und Grüße,
Chris

Ja du hast das richtig verstanden. Geofency wollte ich irgend wie nicht, da ich dann wieder eine App auf dem Handy laufen lassen muss. Das erfordert halt keinen Eingriff / keine Konfiguration und läuft extrem zuverlässig. Akkuproblem hab ich bis jetzt keine feststellen können. Liegt aber vielleicht auch daran, dass ich sowieso mein BT immer an haben für z.B. Freisprecheinrichtung. Auch ist Bluetooth 4 LE extrem stromsparend.

Ob es jeder besser oder schlechter ist als Geofency muss jeder für sich selber entscheiden. Ich kenne es nicht anders, da ich zuvor FHEM genuzt habe und es dort das übliche Vorgehen ist.

Nachtrag: Und nein es findet kein Paring zwischen Dongle und Handy statt. Aber das Handy muss zumindest Antworten, da ich nach dem Gerätenamen frage und es bei Fund als Anwesend erkenne.

Hmmmm…ich glaub das werde ich bei Gelegenheit mal ausprobieren :slight_smile: Klingt irgendwie gut und man braucht keine App die dann doch mal die URL nicht korrekt aufruft und im IPS die Variable nicht gesetzt wird usw…

Kann man bei deiner Variante den Radius einstellen? Also die Sende-/Empfangsstärke vom USB-Dongle irgendwie so anpassen, dass nur Geräte in einem bestimmten Radius erkannt werden, damit man das auf einen Raum anpassen kann, für Anwesenheit im Raum XY? Oder geht nur „volle Power“? Wie viele Meter (ca.) ist der Radius bei dir bei der Erkennung?

Evtl. könnte man mit „hcitool scan“ und dann einem grep auf das jeweilige Gerät noch weiter optimieren was den Akkuverbrauch der Handys betrifft. Aber da müsste man mal ein paar Tests machen, was da besser ist.

Hat das noch jemand aus dem Forum so in der Art im Einsatz und kann noch ein paar Erfahrungen dazu liefern? :slight_smile: Vielleicht noch jemand sowas unter Windows im Einsatz?

> Der Link ist mehr für mich zum Merken und morgen nochmal nachlesen, aber darf jeder mal reinschauen, wenn er mag :smiley:
Spiel mir den Bluez | heise Security

Danke und Grüße,
Chris

Also Radius etc. geht nicht. Deine Variante mit scan wird nicht gehen, da es nur sichtbare Geräte anzeigt. Die Variante per Mac Adresse weckt sozusagen das Handy und ist mehr gedacht für bereits gepairte Geräte. Da ich selber im nur in einer 1-Etagen-Whg wohne reicht bei mir bis auf die Terrasse. Bei FHEM nutzen einige noch weitere RPis mit weiteren USB Dongles um Ganze Häuser abzudecken.

Morgen,

ich habe mich kürzlich auch intensiv mit einer Bluetooth Anwesenheitserkennung beschäftigt. Vor allem in einem bestimmten Radius um den Raspberry. Dazu habe ich neben einer kleinen Symcon Intelligenz vor allem auch mein erstes Python Skript geschrieben:

https://mytec-home.de/smart-home/doorpi-tueroeffner-per-bluetooth-anwesenheitserkennung-ueber-ip-symcon-aktivieren

Im Beitrag schreibe ich auch über ein ziemliches Problem mit WLAN/Bluetooth was der Raspberry hat, welches das Projekt fast scheitern lies…

Über Ideen und weitere Optimierungen freu ich mich…