PRESENCE Modul in Verbindung mit Minew D15 iBeacon klappt nicht

Begonnen von t1me2die, 18 September 2018, 22:03:41

Vorheriges Thema - Nächstes Thema

t1me2die

#15
Gut, starten wir den nächsten Versuch.

Zuerst einmal habe ich folgendes gemacht:

wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.9-1.deb

sudo dpkg -i lepresenced-0.9-1.deb

sudo apt-get -f install


Daraus resultierte:

root@FHEM:~# wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.9-1.deb
--2018-09-20 11:09:36--  https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.9-1.deb
Auflösen des Hostnamens »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, auf Antwort wird gewartet ... 200 Ok
Länge: nicht spezifiziert [application/vnd.debian.binary-package]
Wird in »»lepresenced-0.9-1.deb«« gespeichert.

lepresenced-0.9-1.d     [ <=>                ]   7,18K  --.-KB/s    in 0s

2018-09-20 11:09:36 (14,6 MB/s) - »lepresenced-0.9-1.deb« gespeichert [7348]

root@FHEM:~# sudo dpkg -i lepresenced-0.9-1.deb
dpkg: Warnung: Version 0.83-3 des Paketes lepresenced wird durch ältere Version 0.9-1 ersetzt
(Lese Datenbank ... 95285 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von lepresenced-0.9-1.deb ...
Entpacken von lepresenced (0.9-1) über (0.83-3) ...
lepresenced (0.9-1) wird eingerichtet ...
root@FHEM:~# sudo apt-get -f install
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
root@FHEM:~#


Soweit so gut.
Nun habe ich folgende Datei angepasst unter: /etc/default/lepresenced

#
# Default settings for /etc/init.d/lepresenced
#

#Bluetooth device to use for scanning.
BLUETOOTH_DEVICE="hci1"

#Address to listen for incoming connections. For local connections use 127.0.0.1.
#LISTEN_ADDRESS="0.0.0.0"

#Port to listen for incoming connections.
#LISTEN_PORT="5333"

#Syslog level. LOG_EMERG disables logging.
#SYSLOG_LEVEL="LOG_WARNING"

#Additional command line options
#MISC_OPTIONS=""


Dies ist auch korrekt auskommentiert?
Muss ich noch etwas auskommentieren oder reicht dies schon aus?

Sollte ich jetzt noch einmal meine Maschine neustarten?

Nach einem Neustart würde ich dann folgendes eintragen:

define iBeacon_Mathze PRESENCE lan-bluetooth AC:23:3F:26:4A:83 127.0.0.1:5333 10 60


Und ihr sagt, dass ich das folgende Attribut nicht setzen soll:

attr iBeacon_Mathze bluetoothHciDevice hci1

Beschreibung:
bluetoothHciDevice
(Only in Mode "local-bluetooth" applicable)
Set a specific bluetooth HCI device to use for scanning. If you have multiple bluetooth modules connected, you can select a specific one to use for scanning (e.g. hci0, hci1, ...).


So schaut dann mein iBeacon aus:

Internals:
   ADDRESS    AC:23:3F:26:4A:83
   CFGFN     
   DEF        lan-bluetooth AC:23:3F:26:4A:83 127.0.0.1:5333 10 60
   DeviceName 127.0.0.1:5333
   FD         11
   INTERVAL_NORMAL 10
   INTERVAL_PRESENT 60
   MODE       lan-bluetooth
   NAME       iBeacon_Mathze
   NOTIFYDEV  global
   NR         31
   NTFY_ORDER 50-iBeacon_Mathze
   PARTIAL   
   STATE      absent
   TYPE       PRESENCE
   READINGS:
     2018-09-20 11:20:57   daemon          lepresenced V0.9
     2018-09-20 11:20:57   model           lan-lepresenced
     2018-09-20 11:20:57   presence        absent
     2018-09-20 11:20:57   rssi            unreachable
     2018-09-20 11:20:57   state           absent
   helper:
     CURRENT_TIMEOUT normal
Attributes:


Wie kann ich prüfen, ob local-bluetooth tatsächlich auf das "HCI0" Device zugreift?
Ich möchte zuerst feststellen, dass meine beiden Bluetooth Stick's jeweils auf:

HCO0 = local-bluetooth (für meine Smartphones) &
HCI1 = lan-bluetooth (iBeacons)

läuft.

Ich nutze die App "BeaconSet+", dort kann ich den iBeacon sehen, aber "verbunden" ist dieser nicht mit der App.
Also ich habe den iBeacon nicht aktiv verbunden.
Alternativ könnte ich die App löschen und danach noch einmal schauen?!

Ein

service presenced status
service lepresenced status

ergibt, dass beide Dienste wohl laufen.
Wobei beim PRESENCED Dienst für mich nicht ersichtlich ist, dass dieser Dienst mit dem HCI0-Gerät läuft?!


root@FHEM:~# service lepresenced status
● lepresenced.service - lepresenced
   Loaded: loaded (/lib/systemd/system/lepresenced.service; enabled; vendor pres
   Active: active (running) since Thu 2018-09-20 11:29:53 CEST; 3min 34s ago
Main PID: 4071 (lepresenced)
   CGroup: /system.slice/lepresenced.service
           └─4071 /usr/bin/perl /usr/sbin/lepresenced --device hci1 --listenaddr

Sep 20 11:33:25 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hci
Sep 20 11:33:25 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hci
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Rec
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hci
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hci
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Rec
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hci
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hci
Sep 20 11:33:28 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Rec
Sep 20 11:33:28 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hci
lines 1-17/17 (END)
● lepresenced.service - lepresenced
   Loaded: loaded (/lib/systemd/system/lepresenced.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-09-20 11:29:53 CEST; 3min 34s ago
Main PID: 4071 (lepresenced)
   CGroup: /system.slice/lepresenced.service
           └─4071 /usr/bin/perl /usr/sbin/lepresenced --device hci1 --listenaddress 0.0.0.0 -

Sep 20 11:33:25 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hcitool exited,
Sep 20 11:33:25 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hcidump exited,
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Received unknown
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hcitool exited,
Sep 20 11:33:26 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hcidump exited,
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Received unknown
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hcitool exited,
Sep 20 11:33:27 FHEM lepresenced[4071]: [tid:2] main::bluetooth_dump_thread: hcidump exited,
Sep 20 11:33:28 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: Received unknown
Sep 20 11:33:28 FHEM lepresenced[4071]: [tid:1] main::bluetooth_scan_thread: hcitool exited,


Gruß
Mathze

PS.: Danke für Eure Geduld  :)

binford6000

ZitatDies ist auch korrekt auskommentiert?
Muss ich noch etwas auskommentieren oder reicht dies schon aus?
Sieht bei mir auch so aus.
ZitatNach einem Neustart würde ich dann folgendes eintragen:
define iBeacon_Mathze PRESENCE lan-bluetooth AC:23:3F:26:4A:83 127.0.0.1:5333 10 60
Korrekt
ZitatSollte ich jetzt noch einmal meine Maschine neustarten?
Dienst lepresenced neu starten sollte genügen. Schadet aber auch nix.
ZitatUnd ihr sagt, dass ich das folgende Attribut nicht setzen soll:
Nein nicht setzen, wird ja in /etc/default/lepresenced konfiguriert.
Geht auch nicht da es nur im local-bluetooth Modus zur Verfgung steht ;)
ZitatWie kann ich prüfen, ob local-bluetooth tatsächlich auf das "HCI0" Device zugreift?
Prüfen weiß ich jetzt nicht, aber konfigurieren musst du es in dem du beim local-bluetooth device das Attribut bluetoothHciDevice auf hci0 setzt.
ZitatSo schaut dann mein iBeacon aus:
Sieht alles doch soweit OK aus. Ist das iBeacon denn auch wirklich absent? Von time-out ist ja nichts zu sehen...
VG Sebastian



binford6000

Hier mal ein Beispiel für ein local-bluetooth Device:
Internals:
   ADDRESS    00:06:08:05:0D:00
   CFGFN     
   DEF        local-bluetooth 00:06:08:05:0D:00 60 60
   INTERVAL_NORMAL 60
   INTERVAL_PRESENT 60
   MODE       local-bluetooth
   NAME       localBTtest
   NOTIFYDEV  global
   NR         27461
   NTFY_ORDER 50-localBTtest
   STATE      absent
   TYPE       PRESENCE
   READINGS:
     2018-09-20 13:10:52   model           local-bluetooth
     2018-09-20 13:17:35   presence        absent
     2018-09-20 13:17:35   state           absent
   helper:
Attributes:
   bluetoothHciDevice hci0


Und zum Vergleich ein gtag als lan-bluetooth mit lepresenced:

Internals:
   ADDRESS    7C:2F:80:xx:xx:xx
   DEF        lan-bluetooth 7C:2F:80:xx:xx:xx 10.3.3.236:5333 15 40
   DeviceName 10.3.3.236:5333
   FD         17
   INTERVAL_NORMAL 15
   INTERVAL_PRESENT 40
   MODE       lan-bluetooth
   NAME       Sebastian.gtag2.PRE
   NOTIFYDEV  global
   NR         288
   NTFY_ORDER 50-Sebastian.gtag2.PRE
   PARTIAL   
   STATE      absent
   TYPE       PRESENCE
   READINGS:
     2018-09-18 01:31:19   battery         22
     2018-09-20 08:51:48   command_accepted yes
     2018-09-20 13:19:33   daemon          lepresenced V0.9
     2018-09-19 22:54:28   device_name     Gigaset G-tag
     2018-09-20 13:19:33   model           lan-lepresenced
     2018-09-20 13:19:33   presence        absent
     2018-09-20 13:19:33   rssi            unreachable
     2018-09-20 13:19:33   state           absent
   helper:
     ABSENT_COUNT 3
     CURRENT_STATE present
     CURRENT_TIMEOUT normal
     DISABLED   0
Attributes:
   absenceThreshold 4
   alias      Sebastian's gtag lepresenced
   devStateIcon present:ios-on-blue absent:ios-off /disabled|disconnected/:ios-NACK
   disable    0
   event-on-update-reading presence,state
   group      Anwesenheit
   icon       gtag1
   room       30_Devices
   st_type_presence SebastianstructMain
   userReadings battery
   userattr   st_type_presence st_type_presence_map structexclude


VG Sebastian

t1me2die

#18
Moin Sebastian,

du hast jetzt aber das Attribut:
bluetoothHciDevice hci0
gesetzt?

Bewusst? Unbewusst oder Automatisch?

Und welche IP Adresse muss ich angeben?
Ich hatte bisher immer 127.0.0.1, welches doch die lokale Adresse ist.

Gruß
Mathze

binford6000

#19
ZitatBewusst? Unbewusst oder Automatisch?
Bewusst und manuell am local-bluetooth device.
Laut Doku:
bluetoothHciDevice
(Nur im Modus "local-bluetooth" anwendbar)
Sofern man mehrere Bluetooth-Empfänger verfügbar hat, kann man mit diesem Attribut ein bestimmten Empfänger auswählen,
welcher zur Erkennung verwendet werden soll (bspw. hci0, hci1, ...). Es muss dabei ein vorhandener HCI-Gerätename
angegeben werden wie z.B. hci0.

ZitatUnd welche IP Adresse muss ich angeben?
Ich hatte bisher immer 127.0.0.1, welches doch die lokale Adresse ist.
Die IP wo lepresenced drauf läuft. Wenn es dein FHEM Server ist geht auch 127.0.0.1 oder seine IP Adresse.
Ist bei mir auf einem separaten IOServer und nicht auf dem FHEM Server  ;)
VG Sebastian

