Anwesenheitserkennung Bluetooth PebbleBee

Begonnen von tomster, 06 November 2014, 10:01:16

Vorheriges Thema - Nächstes Thema

HoTi

Hallo,

habt ihr da eine Bezugsquelle für mich?

@CoolTux
Machst du das zusammen mit deinem Modul? Also ist dein Bluetooth Empfänger in deine Androiden? Weil mein erster Blauzahn wäre im Hausflur mein Tablet an der Wand.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

CoolTux

Hallo Tim,

Das erkennen der Anwesenheit macht ein BT Dongle direkt am FHEM Server. Das Erkennen des Batteriestatus des BT Tags macht Automagic über einen speziellen Flow. Der Batteriestand wird dann aber in der Tat über die AMADCommunicationBridge in die presence Device geschrieben.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Chris_Worms

Zitat von: PatrickR am 10 April 2016, 04:01:40
Hi!


use constant SYSLOG_LEVEL => -1;

müsste funktionieren.

Du solltest allerdings lepresenced statt blescan.pl verwenden.

Patrick

Hi,

danke, ich habe das SYSLOG Level angepasst.
Wo finde ich denn lepresenced? Was ist der Vorteil gegenüber blescan.pl? Ich habe seit längerer Zeit blescan.pl mit zwei PebbleBee Tags ohne Probleme laufen. Wie heißt es: never change a running system :-D
Raspberry Pi 2/HM-CFG-LAN/HM-ES-PMSw1-PI/HM-LC-Sw1-PL/HM-Sec-MDIR-2/JeeLink V3/LaCrosse Temp/Humidity/Bluetooh USB Dongle/PebbleBee Bluetooth Tags

FHEM/MySQL/Apache/SmarVisu

PatrickR

Mahlzeit!

lepresenced ist jetzt im SVN. Ihr findet den Daemon unter contrib/PRESENCE/lepresenced.

Zusätzlich gibt es eine neue Version 0.6:
-Neuer Kommandozeilenparameter: --loglevel

Ihr müsst also nicht mehr das Skript editieren, um den log level zu setzen. Das hat vor allem den geschmackvollen Vorteil, dass Ihr das Skript updaten könnt ohne Eure Einstellungen zu verlieren.

Um Debug-Meldungen zu bekommen (Vorsicht bei SD-Karten-Systemen wie dem RPi):
lepresenced --loglevel LOG_DEBUG

Wenn Ihr nur das absolut Wichtigste loggen wollt:
lepresenced --loglevel LOG_WARNING

Und wenn Ihr absolut nichts loggen möchtet:
lepresenced --loglevel LOG_EMERG

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

PatrickR

Hi!

Zitat von: Chris_Worms am 24 Mai 2016, 08:29:15
Wo finde ich denn lepresenced? Was ist der Vorteil gegenüber blescan.pl? Ich habe seit längerer Zeit blescan.pl mit zwei PebbleBee Tags ohne Probleme laufen. Wie heißt es: never change a running system :-D

blescan.pl hat u. a. das Problem, dass dank der wundervollen Bluetooth-Implementierung unter Linux ab und zu der Scan fehlschlägt und das Interface resettet werden muss. Das tut blescan.pl auch mit aller Gewalt. Dazu kommt, dass bei längeren Scanzeiten und vielen Tags sich die Prozesse anstauen, weil immer nur auf einen Tag "gewartet" wird. Außerdem wurden mit der Einführung von lepresenced sämtliche Supportverträge gekündigt ;)

lepresenced läuft dauerhaft und merkt sich bei allen sendenden Tags den Zeitstempel des letzten Empfangs. Markus' PRESENCE kann dann unter FHEM nachfragen. Alles in Allem schicker, stabiler und das Ergebnis liegt sofort vor und nicht erst nach der eingestellten Scanperiode.

Fazit: Wenn blescan.pl bei Dir läuft kannst Du es laufen lassen, aber lepresenced ist toller *g*.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Chris_Worms

Zitat von: PatrickR am 24 Mai 2016, 21:10:44
Hi!

