Anwesenheitserkennung Bluetooth PebbleBee

Begonnen von tomster, 06 November 2014, 10:01:16

Vorheriges Thema - Nächstes Thema

PatrickR

#375
Hi!

Zitat von: Murdock am 19 September 2015, 11:55:55
@PatrickR: Vielen Dank für dein lepresenced. Ich bekomme im Moment ein disconnected als State. Mach ich evtl was falsch ? Wo genau lege ich deine  lepresenced Datei ab ? Muß ich sie noch umbenennen oder steht sie noch in Zusammenhang mit anderen Dateien aus diesem thread ? Eine kurze Info Wäre Cool. Danke

Den lepresenced kannst Du eigentlich hinlegen wo Du willst, z. B. nach /usr/local/sbin oder nach /opt/fhem. Wichtig ist, dass Du ihn startest und zwar der Einfachheit halber als root. Das ist anders als bei blescan.pl, das von FHEM gestartet wurde.

In der Annahme, dass er auf dem gleichen Rechner laufen soll wie FHEM lege ihn doch mal unter /opt/fhem ab und führe Folgendes aus:

chmod +x /opt/fhem/lepresenced && /opt/fhem/lepresenced


Wenn keine Fehlermeldung kommt dann in FHEM:

define presence_test PRESENCE lan-bluetooth 7C:2F:15:44:80:8F localhost:5333 60

lepresenced läuft dann erstmal im Vordergrund, d. h. nicht CTRL-C drücken oder anderweitig abbrechen.

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

Murdock

Hi Patrick,

Vielen Dank für deine Mühe. Nach folgen deiner Anweisung bekomme ich folgende Fehlermeldung:


root@raspberrypi:~# chmod +x /opt/fhem/lepresenced && /opt/fhem/lepresenced
Can't locate Net/Server/Daemonize.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 / usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /opt/fhem/lepresenced line 17.
BEGIN failed--compilation aborted at /opt/fhem/lepresenced line 17.

Hast du einen Tip ? Klar sehe ich das die Datei Daemonize.pm fehlt. Aber woher bekomme ich die richtige Datei ? Oder muß ich ein Perl Paket updaten ?

Gruß
Sven
fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

PatrickR

apt-get install libnet-server-perl


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

Murdock

Perfekt ! Danke Patrick jetzt klappt es super !

Nun teste ich gerade wie ich die Bluetoothreichweite in der Wohnung erhöhe und dem G-Tag auch in bestimmten Räumen einzeln erkennen lassen kann. Ich habe jeweils noch einen PI im Arbeitszimmer und im Wohnzimmer mit dem gleichen Bluetooth-Dongle wie auf dem Haupt-Pi-fhem-Server. Vorher mit der Erkennung des Handys lief es alles über collectord und zeigte auch die Räume an. Jetzt durch den Gigaset G-Tag und dem Script von Patrick scheint alles etwas anders zu laufen. Ob das an den Einstellungen der Ports der collectord.conf Datei liegt und ich diese, wie das lepresenced Script auf den Port 5333 lege oder umgekehrt, versuche ich gerade herauszufinden.
Muß ich den auf jeden Pi, der mir die Reichweite meiner Anwesenheitserkennung erhöhen soll auch dein lepresenced und das Perl Paket installieren Patrick, oder habe ich da einen Denkfehler gemacht ?

So läuft dein Script gerade bei mir auf 10 Sekunden abfrage. Ich teste gerade wie sehr eine solch kurze Scanrate meinen Pi2 beansprucht. So ein Schlüßelanhänger als Anwesenheitserkennung ist schon eine coole Sache. Besonders wenn man wie ich beim Verlassen der Wohnung fast alle Steckdosen abschalten lässt, um Strom zu sparen und sich auch das Handy Ladegerät mit abschaltet. Wenn der Handy Akku dann mal leer war, ist das recht nervig gewesen, fhem zu sagen das ich doch zuhause bin :) Da rockt so ein Bluetooth-Schlüßelahänger wirklich. Wenn ich jetzt noch diesen Schlüßelanhänger eine räumliche Anwesenheitserkennung zuordnen kann und das ganze dann auch für die ganze Familie gut funktioniert, hab ich genau das was ich immer haben wollte.



Für alle Tips, Tricks und Anregungen wäre ich sehr dankbar :)
fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

PatrickR

#379
Hi!

Zitat von: Murdock am 22 September 2015, 20:02:12
Muß ich den auf jeden Pi, der mir die Reichweite meiner Anwesenheitserkennung erhöhen soll auch dein lepresenced und das Perl Paket installieren Patrick, oder habe ich da einen Denkfehler gemacht ?
Lepresenced muss auf jedem Rechner laufen, der die G-Tags empfangen soll, also auch auf den Pi.

