[gelöst] Presence - BT LE Tracking und readings:room vs rooms

Begonnen von dtavb, 05 August 2017, 12:07:12

Vorheriges Thema - Nächstes Thema

dtavb

Hoi Ihr,

ich habe mir via presence Modul und der Anleitung im Wiki ein Tracking gebastelt.
Soweit so gut funktioniert das auch, wenn gleich auch mit kleinen Schwächen.
Durch suche im Forum habe ich einzelne Screenshots gesehen und bin darauf gestossen, dass diese Schwächen nicht sein müssen.

Vielleicht könnt Ihr mir helfen?

Problemchen 1: readings lan-bluetooth room vs rooms
bei mir gibt es nur rooms, das reading room gibt es bei mir nicht.
Ich wüsste gerne welcher "Scanner" den besseren present Status hat, bzw. ich fände es toll entweder Werkstatt oder WoZi irgendwo stehen zu haben und nicht je nach Wetterlage/Wände mal unter rooms beide oder nur einer. So kann ich keine Filterung erstellen.
In manchen Screenshot habe ich gesehen, dass es room als readings zusätzlich zu rooms durchaus gibt.
meine Readings: screenshot rooms.png
vs micky0867: https://forum.fhem.de/index.php/topic,28753.930.html


Problemchen 2: BT LE Tag vom Hersteller/Typ nut und gtag
Ich kann den nut überall scannen und finde ihn via lescan, bluetoothctl oder mein Handy. Halte ich mich an die Anleitung im Wiki kommt nur noch "absent" in fhem (define mit Port 5222). Nach Recherche im Forum fand ich von Patrick ein Code Schnippsel mit einem anderen Port, sprich für BT LE 5333. Ich habe bei mir alles auf Standard-Ports gelassen und änderte mein define im Haupt-fhem auf Port 5333. Siehe da, der BT LE Tag wird nun gefunden.

define bt_nut_small1 PRESENCE lan-bluetooth CA:87:D5:57:09:42 127.0.0.1:5333 10 30
define bt_nut_small1b PRESENCE lan-bluetooth CA:87:D5:57:09:42 192.168.192.138:5333 10 30

Jetzt habe ich 2 Objekte für 1 Tag. Funktionieren beide sehr gut. Gibt es nicht die Option, dass mein Haupt-fhem einfach via collectd den Neben-fhem frägt und mir nur 1 Objekt ausreicht?
Wenn ich folgendes konfiguriere, kommt nur noch der Status absent:
define bt_nut_small2 PRESENCE lan-bluetooth CA:87:D5:57:09:42 127.0.0.1:5222

Ich kann auch mit 2 Objekten gut Filtern, soweit ich das aber in den Code-Schnippseln gesehen habe, müsste es auch mit 1 Objekt/Define gehen.


Mein Test-Setup für BT:
Haupt-Fhem, 5.8 mit BT Dongle unter KVM/Debian Guest
RPI3, Neben-fhem 5.8 built-in BT

Ziel-Setup, sobald das ganze rund läuft:
1.) je Raum ein OrangePi Zero&BT-Dongle, Armbian + Konfig für fhem BT Tracking (3x3x3cm schwarze Kiste)
2.) 2 Katzen mit BT LE Halsband und eine Katzenfütterungsmaschine, damit die Diät beim dicken Kater endlich mal Früchte trägt und er seiner Lebensgefährtin nicht alles weg isst :)


Konfig Haupt-fhem:
define bt_lan_MiFaaan PRESENCE lan-bluetooth B0:E2:35:09:3A:71 127.0.0.1:5222
define bt_nut_small2 PRESENCE lan-bluetooth CA:87:D5:57:09:42 127.0.0.1:5333 10 30
define bt_nut_small4 PRESENCE lan-bluetooth CA:87:D5:57:09:42 192.168.192.138:5333 10 30
Installiert:
lepresenced-0.81-1.deb
presenced-1.4.deb
collectord-1.7.deb

Konfig collectd:
[WoZi]
address=127.0.0.1
port=5111
presence_timeout=60
absence_timeout=60

[Werkstat]
address=192.168.192.138 --> Neben-fhem
port=5111
presence_timeout=60
absence_timeout=60


Konfig Neben-fhem:
keine defines in fhem.
Installiert:
lepresenced-0.81-1.deb
presenced-1.4.deb
collectord-1.7.deb --> Info