blescan.pl hat u. a. das Problem, dass dank der wundervollen Bluetooth-Implementierung unter Linux ab und zu der Scan fehlschlägt und das Interface resettet werden muss. Das tut blescan.pl auch mit aller Gewalt. Dazu kommt, dass bei längeren Scanzeiten und vielen Tags sich die Prozesse anstauen, weil immer nur auf einen Tag "gewartet" wird. Außerdem wurden mit der Einführung von lepresenced sämtliche Supportverträge gekündigt ;)

lepresenced läuft dauerhaft und merkt sich bei allen sendenden Tags den Zeitstempel des letzten Empfangs. Markus' PRESENCE kann dann unter FHEM nachfragen. Alles in Allem schicker, stabiler und das Ergebnis liegt sofort vor und nicht erst nach der eingestellten Scanperiode.

Fazit: Wenn blescan.pl bei Dir läuft kannst Du es laufen lassen, aber lepresenced ist toller *g*.

Patrick

Danke für die ausführliche Erklärung! Dann migriere ich wenn Zeit ist auf lepresenced.
Raspberry Pi 2/HM-CFG-LAN/HM-ES-PMSw1-PI/HM-LC-Sw1-PL/HM-Sec-MDIR-2/JeeLink V3/LaCrosse Temp/Humidity/Bluetooh USB Dongle/PebbleBee Bluetooth Tags

FHEM/MySQL/Apache/SmarVisu

isy

#546
Moin Patrick,
habe heute die Installation des Scriptes lepresenced (aus git) vorgenommen und wollte mich erstmal bedanken!
Läuft! Habe zwei Gigaset G-Tags aktiviert.  :) :) :) :) :)

Macht es schon Sinn, schon ein Wiki anzulegen mit einer Anleitung?
Habe mich durch den Thread gelesen und somit alles gefunden. Könnte aber dem ein oder andern leichter fallen.

Viele Grüße,
Helmut

Ein Weg wird erst zu einem Weg, wenn man ihn geht

Devender

Zitat von: pv_is am 27 Mai 2016, 19:11:16
Macht es schon Sinn, schon ein Wiki anzulegen mit einer Anleitung?
Habe mich durch den Thread gelesen und somit alles gefunden. Könnte aber dem ein oder andern leichter fallen.

Viele Grüße,
Helmut

Mit meiner Anleitung von Seite 33 bezüglich der Einrichtung und Konfiguration wäre ich auch fuer einen Wiki Eintrag.
Denke man findet das irgendwann auch nicht mehr in dem Fred.

Ich kann das gerne uebernehmen - Einverständnis von PatrickR vorausgesetzt  :-)

@Helmut hast du mit der Anleitung von Seite 33 eingerichtet oder hast du noch zusätzlich was benötigt?
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

PatrickR

#548
Mahlzeit!

Die Idee mit einem Wiki-Eintrag finde ich sehr gut, auch die Anleitung von Devender (#483) hatte ich nicht in dem Detailgrad in Erinnerung. Daumen hoch! Noch zwei Anmerkungen:
-Ich habe schon länger DEB-Pakete auf der ToDo-Liste. Damit sollte die Anleitung etwas schlanker werden. Ist halt die Frage, ob der Wiki-Eintrag dann aktualisiert wird oder Ihr noch etwas wartet.
-@Devender: Hast Du mal die interne Daemonize-Funktion getestet? (d. h. lepresenced -d statt leperesenced &). Die sollte etwas schicker sein.
-Zu dem iPhone-Kapitel in #483 (vielleicht off-topic): Das funktioniert seit mehreren iOS-Versionen (iOS 8) nicht mehr, da das Gerät zumindest bei mir nach einiger Zeit nicht mehr reagiert. Dann geht überall das Licht aus und es gibt Diskussionen :)

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

isy

#549
Moin Devender,
ich habe deine Anleitung genommen, habe nur noch weitere Linux Tipps integriert. :-)

Sieht so aus:

Den Code für lepresenced habe ich hier gefunden, gibt es evtl. schicker:
https://github.com/mhop/fhem-mirror/blob/master/fhem/contrib/PRESENCE/lepresenced

Unter /fhem manuell den Ordner ,,script" anlegen:
mkdir script