t1me2die

#20
Okay,

also nochmal zusammengefasst:

Ich habe zwei USB BT Dongles:
HCI0
HCI1

HCI1 stelle ich in der Datei "/etc/default/lepresenced" ein.
Damit wird HCI1 exklusiv für "lepresenced" reserviert.

In FHEM gebe ich meinen Geräten die "local-bluetooth" verwenden das Attribute

attr Device bluetoothHciDevice hci0

mit.

Soweit verstanden.

Beide USB BT Dongle müssen gemountet sein, sobald die beiden Startscripte laufen:


/lib/systemd/system/lepresenced.service
/lib/systemd/system/presenced.service


ist das richtig?

Ich habe bei mir nämlich den speziellen Fall, dass ich nach dem StartUp der VM zuerst die USB-Geräte durch-reichen (mounte) muss.
Hier läuft bei mir ein Shell-Script, welches dies automatisch macht.

Ich muss halt nur dafür sorgen, dass beide Services erst dann starten, wenn beide BT Dongles gemountet sind und danach FHEM gestartet wird.

Gruß
Mathze

binford6000

ZitatIch muss halt nur dafür sorgen, dass beide Services erst dann starten, wenn beide BT Dongles gemountet sind und danach FHEM gestartet wird.
Du könntest FHEM (Module) dafür "missbrauchen":
notify auf global:INITIALIZED und dann entweder per
{system("sudo /etc/init.d/lepresenced restart")}
oder mit dem Modul serviced arbeiten.

