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

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

Vorheriges Thema - Nächstes Thema

Jamo

#45
Hallo Markus,
danke für die Erklärung, ich hatte das wohl in deinem Thread #23 missverstanden.
ZitatSofern alle Räume als Addon-Data "rssi=<Zahl>" bereitstellen . . .
ich dachte das gehört ins collectord config :-(
Dann lösche ich das wieder.

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

Markus Bloch

Damit war eher die Bereitstellung des RSSI als Zusatzdaten gemeint. ;) Wenn alle Räume die "present" melden und als Zusatzdaten ein Wert "rssi=..." bereitstellen, dann wird der Raum mit dem besten RSSI ausgewählt.

Wenn mehrere Räume "present" melden und einer keinen RSSI zur Verfügung stellt, dann werden alle Räume als Liste wie bisher gemeldet.

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)

Jamo

Hallo Markus, danke.

Kann / soll ich noch was testen, oder macht Patrick / Du jetzt erst ein update?
Zitat
aus thread #42
@Markus: Wenn ich bei Nichterreichbarkeit einen anderen Wert liefern soll, z. B. eine Zahl, gerne.

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,

konntest du denn die beschriebene Änderung feststellen? Also dass bei multiplen "present" der collectord den richtigen Raum auswählt?

Ich kann das bei mir leider nicht testen, da ich keine LE-Tags habe.

@Patrick: Wenn du kein RSSI ermitteln kannst, dann schicke kein "rssi=...;" mit. Der collectord prüft bei multiplen "present"-Meldungen der verschiedenen Räume, ob alle "present"-Räume einen RSSI-Wert bereitstellen und selektiert dann den besten Raum, ansonsten wird wie bisher die Liste der meldenden Räume mitgegeben.

Da der collectord sonst soweit problemlos lief, habe ich den bereits released.

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)

Jamo

Hallo Markus,
das mit dem richtigen Raum probiere ich heute Abend aus, das habe ich in der Tat noch nicht gemacht.

Heisst das, ich kann auch den collectord aus dem FHEM release tree über update FHEM nehmen, anstelle deinem collectord aus diesem Thread?

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

Markus Bloch

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

aktives Mitglied des FHEM e.V. (Technik)

PatrickR

Hi Markus!

Zitat von: Markus Bloch am 09 Februar 2017, 13:59:03
@Patrick: Wenn du kein RSSI ermitteln kannst, dann schicke kein "rssi=...;" mit. Der collectord prüft bei multiplen "present"-Meldungen der verschiedenen Räume, ob alle "present"-Räume einen RSSI-Wert bereitstellen und selektiert dann den besten Raum, ansonsten wird wie bisher die Liste der meldenden Räume mitgegeben.
Ich glaube, wir reden möglicherweise aneinander vorbei. Wenn ich die rssi nicht feststellen kann, z. B. weil der Legacy-Modus von lepresenced benutzt wird, schicke ich auch keine Werte.
Wenn lepresenced aber bei present schon rssi-Werte geschickt hat, das Device aber nun absent ist, dann schicke ich rssi=unreachable. Sonst bliebe der letzte rssi-Wert stehen (insb. auch in FHEM wenn man lepresenced direkt anspricht) und der wäre dann schlichtweg falsch.

So wie ich Dich verstehe ist aber die rssi nur bei present relevant, d. h. es sollte keine Probleme geben.

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

#52
Hallo Markus, hallo Patrick,
nun habe ich den ganzen Abend meine G-Tags von einem der 3 Raspberry's zum anderen getragen. Im Prinzip funktionierts!!! :-)
Allerdings senden die GTag so stark, das es mit dem testen schwierig war.

Meine 'Feststellungen' / Fragen:

1) Wenn ein GTag zum Beispiel von 2 meiner 3 lepresenced Räume empfangen wird (wie unten im listing), woher weiss ich welcher Raum den 'stärkeren' Empfang hat? Unten im Listing sehe ich zwei Räume, also SchlafLE und flurLE. Ist der erste der stärkere oder der zweite? Also werden die Räume nach rssi geordnet (z. B. der stärkste zuerst) oder ist das 'random'? Mein Eindruck ist das die Reihenfolge immer die gleiche ist.

2) Was muss die minimale rssi differenz zwischen 2 Räumen sein, damit nur der stärkste Raum angezeigt wird? Weil die GTags so stark senden, habe ich teilweise immer 2 oder 3 Räume 'present', ich kann also gar nicht erkennen, ob das das 'normale' collectord/presence Verhalten ist, oder ob eine Selektion aufgrund des rssi erfolgt.

3) Im Prinzip fände ich es besser, wenn für alle Räume der rssi ausgegeben wird (also ein rssi reading pro Raum). Dann kann man viel besser debuggen und auch erkennen ob sich ein GTag zwischen 2 Räumen bewegt.

Gruss, Ingolf

Internals:
   ADDRESS    7C:2F:80:98:C2:2A
   CHANGED
   DEF        lan-bluetooth 7C:2F:80:98:C2:2A 127.0.0.1:5222 60 60
   DeviceName 127.0.0.1:5222
   FD         29
   MODE       lan-bluetooth
   NAME       Presence_GTag_RED_collect
   NOTIFYDEV  global
   NR         3052
   NTFY_ORDER 50-Presence_GTag_RED_collect
   PARTIAL
   STATE      present schlafLE,flurLE
   TIMEOUT_NORMAL 60
   TIMEOUT_PRESENT 60
   TYPE       PRESENCE
   Readings:
     2017-02-09 08:28:40   Batterie        56
     2017-02-09 22:41:45   Battery         ok
     2017-02-09 21:34:27   command_accepted yes
     2017-02-09 22:40:43   daemon          lepresenced V0.7dev4
     2017-02-09 22:40:43   device_name     Gigaset G-tag
     2017-02-09 22:40:43   presence        present
     2017-02-09 22:40:43   rooms           schlafLE,flurLE
     2017-02-09 22:40:43   rssi            -81
     2017-02-09 22:40:43   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 rooms
   userReadings Batterie,Battery
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Hallo Markus, hallo Patrick,
mag einer von euch noch meine Fragen beantworten?
Danke und beste Grüsse, Ingolf
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