Konfig collectd:
[Werkstatt]
address=127.0.0.1
port=5111
presence_timeout=60
absence_timeout=60

[WoZi]
address=192.168.192.28 --> Haupt-fhem
port=5111
presence_timeout=60
absence_timeout=60

Info:
laut https://wiki.fhem.de/wiki/Anwesenheitserkennung#Verwendung_von_Collectord_bei_mehreren_PRESENCE_Installationen_mit_LE-Devices ist das nicht so ganz ersichtlich ob die Installation von collectd auf RPI2 notwendig ist oder nicht, ein Hinweis nur auf RPI1 oder auf beide könnte man noch ergänzen.


Danke Euch und Grüsse,
dtavb
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

dtavb

Hoi, keiner eine Idee oder kann mich in die richtige Richtung drehen...?
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

Devender

Hi,

Also das Reading room wäre fuer dich auch nicht wirklich relevant. Du brauchst schon das rooms. Du könntest ja mit regex auf den Wert filtern, so dass nur das erste zurückgegeben wird und du damit seien Filtern fuetterst.
Wenn du andere Readkngs brauchst kannst du dir ja auch ein UserReading erstellen.

Ich glaube nicht das es Sinn macht, den collectored auf beiden Rpis laufen zu lassen. Du muesstest ja dann eine Schleife haben. Geschweige denn, das funktioniert ueberhaupt.
Mir hat sich beim Schreiben des Wiki auch nicht erschlossen den Collectored auf beiden oder allen Instanzen zu installieren. Daher ist es vermutlich nicht herauszulesen .

Gruesse,
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

dtavb

Hoi Devender,
heisst das der erst genannte Raum ist der mit dem besten Empfang des entsprechenden Devices (in meinem Fall mein Handy)?
Dann kann ich filtern, stimmt!

Weiss zufällig noch jemand warum das mit den LE Tags nicht so bei mir funktioniert wie im Wiki beschrieben?
kurzum: sobald ich Port 5222 für collectd-Suche beim define des Tag wähle, wird dieser (egal ob Gigaset oder nut) sofort auf absent gesetzt.

Danke und Grüsse
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

Devender

Salü!

Ich glaube der Wert , der als erstes steht, ist der, der den Tag als erstes empfangen hat. Du bekommst ja nur einen rssi Wert im Reading von lepresenced geliefert. Bei mir steht manchmal Haus und manchmal Energiemessung (zweiter Pi) oder nur eins von beiden. Könnte auch banal Alphabetisch geordnet werden. Muesste man mal in das collectored Skript schauen.
Komme ich aber erst am Wochenende zu - sollte ich dann was finden gebe ich dir bescheid.

Die Problematik bei dir mit Port 5222 könnte an etwas liegen, was ebenfalls diesen Port verwendet. Bei mir z.b der Jabberserver.
Meine lepresenced sowie colllectored sind auf Port 5111 gesetzt. Im Wiki zum Collectored (https://wiki.fhem.de/wiki/Anwesenheitserkennung#Verwendung_von_Collectord_bei_mehreren_PRESENCE_Installationen_mit_LE-Devices) - Eintrag hatte ich verfasst sehe ich, dass die Config nicht zum Define passt. In der collectored config und im define muss der selbe Port genommen werden auf beiden Rpis. Hab das auch gleich korrigiert.

Vielleicht Hilft dir das weiter.

Gruesse,
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

dtavb

#5
Hoi defender,

danke für die Hilfe!
Ja, das reicht locker, wer weiss ob ich bis zum WE dazu komme Deinen Input zu verarbeiten :)
Ich glaube, dass die Reihenfolge davon abhängt welcher Messpunkt zuerst sich meldet.
Zumindest verhält es sich so, wenn ich mit meinem Handy in der Wohnung wandere.

Was Deinen Input mit dem Wiki angeht:
hier habe ich gleich mal getestet, meine collectord.conf habe ich anhand des Beispielraums erstellt -> Port 5111 war schon bei mir.
Bei den defines des gtag für beide fhems habe ich 5111 getestet: ohne Erfolg.

Wenn ich den collectd im -vv Modus laufen lasse, sehe ich auch gar nicht, dass er eine UUID für die MAC 7C:2F:80:90:78:C7 angibt, geschweige dass die MAC in der Ausgabe erscheint.
Stelle ich den Port wieder auf 5222 taucht sie sofort auf, nur muss ich dann wieder meine 2 define für den gtag anlegen damit ich beide Räume überwache.

