Anwesenheitserkennung Bluetooth PebbleBee

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

Vorheriges Thema - Nächstes Thema

Mumpitz

Zitat von: stoxx am 09 Juni 2016, 18:50:09
Hier nochmal der aktuelle Code für das Batterie-Level Skript für Gigaset G-Tags (die Großschreibung für bc berücksichtigt - danke Ellert für den Hinweis):

#!/bin/bash
stringZ=$(sudo gatttool -b <<MAC-Adresse>> --char-read --handle=0x001b)
stringZ=${stringZ:33:2}
stringZ=$(echo "$stringZ" | tr a-f A-F)
decimal=$(echo "ibase=16; $stringZ" | bc)
perl /opt/fhem/fhem.pl 7072 "setreading <<TagName>> Batterie $decimal"


darf ich fragen wie ich es handeln muss, wenn ich mehrere G-Tags abfragen muss? muss ich mehrere solche Scripts erstellen und diese laufen lassen oder kann ich alle in eines schreiben? Besten Dank
<<MAC-Adresse>> = MAC des jeweiligen G-Tags
<<TagName>> = Device-Name des G-Tags

vg stoxx

stoxx

Zitatdarf ich fragen wie ich es handeln muss, wenn ich mehrere G-Tags abfragen muss? muss ich mehrere solche Scripts erstellen und diese laufen lassen oder kann ich alle in eines schreiben? Besten Dank
Die Frage kam schonmal:
https://forum.fhem.de/index.php/topic,28753.msg459482.html#msg459482

Sicher kann man das auch über ein Skript machen; dann muss man halt mit mehreren Variablen arbeiten.. Ich habe mich aber für verschiedene Skripte entschieden, weil ich sie zu unterschiedlichen Zeiten bzw. in unterschiedlicher Häufigkeit aufrufen will..

vg stoxx
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

Mumpitz

hmm, besten Dank. ich habe das num mal versucht. Leider bekomme ich folgenden Fehler im LogFile:

where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Usage: setreading <name> <reading> <value>
/opt/fhem/batterie_gtag_reto.sh: line 2: warning: here-document at line 2 delimited by end-of-file (wanted `7C:2F:80:AA:5F:8C')
/opt/fhem/batterie_gtag_reto.sh: line 3: warning: here-document at line 3 delimited by end-of-file (wanted `7C:2F:80:AA:5F:8C')
2016.06.12 11:08:12 3: BatQuery: -1


UserReadings Batterie ist gesetzt. Allerdings wird kein entsprechendes Reading angezeigt. Weiss jemand Rat?

Mumpitz

Entschuldigung, kleiner Anfängerfehler: ich habe die Macadresse in je zwei << geschrieben als diese zu ersetzen :-)
sorry!

Zitat von: Mumpitz am 12 Juni 2016, 11:11:51
hmm, besten Dank. ich habe das num mal versucht. Leider bekomme ich folgenden Fehler im LogFile:

