Anwesenheit BT v2.46 (stable)

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

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Anwesenheit BT v2.46 (stable)

Beitrag von blackhole » 20.02.2017, 16:35

Hallo zusammen,


ich stelle hiermit eine modernisierte, fehlerbereinigte und gestraffte Version der "Bluetooth Anwesenheitssteuerung" von realwheel unter dem Namen Anwesenheit BT als Bereicherung zur freien Verfügung.

Anwesenheit BT ermöglicht eine funktionale, kombinierte Anwesenheitskennung für Android Smartphones, iPhones, iOS, Featurephones und andere Mobilgeräte via Bluetooth (primär) und WLAN (sekundär), welche in Form eines Shell-Skriptes unter Linux lauffähig ist. Geeignete Grundlagen sind z.B. ein Raspbberry Pi mit Raspbian, ein Rechner oder eine VM mit einer Standard Linux-Distribution nach persönlichem Gusto oder vergleichbares. Die nachfolgende Anleitung bezieht sich auf einen Raspbberry Pi mit aktuellem Raspbian als Betriebssystem.

Für mich relevante Mängel der Ursprungsversion sind ausgebessert, geändert, umgeschrieben und modifiziert. Dies hat unter anderem dazu geführt, dass keinerlei Abhängigkeit zu einem Addon besteht und die sekundäre Anwesenheitserkennung auch in komplexeren WLAN-Netzen funktional ist (Repeater/Bridges etc.).


Motivation

Nachdem ich meinem Smartphone kürzlich das Update auf Android 7 ("Nougat") verpasst habe, musste ich schmerzlich feststellen, dass Google es mit den Energiesparmaßnahmen deutlich übertrieben hat. Im Ergebnis hat meine automatische Anwesenheitserkennung per CUxD-Ping-Device, trotz aller "WLAN-Wachhalte-Tricks" mit Tasker (seit Android 5/6 nötig und erfolgreich im Einsatz), nicht mehr zuverlässig funktioniert.

Da ich schon seit längerem mit der Idee schwanger gehe meine CUxD-/Addon-Abhängigkeiten aufzulösen, war für mich genau jetzt der Zeitpunkt gekommen mich nach einer vernünftig funktionierenden Alternative umzuschauen.

Grund für die Veröffentlichung ist der (OSS-)Gedanke, dass andere von meiner Arbeit profitieren können, wie ich von der Arbeit Dritter profitiert habe.


Download Installationsdatei
Download Beispielkonfigurationsdateien
Installationsanleitung
  • Grundlage ist eine lauffähige Linux-Installation mit funktionierendem Bluetooth (Onboard-Chip oder per USB-Adapter)
  • Nach dem Download der Installationsdatei wird das Paket (vor dem Entpacken!) auf den Raspberry Pi/den Linux-PC kopiert (z.B. mittels WinSCP).
  • Das Entpacken des Paketes erfolgt an der Konsole (z.B. via PuTTY bzw. einer SSH-Terminal-Session) mittels nachfolgendem Befehl.

    Code: Alles auswählen

    sudo tar xvf anwesenheit-2.46.tar.gz -C /
  • Ein Update einer älteren Version von Anwesenheit-BT erfolg nach dem gleichen Schema.
  • Abschließend die Prozesse beenden und wieder starten oder alternativ einen Reboot durchführen.
Installation der Beispielkonfigurationsdateien
  • Nach dem Download wird das Paket mit den Beispieldateien (vor dem Entpacken!) auf den Raspberry Pi/den Linux-PC kopiert (z.B. mittels WinSCP).
  • Das Entpacken des Paketes erfolgt an der Konsole (z.B. via PuTTY bzw. einer SSH-Terminal-Session) mittels nachfolgendem Befehl.

    Code: Alles auswählen

    sudo tar xvf anwesenheit-conf.tar.gz -C /
Konfiguration
  • Nach der Installation finded man im Verzeichnis /etc/ mehrere beispielhafte Konfigurationedateien (fon-vater.conf, fon-mutter.conf und fon-kind.conf)
  • Die Beispieldateien können nach belieben umbenannt und kopiert werden. Einen treffenden Namen zu verwenden ist sinnvoll, da im Fehlerfall der Dateiname auch zur Identifizierung des jeweiligen Prozesses benutzt werden kann.
  • Die Konfiguration erfolgt durch Editieren und Anpassen der Konfigurationsdateien. Die anzupassenden Einträge sind jeweils entsprechend kommentiert. Alle Zeitwerte sind/werden in Sekunden angegeben.
CCU-Systemvariablen
  • Die zu verwendende(n) CCU-Systemvariable(n) (pro Gerät eine) müssen vom Typ "Logikwert" sein (wahr=anwesend, falsch=nicht anwesend)