Datei lepresenced reinkopieren und ausführbar machen:
sudo chmod +x /opt/fhem/script/lepresenced

Rechte ändern:
sudo -cR fhem:dialout ./script

Testen mit:
sudo ./lepresenced --loglevel LOG_EMERG -d

Gibt es beim Start des Scriptes eine FM, dann installieren:
sudo apt-get install libnet-server-*

Script beim Systemstart starten:
sudo nano /etc/rc.local

Datei rc.local, freie Stelle suchen, vor "exit 0":
# Start lepresenced
/opt/fhem/script/lepresenced --loglevel LOG_EMERG -d
exit 0


Fhem Definition:
define MeinGtAG PRESENCE lan-bluetooth xx:xx:xx:xx:xx:xx 127.0.0.1:5333 60 90

Den absent und present Mode kann man einfach testen, in dem man den Gtag mit Alufolie einwickelt.

Falls notwendig, PID herausbekommen und Daemon manuell stoppen:

ps -ef | grep lepresenced
sudo kill <pid>


Starten dann wieder wie oben!

Gruß Helmut

P.S. Beim Starten geht die grüne Leuchtdiode am BT Dongle (CSL - USB nano Bluetooth-Adapter V4.0 mit LED) auf "Dauerleuchten". Wäre evtl. auch einen Hinweis für die Umsteiger wert.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Markus Bloch

Hallo Patrick,

Zitat von: PatrickR am 29 Mai 2016, 15:06:49
-Zu dem iPhone-Kapitel in #483 (vielleicht off-topic): Das funktioniert seit mehreren iOS-Versionen (iOS 8) nicht mehr, da das Gerät zumindest bei mir nach einiger Zeit nicht mehr reagiert. Dann geht überall das Licht aus und es gibt Diskussionen :)

Das kann ich so bei mir nicht bestätigen. Ich nutze ein iPhone 6S. Vorraussetzung für die richtige Funktion ist, dass mind. ein Gerät mit dem Handy per Bluetooth gepairt ist. In meinem Fall ist mein Handy mit meinem Auto gepairt (Freisprecheinrichtung) und dadurch hält das iPhone den Bluetooth-Empfang immer aufrecht, auch im Standby.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

isy

Bei uns funktioniert IPhone 6 auch, nur das Samsung S4 schaltet ab und zu hin und her. Das ist in Summe lästig, daher die G-Tags.

Gruß Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

PatrickR

Hi!

Zitat von: Markus Bloch am 29 Mai 2016, 17:28:22
Das kann ich so bei mir nicht bestätigen. Ich nutze ein iPhone 6S. Vorraussetzung für die richtige Funktion ist, dass mind. ein Gerät mit dem Handy per Bluetooth gepairt ist. In meinem Fall ist mein Handy mit meinem Auto gepairt (Freisprecheinrichtung) und dadurch hält das iPhone den Bluetooth-Empfang immer aufrecht, auch im Standby.
Das mit dem Pairen hatte ich tatsächlich so auch gemacht und dann Probleme mit der Zuverlässigkeit. An Details kann ich mich zugegebenermaßen nicht mehr erinnern.

@pv_is: Oh, Du nutzt schon --loglevel. Sehr gut.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

HoTi

Hallo zusammen,

kann mir einer von euch bitte helfen?

Ich habe einen Cubitruck, einen USB Bluetooth Stick Nano V4.0 und 3 G-Tags(einen aktiv)

Ich habe mich versucht an die Anleitung Post #483 von Devender zu halten, Scheiter aber schon an den ersten zwei schritten:

Zitat1) BT Stick dem PI bekannt machen
Code: [Auswählen]
apt-get install bluetooth

2) reboot

3) in /var/log/messages sollte der BT Dongle jetzt erkannt worden sein.

klappt bis dahin.