where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Usage: setreading <name> <reading> <value>
/opt/fhem/batterie_gtag_reto.sh: line 2: warning: here-document at line 2 delimited by end-of-file (wanted `7C:2F:80:AA:5F:8C')
/opt/fhem/batterie_gtag_reto.sh: line 3: warning: here-document at line 3 delimited by end-of-file (wanted `7C:2F:80:AA:5F:8C')
2016.06.12 11:08:12 3: BatQuery: -1


UserReadings Batterie ist gesetzt. Allerdings wird kein entsprechendes Reading angezeigt. Weiss jemand Rat?

nun erhalte ich nur noch die Meldung:
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Usage: setreading <name> <reading> <value>
Host is down (112)
2016.06.12 13:08:36 3: BatQuery: -1


diese Meldung ist ja bereits bei Ellert aufgetaucht. Ich getraue mich jedoch nicht nach der Anleitung zu verfahren, da ich meinen Dongle mittels
sudo apt-get install bluetooth bluez-utils blueman

installiert habe und nicht wie in der Problemlösung beschrieben mittels bluez....

wäre das Problemlos auf das abzuändern???

stoxx

Zitatwäre das Problemlos auf das abzuändern???
Läuft Dein fhem auf wheezy oder jessie? Im Fall von wheezy würde ich mal nach der Anleitung vorgehen - mach halt vorher eine Sicherung..
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

Mumpitz

Zitat von: stoxx am 12 Juni 2016, 14:00:37
Läuft Dein fhem auf wheezy oder jessie? Im Fall von wheezy würde ich mal nach der Anleitung vorgehen - mach halt vorher eine Sicherung..

wheezy!

Mumpitz

ich kriegs nicht hin. Wenn ich das Script auf der Konsole ausführe bekommen ich immer diese Meldung:

root@raspberrypi:~# /opt/fhem/batterie_gtag_reto.sh
Host is down (112)
Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.


habe bereits den BT Dongle neu installiert. Genau das selbe....
Weiss jemand rat?

darkness

#607
Hallo Zusammen,

ich wolllte heute auch mal einen G-Tag testen. Dazu habe ich mir einen CSL USB BT Stick Nano, V4.0   CSL USB BT2.0 in der Hardwareversion 4 geholt. Die Installation habe ich nach dem Wiki durchgeführt.

Wie sich herausgestellt hat, handelt es sich um einen BT2.0 Stick. Daher kann der G-Tag auch nicht gefunden werden

Erste Frage:

Im wiki steht:

ZitatEinen Tag sucht Ihr mit folgendem Befehl auf der Konsole:

sudo hcitool dev

Ausgabe z.b:
Devices: hci0    00:1A:7D:DA:71:0B

Dieser Befehl scan nach keinen BT Geräten sondern zeigt nur das locale BT Device, oder?

Ich habe daher ein hcitool lescan getestet. Leider bekomme ich dann immer die Meldung

Set scan parameters failed: Input/output error

Dazu habe ich eine Menge Bug-Reports gefunden. getestet habe ich mit Ubuntu 16.04 und Debian Jessie.

Syslog sagt

Jun 14 20:32:42 fhem-server bluetoothd[2728]: Bluetooth daemon 5.37
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Starting SDP server
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Bluetooth management interface 1.10 initialized
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Failed to obtain handles for "Service Changed" characteristic
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Not enough free handles to register service
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Error adding Link Loss service
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Not enough free handles to register service
Jun 14 20:32:42 fhem-server bluetoothd[2728]: message repeated 2 times: [ Not enough free handles to register service]
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Current Time Service could not be registered
Jun 14 20:32:42 fhem-server bluetoothd[2728]: gatt-time-server: Input/output error (5)
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Not enough free handles to register service
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Not enough free handles to register service
Jun 14 20:32:42 fhem-server bluetoothd[2728]: Sap driver initialization failed.
Jun 14 20:32:42 fhem-server bluetoothd[2728]: sap-server: Operation not permitted (1)


Der G-Tag wird mir nicht angezeigt (Ein Scan auf dem Handy zeigt ihn aber)

Kann mir jemand weiter helfen?

Danke

Edith:

Ich schätze ich haben den Fehler gefunden. Der Stick ist ein Bluetooth USB Stick V2.0 Mini Dongle - USB 2.0 BT Nano Adapter.
Kann es sein, dass ich aber einen BT4.0 - Adapter benötige?


Devender

Hi,

ob es mit deinem Dongle funktioniert kann ich natürlich nicht sagen aber:


pi@fhem:/opt/fhem $ sudo hciconfig hci0 up
pi@fhem:/opt/fhem $ sudo hcitool lescan
LE Scan ...
7C:2F:80:A1:XA:XD (unknown)
7C:2F:80:A1:XA:XD Gigaset G-tag
7C:2F:80:A1:X4:X1 (unknown)
7C:2F:80:A1:X4:X1 Gigaset G-tag
7C:2F:80:A1:XA:XD (unknown)



Hast du deine Schnittstelle hochgefahren? (hci0) ggf. anpassen

sudo hciconfig hci0 up


Danach sollte der Scan wie folgt funktionieren

sudo hcitool lescan


ggf, den PI doch einmal mit Reboot starten.


PS: Du schreibst am Anfang, dass du dir einen V4.0 gekauft hattest..?!
Grüsse,
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

darkness

#609
Hallo Dirk,

die verschiedenen Varianten mit hiconfig habe ich durchgetestet. Ebenso neustarts.

Ja, auf meiner Anleitung zum Stick steht: USB BT Stick Nano, V4.0

Ich nehme an, es handelt sich um die Hardwareversion 4. Bei Ebay steht aber USB2.0
Mein Handy kann BT4.0 und kann daher die Tag auch orten.

Vielleicht sollte im Wiki der Hinweis hinzugefügt werden, dass zwingend BT4.0 erforderlich ist.

CoolTux

Das USB2.0 hat nichts mit dem BT zu tun. Entscheidend ist das hier low Energy Bluetooth unterstützt werden muß welches erst ab der Bluetooth Spezifikation 4.0 erfolgt. Daher auch BT4.0 oder BT LE für Bluetooth Low Energy
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

darkness

Ja, das passiert wenn man nebenbei vom Handy aus bestellt.  :(

Naja, jetzt warte ich auf den neuen Stick und dann schaue ich nochmal.

Danke

Devender

Ich habe den Hinweis hinzugefügt  :)
Berichte bitte dann nochmal, ob es mit dem neuen Stick funktioniert.

Die Batterieeekennung muss ich selbst noch Einrichten und wuerde diese dann auch aufnehmen.
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

justme1968

anbei eine etwas erweiterte version des scripts.

- die mac adresse und der fhem device name müssen übergeben werden -> es ist nur ein script für mehrere gtags nötig
- das script versucht zu prüfen ob es schon läuft
- es wird ein nc aufruf statt fhem.pl aufruf zum setzen des readings verwendet. -> auf meinen remote raspberrys ist kein fhem installiert.

das ganze kann man z.b. auch aus einem notify auf present aus mit "gtag.sh <mac> $NAME" aufrufen und das reading im presence device selber setzen.

dann wird die batterie nur dann abgefragt wenn der tag in reichweite kommt. das spart vielleicht etwas batterie im vergleich zum pollen.

gruss
  andre


#!/bin/bash

mac=$1;
device=$2;

echo $mac;
if [ -z "$mac" ]
  then
  echo "no mac given";
  exit;
fi

while ps aw | grep gatttool | grep $mac |  wc -l | grep -v "^0$";do echo "already running"; exit;done;

hex=$(sudo gatttool -b $mac --char-read --handle=0x001b | tr a-f A-F)

if [ "$hex" ]
  then
    hex=${hex:33:2}
    dec=$(echo "ibase=16; $hex" | bc)
    echo $dec

    if [ "$device" ]
      then
      echo "setreading $device battery $dec" | nc 10.0.1.21 7072
    fi
  else
    echo "no value received";
fi
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

darkness

Guten Morgen,

nach einer kurzen "Zwangspause" vom Forum hier meine Rückmeldung. Der BT4.0 Stick ist da und es funktioniert alles bestens.


Zitat von: Devender am 14 Juni 2016, 22:07:27
Ich habe den Hinweis hinzugefügt  :)
Berichte bitte dann nochmal, ob es mit dem neuen Stick funktioniert.

Die Batterieeekennung muss ich selbst noch Einrichten und wuerde diese dann auch aufnehmen.