Anwesenheitserkennung Bluetooth PebbleBee

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

Vorheriges Thema - Nächstes Thema

StefanW

@oliv06:
hciconfig hci0 down
hciconfig hci0 up

Bringt leider keinen Erfolg.

@Mitch:
Wie könnte ich das genauer untersuchen?

User fhem ist in der Gruppe sudo:
ct@cubie:~$ grep sudo /etc/group
sudo:x:27:ct,fhem


Und der Eintrag in der /etc/sudoers ist auch vorhanden:
# User privilege specification
root    ALL=(ALL:ALL) ALL
fhem    ALL = NOPASSWD:ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL


oliv06

Two options :

       
  • If you use sudo you must specify it in the PRESENCED definition
Antw:Anwesenheitserkennung Bluetooth PebbleBee

       
  • Or you may choose to use the suid bit in order to allow commands to be used without su
sudo chmod u+s `which hcitool`
sudo chmod u+s `which hciconfig`


Both work for me, but I still have issues :

       
  • hcitool lescan cannot be stopped by PRESENCED when stopping fhem (it seems that FHEM is run as fhem and hcitool as root, in both configurations). Strange because it worked when I first tested it
  • bluetooth adapter needs to be reinitialized when hcitool lescan is killed
  • presence seems not reliable, going from present to absent frequently, while I see regular broadcasts when testing lescan outside fhem

StefanW

Leider habe ich damit auch keinen Erfolg.  :'(

Über die Konsole mit putty funktioniert hcitool lescan & der G-Tag wird gefunden.
Nur der Aufruf über fhem funktioniert einfach nicht.

Mitch

definiere pd mal so:

define pd PRESENCED sudo -u root /usr/bin/hcitool lescan
FHEM im Proxmox Container

Steffen

Hallo!

Hatte auch ne ganze weile kein Erfolg, aber mit diesem Befehl ging es:
sudo stdbuf -oL -eL hcitool lescan --duplicates
Vielleicht klappt es ja damit?!

Das einzige was bei mir noch war/ist das ich meinem Cubitruck immer noch komplett bei Fhem upadte oder restart auch neu starten musste sonst hatte ich auch Disconect!

Habe jetzt den G-Tag seit zwei Tagen im einsatz und muss sagen bis jetzt Top,
was ich von den Pebblebee nicht behaupten konnte.

Mfg Steffen

StefanW

2015.02.18 20:58:43 3: pd: connected to sudo stdbuf -oL -eL hcitool lescan --duplicates
2015.02.18 20:58:43 3: pd: Disconnected
2015.02.18 20:58:53 3: pd: connected to sudo stdbuf -oL -eL hcitool lescan --duplicates
2015.02.18 20:58:53 3: pd: Disconnected
2015.02.18 20:59:03 3: pd: connected to sudo stdbuf -oL -eL hcitool lescan --duplicates
2015.02.18 20:59:03 3: pd: Disconnected
2015.02.18 20:59:13 3: pd: connected to sudo stdbuf -oL -eL hcitool lescan --duplicates
2015.02.18 20:59:13 3: pd: Disconnected
2015.02.18 20:59:42 3: pd: connected to sudo -u root /usr/bin/hcitool lescan
2015.02.18 20:59:42 3: pd: Disconnected
2015.02.18 20:59:52 3: pd: connected to sudo -u root /usr/bin/hcitool lescan
2015.02.18 20:59:52 3: pd: Disconnected
2015.02.18 21:00:02 3: pd: connected to sudo -u root /usr/bin/hcitool lescan
2015.02.18 21:00:02 3: pd: Disconnected
2015.02.18 21:00:12 3: pd: connected to sudo -u root /usr/bin/hcitool lescan
2015.02.18 21:00:12 3: pd: Disconnected


Leider auch mit den beiden Definitionen das gleiche Spiel.
Ich glaube, ich setze meinen Cubie mal neu auf und versuche es erneut.

Mitch

Aber hcitool liegt auch im Pfad /usr/bin?
FHEM im Proxmox Container

StefanW

Ja, liegt dort. Hab extra schon nachgesehen.
Also morgen mal neu aufsetzen. ;-)

gero

@StefanW: Funktioniert der Scan denn von der Commandline?

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Mitch

