Symcon: Anwesenheit BT (Bluetooth, Raspberry)

Ich habe mit Symcon noch gar nicht angefangen, also nur Testinstallation und stehe vor der ersten Hürde.
Ich möchte keine App (Geofancy) für die Anwesenheitserkennung verwenden, sondern lokale Bluetooth Erkennung.

Mein Ziel:
Erkennung der Anwesenheit in mehreren Räumen (mit Raspberrys)
Mein Wunsch wäre das aus diesem Thread eine Lösung entsteht.

Lösung für Bluetooth ?:
So wie es aussieht ist Symcon nicht die einzige Smarthome Zentrale, die keine fertige Lösung für dieses Problem hat.
Auf der Suche bin ich im Homematic Forum auf ein kleines hilfreiches Script für „Bluetooth Anwesenheitssteuerung“ von realwheel/blackhole gestossen.
Dieses bash Script habe ich nun für die Symcon-API angepasst. (Im Anhang).

Voraussetzungen:

  • Linux PC/Raspberry mit funktionierentem Bluetooth

Vorbereitung Symcon:

  • Erstellen einer „boolean“ Variable mit zb. Name: „Simon (Bluetooth Büro)“

Installation Linux/Raspberry:

  • Benötigte Pakete installieren: [apt-get install bluez bluez-hcidump]
  • Paket Download: symcon-anwesenheit-bt-2.46.tar.gz.zip (2.26 KB)
  • Zip enptacken, *.tar.gz auf den Linux PC kopieren
  • Paket am Linux-PC/Raspberry entpacken: [sudo tar xvf symcon-anwesenheit-2.46.tar.gz -C /]
  • Anpassen der Bluetooth Konfigurationsdateien /etc/bl-*.conf
  • Testen und Autostart einrichten siehe HIER

Bei mir funktioniert die Bluetooth Erkennung wie gewünscht.
Jetzt werde ich noch das Unifi Modul testen und schauen ob ich daraus dann eine Anwesend-Person Variable (aus Bluetooth und WLAN) erstellen kann…

Vielen herzlichen Dank für das Teilen der Lösung. Ein Frage dazu nutzt Du das verbaute Blutooth des Raspberry oder hast Du einen Bluetooth Stick angeschlossen?

Da es noch ein Raspi 2 ist, einen Bluetooth Stick, funktioniert jedoch seit langer Zeit einwandfrei.

Interresant wäre ob man eventuell bei einem Raspberry 3 auf einen Bluetooth Stick verzichten kann, die Bluetooth USB Sticks haben ja doch meist eine größere Reichweite als das im Raspberry verbaute Bluetooth. Wäre daher mal spannend zu wissen wie gut die Reichweite vom Raspberry 3 im Vergleich zu einem Class 1 USB Stick ist.

Ich habe noch keinen Raspi 3.
Jedoch habe ich schon mit dem USB Stick das Problem nicht die ganze Wohnung einwandfrei abzudecken.

Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Vielleicht ist ja ein IPS-868 AKM eine Alternative, dann must Du nichst basteln und die Reichweite sollte höher sein.

Ich möchte keine zusätzlichen Geräte als Bluetooth Devices einsetzen außer den vorhandenen Smartphones.

Eigentlich bin ich soweit fertig, ich habe Bluetooth und Unifi Erkennung (Dank an Codeking) aktiv, funktioniert wie gewünscht.

Nun wäre das erste PHP Script an der Reihe.

when BT=false and WIFI=false then Person=false
else
 Person=true

Fragen dazu:
Kann ich das für 3 Personen geschickt in ein Script unterbringen, oder besser pro Person ?
Aufruf durch Variablenänderung das ist mir denke ich klar.
Bin auf der Suche nach einem Beispiel bei dem ich mich orientieren könnte…


$absence_bluetooth = GetValue(12345); // absense Booelan Bluetooth
$absence_wifi = GetValue(23456); // absense Booelan wifi
if($absence_bluetooth === true && $absence_wifi === true)
{
SetValue(34567, true); // person 1 
}
else
{
SetValue(34567, false); // person 1 
}

Du kannst so viel Personen in einem Skript unterbringen wie Du willst abhänig von den Bedingungen wird höchstens das Skript länger und komplexer.

Vielen Dank für die Vorlage !
Ein Script pro Person ist denke ich übersichtlicher.
Sieht im Moment so aus und funktioniert (mit „oder“ als Bedinung):

<?
// Anwesenheit BT und WLan
$simon_bt = GetValue(38187 /*[Anwesenheit\Bluetooth\Simon (Bluetooth Büro)]*/);
$simon_wl = GetValue(39788 /*[Anwesenheit\UniFi\Anwesenheiten\Simon (WLAN)]*/);
if($simon_bt === true || $simon_wl === true)
{
SetValue(43656 /*[Anwesenheit\Personen\Simon]*/, true); 
}
else
{
SetValue(43656 /*[Anwesenheit\Personen\Simon]*/, false); 
}  

?>

Der Aufbau so, die Person wird richtig gesetzt, je nachdem ob BT oder WLAN erreichbar ist.
So richtig, oder ginge es eleganter ?

Rein subjektiv gleich oder besser.
In meiner Garage läuft ein Raspberry Pi 3, Model B, hat einen BananaPi mit Bluetooth-Dongle ersetzt.
Etwa 100m entfernt verläuft ein Europäischer Wanderweg; wenn ich in meinem Skript den „Lern-Modus“ (noch unbekannte MACs werden registriert) einschalte, fange ich mir an Wochenenden Dutzende neue Einträge ein.

Andererseit deckt innerhalb des Hauses ein einziger Raspi nicht die komplette Fläche ab, liegt wahrscheinlich an dem vielen Angsteisen, das mir mein Statiker einbauen ließ. :mad:

Übrigens, ich benutze ein Skript unter IPS, das ich mal hier beschrieben hatte.

Viele Grüsse
Harald

Wenn man das mit einzelen Skripten löst ist das so ok.
Wenn man sich mehr einarbeitet und das Konzept von IP-Symcon mehr verstanden hat kann man später auch Skripte vereinfachen indem man Systemvariablen nutzt.
Wenn das aber erst mal so funktioniert und seinen Zweck erfüllt ist ja ok.