Hallo,
ich bräuchte wenn möglich mal eure Hilfe. Ich habe eine Raspi mit Fhem und dem lepresenced am laufen. Klappt auch gut, nur leider ist das Bluetooth Signal nicht stark genug bis zum Ende des Gartens. Ich habe im WZ noch einen Raspi in Betrieb und habe gerade gelesen das man ja mehrere Raspis verbinden kann um eine gute Überwachung der Anwesenheit zu gewährleisten.
Ist der collectord daemon in Verbindung mit dem Lepresenced möglich? Oder versteh ich das falsch?
Wenn ja, muss ich doch nur c..deb auf dem WZ Raspi installieren und auf dem fhem raspi die Räume definieren richtig?
Hallo,
ja, hast Du richtig verstanden - so nutze ich es auch.
Die lepresenced....deb installierst Du auf beiden Rechnern und die collectord...deb nur auf einem der beiden. Oder auf einem ganz anderen.
Die collectord.conf musst Du dann natürlich entsprechend anpassen.
schöne Grüße
Jo
# 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 $
#absence_timeout=20 # timeout in secondsfor each check when devices are a$
[wohnzimmer]
address=127.0.0.1
port=5111
presence_timeout=180
absence_timeout=20
[server]
address=192.168.0.20
port=5111
presence_timeout=180
absence_timeout=20
so sieht die conf im moment aus, aber leider geht es damit nicht.
Die Log vom collectored sieht so aus:
2017-04-09 10:56:42 - started with PID 495
2017-04-09 10:56:42 - reading configuration file
2017-04-09 10:56:42 - no config errors found
2017-04-09 10:56:42 - forked with PID 655
2017-04-09 10:56:42 - created socket on 0.0.0.0 with port 5222
Auf dem Server läuft Fhem mit lepresenced und konfigurierten Gtags bei denen Port 5333 genutzt wird.
Auf dem Wohnzimmer Rpi habe ich lepresenced installiert und collectored. Beides läuft laut grep.
Wo / Was mache ich falsch?
Muss der Rpi im WZ auch fhem installiert haben?
Warum macht der einen Socket Port 5222???
gerade gesehen muss bei den Gtags den Port auf 5222 setzen... bloß jetzt steht bei den Gtags disconnected
Konntest du es lösen? Habe aktuell das gleiche Problem.
Stehe im Moment auch vor dem gleichen Problem.
Gibt es hier zu Lösungen?
@Fixel: Du musst im collectord conf Port 5333 angeben, wenn du lepresenced nutzt.
So sollte das doch passen?
[Erste_Obergeschoss]
address=192.168.1.110
port=5333
presence_timeout=60
absence_timeout=60
In der Presence definition habe ich ebenfalls port 5333.
Wenn ich den collector manuell starte sieht das ganze so aus:
2017-09-09 12:39:18 - (Main Thread) - started with PID 20805
2017-09-09 12:39:18 - (Main Thread) - reading configuration file
2017-09-09 12:39:18 - (Main Thread) - no config errors found
2017-09-09 12:39:18 - (Main Thread) - created socket on 0.0.0.0 with port 5222
2017-09-09 12:39:18 - (Main Thread) - finished initialization. entering main loop
Da er dort auch keine presence devices findet, zeigt er mir auch keine Raum Readings an.
Nutzt du presenced oder lepresenced?
Bei lepresenced musst du NUR in der Conf Port 5333 angeben und in der Definition in FHEM Port 5222.
Bei presenced musst du NUR in der Conf Port 5111 angeben und in der Definition in FHEM Port 5222
Zitat von: Amenophis86 am 09 September 2017, 14:58:22
Nutzt du presenced oder lepresenced?
Bei lepresenced musst du NUR in der Conf Port 5333 angeben und in der Definition in FHEM Port 5222.
Bei presenced musst du NUR in der Conf Port 5111 angeben und in der Definition in FHEM Port 5222
Danke dir! Port 5222 war es.
Ich bins nochmal,
leider funktioniert der collectord nicht wie gewollt. Oftmals steht einfach nur active im state des Presence devices.
Nach mehrmaligen neu starten des services und Pi's, geht es dann immer mal.
Im collectord Log ist folgendes zu sehen:
2017-09-11 22:41:48 - started with PID 1563
2017-09-11 22:41:48 - reading configuration file
2017-09-11 22:41:48 - no config errors found
2017-09-11 22:41:48 - forked with PID 1564
2017-09-11 22:41:48 - created socket on 0.0.0.0 with port 5222
2017-09-11 22:42:48 - new connection from 127.0.0.1:55804
2017-09-11 22:42:48 - created thread 1 for processing device 7C:2F:80:A7:14:22 in room Untergeschoss for peer 127.0.0.1 (UUID: b8438885b3abfd41b3c401ff11dd81cd)
2017-09-11 22:42:48 - created thread 2 for processing device 7C:2F:80:A7:14:22 in room Erdgeschoss for peer 127.0.0.1 (UUID: b8438885b3abfd41b3c401ff11dd81cd)
2017-09-11 22:42:48 - created thread 3 for processing device 7C:2F:80:A7:14:22 in room Erste_Obergeschoss for peer 127.0.0.1 (UUID: b8438885b3abfd41b3c401ff11dd81cd)
Über eine weitere Presence definiton auf den Pi, wo der BT Stick drinne steckt, zeigt den status auf Presence. Muss also am collectord liegen.
Hat da jemand eine Idee wie wo das Problem liegt?
Grüße,
Fixel
zeig mal deine collectord conf und ein list deiner BT Device
Hier die collecor config:
# 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
[Erdgeschoss]
address=127.0.0.1
port=5333
presence_timeout=60
absence_timeout=60
[Erste_Obergeschoss]
address=192.168.1.110
port=5333
presence_timeout=60
absence_timeout=60
[Untergeschoss]
address=192.168.1.111
port=5333
presence_timeout=60
absence_timeout=60
Zitat von: Amenophis86 am 12 September 2017, 06:02:29
und ein list deiner BT Device
Was genau meinst du mit den BT Devices? :o
BT = Bluetooth. Also ein list der Definitionen der Device in FHEM.
Zitat von: Amenophis86 am 12 September 2017, 09:25:19
BT = Bluetooth. Also ein list der Definitionen der Device in FHEM.
öhm... Also du meinst die presence BT Devices zusätzlich zum collectord presence Device?
Also collectored dürfte in FHEM nicht definiert sein, sondern lediglich als Programm auf einem deiner Server laufen. In FHEM sollten allerdings die einzelnen Bluetooth Geräte (Devices) mittels define ... definiert worden sein. Das heißt bitte von allen Geräten, welche du als Anwesenheitsdevice mit Bluetooth definiert hast ein list machen und hier posten.
alternativ kannst du folgendes machen:
list TYPE=PRESENCE
dann siehst du alle definierten Presence Device und dann nochmal ein list aller der dort aufgeführten Device. Und das postest du dann hier :)
Dann hatte ich es wohl immer noch nicht verstanden...
Ich dachte ich definiere ein presence device auf port 5222 des collectord und das wars?
Also nochmal, weil ich es anscheinend nicht verstehe: :-\
Ich definiere nur BT-Presence Devices, die lepresenc am laufen haben. Das wären bei mir einmal localhost und zwei weitere IP-Adressen im Netzt. Collectord läuft ebenfalls auf localhost. Und diese laufen auf port 5333.
Ein List kann ich im Moment leider nicht bieten.
Zitat von: Amenophis86 am 09 September 2017, 14:58:22
Nutzt du presenced oder lepresenced?
Bei lepresenced musst du NUR in der Conf Port 5333 angeben und in der Definition in FHEM Port 5222.
Bei presenced musst du NUR in der Conf Port 5111 angeben und in der Definition in FHEM Port 5222
So musst du es machen. Dann warten wir bis du ein list posten kannst um zu zeigen, wie es aktuell aussieht. Sonst wird es ein reines raten.
Das erste presence Device ist im Moment disconnected, da nicht am Strom.
Internals:
ADDRESS 7C:2F:80:A7:14:22
CFGFN
DEF lan-bluetooth 7C:2F:80:A7:14:22 192.168.1.110:5333 60
DeviceName 192.168.1.110:5333
MODE lan-bluetooth
NAME FelixGtag_1OG
NEXT_OPEN 1505203633.96962
NOTIFYDEV global
NR 2431
NTFY_ORDER 50-FelixGtag_1OG
PARTIAL
STATE disconnected
TIMEOUT_NORMAL 60
TIMEOUT_PRESENT 60
TYPE PRESENCE
READINGS:
2017-09-12 08:13:44 model lan-bluetooth
2017-09-12 10:06:13 state disconnected
helper:
Attributes:
room Anwesenheit
Internals:
ADDRESS 7C:2F:80:A7:14:22
CFGFN
DEF lan-bluetooth 7C:2F:80:A7:14:22 192.168.1.111:5333 60
DeviceName 192.168.1.111:5333
FD 34
MODE lan-bluetooth
NAME FelixGtag_UG
NOTIFYDEV global
NR 2423
NTFY_ORDER 50-FelixGtag_UG
PARTIAL
STATE absent
TIMEOUT_NORMAL 60
TIMEOUT_PRESENT 60
TYPE PRESENCE
READINGS:
2017-09-12 10:06:58 daemon lepresenced V0.82
2017-09-12 10:06:58 model lan-lepresenced
2017-09-12 10:06:58 presence absent
2017-09-12 10:06:58 rssi unreachable
2017-09-12 10:06:58 state absent
helper:
CURRENT_TIMEOUT normal
Attributes:
room Anwesenheit
Internals:
ADDRESS 7C:2F:80:A7:14:22
CFGFN
DEF lan-bluetooth 7C:2F:80:A7:14:22 127.0.0.1:5333 60
DeviceName 127.0.0.1:5333
FD 33
MODE lan-bluetooth
NAME FelixGtag_EG
NOTIFYDEV global
NR 3017
NTFY_ORDER 50-FelixGtag_EG
PARTIAL
STATE absent
TIMEOUT_NORMAL 60
TIMEOUT_PRESENT 60
TYPE PRESENCE
READINGS:
2017-09-12 10:15:10 daemon lepresenced V0.81
2017-09-12 10:13:10 model lan-bluetooth
2017-09-12 10:15:10 presence absent
2017-09-12 10:15:10 rssi unreachable
2017-09-12 10:15:10 state absent
helper:
CURRENT_TIMEOUT normal
Attributes:
Hier der collectord der ja anscheinend falsch ist :-\
Internals:
ADDRESS 7C:2F:80:A7:14:22
DEF lan-bluetooth 7C:2F:80:A7:14:22 127.0.0.1:5222 60
DeviceName 127.0.0.1:5222
FD 32
MODE lan-bluetooth
NAME FelixGtag_collector
NOTIFYDEV global
NR 110
NTFY_ORDER 50-FelixGtag_collectord
PARTIAL
STATE active
TIMEOUT_NORMAL 60
TIMEOUT_PRESENT 60
TYPE PRESENCE
READINGS:
2017-09-12 09:45:01 command_accepted yes
2017-09-11 22:33:03 daemon lepresenced V0.81
2017-09-11 22:33:03 device_name Gigaset G-tag
2017-09-11 22:37:53 model lan-bluetooth
2017-09-11 22:33:03 presence present
2017-09-11 22:33:03 rooms Erdgeschoss,Untergeschoss
2017-09-11 22:33:03 rssi -92
2017-09-11 22:42:48 state active
helper:
ABSENT_COUNT 0
CURRENT_TIMEOUT normal
PRESENT_COUNT 0
Attributes:
group Felix-Awesenheit
room Anwesenheit
Ändere bei den ersten drei den Port auf 5222 und lösche das Letzte (collectord) Device. Das brauchst du nicht.
Collectord sammelt die Informationen und schreibt sie in FHEM rein. Wenn die BT-Device auf lepresenced (Port 5333) laufen, dann wird collectord nicht genutzt und kann auch nichts sagen. Dies muss auch nicht als eigenes Device angelegt werden.
Ok, alles klar!
Muss colletord auf allen Raspis laufen? oder nur auf der Hauptinstanz wo bei mir auch Fhem läuft?
Bei mir wird bei dem raspi wo collectord läuft nur active als state gezeigt.
Bei den anderen Definitionen steht nur disconnected. :o
lepresenced muss auf allen Instanzen laufen, colleccted nur auf der Hauptinstanz:
https://wiki.fhem.de/wiki/Anwesenheitserkennung#Verwendung_von_Collectord_bei_mehreren_PRESENCE_Installationen_mit_LE-Devices:
Zitat von: Wiki
Aufbau:
## RPi1 (Hautpinstanz): fhem nebst (le)presence Installation sowie collectord
## RPi2 (Zweitsystem): fhem nebst (le)presence Installation
Das habe ich bereits so. Im wiki is in der definition aber der port 5333 angegeben. Du sagtest mir ja vorhin ich solle port 5222 angeben.
Als ich vorher in der definition die ip des collector mit Port 5222 angegeben hatte, hatte ich die Daten in Fhem. Dies ging allerdings nicht immer. Sprich nach einem Neustart von Fhem waren oftmals kein Daten mehr vom collector verfügbar.
Bin irgendwie verwirrt was die Sache angeht... :-[
Die Ports können sich unterscheiden, weshalb ich deine sehen wollte. So, wie ich sie dir gesagt habe, sind sie bei dir richtig. Und wenn es ging und nach einem Neustart nicht mehr, hast du sicher vergessen zu speichern.
Das Zitat sollte dir nur zeigen was wo installiert sein muss.
Ich sehe auch gerade, dass du den gleichen Gtag immer nutzt, das macht überhaupt keinen Sinn. Sag mir mal bitte was genau du eigentlich willst.
Also, was ich vor habe:
Stockwerk übergreifend erstmal nur einen(!) GTag auswerten.
Stockwerk übegreifend heißt:
1x Raspi im UG | 1x Raspi im 1OG | 1x Raspi im EG wo collectord und Fhem läuft
Alle Pi's besitzen den gleichen USB Dongle und jeder hat lepresence installiert.
Nun meine Frage wie ich diesen einen GTag in Fhem definiere, so dass ich egal wo ich im Haus bin der Gtag auf present steht.
Habe mich schon gefragt wo der Sinn dahinter ist, den gleichen GTag mehrmals zu definieren.
Ich hoffe es ist nun verständlicher, was ich genau will. ::)
Danke und Gruß,
Fixel
Dann machst du folgende Definition auf jedem Pi, außer der Hauptinstanz und wenn ich es richtig sehe ist die IP der Hauptinstanz 192.168.1.110:
define xxx PRESENCED lan-bluetooth 7C:2F:80:A7:14:22 192.168.1.110:5222 60
Auf der Hauptinstanz mit collectord:
define xxx PRESENCED lan-bluetooth 7C:2F:80:A7:14:22 127.0.0.1:5222 60
Jetzt wirst du auf jeder Instanz sehen, ob der GTag Anwesend ist und hast das Reading "rooms" in dem steht in welchen Räumen er aktuell gesehen wird.
ein collectord Device musst du NICHT definieren. Das ist NUR ein Programm, welches auf der Hauptinstanz läuft und die anderen informiert. Deswegen muss der Port in FHEM beim define 5222 sein (der Port deines collectored, siehst du beim start von diesem in der Shell) und in der conf von collectored muss 5333 stehen, welches der Port von deinem lepresenced Programm ist.
Edit: Und den GTag nennst du überall gleich.
Das heißt also ich muss auf allen Pi's auch fhem installiert haben?
Das war mir nicht bewusst.
Ernsthaft? Du hast nur auf einem PI FHEM? :D Ja klar musst du das. Wie soll den das lepresenced auf den anderen PIs wissen nach was es suchen soll?
Also zur Erklärung nochmal:
- auf jedem PI FHEM + lepresenced + in FHEM ein Device mit dem Port 5222 und der IP des Pi mit collected
- auf dem HauptPi FHEM + lepresenced + in FHEM ein Device mit dem Port 5222 und der IP 127.0.0.1 + collected mit der Conf in der Port 5333 für die Devices
Uff ;D
Ich dachte die scripte arbeiten selbst ständig und kommunizieren unter einander eigenständig.
Das Endergebnis, wenn ich dann alles richtig haben sollte, ist dann aber, dass ich aus allen 3 Stockwerken in der Fhem Hauptinstanz die Anwesenheit sehe. Ich muss nicht in die anderen Fhem Instanzen?
Wenn neue GTags dazu kommen, definiere ich auf jeder Fhem Instanz nochmal das gleiche, nur mit einer anderen Mac Adresse. Passt das so?
richtig und korrekt
Gut, dann Danke ich dir erstmal herzlichst ;D
Werde die nächste Tage überall Fhem installieren und die Definitionen anlegen.
Hat echt lange gedauert bis ich verstanden hab wie das ganze funzt *schäm*
Dann leg es mal an, teste und meld dich wieder, ob es klappt oder nicht.
Kein Problem, Hauptsache am Ende läuft es.
Zitat von: Amenophis86 am 12 September 2017, 14:26:57
Ernsthaft? Du hast nur auf einem PI FHEM? :D Ja klar musst du das. Wie soll den das lepresenced auf den anderen PIs wissen nach was es suchen soll?
Also zur Erklärung nochmal:
- auf jedem PI FHEM + lepresenced + in FHEM ein Device mit dem Port 5222 und der IP des Pi mit collected
- auf dem HauptPi FHEM + lepresenced + in FHEM ein Device mit dem Port 5222 und der IP 127.0.0.1 + collected mit der Conf in der Port 5333 für die Devices
Dann ist das Wiki an dieser Stelle aber verkehrt.
Denn hier https://wiki.fhem.de/wiki/Anwesenheitserkennung#Verwendung_von_Collectord_bei_mehreren_PRESENCE_Installationen_mit_LE-Devices (https://wiki.fhem.de/wiki/Anwesenheitserkennung#Verwendung_von_Collectord_bei_mehreren_PRESENCE_Installationen_mit_LE-Devices) wird der gleiche Port für den collectord UND die defines der devices beschrieben...
Zitat
[RPi1] # Name (wird als Reading room bei den BT-Tags angezeigt) der presence Instanze
address=127.0.0.1 # Lokale Adresse RPi1 , da hier das Collectord später laufen soll!
port=5333 # Port der Presence Installation
presence_timeout=60 # Selbstgewaelte Pruefintervalle
absence_timeout=60 # Selbstgewaelte Pruefintervalle
[RPi2] # Name (wird als Reading room bei den BT-Tags angezeigt) der presence Instanze
address=192.168.178.127 # IP-Adresse der Instanz, wo nur das Presence laueft, also RPi2
port=5333 # Port der Presence Installation
presence_timeout=60 # Selbstgewaelte Pruefintervalle
absence_timeout=60 # Selbstgewaelte Pruefintervalle
Zitat
Konfiguration FHEM:
RPi1 define Gtag PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5333 60 Hinweis: Der Port ist der, des Collectord!! Also hier, Standard 5333
RPi2 define Gtag PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 192.168.178.127:533360 Hinweis: Der Port ist der, des Collectord!! Also hier, Standard 5333 die IP-Adresse von RPi1
Das ist doch verkehrt oder?
Richtig ist doch:
collectord.conf -> Port 5333
define gtags -> Port 5222
:o
Jain, das Problem ist, dass bei Devender die Ports wohl anders waren, als er das Wiki geschrieben hat.
Im Moment steht im Raum den gesamten Artikel neu zu strukturieren und zu verbessern, aber das dauert noch.
Habe nun auf allen Pi's Fhem am laufen und alles definiert.
Zwischenzeitlich ging auch mal alles, dies aber leider nicht zuverlässig.
Der Gtag liegt nun genau neben dem Pi im 1OG, dieser findet aber innerhalb Fhem nichts. Mit dem hcitool ist er allerdings zu finden.
Alle Einstellungen sind wie von dir beschrieben Gesetzt.
Also in jeder Fhem Instanz den Port 5222 auf den Raspi der collector laufen hat. Und in der collector config jeden Raspi mit Port 5333.
Nach einem Neustart von dem Dienst lepresenced wird der GTag dann komischer Weise wieder gefunden.
Wie kann ich das ganze Debuggen?
Danke nochmal, Gruß,
Fixel
Hi,
Korrekt, ich hatte nach dem Wikiartikel meine Konfiguration irgendwann noch mal angepasst, da ich Probleme hatte, weil meine Gtag eben nur noch selten erkannt wurden. Nach Analyse mit Patrick hatten wir aber auch nix gefunden.
Einging, dass ich noch alte Versionen hatte die nicht mal als .deb Paket installiert wurden.
Bezüglich Wiki, brauche ich Zeit (neben der normalen Arbeit) und eine sinnvolle Struktur. Das ist ein komplexer und grosser Wikiartikel, ich wuerde mich erst mal auf die Neu-Strukturierung von Presence und Lepresenced stürzen, da habe ich eher Ahnung als von Geofency etc.. Zusaetzlich auch collectord.
Da hatte ich die Tage auch von dtavb ein sehr gutes Schaubild bekommen, welches die Funktionsweise erläutert.
Ggf. Müssen wir das noch erweitern oder Anpassen, dass es auch Hand und Fuß hat.
Debuggen kannst du grundsaettlich wenn die Skripe lepresenced und/colledtord im debuglevel angepasst werden. Ich meine in der neusten Version kann man dass beim manuellen Start mitgeben.
Gelogged wird ja in /var/log/syslog
Es kann auch helfen, wenn du die BT Instanzen mal durchstartest.
sudo hciconfig hci0 down
sudo hciconfig hci0 up
Gruesse,
Dirk
Wurde der Wiki-Artikel nun abgespeckt? Da steht ja fast nichts mehr drin :o
Ich stelle auch hier nochmal folgende Frage in der Hoffnung, dass mir das jemand beantworten kann und mag: (leider geht das für mich nirgendwo hervor..)
Wie verhält es sich denn mit den Scan-Intervallen, welche man an drei Stellen angeben kann/muss ? Addieren die sich?
Man gibt Intervalle in der collectord.conf, beim DEFINE des GtAGs sowie optional in Form der Attribute (z.b. absenceThreshold an).
Anhand folgender Beispielconfig - was kommt am Ende raus?
collectord.conf:
[Wohnzimmer]
address=192.168.178.38
port=5333
presence_timeout=60
absence_timeout=60
DEFINE
define GtAG1 PRESENCE lan-bluetooth xx:xx:xx:xx:xx:xx 192.168.178.36:5222 60
Attribute Gtags
absenceThreshold 2
Was mir soweit klar zu sein scheint:
Per Define wird alle 60 Sekunden gescannt und durch das Attribut "absenceThreshold" wird frühestens nach 120 Sekunden auf "absent" gestellt (zwei Checks negativ).
Wie wirkt sich jetzt aber noch die collectord.conf darauf aus ? Denn hier sind ja auch nochmal 60 Sekunden definiert.
Oder hat das Attribut "absenceThreshold" bei der Verwendung von collectord überhaupt keine Wirkung mehr, weil eben dieser den absence-Status setzt?
Wenn dem so wäre, dann würde mit der oben genannten Beispielkonfig bereits nach 60 Sekunden der Status auf absent gehen - richtig ? Oder addieren sich die beiden Werte (collectord und DEFINE) auf in diesem Fall 120 Sekunden?
Sorry für die vielen Fragen, aber dieses Konstrukt ist einfach sehr verwirrend.
Wenn jemand Licht ins Dunkel bringen könnte...
Ich kann dir die Frage nicht beantworten, vielleicht machst du PatrickR mal auf das Thema aufmerksam. Er hat beide Programme programmiert.
Bezüglich des Wiki-Artikel. Da der Anwesenheits-Artikel zu groß geworden ist, wird er aktuell umgebaut und Teile ausgelagert.
Danke. Ich habe PatrickR mal direkt angeschrieben und auf diesen Thread hier verwiesen, vielleicht antwortet er ja.
Hi! Sorry, bei collectord bin ich nicht wirklich im Thema. Er ist auch nicht von mir sondern von Markus
Patrick
Von unterwegs gesendet.
Stimmt, Sry. Fehlinformation von mir. Muss Markus Bloch sich wohl zu äußern :)
Zitat von: errazzor am 17 September 2017, 22:34:07
Wie wirkt sich jetzt aber noch die collectord.conf darauf aus ? Denn hier sind ja auch nochmal 60 Sekunden definiert.
Oder hat das Attribut "absenceThreshold" bei der Verwendung von collectord überhaupt keine Wirkung mehr, weil eben dieser den absence-Status setzt?
In der collectord.conf sind presence_timeout und absence_timeout für den jeweiligen Raum konfiguriert. Das bedeutet, sobald irgendein Gerät in diesem jeweiligen Raum anwesend/abwesend ist, wird das jeweilige Timeout an den verbundenen presenced/lepresenced geschickt um damit das Check-Interval entsprechend zu ändern.
In der PRESENCE-Definition kann man ebenfalls ein absence_timeout/presence_timeout setzen. Sobald sich der Zustand ändert, wird auch das jeweilige Timeout an den collectord gesandt. Dies hat aber auf die Checks in den jeweiligen Räumen und damit der collectord.conf keinen Einfluss. Der collectord schickt ein Statusupdate an PRESENCE nur, wenn das vorgegebene Timeout (von PRESENCE) erreicht ist und keine Statusänderung stattfand. Sobald eine Änderung des Status erfolgt wird natürlich sofort der Status an PRESENCE geschickt.
Das Attribut absenceThreshold/presenceThreshold funktioniert nachwievor. Hier ist nur wichtig wie man die Timeouts sowohl in PRESENCE als auch collectord.conf setzt.
Zitat von: errazzor am 17 September 2017, 22:34:07
Wenn dem so wäre, dann würde mit der oben genannten Beispielkonfig bereits nach 60 Sekunden der Status auf absent gehen - richtig ? Oder addieren sich die beiden Werte (collectord und DEFINE) auf in diesem Fall 120 Sekunden?
Nein, in diesem Fall würde der Status nach 60 Sekunden auf absent gehen. Die Werte werden nicht addiert.
- collectord.conf: Der tatsächliche Timeout mit dem der Check durchgeführt wird
- PRESENCE: Das Timeout, welches verstreichen muss, bevor collectord Statusupdates bei gleichbleibendem Zustand an PRESENCE meldet. Das geschieht aber erst, sobald ein Raum einen Check durchgeführt hat.
Ich hoffe ich konnte Licht ins Dunkle bringen.
Gruß
Markus
Zitat von: errazzor am 17 September 2017, 22:34:07
Wurde der Wiki-Artikel nun abgespeckt? Da steht ja fast nichts mehr drin :o
Hi,
nein, ich habe das Wiki nur umgebaut bzw. die Fülle an Informationen in Unterseiten gepackt. Es wurden keine Informationen gelöscht beim Umbau.
Im Bereich : https://wiki.fhem.de/wiki/Anwesenheitserkennung gibt es nun die Links zu:
https://wiki.fhem.de/wiki/PRESENCE
sowie:
https://wiki.fhem.de/wiki/GEOFENCY
und auf der Hauptseite ein groben Überblick über das Thema Anwesenheitserkennung mit BT.
Für Tipps und Ideen bin ich jederzeit offen um die Beschreibung des doch komplexen Themas für alle verständlich zu gestalten.
Grüße,
Dirk
Ok super, danke. Das hier sollte geändert werden (im PRESENCE Artikel):
Konfiguration FHEM:
RPi1 define Gtag PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 127.0.0.1:5333 60 Hinweis: Der Port ist der, des Collectord!! Also hier, Standard 5333
RPi2 define Gtag PRESENCE lan-bluetooth XX:XX:XX:XX:XX:XX 192.168.178.127:533360 Hinweis: Der Port ist der, des Collectord!! Also hier, Standard 5333 die IP-Adresse von RPi1
Der Port 5333 ist an dieser Stelle falsch, es müsste 5222 heissen (Port des CollectorD).
5333 ist der Port von lepresenced.
Des weiteren wäre es super, wenn die Informationen von Markus Bloch zwei posts weiter oben ^^ mit aufgenommen werden. Seine Erklärung zum Verhalten der Werte habe ich sonst noch nirgendwo gefunden.
Ganz unten im Artikel von PRESENCE würde ich auch noch Markus Bloch als Ansprechpartner für collectord aufführen.
Hey,
ich habe die Portnummern nun noch mal angepasst. Hier kommt es immer darauf an wie man sein(e) System(e) konfiguriert hat.
Da bei mir Port 5222 vorher belegt war musste ich den Port vom collectord für mich abändern. Beim damaligen Schreiben des Artikels bin ich nicht von einer derartigen Resonanz ausgegangen ;)
Auch die Anmerkungen zum treshold von Markus habe ich im Bereich des lepresenced und collectord eingefügt ebenso den AP zu collectord.
Viele Grüße,
Dirk
Nach über 2 Monaten habe ich mich nun nochmal ran gemacht und versucht alles mit collectord und lepresenced zum laufen zu bringen.
Folgende Situation:
Collectord läuft, alles ist richtig eingetragen. Allerdings funktioniert lepresenced nicht richtig. über hcitool lescan wird der Gtag gefunden, über lepresenced nicht.
Nach rebooten hin, her und anschließendem hciconfig hci0 down, hciconfig hci0 up. Wurde im Presence device innerhalb Fhem dann auch mal der richtige Raum angezeigt. Sprich das zusammenspiel zwischen Fhem, collectord und lepresenced geht nun plötzlich wieder.
Dies aber nur für kurze Zeit.
Lepresenced habe ich bereits auf die neuste Version geupdatet.
Was mich verwundert: lepresence lief seit Anfang an auf dem Hautp Raspi, wo auch lepresence und Fhem als Hauptinstanz läuft optimal.
Hat jemand konkrete Tipps zum debuggen? Und oder eine Erklärung warum nach dem eingeben o.g. commands komischerweise das script wieder funktioniert und innerhalb Fhem den Status anzeigt. Dies aber wie gesagt nur für wenige Minuten/Sekunden.
Wäre echt froh, wenn das nun laufen würde. Dann kann man die Familie endlich mit GTags ausstatten ;D
Du darfst neben lepresenced kein weiteres Programm haben, welches auf das gleiche Bluetooth Device zugreift. Auch keinen eigenen lescan durchführen.
So weit ich weiß habe ich keinen anderen prozess wissentlich am laufen, der auf BT zugreift.
Den manuellen le scan habe ich immer nur gemacht, nach dem lepresenced nicht ging, um mich zu versichern das, der Dongle geht.
Ich versuche mal, Licht in die Sache zu bringen :o
Fakt1: MAN BRAUCHT NUR EINE FHEM INSTALLATION!!!!!!
Fakt2: MAN BRAUCHT NUR EINEN COLLECTORD!!!!
Fakt3: MAN BRAUCHT PRO RASPI EINEN LEPRESENCED!!!!
Man konfiguriert einen G-Tag in FHEM mit dem Port des collectord (Standard: 5222)
define mygtag PRESENCE lan-bluetooth 7C:2F:80:A4:5C:D9 127.0.0.1:5222 60 60
Die Adresse 127.0.0.1 setzt voraus, dass collectord und FHEM auf dem gleichen Rapsi laufen.
Dieser collectord kommuniziert dann mit den ganzen lepresenced Instanzen auf dem lokalen und den verteilten Raspis.
Dazu gibt es die collectord.conf.
[RPi1] # Name (wird als Reading room bei den BT-Tags angezeigt) der presence Instanze
address=127.0.0.1 # Lokale Adresse RPi1 , da hier das Collectord später laufen soll!
port=5333 # Port der Presence Installation
presence_timeout=60 # Selbstgewaelte Pruefintervalle
absence_timeout=60 # Selbstgewaelte Pruefintervalle
[RPi2] # Name ( Reading room bei den BT-Tags angezeigt) der presence Instanze
address=192.168.178.127 # IP-Adresse der Instanz, wo nur das Presence laueft, also RPi2
port=5333 # Port der Presence Installation
presence_timeout=60 # Selbstgewaelte Pruefintervalle
absence_timeout=60 # Selbstgewaelte Pruefintervalle
Im obigen Beispiel ist RPI1 der Raspi, auf dem auch der collectord läuft, deshalb 127.0.0.1 als IP-Adresse.
Auf RPI2 ist NUR ein lepresenced notwendig, sonst nichts!
Wenn man jetzt denkt: das ist aber teuer, für so wenig Software einen ganzen Raspi zu betreiben: Stimmt!
Man könnte diesen Raspi auch benutzen, um eine zweite, unabhängige, FHEM Instanz für Tests zu betreiben.
So ist m.E. das Wiki zu lesen, bei dem auf dem 2. Raspi ebenfalls eine FHEM Instanz genannt ist.
Aber man braucht dort definitiv keine 2. FHEM Instanz für PRESENCE!!!
Ohne jetzt den Programmcode von collectord und lepresenced auswendig zu kennen könnte ich mir sogar vorstellen, dass das u.U. zu Problemen führt.
Man kann sich die zusätzlichen Raspis auch sparen und stattdessen einen ESP8266 + HM-10 Dongle + Netzteil für zusammen < 15€ (beim Chinamann) benutzen.
Dann braucht man allerdings auch einen speziellen lepresenced (https://forum.fhem.de/index.php/topic,28753.msg648687.html#msg648687)
Für die Zukunft möchte ich das aber noch auf einen ESP32 (mit integr. BLE) bringen.
Micky
Interessant!
Anderen behaupteten, dass ich Fhem brauchen würde. War da auch etwas verwundert, da ich davon ausging, dass die Skripte eigenständig arbeiten.
Würde es denn was bringen, wenn ich Fhem wieder runter haue? Ansonsten ist bei mir nämlich alles so wie von dir beschrieben.
Meine Konfig:
1 x fhem, 1 x collectord, 3 x lepresenced
und läuft.
Stoppe das FHEM dort doch einfach.
Grundsätzlich kannst du es ja noch zum Testen für andere Dinge benutzen.
Ich würde allerdings darauf verzichten, dort die G-Tags zu konfigurieren, bzw. irgendwas, das von dieser Instanz auf collectord oder lepresenced zugreifen will.
Du kannst dort auch einen Temperaturfühler, Bewegungssensor oder ähnliches anschließen und von deinem primären Fhem mittels fhem2fhem auf die Daten des Testfhem zugreifen.
Es wäre mir einfach zu schade, nur für den BT-Stick einen eigenen Raspi zu betreiben...dann muss der halt noch andere (mehr oder minder) sinnvolle Daten (Temp/etc) liefern.
Micky
Jo, Danke dir!
Werde testen, ob es an dem installiertem Fhem liegt.
Mal schauen, vielleicht probiere ich mal oneWire aus 8)
Falls es denn noch nicht funktioniert, werde ich mich melden. :-X
Zitat von: Fixel2012 am 28 November 2017, 23:04:35
Falls es denn noch nicht funktioniert, werde ich mich melden. :-X
Vielleicht kannst du doch nochmal berichten, falls es jetzt funktioniert, damit ggf. auch andere von der Erkenntnis profitieren können.
Habe ich noch vor. Aber so ganz sicher bin ich mir noch nicht, ob auch alles funktioniert...
Funktioniert jedenfalls besser als vorher!
Rückmeldung:
Mein G-Tag hing nun 3 Tage an der gleichen Position, von den 3 Tagen war er leider 1,5 Tage abwesend, obwohl er sich 2 Meter neben dem Raspi im UG befindet (nicht der pi auf dem auch mein Haupt-Fhem läuft).
Nach dieser Zeit wurde der G-Tag ohne etwas zu verändern plötzlich wieder als "present" angezeigt.
Mein G-Tag hängt im Moment so, dass er gerade so vom EG-Raspi erfasst werden kann und relativ gut vom UG-Raspi. Dennoch wird mir im Reading "Room" nur "EG" angegeben, obwohl UG eigentlich näher dran ist. Eigentlich sollte er mir doch beide Räume innerhalb Fhem ausgeben, da er von beiden Raspis erfasst werden sollte.
Mit dem manuellen lescan sehe ich den G-Tag von beiden Raspis aus!
Ich habe wie von micky0867 empfohlen aus allen Fhem Instanzen, bis auf die Haupt-Instanz die Definition für den Collectord entfernt.
Da ich kein Muster oder sonstiges erkennen konnte, habe ich keine Ahnung warum der G-Tag so willkürlich absent/present geht. Bzw. die Räume falsch angezeigt werden.
Gibt es irgendwelche Konkreten Möglichkeiten um lepresenced und collectord zu debuggen? Wenn ja, nach was muss ich im Log ausschau halten und wie stelle ich das an?
Würde mich riesig über Hilfe freuen,
Gruß,
Fixel
Poste mal ein list deine collectored und lepresenced config.
Welche lepresenced config bzw list?
Für lepresenced gibt es keinen config file, oder? lepresenced als presence device innerhalb Fhem habe ich auch nicht.
Ich habe nur ein Presence Device (siehe unten) welches auf Port 5222 collectord abfragt. lepresenced kommuniziert eigenständig mit collectord. (So zumindest mein Verständnis... ???)
Collectod Definition innerhalb Fhem:
Internals:
ADDRESS 7C:2F:80:A7:14:22
DEF lan-bluetooth 7C:2F:80:A7:14:22 127.0.0.1:5222 60
DeviceName 127.0.0.1:5222
FD 13
MODE lan-bluetooth
NAME FelixGtag
NOTIFYDEV global
NR 234
NTFY_ORDER 50-FelixGtag
PARTIAL
STATE present
TIMEOUT_NORMAL 60
TIMEOUT_PRESENT 60
TYPE PRESENCE
READINGS:
2017-12-08 01:26:49 command_accepted yes
2017-12-10 14:38:50 daemon lepresenced V0.81
2017-12-10 14:38:50 device_name Gigaset G-tag
2017-12-10 07:59:40 model lan-lepresenced
2017-12-10 14:38:50 presence present
2017-12-10 14:38:50 rooms Erdgeschoss
2017-12-10 14:38:50 rssi -92
2017-12-10 14:38:50 state present
helper:
CURRENT_STATE present
CURRENT_TIMEOUT normal
Attributes:
room Anwesenheit
Collectord config file:
# 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
[Erdgeschoss]
address=127.0.0.1
port=5333
presence_timeout=60
absence_timeout=60
[Erste_Obergeschoss]
address=192.168.1.110
port=5333
presence_timeout=60
absence_timeout=60
[Untergeschoss]
address=192.168.1.111
port=5333
presence_timeout=60
absence_timeout=60
Habe mich unglücklich ausgedrückt, hast aber das richtige gepostet ;)
Es gibt zwar die Meinung, dass auf den anderen Pis FHEM nicht installiert sein soll und lepresenced die Daten automatisch an collectored sendet. Ich kann dies nicht bestätigen, daher frage ich mal ob bei dir im OG und UG FHEM installiert ist mit der Definition des G-Tags und der IP der Hauptinstanz?
Zitat von: Amenophis86 am 10 Dezember 2017, 15:00:30
Habe mich unglücklich ausgedrückt, hast aber das richtige gepostet ;)
Alles gut, habe mich nur gewundert ;D
Zitat von: Amenophis86 am 10 Dezember 2017, 15:00:30
Es gibt zwar die Meinung, dass auf den anderen Pis FHEM nicht installiert sein soll und lepresenced die Daten automatisch an collectored sendet. Ich kann dies nicht bestätigen, daher frage ich mal ob bei dir im OG und UG FHEM installiert ist mit der Definition des G-Tags und der IP der Hauptinstanz?
Fhem ist im OG und UG installiert, allerdings habe ich die Definition des collectord gelöscht.
Vorher hatte ich es ja mit den angelegten Definitionen am laufen, dort ging es (gefühlt) allerdings noch schlechter.
Mir ist nicht ganz klar, was du mit den "Defintionen des Collectored" meinst.
Bei mir ist es wie im Wiki beschrieben. Auf jeder Instanz ist FHEM installiert und der G-Tag in jeder Instanz angelegt. Dieser verweist immer auf die IP der Hauptinstanz bzw auf 127.0.0.1 auf der Hauptinstanz. Auf der Hauptinstanz ist auch collectored installiert, sonst auf allen Geräten lepresenced. Wenn du von dieser Installation abweichst kann ich dir leider nicht sagen, ob das funktioniert. Angeblich soll es auch gehen, dass nur auf jedem Gerät lepresenced und nicht FHEM installiert ist, dies konnte ich bisher aber nicht bestätigen.
im wiki ist doch ein test für den collectored beschrieben. hast du den test gemacht und bist dabei mit dem g-tag durchs haus gelaufen?
Zitat von: Amenophis86 am 10 Dezember 2017, 15:26:34
Mir ist nicht ganz klar, was du mit den "Defintionen des Collectored" meinst.
Damit meine ich den Port 5222 des collectord. Also das Presence device mit der richtigen IP und dem Port zu dem collectord.
Zitat von: frank am 10 Dezember 2017, 16:07:27
im wiki ist doch ein test für den collectored beschrieben. hast du den test gemacht und bist dabei mit dem g-tag durchs haus gelaufen?
dazu konnte ich nichts im Wiki finden :o
das presence wiki. collectored manuell starten.
Hast du einen Link für mich der auf das Thema "Linkt"?
Finde nur das hier:
ZitatZum testen sollte collectored einmalig manuell gestartet werden. Dies hat den Vorteil, dass man nochmal den Port des collectored prüfen kann, dieser steht in der Zeile
Joa und weiter unten steht der Manuelle start mit der Ausgabe über die Kommandozeile, das laufen lassen und durchs Haus mit den G-Tags laufen. Siehste dann in der Kommandozeile den G-Tag nicht, stimmt was nicht.
Ich hatte vor einigen Tagen mal eine Zeit lang ein Problem mit einem meiner beiden Gtags...einziger Unterschied: dieser Gtag hat eine Batterie-Kapazität von 75%...der andere hat 100%
Fhem braucht definitiv nur auf einem Raspi zu laufen. Man kann auch ein Fhem auf dem 2. und 3. usw. installieren, das bringt für lepresenced aber keine Vorteile. Es erschwert allenfalls die Fehlersuche.
Was mir gerade noch so einfällt...es gibt Apps (Smartphone), die sich mit dem GTag pairen lassen. Dann ist das GTag für andere u.U. auch nicht mehr zu sehen.
Ich habe mir vor einigen Tagen weitere G-Tags bestellt.
Wenn die da sind, werde ich weiter ausprobieren und falls nötig nochmals auf eure Hilfe zurück greifen!
Danke euch!
Gab es hier nochmal etwas zu vermelden? Im Endeffekt hast/hattest Du die gleichen Probleme, wie ich sie auch schon seit über einem Jahr habe
Bei mir funktioniert alles soweit. Bis auf ein Raspi. Da müsste ich mal schauen, was los ist. :-[
Ok, kannst Du auch sagen was das Problem bei Dir war? Das würde weiterhelfen.
Hallo an Alle,
ich habe bei mir jetzt auch mal die Anwesenheitserkennung eingeschaltet. Dabei habe ich den "presenced"-Damon auf zwei Rasps installiert wobei auf einem auch FHEM läuft. Auf dem wo fhem läuft noch zusätzlich den "collectord" installiert.
Konfiguriert in FHEM folgendermaßen:
defmod Anwesenheit_Sascha PRESENCE lan-bluetooth a0:10:81:86:77:e8 127.0.0.1:5222 30
Konfiguration:
# 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
[Buero_unten]
address=127.0.0.1
port=5111
presence_timeout=180
absence_timeout=180
#[Schlafzimmer_le]
#address=192.168.178.45
#port=5333
#presence_timeout=180
#absence_timeout=180
[Schlafzimmer_oben]
address=192.168.178.45
port=5111
presence_timeout=180
absence_timeout=180
Nach starten des "collectord" ist die Weboberfläche" von FHEM
nicht mehr aufrufbar bzw. dauert eine ewigkeit. Nach stoppen des "collectord" läuft wieder alles normal.
Netstat liefert folgendes:
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 0 48526 4862/perl
tcp 0 0 0.0.0.0:2121 0.0.0.0:* LISTEN 999 27688 757/perl
tcp 0 0 0.0.0.0:14702 0.0.0.0:* LISTEN 999 30928 929/perl
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 26116 727/lighttpd
tcp 0 0 0.0.0.0:7411 0.0.0.0:* LISTEN 999 28880 927/perl
tcp 0 0 0.0.0.0:8084 0.0.0.0:* LISTEN 999 24918 756/perl
tcp 0 0 0.0.0.0:8085 0.0.0.0:* LISTEN 999 24919 756/perl
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 102 15309 499/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 28630 700/sshd
tcp 0 0 0.0.0.0:8086 0.0.0.0:* LISTEN 999 27686 756/perl
tcp 0 0 0.0.0.0:5111 0.0.0.0:* LISTEN 0 32919 1440/perl
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 999 28720 756/perl
tcp 0 0 0.0.0.0:7072 0.0.0.0:* LISTEN 999 27685 756/perl
tcp6 0 0 :::22 :::* LISTEN 0 28632 700/sshd
tcp6 0 0 ::1:3350 :::* LISTEN 0 23503 696/xrdp-sesman
tcp6 0 0 ::1:631 :::* LISTEN 0 23243 580/cupsd
tcp6 0 0 :::3389 :::* LISTEN 122 26169 722/xrdp
udp 12288 0 127.0.0.53:53 0.0.0.0:* 102 15308 499/systemd-resolve
udp 3840 0 0.0.0.0:68 0.0.0.0:* 0 26181 778/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 116 21956 565/avahi-daemon: r
udp 0 0 0.0.0.0:56555 0.0.0.0:* 116 21958 565/avahi-daemon: r
udp 0 0 0.0.0.0:631 0.0.0.0:* 0 22280 654/cups-browsed
udp6 0 0 :::39770 :::* 116 21959 565/avahi-daemon: r
udp6 6336 0 :::5353 :::* 116 21957 565/avahi-daemon: r
Andere Dienste auf dem Server funtkionieren ohne Einschränkung.
Kann mir da jemand helfen?
Danke und Gruß,
Sascha