erweiterung von PRESENCE/(le)presenced/collectord um rssi werte

Begonnen von justme1968, 10 Juni 2016, 17:36:24

Vorheriges Thema - Nächstes Thema

dieda

Bin zwar interessiert, aber imo weder Zeit noch genug Wissen. Will ja auch aus weiter entfernten Räumen meine LE-Tags auslesen.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

inesa394

#31
Hallo

Habe beide Module bei mir installiert RSSI Werte 2Gtag + ein HM10 werden erkannt RSSI sind nahzu indentisch gtag etwas stärkeres Signal (Wohnzimmer)
Im oberen stockwerk wo ich noch 2 HM10 habe erfolgt keine Erkennung vorher mit alten lepresenced wurde es ohne Probleme erkannt.
Diese Devices melden allerdings als Name (unknown) vielleicht liegt es ja daran.
Gestartet über rc.local  /home/pi/lepresenced -a 0.0.0.0 -d
RSSI werte bleiben wenn gtag abwesend auf letzten Wert eingefroren denke mal so gewollt.


PatrickR

Hi!

Danke erstmal fürs Testen!

Zitat von: inesa394 am 16 Januar 2017, 14:27:58
Habe beide Module bei mir installiert RSSI Werte 2Gtag + ein HM10 werden erkannt RSSI sind nahzu indentisch gtag etwas stärkeres Signal (Wohnzimmer)
Im oberen stockwerk wo ich noch 2 HM10 habe erfolgt keine Erkennung vorher mit alten lepresenced wurde es ohne Probleme erkannt.
Diese Devices melden allerdings als Name (unknown) vielleicht liegt es ja daran.

Sieht so aus, als würde sich meine G-Tag-Monokultur nun rächen. Kannst Du mal lepresenced stoppen und in zwei Shells folgende Befehle parallel laufen lassen, bis mindestens ein HM10-Beacon empfangen wurde:
hcitool -i hci0 lescan --duplicates
und
hcidump -i hci0
und die Ausgabe des 2. Befehls posten oder mir per PN schicken?

Falls der Scan nicht funktioniert vorher folgendes ausführen:

hciconfig hci0 reset


Zitat von: inesa394 am 16 Januar 2017, 14:27:58
RSSI werte bleiben wenn gtag abwesend auf letzten Wert eingefroren denke mal so gewollt.
Das ist ein Bug, da irreführend. Ist in einer Zwischenversion schon korrigiert.

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

inesa394


PatrickR

@inesa394:
Probiere doch bitte mal die angehängte Version (0.7dev4).

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

inesa394

funktioniert jetzt mit der letzten Version alle HM10 Beacons werden erkannt.
Welcher RSSI wird angezeigt da einige Beacons von zwei Räumen gefunden
werden?
ternals:
   ADDRESS    74:DA:EA:B1:DD:xx
   CHANGED
   DEF        lan-bluetooth 74:DA:EA:B1:DD:xx 127.0.0.1:5222 120
   DeviceName 127.0.0.1:5222
   FD         110
   MODE       lan-bluetooth
   NAME       hm10flur
   NOTIFYDEV  global
   NR         585
   NTFY_ORDER 50-hm10flur
   PARTIAL
   STATE      present
   TIMEOUT_NORMAL 120
   TIMEOUT_PRESENT 120
   TYPE       PRESENCE
   Readings:
     2016-12-16 21:23:07   command_accepted yes
     2017-01-18 20:48:40   daemon          lepresenced V0.7dev4
     2017-01-18 20:48:40   device_name      HMSOFT.G-tag
     2017-01-18 20:48:40   presence        present
     2017-01-16 13:43:12   room            ibeacondach,ibeaconwz
     2017-01-18 20:48:40   rooms           ibeacondach,ibeaconwz
     2017-01-18 20:48:40   rssi            -78
     2017-01-18 20:48:40   state           present
   Helper:
     CURRENT_STATE present
     CURRENT_TIMEOUT normal
Attributes:
   devStateIcon present:dim75% absent:off@red
   event-on-change-reading state
   icon       it_smartphone
   room       Status

Ines

slor

Ich habe bei mir den presenced installiert. (min 1 Jahr alt)
Kann auch mit dem neuen lepresenced testen? Oder erkennt der meine Handys nicht?
Würde gerne sehen, ob ich auch RSSI Werte bekomme.

Kann man da nicht ein script draus machen was beides kann?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