VG Sebastian

t1me2die

#22
Ich glaube ich muss es aufgeben, ich bekomme es einfach nicht hin.

Zwei USB BT Dongles werden per lsusb erkannt.
PRESENCED läuft.
LEPRESENCED läuft auf hci1


root@FHEM:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@FHEM:~# service lepresenced status
● lepresenced.service - lepresenced
   Loaded: loaded (/lib/systemd/system/lepresenced.service; enabled; vendor pres
   Active: active (running) since Thu 2018-09-20 17:46:03 CEST; 6min ago
  Process: 1009 ExecStartPre=/bin/sleep 90 (code=exited, status=0/SUCCESS)
Main PID: 1018 (lepresenced)
    Tasks: 5 (limit: 4915)
   CGroup: /system.slice/lepresenced.service
           ├─1018 /usr/bin/perl /usr/sbin/lepresenced --device hci1 --listenaddr
           ├─1028 hcitool -i hci1 lescan --duplicates
           └─1030 hcidump -i hci1

Sep 20 17:44:33 FHEM systemd[1]: Starting lepresenced...
Sep 20 17:46:03 FHEM systemd[1]: Started lepresenced.

root@FHEM:~# service presenced status
● presenced.service - presence daemon to check device presence via bluetooth for
   Loaded: loaded (/lib/systemd/system/presenced.service; enabled; vendor preset
   Active: active (running) since Thu 2018-09-20 17:52:16 CEST; 13s ago
     Docs: http://commandref.fhem.de/#PRESENCE
           https://wiki.fhem.de/wiki/PRESENCE#.C3.9Cberwachung_durch_verteilte_A
  Process: 1663 ExecStartPre=/bin/sleep 80 (code=exited, status=0/SUCCESS)
Main PID: 1904 (presenced)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/presenced.service
           └─1904 /usr/bin/perl /usr/bin/presenced -v -n -p 5111

Sep 20 17:50:56 FHEM systemd[1]: Starting presence daemon to check device presen
Sep 20 17:52:16 FHEM systemd[1]: Started presence daemon to check device presenc
Sep 20 17:52:16 FHEM presenced[1904]: [22B blob data]
Sep 20 17:52:16 FHEM presenced[1904]: [31B blob data]


Mein iBeacon ist present, augenscheinlich funktioniert "lepresenced".


Internals:
   ADDRESS    AC:23:3F:26:4A:83
   DEF        lan-bluetooth AC:23:3F:26:4A:83 127.0.0.1:5333 10 60
   DeviceName 127.0.0.1:5333
   FD         5
   INTERVAL_NORMAL 10
   INTERVAL_PRESENT 60
   MODE       lan-bluetooth
   NAME       iBeacon_Mathze
   NOTIFYDEV  global
   NR         23
   NTFY_ORDER 50-iBeacon_Mathze
   PARTIAL   
   STATE      present
   TYPE       PRESENCE
   READINGS:
     2018-09-20 17:49:01   command_accepted yes
     2018-09-20 17:51:01   daemon          lepresenced V0.9
     2018-09-20 17:51:01   device_name     (unknown)
     2018-09-20 17:51:01   model           lan-lepresenced
     2018-09-20 17:51:01   presence        present
     2018-09-20 17:51:01   rssi            -58
     2018-09-20 17:51:01   state           present
   helper:
     CURRENT_STATE present
     CURRENT_TIMEOUT present
     PRESENT_COUNT 0
Attributes:
   room       Anwesenheit


Jedoch ist mein local-bluetooth auf timeout:


Internals:
   ADDRESS    B8:53:AC:31:65:0C
   DEF        local-bluetooth B8:53:AC:31:65:0C 10 60
   INTERVAL_NORMAL 10
   INTERVAL_PRESENT 60
   MODE       local-bluetooth
   NAME       PRESENCE_rr_Mathze
   NOTIFYDEV  global
   NR         28
   NTFY_ORDER 50-PRESENCE_rr_Mathze
   STATE      timeout
   TYPE       PRESENCE
   READINGS:
     2018-09-20 17:45:07   device_name     iPhone
     2018-09-20 17:49:00   model           local-bluetooth
     2018-09-20 17:45:07   presence        present
     2018-09-20 17:51:10   state           timeout
   helper:
     ABSENT_COUNT 0
     PRESENT_COUNT 0
     RETRY_COUNT 2
Attributes:
   bluetoothHciDevice hci0
   room       Anwesenheit


Augenscheinlich kann ich die beiden Services (PRESENCED & LEPRESENCED) mit 2 USB BT Dongle nicht parallel laufen lassen oder ich mache etwas verkehrt.
Habe mir fix eine zweite VM mit FHEM aufgesetzt und dort kurzerhand LEPRESENCED installiert.
iBeacon kurz hinzugefügt und läuft.
Evtl. muss ich dann mit FHEM2FHEM arbeiten, sodass ich meine Smartphones mit local-bluetooth und die iBeacons trotzdem zusammenfassen kann.
Außer jemand kann mir evtl. doch zeigen, wie ich beide Services auf einer Maschine mit zwei USB Bluetooth Dongles zum laufen bekomme.

Gruß
Mathze

binford6000

ZitatAugenscheinlich kann ich die beiden Services (PRESENCED & LEPRESENCED) mit 2 USB BT Dongle nicht parallel laufen lassen oder ich mache etwas verkehrt.
Ich hab Testweise mal mein iPhone als local-bluetooth angelegt. OHNE presenced...
Allerdings läuft lepresenced ja bei mir auf einem anderen Raspi. Aber das könntest du noch mal testen.
Also presenced Dienst stoppen und schauen ob dein Handy dann auftaucht.
VG Sebastian