Testen der Konfiguration
  • Zum Testen einer Konfiguration erfolgt der Aufruf des Skriptes unter Angabe der jeweiligen Konfigurationsdatei wie nachfolgend angegeben.
  • Entsprechende Textausgaben sollten die Überprüfung der Konfiguration und eine eventuelle Fehlersuche erleichtern.
  • Die im nachfolgenden Beispiel angegebene Konfigurationsdatei ist ggf. anzupassen.

    Code: Alles auswählen

    anwesenheit.sh /etc/fon-vater.conf
  • Wenn etwas nicht wie erwartet klappen sollte: > Hier < gibt es weitere Diagnosehilfen.
Autostart einrichten
  • Für den automatischen Start aller Instanzen des Skriptes (eine pro Gerät/Smartphone) im Hintergrund (z.B. nach einem Reboot des Raspberry Pis/des Linux-PCs), wird die Datei /etc/rc.local um nachfolgende Einträge erweitert (einfügen vor der letzten Befehlszeile "exit 0").
  • Die im nachfolgenden Beispiel angegebene(n) Konfigurationsdatei(en) ist/sind ggf.anzupassen.

    Code: Alles auswählen

    nice --20 anwesenheit.sh /etc/fon-vater.conf > /dev/null &
    sleep 3
    nice --20 anwesenheit.sh /etc/fon-mutter.conf > /dev/null &
    sleep 3
    nice --20 anwesenheit.sh /etc/fon-kind.conf > /dev/null &
    
  • Schnelle Kontrolle, ob nach erfolgtem Reboot alle Prozesse laufen:

    Code: Alles auswählen

    ps ax|grep anw
Changelog
  • v2.10: Abhängigkeit zur XML-API aufgelöst ("Anwesenheit BT" funktioniert ohne jegliche Addons)
  • v2.10: Auslagerung aller(!) Einstellungen in Konfigurationsdateien (pro Gerät eine).
  • v2.10: Einziger Parameter bei Aufruf des Skriptes ist die Konfigarationsdatei (Bsp: anwesenheit.sh /etc/fon-blackhole.conf). Alle Parameter sind somit pro Gerät einstellbar (neben MAC und IP auch Zeiten, Wiederholungen, sogar die CCU, falls mehrere im Einsatz)
  • v2.10: Eindeutig bezeichnete Konfigurationsdateien esetzen Gerätenamen als Parameter (der Gerätename ist Teil des Dateinamens).
  • v2.10: "Wifi-Scan" (arp-scan), die "Backuplösung" zu BT, funktioniert nun zuverlässig (bei Einsatz von Repeatern klappte das gar nicht) und wurde daher durch "Wifi-Ping" (ping) ersetzt. Nachteil: Er müssen feste Leases eingerichtet werden. Vorteile: Es funktioniert sehr zuverlässig, wenn das Gerät wach ist, unabhängig vom Einsatz von Repeatern/Bridges etc..
  • v2.10: Der Codestyle wurde angepasst und bereinigt
  • v2.10: Umstellung komplett auf UTF-8
  • v2.20: Aktualisierter Debug-Modus mit neuen Ausgaben
  • v2.21: Optimierung der While-Schleifen
  • v2.22: Ressourcenoptimierung (XML-Auswertung)
  • v2.23: Kommentierung der Beispiel-.conf-Dateien
  • v2.24: Reduzierung von Programmaufrufen und überflüssige Shell-Aufrufe entfernt
  • v2.25: Erster Release für Tester
  • v2.26: Zweiter Release für Tester
  • v2.27: öffentlicher Release
  • v2.28: Korrektur einer Textausgabe im Debug-Betrieb (Danke an danberg)
  • v2.29: Angabe der Zeiteinheit in den Beispiel-.conf-Dateien (Danke an mike9677)
  • v2.29: Korrektur und Verbesserung wenn keine Prüfung via WLAN erfolgen soll (Danke an danberg)
  • v2.30: Überflüssige Hochkommata entfernt
  • v2.30: Exit im Falle eines Typos hinzugefügt
  • v2.30: Verwendung von verkürzten Timeouts
  • v2.30: Code gestrafft und Einrückungen korrigiert
  • v2.30: Anwesenheitsüberprüfungen ausgelagert an zentrale Stelle
  • v2.30: Aufteilung in Skript- und Beipieldatei-Paket, How-To angepasst
  • v2.31: Exit-Befehle haben eine Code-Nummer erhalten (Danke an danberg)
  • v2.31: Code-Rewrite, die ehemals "doppelte Abwesenheitsprüfung" erfolgt nun in einer zentralen While-Schleife (Danke an danberg)
  • v2.40: Bugfix, kleinere Anpassungen, Versionierung wg. Code-Rewrite angepasst
  • v2.41: Code gestrafft, Redundanzen entfernt
  • v2.44: Jubiläumsausgabe, Code gestrafft, Kommentierungen angepasst
  • v2.45: Zyklischer Abgleich der Systemvariable zur Synchronisierung nach Nichterreichbarkeit der CCU2 (Danke an cyclopz)
  • v2.46: Typo korrigiert, Code gestrafft und Einrückungen korrigiert