PatrickR

#37
presenced kann nur Bluetooth, lepresenced nur Bluetooth LE. D. h. Dein Handy wird lepresenced nicht erkennen.

Du kannst einfach presenced und lepresenced laufen lassen. Die sind auf friedliche Koexistenz getrimmt. Eine Zusammenfassung halte ich aus mehreren Gründen für ungünstig (Verschiedene Ansätze, verschiedene Maintainer etc.)


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

Jamo

#38
Es wäre schade, wenn das Thema nicht weitergeführt wird, ich kann mich zum testen anbieten.
Ich habe 3 GTags, und benutzte collectord and lepresenced um meine BT Tags und mein iPhone (also BT and BT LE) von 3 verschiedenen RaspPi 3 mit lepresenced instanzen aufzusammeln.

Ich würde den lepresenced mit RSSI gerne testen, wenn mir einer erklärt wie ich den lepresenced von PatrickR kompiliere/installiere :-(
Sonst habe ich immer mit "sudo wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.6-1.deb && sudo dpkg -i lepresenced-0.6-1.deb" das lepresenced package installiert.

Beste Grüsse
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

PatrickR

Hi!

Zitat von: inoma am 05 Februar 2017, 17:20:15
Ich würde den lepresenced mit RSSI gerne testen, wenn mir einer erklärt wie ich den lepresenced von PatrickR kompiliere/installiere :-(
Wichtig für den Test ist, dass Du sowohl den collectord hier aus dem Thread als auch den letzten lepresenced hier aus dem Thread installierst.

Für den lepresenced sind das folgende Schritte (aus dem Kopf, daher evtl. nicht 100% fehlerfrei.) Da der Download aus dem Forum nur eingeloggt geht, ist es sinnvoll, wenn Du zuerst den letzten lepresenced hier aus dem Thread (#34) herunterlädst und dann z. B. per WinSCP auf den Pi kopierst. Nehmen wir mal an, das hast Du getan und er liegt jetzt unter /root/lepresenced. Dann:

sudo -i
/etc/init.d/lepresenced stop
apt-get install bluez-hcidump
cd /usr/local/sbin
cp lepresenced lepresenced.old
cp /root/lepresenced .
chmod 744 lepresenced
/etc/init.d/lepresenced start

Wenn irgendetwas nicht klappt kannst Du einfach den alten lepresenced zurückkopieren oder einfach das Paket wieder drüberinstallieren.

Zitat von: inoma am 05 Februar 2017, 17:20:15
Sonst habe ich immer mit "sudo wget https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/PRESENCE/deb/lepresenced-0.6-1.deb && sudo dpkg -i lepresenced-0.6-1.deb" das lepresenced package installiert.
Sehr gut! Endlich mal jemand, der sich nicht unnötig das Leben schwer macht und einfach das Paket installiert.

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

Jamo

#40
Also das lepresenced läuft soweit, unten das listing.
Ich habe das neue lepresenced auf allen drei Raspberry Pi installiert (Schlaf/Flur/Wohn).
Der RSSI hat sich auch brav geändert zwischen -85 und -81, wenn ich Ihn dann in die Mikrowelle stecke, bleibt er auf -86 stehen (also klemmt er auf dem letzten gemessenen RSSI Wert fest).

Allerdings scheint der collectord aus post #23 nicht zu funktionieren:

Ich habe den collectord aus post #23 nach /usr/sbin/ kopiert, danach ein
pi@jessie ~ $ sudo update-rc.d collectord remove
pi@jessie ~ $ sudo update-rc.d collectord defaults
und/etc/collectord.conf um rssi=90 erweitert
und den Raspberry 3 (Jessie) neu gestartet.
-> jedoch bekomme ich danach ein für alle Devices, also für die BT und BT-LE:

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

im list sieht das dann so aus:

Readings:
     2017-02-07 23:47:45   Batterie        56
     2017-02-08 01:53:10   Battery         ok
     2017-02-08 08:04:53   command_accepted yes
     2017-02-08 01:50:00   daemon          lepresenced V0.7dev4
     2017-02-08 01:50:00   device_name     Gigaset G-tag
     2017-02-08 01:50:00   presence        present
     2017-02-04 16:55:50   room            SchlafLE,flurLE,wohnLE
     2017-02-08 01:50:00   rooms           SchlafLE,flurLE
     2017-02-08 01:50:00   rssi            -83
     2017-02-08 08:19:01   state           disconnected


sudo hcitool -i hci0 lescan --duplicates
LE Scan ...
7C:2F:80:98:C2:2A (unknown)
7C:2F:80:98:C2:2A Gigaset G-tag


pi@jessie ~ $ sudo hciconfig hci0 reset
pi@jessie ~ $ sudo hcidump -i hci0
pi@jessie ~ $ sudo hcidump -i hci0
HCI sniffer - Bluetooth packet analyzer ver 5.42
device: hci0 snap_len: 1500 filter: 0xffffffff
HCI sniffer - Bluetooth packet analyzer ver 5.42
device: hci0 snap_len: 1500 filter: 0xffffffff
> HCI Event: LE Meta Event (0x3e) plen 42
    LE Advertising Report
      ADV_IND - Connectable undirected advertising (0)
      bdaddr 7C:2F:80:98:C2:2A (Public)
      Flags: 0x06
      Unknown type 0xff with 12 bytes data
      Shortened service classes: 0x180f
      RSSI: -80
> HCI Event: LE Meta Event (0x3e) plen 27
    LE Advertising Report
      SCAN_RSP - Scan Response (4)
      bdaddr 7C:2F:80:98:C2:2A (Public)
      Complete local name: 'Gigaset G-tag'
      RSSI: -80


Aber auch:
pi@wohny ~ $ sudo hcidump -i hci0
HCI sniffer - Bluetooth packet analyzer ver 5.42
device: hci0 snap_len: 1500 filter: 0xffffffff
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
    bdaddr 7C:2F:80:98:C2:2A mode 2 clkoffset 0x0000
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x04 bdaddr 7C:2F:80:98:C2:2A name ''
    Error: Page Timeout


Internals:
   ADDRESS    7C:2F:80:98:C2:2A
   CHANGED
   DEF        lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   DeviceName 127.0.0.1:5222
   FD         26
   MODE       lan-bluetooth
   NAME       Presence_GTag_RED_collect
   NOTIFYDEV  global
   NR         3052
   NTFY_ORDER 50-Presence_GTag_RED_collect
   PARTIAL
   STATE      present SchlafLE,flurLE,wohnLE
   TIMEOUT_NORMAL 120
   TIMEOUT_PRESENT 120
   TYPE       PRESENCE
   Readings:
     2017-02-07 23:47:45   Batterie        56
     2017-02-08 00:34:39   Battery         ok
     2017-02-08 00:36:00   command_accepted yes
     2017-02-08 00:15:07   daemon          lepresenced V0.7dev4
     2017-02-08 00:37:02   device_name     Gigaset G-tag
     2017-02-08 00:37:02   presence        present
     2017-02-04 16:55:50   room            SchlafLE,flurLE,wohnLE
     2017-02-08 00:37:02   rooms           SchlafLE,flurLE,wohnLE
     2017-02-08 00:15:07   rssi            -86
     2017-02-08 00:37:02   state           present
   Helper:
     CURRENT_STATE present
     CURRENT_TIMEOUT normal
Attributes:
   comment    lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   event-on-change-reading state,Battery,Batterie,presence
   group      PRESENCE
   room       Presence
   sortby     12
   stateFormat state room
   userReadings Batterie,Battery
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

PatrickR

Danke fürs Testen. Die rssi-Geschichte sehe ich mir mal an.


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

PatrickR

Mahlzeit!

Danke für's Testen!

Habe gerade nochmal nachgesehen. Ich setze bei Nichterreichbarkeit den rssi explizit auf "unreachable", um keine irreführenden Werte zu liefern. D. h. das "Festklemmen" muss im collectord passieren. Ich hatte das tatsächlich in einer alten Version mal als Bug drin aber schon gefixt.

@Markus: Wenn ich bei Nichterreichbarkeit einen anderen Wert liefern soll, z. B. eine Zahl, gerne.

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

Jamo

#43
Hallo Markus,
der lepresenced scheint ja zu funktionieren, aber sobald ich im /etc/collectord.conf die rssi=<> einfüge, bekomme ich für alle devices den state "disconnect".
Sobald ich das im /etc/collectord.conf rssi=<> weglasse, funktionieren die Presence-devices 'normal', dann bekomme ich auch einen rssi-wert im reading, und der Wert ist entweder 'present' oder 'absent'. Ich dachte das hätte ich oben auch so beschrieben.

MIT RSSI im .conf (hier nur für einen Raum):


# room definition
[SchlafBT]               # name of the room
address=127.0.0.1        # ip-address or hostname
port=5111                # tcp port which should be used (5111 is default)
presence_timeout=60      # timeout in seconds for each check when devices are present
absence_timeout=60       # timeout in secondsfor each check when devices are absent
rssi=80

[SchlafLE]
address=127.0.0.1
port=5333
presence_timeout=60
absence_timeout=60
rssi=80


Internals:
   ADDRESS    7C:2F:80:98:C2:2A
   DEF        lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   DeviceName 127.0.0.1:5222
   MODE       lan-bluetooth
   NAME       Presence_GTag_RED_collect
   NEXT_OPEN  1486589736.01148
   NOTIFYDEV  global
   NR         3052
   NTFY_ORDER 50-Presence_GTag_RED_collect
   PARTIAL
   STATE      disconnected
   TIMEOUT_NORMAL 120
   TIMEOUT_PRESENT 120
   TYPE       PRESENCE
   Readings:
     2017-02-07 23:47:45   Batterie        56
     2017-02-08 22:03:54   Battery         ok
     2017-02-08 08:04:53   command_accepted yes
     2017-02-08 22:04:44   daemon          lepresenced V0.7dev4
     2017-02-08 22:04:44   device_name     Gigaset G-tag
     2017-02-08 22:07:52   presence        absent
     2017-02-04 16:55:50   room            SchlafLE,flurLE,wohnLE
     2017-02-08 22:04:44   rooms           SchlafLE
     2017-02-08 22:04:44   rssi            -82
     2017-02-08 22:34:36   state           disconnected
   Helper:
     ABSENT_COUNT 0
     PRESENT_COUNT 0
Attributes:
   comment    lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   event-on-change-reading state,Battery,Batterie,presence
   group      PRESENCE
   room       Presence
   sortby     12
   stateFormat state room
   userReadings Batterie,Battery




OHNE RSSI im .conf (hier nur für einen Raum):


# room definition
[SchlafBT]               # name of the room
address=127.0.0.1        # ip-address or hostname
port=5111                # tcp port which should be used (5111 is default)
presence_timeout=60      # timeout in seconds for each check when devices are present
absence_timeout=60       # timeout in secondsfor each check when devices are absent

[SchlafLE]
address=127.0.0.1
port=5333
presence_timeout=60
absence_timeout=60


Internals:
   ADDRESS    7C:2F:80:98:C2:2A
   DEF        lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   DeviceName 127.0.0.1:5222
   FD         26
   MODE       lan-bluetooth
   NAME       Presence_GTag_RED_collect
   NOTIFYDEV  global
   NR         3052
   NTFY_ORDER 50-Presence_GTag_RED_collect
   PARTIAL
   STATE      present SchlafLE,flurLE,wohnLE
   TIMEOUT_NORMAL 120
   TIMEOUT_PRESENT 120
   TYPE       PRESENCE
   Readings:
     2017-02-08 22:40:19   Batterie        56
     2017-02-08 22:40:17   Battery         ok
     2017-02-08 08:04:53   command_accepted yes
     2017-02-08 22:40:28   daemon          lepresenced V0.7dev4
     2017-02-08 22:40:28   device_name     Gigaset G-tag
     2017-02-08 22:40:28   presence        present
     2017-02-04 16:55:50   room            SchlafLE,flurLE,wohnLE
     2017-02-08 22:40:28   rooms           SchlafLE
     2017-02-08 22:40:28   rssi            -79
     2017-02-08 22:40:28   state           present
   Helper:
     CURRENT_STATE present
     CURRENT_TIMEOUT normal
     PRESENT_COUNT 0
Attributes:
   comment    lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 120 120
   event-on-change-reading state,Battery,Batterie,presence
   group      PRESENCE
   room       Presence
   sortby     12
   stateFormat state room
   userReadings Batterie,Battery
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Markus Bloch

Hallo inoma,

im collectord gibt es keinen rssi-Konfigparameter. Was ich geändert habe ist lediglich, das ermitteln des Raumes bei mehrfachen "present"-Räumen auf Basis des rssi-Wertes. Nur wenn alle Räume, welche "present" melden einen rssi-Wert liefern wird der Raum mit dem besten RSSI als der Raum ausgewählt in dem sich der Tag befindet.

Woher hast du die Info mit dem Konfigparameter?

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)