PRESENCE und gtags = bt-probleme

Begonnen von the ratman, 03 Mai 2017, 17:23:19

Vorheriges Thema - Nächstes Thema

PatrickR

Nochmal: Bei lepresenced laufen hcitool *und* hcidump.


Von unterwegs gesendet.
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

CoolTux

Patrick kannst Du kurz erläutern wieso beides verwendet wird und wie genau?
Ich habe es so verstanden das hcidump ebenfalls die G-TAGS erkennen kann genau wie hcitool. Wozu wird dann hcitool noch benötigt und läuft es unter den selben Bedingungen wenn hcidump nicht installiert ist?
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

PatrickR

Hi!

Zitat von: CoolTux am 07 Mai 2017, 13:11:40
Patrick kannst Du kurz erläutern wieso beides verwendet wird und wie genau?
Ich habe es so verstanden das hcidump ebenfalls die G-TAGS erkennen kann genau wie hcitool. Wozu wird dann hcitool noch benötigt und läuft es unter den selben Bedingungen wenn hcidump nicht installiert ist?

Klar. hcidump ist ein Sniffer für die HCI(Host Controller Interface)-Kommunikation, d. h. jene zwischen dem Betriebssystem und der Bluetooth-Hardware. Mein Verständnis ist (habe ich zugegebenermaßen nicht sehr tief damit befasst), dass diese Kommunikation natürlich erst stattfinden muss, damit hcidump sie mitlesen kann. Daher muss parallel hcitool lescan laufen. Genau so mache ich es: Ich starte hcitool lescan, ignoriere die Ausgabe und parallel wertet hcidump die detaillierteren Daten aus.

Ich gebe zu, dass das nicht die informatisch schickste Lösung* ist. Ich hatte mich dafür entschieden, weil lepresenced so auf jedem Linux-System laufen sollte, auf dem hcitool und hcidump lauffähig existieren und zwar unabhängig von der Architektur. Nach meinen bisherigen Erfahrungen war das mit Blick auf den Supportaufwand hier im Forum auch die für die breite Nutzerschaft richtige Entscheidung. Dann muss man nur noch die Leute vor sich selbst schützen, die nicht das DEB-Paket installieren sondern lepresenced aus dem Web-SVN in den Editor pasten und den Perl-Interpreter dann an den zusätzlichen Zeilenumbrüchen ersticken lassen :)

Patrick

* Das wäre eine Lösung, wie sie Andre gebaut hat:
Zitat von: justme1968 am 10 Juni 2016, 17:36:24
für bluetooth le tags habe ich hier: https://forum.fhem.de/index.php/topic,28753.msg460340.html#msg460340 eine program zum scannen gepostet das auch den rssi wert ausliest.
Man könnte sogar noch einen draufsetzen und lepresenced komplett in C implementieren. Dann müsste man auch nicht mehr weitere Prozesse spawnen. Aber wie sagte Knuth so schön: Premature optimization is the root of all evil.
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

Devender

Zitat von: DeeSPe am 07 Mai 2017, 12:43:20
Also ich habe bei mir nichts speziell konfiguriert damit presenced und lepresenced zusammen laufen.
Ich hatte das ganze bis vor ein paar Tagen bei meinen Eltern auf einem RPi 2 laufen gehabt und bin nun auf einen "richtigen" Host mit Debian umgezogen. Es lief/läuft auf beiden System gleich. Auch bei mir zuhause laufen beide Dienste parallel ohne Probleme.
Damit BT bei mir funktioniert habe ich nur "bluez" und "bluez-hcidump", sowie "presenced-1.4.deb" und "lepresenced-0.81-1.deb" installiert.
Die Devices sind dann als BTLE:
define PRESENCE_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5333 10 30
und BT:
define PRESENCE2_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5111 10 30
angelegt.
Gruß
Dan

Gracias Dan!

Ich habe jetzt auch mal das presenced-1.4.deb Paket installiert und den Dienst gestartet.
Ich musste zwar den Port auf 5222 bei meiner Konfiguration anpassen aber danach wurde meine Pebble Time (z.b) erkannt.
Die anderen "alten" Geräte über lepresenced sehen auch gut aus.

Die DEF

define Pebble lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5222 300


hat somit funktioniert. Angeschlossen am Pi3 mit internem BT.

Grüße,
Dirk


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

the ratman

#34
mmm, ich wollts auch mal probierenpi@ratOhaus:~ $ wget https://svn.fhem.de/trac/export/14183/trunk/fhem/contrib/PRESENCE/deb/presenced-rpi-1.4.deb
--2017-05-07 15:48:24--  https://svn.fhem.de/trac/export/14183/trunk/fhem/contrib/PRESENCE/deb/presenced-rpi-1.4.deb
Auflösen des Hostnamen »svn.fhem.de (svn.fhem.de)«... 88.99.31.202, 2a01:4f8:10a:806::2
Verbindungsaufbau zu svn.fhem.de (svn.fhem.de)|88.99.31.202|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 Ok
Länge: nicht spezifiziert [application/x-debian-package]
In »»presenced-rpi-1.4.deb«« speichern.