Zitat von: Murdock am 22 September 2015, 20:02:12
So läuft dein Script gerade bei mir auf 10 Sekunden abfrage. Ich teste gerade wie sehr eine solch kurze Scanrate meinen Pi2 beansprucht.
Ich nehme an, mit Scanrate meinst Du die letzte Zahl im Define. Die hat absolut keine Auswirkungen auf die Performance. Lepresenced scannt immer. Die Zahl sagt ihm nur, nach welcher Zeit ein G-Tag außer Reichweite als abwesend markiert wird.

Ich hoffe, ich habe nicht irgendwo einen Denkfehler, der aus dem "Kopieren" des Interface von Markus' presenced resultiert.

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

Murdock

#380
Ich habe es jetzt schon mal geschaft das der G-Tag auf allen 3 Pi's einzeln als present angezeigt wird durch

define G-Tag PRESENCE lan-bluetooth 11:21:80:11:42:11 localhost:5333 10 10

Über collectord bekomme ich es aber nicht zum Laufen. Ich habe "localhost" durch "127.0.0.1" ausgetauscht und die Ports 5111 / 5222 / 5333 rauf und runter durchgetestet leider bisher ohne Erfolg.

fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

PatrickR

#381
Wie genau äußert sich der Fehler?
Wie sieht denn Deine collectord.conf aus?


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

Murdock

Meine collectord.conf sieht so aus:

# 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

[Schlafzimmer]
address=192.168.178.50
port=5111
presence_timeout=60
absence_timeout=20

[Arbeitszimmer]
address=192.168.178.20
port=5111
presence_timeout=60
absence_timeout=20

[Wohnzimmer]
address=192.168.178.40
port=5111
presence_timeout=60
absence_timeout=20

ich habe bei den Ports schon alles durchgetauscht 5111/5222/5333

und mit:
define G-Tag lan-bluetooth 11:21:80:11:42:11 127.0.0.1:5222
versucht abzufragen. Auch hier hab ich als Ports 5111/5222/5333 schon probiert.

Bei der Abfrage über Port 5222 bekomme ich ein Absent wenn ich die Ports im collectord.conf auf 5111 gesetzt habe. Sind diese dort auf 5333 gestellt reagiert der scan vom lepresenced im define nur über Port 5333. Ich bin eben ein bischen mit dem G-Tag durch die Wohung gewandert. Eine Rückkehr von absent auf present wird erst erkannt wenn im define wieder von Port 5222 auf Port 5333 geschaltet wird. Er nimmt aber die 127.0.0.1 an bei beiden. Scannt auch im Zykluss wenn auf Port 5222 gestellt ist, erkennt aber dann nicht seine Rückkehr ins present.


fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

PatrickR

Hi!

Schau doch mal bitte, ob im syslog auf den RPis(!) sowas wie "Received unknown command"... steht.

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

PatrickR

Guten Morgen!

Sorry, bin momentan etwas eingespannt und kann Dir daher die Antworten nur häppchenweise servieren.

Wenn Du die Standardeinstellungen von lepresenced verwendest, lauscht der Dienst auf Port 5333, d. h. alle Port-Zeilen in der collectord.conf müssen wie folgt lauten:

port=5333


Der Standardport von collectord ist 5222, d. h. im Define in FHEM muss 5222 stehen.

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

Murdock

Mahlzeit :)

Alles gut. Ich schaffe es in der Woche zeitlich auch nur häppchenweise ;)

Ich habe jetzt in der collectord.conf die Ports auf 5333 gestellt und dann im define auf 5222 abgefragt. In der collectord.log Datei also im Logfile von collectord wird auch jedesmal wenn ich das im define den Port 5222 abfrage alles sauber geöffnet:

define G-Tag PRESENCE lan-bluetooth 1C:2F:80:91:11:28 127.0.0.1:5222 10 10

ergibt im collectord Logfile

2015-09-24 12:49:19 - new connection from 127.0.0.1:50779
2015-09-24 12:49:19 - created thread 10 for processing device 1C:2F:80:91:11:28 in room Wohnzimmer for peer 127.0.0.1 (UUID: 1f2cduspde130baf823b1cbd0f12341f51)
2015-09-24 12:49:19 - created thread 11 for processing device 1C:2F:80:91:11:28 in room Schlafzimmer for peer 127.0.0.1 (UUID: 1f2cduspde130baf823b1cbd0f12341f51)
2015-09-24 12:49:19 - created thread 12 for processing device 1C:2F:80:91:11:28 in room Arbeitszimmer for peer 127.0.0.1 (UUID: 1f2cduspde130baf823b1cbd0f12341f51)