Zuletzt geändert von blackhole am 10.07.2018, 12:55, insgesamt 158-mal geändert.
 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

Benutzeravatar
Herbert_Testmann
Beiträge: 11102
Registriert: 17.01.2009, 12:30

Re: Anwesenheit BT v2.2x (NYR)

Beitrag von Herbert_Testmann » 20.02.2017, 23:12

Diskussion zu grundsätzlichen Forenfragen verschoben -> http://homematic-forum.de/forum/viewtop ... =1&t=35791
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Re: Anwesenheit BT v2.26 (NYR)

Beitrag von blackhole » 22.02.2017, 12:44

Das How-To ist fertig und die Todo-Liste ist abgearbeitet. Der ERD kann also eingehalten werden.

Die verbleibende Zeit würde ich, neben kleineren Anpassungen, gerne für einen Stable- und How-To-Test nutzen und sehen wo noch Erklärungsbedarf ist, was die Anleitung betrifft.
Falls also ein zuverlässiger Tester etwas Zeit zum Ausprobieren von Anwesenheit BT (und How-To) opfern möchte, kann er sich gerne hier oder per PN melden.

[ Edit: Links entfernt ]
Zuletzt geändert von blackhole am 23.02.2017, 14:24, insgesamt 1-mal geändert.
 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Re: Anwesenheit BT v2.27

Beitrag von blackhole » 23.02.2017, 09:58

Die Tests waren erfolgreich, das How-To und die Kommentierungen wurden für gut befunden.
Daher werde ich den öffentlichen Release um eine Woche vorverlegen.

Anwesenheit BT wird somit, eine Woche früher als geplant, am kommenden Samstag wurde soeben in der Version 2.27 veröffentlicht.
Zuletzt geändert von blackhole am 25.02.2017, 01:00, insgesamt 2-mal geändert.
 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

mike9677
Beiträge: 415
Registriert: 17.04.2011, 11:08

Re: Anwesenheit BT v2.27 (NYR)

Beitrag von mike9677 » 24.02.2017, 10:59

Hallo,
ich bin mal gespannt wie ein Flitzebogen auf die Anwendung.
Habe gestern noch eifrig versucht, BT am PI2 mit einem USB-Dongle einzurichten.
Hat auch soweit alles geklappt, Pairing hat stattgefunden. Nur verliert der PI (oder der Client, je nach dem wie man es nimmt) dann immer wieder die Verbindung.
Gehört jetzt zwar nicht unbedingt hier rein, aber egal.

Wie gesagt, mal sehen ob die Anwendung trotzdem läuft.

gruß
mike

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Re: Anwesenheit BT v2.27 (NYR)

Beitrag von blackhole » 24.02.2017, 11:11

mike9677 hat geschrieben:Nur verliert der PI (oder der Client, je nach dem wie man es nimmt) dann immer wieder die Verbindung.
Man sollte ja meinen, dass das Smartphone (i.d.R. nur Bluetooth Class 2) maßgeblich ist.
Ich habe im Vorfeld reichlich experimentiert und bei gleichem Smartphone folgende Adapter in meinem EFH ausprobiert:
  1. Raspberry Pi 3, interner BT-Chip, Bluetooth v4.1 (LE), Class 2
  2. LogiLink BT0015, Bluetooth v4.0, Class1
  3. SENA UD300, Class 1, max. 300m, mit der wechselbarer Standard-SMA-Antenne, bis 1 Km mit Spezialantennen
1.) hat bei mir nicht gereicht, 2.) hat zufriedenstellend funktioniert, 3.) ist der Hammer und legt eine Bluetooth-Glocke um Haus, Garten und Garage.

> Hier die aktuellen Erkenntnisse und (m)ein aktuelles Setup. <

Da wir hier aber letztendlich von Funk reden und jede Örtlichkeit andere funktechnische Eigenheiten hat, muss letztendlich jeder seine eigenen Erfahrungen machen.
Zuletzt geändert von blackhole am 02.02.2018, 22:39, insgesamt 1-mal geändert.
 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

Luxtra
Beiträge: 402
Registriert: 13.12.2014, 08:00

Re: Anwesenheit BT v2.27 (NYR)