meine Daten/raw defs:
Hauptfhem
defmod gtag1 PRESENCE lan-bluetooth 7C:2F:80:90:78:C7 127.0.0.1:5111
attr gtag1 room Tracking

setstate gtag1 absent
setstate gtag1 2017-08-17 18:54:28 .absenceThresholdCounter 0
setstate gtag1 2017-08-17 18:54:28 .presenceThresholdCounter 0
setstate gtag1 2017-08-17 18:42:35 command_accepted yes
setstate gtag1 2017-08-17 18:42:35 model lan-bluetooth
setstate gtag1 2017-08-17 18:54:28 presence absent
setstate gtag1 2017-08-17 18:54:28 state absent

Netstat:
tcp        0      0 0.0.0.0:5111            0.0.0.0:*               LISTEN      401/perl
tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      405/perl
tcp        0      0 0.0.0.0:5333            0.0.0.0:*               LISTEN      483/perl


Nebenfhem:
habe den collectd auf dem 2. Pi disabled, nur zur Sicherheit.

defmod gtag1 PRESENCE lan-bluetooth 7C:2F:80:90:78:C7 192.168.192.28:5111

setstate gtag1 absent
setstate gtag1 2017-08-17 18:43:12 .absenceThresholdCounter 0
setstate gtag1 2017-08-17 18:43:12 .presenceThresholdCounter 0
setstate gtag1 2017-08-17 18:35:14 command_accepted yes
setstate gtag1 2017-08-17 18:35:14 model lan-bluetooth
setstate gtag1 2017-08-17 18:43:12 presence absent
setstate gtag1 2017-08-17 18:43:12 state absent

Netstat:
tcp        0      0 0.0.0.0:5111            0.0.0.0:*               LISTEN      612/perl
tcp        0      0 0.0.0.0:5333            0.0.0.0:*               LISTEN      614/perl



Das ist ja eine Knobelaufgabe...
Wenns es partout nicht hinhaut, dann ist der Workaround mit 1 define je Raum/rpi/Messstation ja auch in Ordnung. Bei einem Mehrfamilienhaus wird es vllt. dann unübersichtlich, aber die Gefahr besteht bei mir nicht :)
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

Devender

Nabend!

wie sieht denn deine collectord.conf aus und was sagt ein tail -200f /var/log/collectord.log
Auf welchem Port läuft deine lepresenced Installation? Auf 5222?
Die lepresenced Installation müssen ja einen anderen Port als der collectord haben.

Bei mir laufen die lepresenced auf beiden Rpis auf 5333 und der collectord auf 5111 in der config
Haus ist mein Haupt PRi:

/etc/collectord.conf


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

[Energiemessung]
address=192.168.178.128
port=5333
presence_timeout=50
absence_timeout=50



Deine defines sehen für mich richtig aus sofern sie zur Konfiguration des collectord und lepresenced passen.
Läuft bei dir etwas anders auf Port 5222?
Viele 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

dtavb

#7
Huhu,

lepresenced lauscht auf 5333
collect lauscht auf 5222
presenced lauscht auf 5111
auf Hauptfhem, Nebenfhem fehlt 5222 mit collect.

Auf diesen Ports läuft sonst keine Anwendung, stoppe ich alle 3 Dienste ist es ruhig mit netstat.
Laut netstat handelt es sich auch immer um perl, wenn alle 3 laufen.
Habe keine andere Anwendung wissentlich installiert, bzw. keine sonstigen Fehlermeldungen dass ein Port schon belegt wäre etc.

Oh, aber was ich jetzt sehe: Du hast Port 5333 in der collectord.conf
Allerdings hast Du noch eine Jabber auf 5222 laufen.
Ich habe alles auf Standard gelassen. Die Ports kann ich aber schonmal durchgehend bei allen 3 ändern.
Doch wo stelle ich die Ports ein? collectord.conf in der config-Datei ist klar, bei den anderen beiden mache ich ja ausser deb-Pakete installieren nichts.

collectord.conf

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

[WoZi]
address=127.0.0.1
port=5111
presence_timeout=60
absence_timeout=60

[Werkstat]
address=192.168.192.138
port=5111
presence_timeout=60
absence_timeout=60