Es wird also bereit gestellt.

Es kommen dann aber keine readings vom G-Tag, das heisst das lepresenced nicht scannt, abfragt bzw reagiert. Der State ist aber auf active nicht auf disconneted.

Sobald ich aber den Port im define umstelle und abspeicher auf:

define G-Tag PRESENCE lan-bluetooth 1C:2F:80:91:11:28 127.0.0.1:5333 10 10

Fängt lepresenced wieder sofort an alle 10 Sekunden abzufragen, ist wieder im voll in Gange und schaltet den G-Tag wieder im State auf present.

collectord  beendet dann auch die Verbindung. Ergibt im collectord Logfile dann:

2015-09-24 13:09:09 - closed connection from 127.0.0.1

Eine Meldung im Syslog bei den Pi'S von sowas wie  "Received unknown command" bekomme ich nicht.

Ausgabe im Syslog bei einstellen auf Port 5222:

2015.09.24 13:06:18 5: Cmd: >modify G-Tag lan-bluetooth 1C:2F:80:91:11:28 127.0.0.1:5222 10 10<
2015.09.24 13:06:18 3: Opening G-Tag device 127.0.0.1:5222
2015.09.24 13:06:18 3: G-Tag device opened
2015.09.24 13:06:18 5: SW: 37433a32463a38303a39443a34323a32387c31300a
2015.09.24 13:06:18 5: Triggering global (1 changes)
2015.09.24 13:06:18 5: Notify loop for global MODIFIED G-Tag
2015.09.24 13:06:18 5: PRESENCE (G-Tag) - received data: command accepted
2015.09.24 13:06:18 5: Triggering G-Tag (1 changes)
2015.09.24 13:06:18 5: Notify loop for G-Tag command_accepted: yes
2015.09.24 13:06:18 4: HTTP FHEMWEB:192.168.178.27:64456 GET /fhem?detail=G-Tag
2015.09.24 13:06:18 4: 2476:FHEMWEB:192.168.178.27:64456: /fhem?detail=G-Tag / RL:2813 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2015.09.24 13:06:18 5: PRESENCE (G-Tag) - received data: socket_closed;Wohnzimmer
socket_closed;Schlafzimmer
2015.09.24 13:06:18 3: PRESENCE (G-Tag) - collectord lost connection to room Schlafzimmer


Ausgabe im Syslog bei einstellen auf Port 5333:

2015.09.24 13:09:09 5: Cmd: >modify G-Tag lan-bluetooth 1C:2F:80:91:11:28 127.0.0.1:5333 10 10<
2015.09.24 13:09:09 3: Opening G-Tag device 127.0.0.1:5333
2015.09.24 13:09:09 3: G-Tag device opened


Schlafzimmer ist hier der Raum bzw der Haupt-fhemServer auf dem alles programmiert und ausgelesen wird.

gruß
Sven




fhem auf Raspberry PI  3 - V3 Cul 868 MHZ - V3 Cul433 MHZ - Jeelink 868MHZ - HMMLan - Gigaset G Tag - Nut LT-BT

Toto1973

Ich habe mir heute einen Gigaset G-Tag bestellt. Wäre es möglich, die Anleitung, wie man das Modul /den G-Tag in FHEM einbindet, auf die erste Seite des Beitrages zu kopieren?
Weuil so muss ich erst mal den Ellen langen Beitrag durchlesen :-P
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

dev0

Zitat von: Toto1973 am 24 September 2015, 15:24:18
Weuil so muss ich erst mal den Ellen langen Beitrag durchlesen :-P
Ganz schön fordernd von Dir, da du bisher nicht wirklich etwas zum Forum beigetragen hast, ausser deine Probleme lösen...

PatrickR

Mahlzeit!

@Murdock:
OK, es gibt definitiv einen Bug in lepresenced, der auftritt, wenn der Client das Intervall aktualisiert. Das tritt auf, wenn man im define in FHEM zwei Intervalle angibt und bei der Verwendung von collectord immer.

Das muss ich mir genauer ansehen.

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

PatrickR

Hi!

@Murdock:
Probier' mal die angehängte Version.

Changelog V0.4:
-Query updates, d. h. Änderung des Intervalls sollte nun korrekt verarbeitet werden.
-Log Level einiger Meldungen angepasst.
-Etwas aufgeräumt.

Grüße
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