presenced-rpi-1.4.deb             [ <=>                                                ]   6,02K  --.-KB/s   in 0,003s

2017-05-07 15:48:24 (2,34 MB/s) - »presenced-rpi-1.4.deb« gespeichert [6168]

pi@ratOhaus:~ $ sudo dpkg -i presenced-rpi-1.4.deb; sudo apt-get -f install
Vormals nicht ausgewähltes Paket presenced wird gewählt.
(Lese Datenbank ... 107646 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von presenced-rpi-1.4.deb ...
Entpacken von presenced (1.4) ...
presenced (1.4) wird eingerichtet ...
[ ok ] Starting presenced (via systemctl): presenced.service.
Trigger für systemd (215-17+deb8u6) werden verarbeitet ...
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
pi@ratOhaus:~ $ wget https://svn.fhem.de/trac/export/14183/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.81-1.deb
--2017-05-07 15:49:55--  https://svn.fhem.de/trac/export/14183/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.81-1.deb
Auflösen des Hostnamen »svn.fhem.de (svn.fhem.de)«... 88.99.31.202, 2a01:4f8:10a:806::2
Verbindungsaufbau zu svn.fhem.de (svn.fhem.de)|88.99.31.202|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 Ok
Länge: nicht spezifiziert [application/vnd.debian.binary-package]
In »»lepresenced-0.81-1.deb«« speichern.

lepresenced-0.81-1.deb            [ <=>                                                ]   6,50K  --.-KB/s   in 0,003s

2017-05-07 15:49:55 (2,17 MB/s) - »lepresenced-0.81-1.deb« gespeichert [6656]

pi@ratOhaus:~ $ sudo dpkg -i lepresenced-0.81-1.deb; sudo apt-get -f install
Vormals nicht ausgewähltes Paket lepresenced wird gewählt.
(Lese Datenbank ... 107648 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von lepresenced-0.81-1.deb ...
Entpacken von lepresenced (0.81-1) ...
lepresenced (0.81-1) wird eingerichtet ...
[ ok ] Starting lepresenced (via systemctl): lepresenced.service.
Trigger für systemd (215-17+deb8u6) werden verarbeitet ...
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
pi@ratOhaus:~ $
gleiches verhalten wie bisher - nach wenigen sekunden sind die handys nicht mehr zu finden, den rest kann ich leider nicht mehr testen in ermangelung fehlender gtags.2017.05.07 15:51:31 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12425
2017.05.07 15:51:32 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12434
2017.05.07 15:52:41 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12670
2017.05.07 15:52:42 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12677
2017.05.07 15:53:51 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12936
2017.05.07 15:53:53 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12943
2017.05.07 15:55:01 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13179
2017.05.07 15:55:03 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13186
2017.05.07 15:56:04 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13444
2017.05.07 15:56:13 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13467
2017.05.07 15:57:14 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13683
2017.05.07 15:57:23 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13706
2017.05.07 15:58:24 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13961
2017.05.07 15:58:33 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13982
→do↑p!dnʇs↓shit←

Devender

Laufen beide Dienste und wenn ja mit welchen Ports?
Die Handys sollten mit Presence laufen andere LE Devices mit lepreseced.

Deine Fehler deuten darauf hin, dass alles über den lepresened Daemon laeuft.

Zeig mal deine DEFs dazu oder ggf. nen List. In den Readings steht auch drin über welcher Daemon angesprochen wird.
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

the ratman

eines der 2 handys (das andere hat nur ne andere mac)Internals:
   ADDRESS    68:a0:f6:xx:xx:xx
   CHANGED
   DEF        local-bluetooth 68:a0:f6:xx:xx:xx
   MODE       local-bluetooth
   NAME       xxx
   NOTIFYDEV  global
   NR         255
   NTFY_ORDER 50-xxx
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TYPE       PRESENCE
   Readings:
     2017-05-07 16:50:34   device_name     xxx
     2017-05-07 16:50:34   presence        present
     2017-05-07 16:50:34   state           present
   Helper:
     CURRENT_STATE present
     PRESENT_COUNT 0
Attributes:
   DbLogExclude .*
   alias      Handy xxx
   devStateIcon absent:it_smartphone@red present:it_smartphone@green .*:Zsvg/settings@orange
   event-on-change-reading .*
   group      Anwesenheit
   icon       it_smartphone
   room       Anwesenheit
le-geräte kann ich ja in ermangelung von vorhandensein nicht anlegen
→do↑p!dnʇs↓shit←

DeeSPe

Zitat von: the ratman am 07 Mai 2017, 16:54:00
eines der 2 handys (das andere hat nur ne andere mac)Internals:
   ADDRESS    68:a0:f6:xx:xx:xx
   CHANGED
   DEF        local-bluetooth 68:a0:f6:xx:xx:xx
   MODE       local-bluetooth
   NAME       xxx
   NOTIFYDEV  global
   NR         255
   NTFY_ORDER 50-xxx
   STATE      present
   TIMEOUT_NORMAL 30
   TIMEOUT_PRESENT 30
   TYPE       PRESENCE
   Readings:
     2017-05-07 16:50:34   device_name     xxx
     2017-05-07 16:50:34   presence        present
     2017-05-07 16:50:34   state           present
   Helper:
     CURRENT_STATE present
     PRESENT_COUNT 0
Attributes:
   DbLogExclude .*
   alias      Handy xxx
   devStateIcon absent:it_smartphone@red present:it_smartphone@green .*:Zsvg/settings@orange
   event-on-change-reading .*
   group      Anwesenheit
   icon       it_smartphone
   room       Anwesenheit
le-geräte kann ich ja in ermangelung von vorhandensein nicht anlegen

Ist Dir noch nicht aufgefallen dass bei denen wo es funktioniert über "lan-bluetooth" läuft und Du alles über "local-bluetooth" ansprichst?

Gruß
Dan

EDIT: Hab ja nicht umsonst die jeweiligen DEFs gepostet.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

the ratman

#38
aufgefallen ... ja
nur dachte ich - einfach gestrickt wie ich halt mal bin - local ist ein bt direkt am raspi und lan wäre ein entfernters bt auf nem anderen gerät.

des weiteren:
nach commandref define iPhone PRESENCE lan-bluetooth 0a:4f:36:d8:f9:89 127.0.0.1:5222 gebastelt:
DEF    lan-bluetooth 68:a0:f6:xx:xx:xx 127.0.0.1:5222

PRESENCE Definition "xxx" is not connected to 127.0.0.1:5222
→do↑p!dnʇs↓shit←

DeeSPe

Zitat von: the ratman am 07 Mai 2017, 18:06:57
aufgefallen ... ja
nur dachte ich - einfach gestrickt wie ich halt mal bin - local ist ein bt direkt am raspi und lan wäre ein entfernters bt auf nem anderen gerät.

des weiteren:
nach commandref define iPhone PRESENCE lan-bluetooth 0a:4f:36:d8:f9:89 127.0.0.1:5222 gebastelt:
DEF    lan-bluetooth 68:a0:f6:xx:xx:xx 127.0.0.1:5222

PRESENCE Definition "xxx" is not connected to 127.0.0.1:5222

Mal meine Varianten getestet?

Zitat von: DeeSPe am 07 Mai 2017, 12:43:20
Die Devices sind dann als BTLE:
define PRESENCE_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5333 10 30
und BT:
define PRESENCE2_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5111 10 30
angelegt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

the ratman

#40
ah, 5111 funzt

schade nur, dass es mir nix mehr nutzt *g*
abgeshen davon kommt bei mir schon wieder leichte verzweiflung auf, wenn ich nicht mehr der commandref glauben darf (keine beschwerde, nur gejammer).

nachtrag:
spaßeshalber hab ich lepresenced nochmal installiert - diesmal leben die handys
jetzt müßt ich nur mehr le-devices zum testen haben ...
→do↑p!dnʇs↓shit←

Devender

Naja, für den Nutzen musst du dir ja nur noch mal die G-Tags kaufen  ;D
Standardport ist eigentlich immer 5111. Hatte ja geschrieben, dass ich es bei mir wegen lepresened anpassen musste.

Danke Dan für die Auflösung diese komplizierten Thema  8)
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

the ratman

#42
hehe wies der teufel will ...

bekannter is da mit nem tag.
leider bleibt der absent - und ja, er wurde aus seinem handy vorher gekilled.

Internals:
   ADDRESS    xx:xx:xx:xx:xx:xx
   CFGFN
   DEF        lan-bluetooth xx:xx:xx:xx:xx:xx 127.0.0.1:5333 10 30
   DeviceName 127.0.0.1:5333
   FD         12
   MODE       lan-bluetooth
   NAME       teschterle
   NOTIFYDEV  global
   NR         8796
   NTFY_ORDER 50-teschterle
   PARTIAL
   STATE      absent
   TIMEOUT_NORMAL 10
   TIMEOUT_PRESENT 30
   TYPE       PRESENCE
   Readings:
     2017-05-07 19:02:20   daemon          lepresenced V0.81
     2017-05-07 19:02:20   presence        absent
     2017-05-07 19:02:20   rssi            unreachable
     2017-05-07 19:02:20   state           absent
   Helper:
     CURRENT_TIMEOUT normal
Attributes:
→do↑p!dnʇs↓shit←

Devender

Port 5111 nicht 5333?
Dein Def ist mit 5333.
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

the ratman

na wat nu?
5111 soll doch normales bt sein und 5333 le
gtags brauchen le, dachte ich

ZitatDie Devices sind dann als BTLE:
define PRESENCE_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5333 10 30

und BT:
define PRESENCE2_rr_Dan PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5111 10 30

angelegt.
→do↑p!dnʇs↓shit←