Beitrag von Luxtra » 24.02.2017, 17:01

mike9677 hat geschrieben:Hallo,
ich bin mal gespannt wie ein Flitzebogen auf die Anwendung.
Habe gestern noch eifrig versucht, BT am PI2 mit einem USB-Dongle einzurichten.
Hat auch soweit alles geklappt, Pairing hat stattgefunden. Nur verliert der PI (oder der Client, je nach dem wie man es nimmt) dann immer wieder die Verbindung.
Gehört jetzt zwar nicht unbedingt hier rein, aber egal.

Wie gesagt, mal sehen ob die Anwendung trotzdem läuft.

gruß
mike
Hast du schon die Ursprungsversion getestet?
viewtopic.php?f=31&t=25715

Funktioniert bei mir mit dem Original-Chip auf dem Pi3 sowohl zu Hause aus dem Keller über EG, OG bis ins Dach einwandfrei, im Büro aus dem ersten Stock bis in den Keller und ins Dachgeschoss, gelegentliche Aussetzer werden zuverlässig mit dem arp-scan auf die Wifi-Adresse abgefangen.

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Re: Anwesenheit BT v2.27

Beitrag von blackhole » 25.02.2017, 01:04

 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

danberg
Beiträge: 101
Registriert: 16.11.2015, 00:03

Re: Anwesenheit BT v2.27

Beitrag von danberg » 25.02.2017, 22:41

Hallo

Zuerst einmal vielen Dank für die zur Verfügungsstellung der Anwendung.

Funktioniert bei mir leider irgendwie nicht korrekt.
Die Variable wird zwar bei Abwesenheit korrekt gesetzt aber dann nie bei Anwesenheit.

Bei nicht Erreichbarkeit wird auf der Konsole ausgegeben:

Gerät ist nicht erreichbar.
Gerätestatus hat sich geändert. Systemvariable wird geändert (Gerät erreichbar)

Warum steht hier 'Gerät erreichbar', die CCU-Variable wird aber korrekt auf 0 gesetzt.

Bei Erreichbarkeit wird auf der Konsole ausgegeben:

Gerät ist per Bluetooth erreichbar.
Gerät war nicht erreichbar, aber wurde wiedergefunden. Keine Aktion durchführen und 6 Sekunden warten...
Erreichbarkeit per Bluetooth wird geprüft.
Gerät ist per Bluetooth erreichbar.
Gerätestatus ist unverändert. Systemvariable bleibt unberührt. Warte 120 Sekunden

Warum wird hier 'keine Aktion durchführen' ausgegeben, hier sollte doch die CCU-Variable wieder entsprechend gesetzt werden.
Viele Grüsse Danberg
__________________________
RaspberryMatic@RPi2 / FW 2.27.8.20170410

Benutzeravatar
blackhole
Beiträge: 1341
Registriert: 21.07.2015, 14:03

Re: Anwesenheit BT v2.27

Beitrag von blackhole » 25.02.2017, 23:09

danberg hat geschrieben:Zuerst einmal vielen Dank für die zur Verfügungsstellung der Anwendung.
Gerne geschehen.
danberg hat geschrieben:Warum wird hier 'keine Aktion durchführen' ausgegeben, hier sollte doch die CCU-Variable wieder entsprechend gesetzt werden.
Weil das Gerät bereits vorher wiedergefunden wurde ("Gerätestatus hat sich geändert. Systemvariable wird geändert (Gerät erreichbar)"). Das ist dann wohl auch der Grund, warum die Systemvariable bei dir nicht auf Abwesenheit gesetzt wurde:

Du warst beim Testen vermutlich einfach zu ungeduldig und deshalb schlicht und einfach nicht lange genug per Bluetooth und WLAN unerreichbar. Siehe hierzu auch die Kommentare in der Konfigurationsdatei im Abschnitt "Optionale Einstellungen".

Teste das noch einmal in Ruhe aus: Bluetooth und WLAN eine Weile abschalten - wirklich bis die Systemvariable geändert wurde, später Bluetooth wieder einschalten, etwas eingeschaltet lassen und vice versa). Ich denke, die Systematik wird klarer, wenn Du das eine Zeit lang und ein paar Ein-/Aus-Zyklen lang beobachtest.

Hilft das alles nicht, wirf einfach einmal einen Blick in das Skript: Es ist auf Grund der Einfachheit recht leicht herauszulesen was wann passiert.
 
Anwesenheit BT v2 (Raspbian>CCU3) | CCU-Protect v2 (CCU3) | Mini SV-Datalogger v2 (CCU3) | Servicemeldungen SV v2 (CCU3) | BLGSH (Y)

And there was much rejoicing.
 

Antworten

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