Nur noch mal zum Abgleich meine Daten:

Presenced:
# $Id: 73_PRESENCED.pm 4756 2014-01-27 21:15:50Z justme1968 $

user fhem ist in folgenden Gruppen:
Gruppen=20(dialout),4(adm),27(sudo),29(audio)

Folgende Einträge in sudoers:
- fhem    ALL=(ALL:ALL) ALL
- fhem    ALL = NOPASSWD:ALL
FHEM im Proxmox Container

Carsten

Hallo,

ich spiele gerade mit meinem G-Tag rum.

Mit hcitool -lescan sehe ich ihn. Allerdings läuft das dann permanent und blockiert den Bluetooth Dongle. Soweit ich verstanden habe, ist das auch das Problem beim Presence-Check?
Habt ihr euch mal gatttool angeschaut? Mit
gatttool -b <MAC-Adresse> --primary
bekomme ich z.B. irgendwelche Funktionsregister des Tags angezeigt, wenn es erreichbar ist. Ansonsten gibts ein "No route to host (113)".
Evtl. kann man das ja als Ping-Ersatz hernehmen?

Vielleicht gibts da außer --primary auch noch bessere Parameter.
--char-read funktioniert bei mir nur in der Konsole wobei auch da an der Antwort zu erkennen ist, ob das Gerät in Reichweite ist:
A valid handle is required
wenn Gerät prinzipiell da, aber Handle angeblich falsch vs.
No route to host ( 113)
wenn Gerät gar nicht gefunden

P.S.:
Irgendwer hatte das Problem, dass er seinen PC ständig neustarten muss, wenn FHEM disconnected wurde. Versuch stattdessen mal
/etc/init.d/bluetooth restart

fh168

Hallo Gemeinde,

ich habe gerade das G-tag von Gigaset getestet, Fhem-Funktionalität steht noch aus.

Blog-Beitrag zum G-tag: http://blog.moneybag.de/erfahrungsbericht-gigaset-g-tag-schluesselfinder/#more-11592

Was vielleicht für Euch interessant ist: Gigaset auf deren Microsite hat ein Gewinnspiel gestartet, bei denen die ersten 1000 Teilnehmer ein G-Tag gewinnen können.

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

b4r7

FHEM auf Debian VM (FreeNAS bhyve)
HMUart + ZME-UZB1 über RPi2/ser2net

Mathelf

Hallo,

ich habe meinen G-Tag nun erfolgreich in FHEM eingebunden. Ich nutze ein modifiziertes python Script, das meinen Tests zufolge nicht mit der local-bluetooth Erkennung im PRESENCE Modul in die Quere kommt.

Das python Script gibt es hier: https://github.com/IanHarvey/bluepy/tree/master/bluepy und eine gute Anleitung zum Setup hier: http://www.elinux.org/RPi_Bluetooth_LE

Ich nutze einen erfolgreichen bzw. nicht erfolgreichen Connect zur Anwesenheitserkennung aus und habe das Script btle.py in der Mainroutine folgendermaßen modifiziert:


    try:
       conn = Peripheral(devAddr, addrType)
       conn.disconnect()
       print ("1")
       sys.exit(1)
    except BTLEException as e:
       print("0")
       sys.exit(0)


In der fhem.cfg nutze ich das PRESENCE Modul:

define TagGruen PRESENCE shellscript "sudo /usr/bin/python /home/pi/bluepy/bluepy/btle.py 00:00:00:00:00:00" 60 60


Die MAC Adresse des Tags findet man über ein lescan raus. Das python Script muss aus fhem aus aufrufbar sein (Rechte!).

Für mich noch offene Fragen:

  • Bei einem erfolglosen Verbindungsaufbau ist der Timeout recht lange. Blockiert das irgendwie das fhem-System?
  • Ist der Versuch eines Verbindungsaufbaus teuerer bzgl. Strahlung und Stromverbrauch des Tags?

Viele Grüße

Matthias

Markus Bloch

Zu Punkt 1: Nein, die Shell-Aufrufe sind vom Hauptprozess durch Forking entkoppelt und führen zu keinerlei Blockierung des Hauptprozess. Allgemein gilt eine maximale Laufzeit von 60 Sekunden. Dannach wird der Aufruf hart beendet.

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)