Inhalt ist dann folgendes:
Jun  1 12:14:49 localhost kernel: [    4.290222] Bluetooth: Core ver 2.16
Jun  1 12:14:49 localhost kernel: [    4.299764] NET: Registered protocol family 31
Jun  1 12:14:49 localhost kernel: [    4.311037] Bluetooth: HCI device and connection manager initialized
Jun  1 12:14:49 localhost kernel: [    4.320823] Bluetooth: HCI socket layer initialized
Jun  1 12:14:49 localhost kernel: [    4.347347] Bluetooth: L2CAP socket layer initialized
Jun  1 12:14:49 localhost kernel: [    4.351459] Bluetooth: SCO socket layer initialized
Jun  1 12:14:49 localhost kernel: [    4.379356] Bluetooth: HCI UART driver ver 2.2
Jun  1 12:14:49 localhost kernel: [    4.383182] Bluetooth: HCI H4 protocol initialized
Jun  1 12:14:49 localhost kernel: [    4.387131] Bluetooth: HCI BCSP protocol initialized
Jun  1 12:14:49 localhost kernel: [    4.390829] Bluetooth: HCILL protocol initialized
Jun  1 12:14:49 localhost kernel: [    4.394774] Bluetooth: HCIATH3K protocol initialized
Jun  1 12:14:49 localhost kernel: [    4.406469] ap6xxx: config 32k clock
Jun  1 12:14:49 localhost kernel: [    4.433733] Bluetooth: RFCOMM TTY layer initialized
Jun  1 12:14:49 localhost kernel: [    4.437931] Bluetooth: RFCOMM socket layer initialized
Jun  1 12:14:49 localhost kernel: [    4.440766] Bluetooth: RFCOMM ver 1.11
Jun  1 12:14:49 localhost kernel: [    4.457096] Bluetooth: HIDP (Human Interface Emulation) ver 1.2


Warum er das falsche Datum hat weiß ich nicht.

Dann versuche ich:
Zitat3.1) Die Tags lassen sich suchen mit...
Code: [Auswählen]
sudo hcitool lescan

antwort:
root@cubie:~# hcitool lescan
Set scan parameters failed: File descriptor in bad state


Ok, dann steht ja wenn kein erfolg Neustart

root@cubie:~# sudo hciconfig hci0 down
Can't get device info: No such device


SOOO und nun stehe ich auf dem Schlauch ?!?!?!?!
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

hanami

Hallo miteinander,

ich habe schon einige Wochen diesen Tread mitgelesen. Ich habe mich wegen der unübersichtlichkeit nun gefreut, mit der Antwort #549
eine Art Tutorial zu lesen. Leider jedoch hapert es bei mir an allen Ecken und Enden mit den Tags. :-(

Fangen wir zuerst an:
2 iPhones werden seit geraumer Zeit erfolgreich mit dem Presence Modul betrieben.
Hiermit wird geschaltet, Pushover ausgelöst und per Sonos begrüßt.
Alles schön und gut.
Nachdem mein Sohn welcher noch kein  Handy hat, mir in den Ohren lag das er auch gern begrüßt werden möchte wenn er nachhause kommt,
kam mir nach ein wenig recherchen die Idee es mal mit einem BT-Tag zu probieren.
Also kaufte ich mit einen "nut" für kleines Geld.
Dieser wird sowohl von hciconfig lescan als auch mit dem Handy erkannt.
Als ich diesen definierte kam erstmal nix...
Dann habe ich vieles aus diesem Tread ausprobiert und nichts will so wie ich will.
'Entweder werden nur die iPhones oder nur der tag erkannt.
Leider will die Installation des Scriptes bei mir schon irgendwie nicht so wirklich.
Wenn ich mich an die Anleitung halte, erhalte ich ab der Zeile mit den Rechten: sudo -cR fhem:dialout ./script
folgende Fehlermeldung:

usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
            [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
            prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
            prompt] [-u user] file ...


Ich habe keine Ahnung mehr wo ich ansetzen soll :-(
Wüsst ich nicht das Ihr diese konstellation aus BT Scan und LE Scan bereits per script im Einsatz habt, würd ich den gnu tag wieder umtauschen :-(

Vielleicht habt Ihr ja noch einen Ansatz mit welchem sich die ganze Sache bewerkstelligen lässt.

Ich bedanke mich im voraus für eure Mühe und verbleibe
mit freundlichem Gruß
Hanami