PatrickR

Sorry, da muss Markus ran. lepresenced ist nur der Lieferant, der collectord ist der Entscheider ;)


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

Markus Bloch

Ich habe leider wenig Zeit um das umfassend zu beantworten. Hole ich nach, wahrscheinlich erst nächste Woche.

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)

Markus Bloch

Hallo Ingolf,

tut mir Leid, dass ich erst so spät antworte. Leider habe ich momentan privat sehr wenig Zeit um mich um Modul-/FHEM-Entwicklung zu kümmern. Hier nun meine Antwort zu deinen Fragen:

Zitat von: inoma am 09 Februar 2017, 22:43:39
1) Wenn ein GTag zum Beispiel von 2 meiner 3 lepresenced Räume empfangen wird (wie unten im listing), woher weiss ich welcher Raum den 'stärkeren' Empfang hat? Unten im Listing sehe ich zwei Räume, also SchlafLE und flurLE. Ist der erste der stärkere oder der zweite? Also werden die Räume nach rssi geordnet (z. B. der stärkste zuerst) oder ist das 'random'? Mein Eindruck ist das die Reihenfolge immer die gleiche ist.

In diesem Fall konnte keine Prüfung basierend auf den RSSI durchgeführt werden, da offenbar einer der beiden Räume keinen RSSI liefert. Hast du in allen Räumen den lepresenced von Patrick, der den RSSI als "Addon-Data" mitgibt? Es ist natürlich nicht auszuschließen, dass mir hier noch ein Fehler unterlaufen ist, daher muss das getestet werden. Eine Selektion basierend auf RSSI würde zu einem einzelnen Raum führen im Reading "rooms" führen.

Zitat von: inoma am 09 Februar 2017, 22:43:39
2) Was muss die minimale rssi differenz zwischen 2 Räumen sein, damit nur der stärkste Raum angezeigt wird? Weil die GTags so stark senden, habe ich teilweise immer 2 oder 3 Räume 'present', ich kann also gar nicht erkennen, ob das das 'normale' collectord/presence Verhalten ist, oder ob eine Selektion aufgrund des rssi erfolgt.

Es gibt keine minimale Differenz. Es geht hier reinweg um das mathematische Maximum. Bedingung dabei ist, dass alle Räume die ein "present" melden auch einen RSSI liefern.

Zitat von: inoma am 09 Februar 2017, 22:43:39
3) Im Prinzip fände ich es besser, wenn für alle Räume der rssi ausgegeben wird (also ein rssi reading pro Raum). Dann kann man viel besser debuggen und auch erkennen ob sich ein GTag zwischen 2 Räumen bewegt.

Ist eine gute Idee, werde ich am Wochenende mal testweise einbauen und hier posten.

Viele Grüße

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)

Jamo

Hallo Markus,

1)
Zitat
Zitat von: inoma am 09 Februar 2017, 22:43:39
1) Wenn ein GTag zum Beispiel von 2 meiner 3 lepresenced Räume empfangen wird (wie unten im listing), woher weiss ich welcher Raum den 'stärkeren' Empfang hat? Unten im Listing sehe ich zwei Räume, also SchlafLE und flurLE. Ist der erste der stärkere oder der zweite? Also werden die Räume nach rssi geordnet (z. B. der stärkste zuerst) oder ist das 'random'? Mein Eindruck ist das die Reihenfolge immer die gleiche ist.

Markus Bloch
« am: 23 Februar um 11:00:08
In diesem Fall konnte keine Prüfung basierend auf den RSSI durchgeführt werden, da offenbar einer der beiden Räume keinen RSSI liefert. Hast du in allen Räumen den lepresenced von Patrick, der den RSSI als "Addon-Data" mitgibt? Es ist natürlich nicht auszuschließen, dass mir hier noch ein Fehler unterlaufen ist, daher muss das getestet werden. Eine Selektion basierend auf RSSI würde zu einem einzelnen Raum führen im Reading "rooms" führen.

Ja, ich habe in allen 3 Räumen den lepresenced von Patrick, der den RSSI als "Addon-Data" mitgibt. Allerdings hatte ich den G-Tag absichtlich so positioniert, das er nur von zwei-en empfangen wurde. Dann ist es vielleicht in der Tat so, das die Selektion nicht funktioniert, sonst wäre ja nur ein einziger Raum angezeigt worden.
Aber die Selektion würde ja überflüssig, wenn ür alle Räume der rssi ausgegeben wird (also ein rssi reading pro Raum).

Die Selektion kann dann der user machen, und damit auch eine eigene Triangulation / andere Berechnungen.

2)
Zitat
... Für alle Räume den RSSI .... Ist eine gute Idee, werde ich am Wochenende mal testweise einbauen und hier posten.
Ich kann es ab Montag abend gerne testen.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

PatrickR

@Markus: Kannst Du die Einzel-rssi-Anzeige evtl. auf alle Addon-Data ausweiten, z. B. als Einzel-Readings der Art
$Raum-$Reading
?

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!

Habe mal für Version 0.8 (identisch 0.7dev4) ein Paket gebaut. Werde das bei Gelegenheit mal ins SVN hochladen.

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