Was das log angeht:
suche ich nach der MAC vom gtag taucht diese Heute gar nicht.
Habe jetzt presence, lepresence und collect mal alle gestoppt und neugestartet um die Ports genau herauszufinden.
Ich warte noch einige Stündchen dann rufe ich mit Deinem Kommando nochmal das collectord.log auf.

lieben Dank und Grüsse
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

Devender

Wenn ich das richtig sehe, läuft dein collectord auf dem falschen Port. Der versucht verbinden zum Presence Modul aufzubauen nicht aber zum lepresenced von Patrick.

Deine conf muesste 5222 als Port nutzen


[WoZi]
address=127.0.0.1
port=5222
presence_timeout=60
absence_timeout=60

[Werkstat]
address=192.168.192.138
port=5222
presence_timeout=60
absence_timeout=60
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

dtavb

#9
Ha, nach etwas längerem Basteln, unserer Unterhaltung hier und der commandref eine Lösung:)

Vielen lieben Dank Devender!

Die Lösung:

Da ich mein Handy und einen GTag sowie Nut überwachen wollte, habe ich zu wenig Definitionen in der /etc/collectord.conf gemacht.
Ich musste in der /etc/collectord.conf jeweils lepresence und presence Räume konfigurieren.
Nachdem ich Deinen Tipp umgesetzt habe mit 5333 für lepresence, wurde mein Handy nicht mehr gefunden. Nach Recherche in der commandref dann die Erleuchtung :)

[WoZi]
address=127.0.0.1
port=5111
presence_timeout=60
absence_timeout=60

[Werkstat]
address=192.168.192.138
port=5111
presence_timeout=60
absence_timeout=60

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

[Werkstat_LE]
address=192.168.192.138
port=5333
presence_timeout=60
absence_timeout=60


Definitionen:
Handy: Def lan-bluetooth MAC 127.0.0.1:5222 10 60
Nut mini: Def lan-bluetooth MAC 127.0.0.1:5222 10 60

Neben-Fhem: keine Konfiguration, alle entfernt.

Wichtig:
Die Räume in der /etc/collectord.conf müssen unterschiedlich heissen. Nennt man sie sinngemäss gleich (2x WoZi, 2x Werkstatt), dann nimmt der collector nur die letzten beiden.

Nachdem ich noch etwas im Netzwerk gesniffed und im Log des collectors gelesen habe, ist mir das Vorgehen auch klar geworden.
In der /etc/collectord.conf sind die Verbindungsports von le(presence) sowie BT-Connectoren mit IP enthalten - hatte mich vorher schon gefragt warum presence und lepresence überhaupt einen Port benötigen  :-[ . In fhem hinterlegt man im define des Devices dann den collector Port unter dem fhem den collector-Daemon erreicht (in den meisten Fällen er selbst, daher 127.0.0.1).

Nochmal Danke!

Grüsse,
dtavb
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

Devender

Freut mich, das es jetzt klappt  8)

Was sollte ich zum besseren Verstaendnis noch ins Wiki aufnehmen?
Gruesse und ein schoenes Wochenende!
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

dtavb

Hoi,

das ist eine gute Frage was ins Wiki soll.

Vorausgesetzt ich habe es jetzt gemäss der Modulentwickler richtig bei mir konfiguriert,
könnte man vielleicht einen Hinweis für presence und lepresence in der collectord.conf  geben.
Das Kapitel "Verwendung von Collectord bei mehreren PRESENCE Installationen mit LE-Devices" ist ja auch richtig benannt mit le-devices.
Vielleicht kann man für presence Geräte (wie ein Handy) noch eine Info anbringen an die zusätzliche Konfig in der collectord.conf zu denken.

Etwas entgegen der Beschreibung im Wiki ist bei mir, dass ich im Neben-Fhem keinerlei Konfiguration habe.
Sprich eigentlich könnte ich fhem auf dem Pi deinstallieren.

Das Zusammenspiel zwischen den beiden Diensten (le/presenced) und dem Collectord geht aus dem Wiki nur hervor wenn man das Thema bereits mehrfach "durchgenudelt" hat :)
Ich überlege mir ob ich nicht eine kleine Zeichnung dazu mache, wer wen anspricht auf welchen Ports und welche Konfig wohin muss.
In einer Skizze ist das bestimmt noch etwas verständlicher. Das kann ich gerne machen.

Grüsse,
dtavb

fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster