FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Fixel2012 am 04 Juli 2017, 09:03:52

Titel: G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: Fixel2012 am 04 Juli 2017, 09:03:52
Hallo zusammen,
ich habe mir vor ungefähr 4 Wochen einen BT-Stick (https://www.amazon.de/gp/product/B007MKMJGO/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) gekauft. Dieser sollte zwecks Reichweite das bisherige interne Bluetooth des RPI 3 ablösen.

Da ich nichts gefunden habe, wie ich die beiden Bluetooth IO Devices unterscheiden kann, habe ich das inteten BT vom raspi erstmal deaktiviert.

Dies habe ich folgendermaßen getan:

bearbeiten der /boot/config.txt und anhängen dieser Zeile
Zitatdtoverlay=pi3-disable-bt

Ob BT nun wirklich deaktiviert ist, weiß ich nicht. Gibt es eine Möglichkeit das heraus zu finden?

jedenfalls wurde mein neu gekaufter BT-Stick erkannt, das suchen nach le devices funktionierte auch! Und das sogar nun über mehrere Stockwerke!

Leider geht seit dem die Weitergabe an Fhem nicht mehr gescheit. Nur ganz selten erscheint mein G-tag in Fhem als anwesend, sonst ist er fast immer auf absent obwohl er mit lescan über ssh zu sehen ist... :(

Das LEScan skript habe ich zur sicherheit nochmals heruntergeladen gehabt, aber das hat auch nichts gebracht.

Hat jemand Ideen, wie ich den Fehler eingrenzen kann?

Außerdem wäre es gut, wenn ich beide BT-IO Devices (Der vom Raspi 3 und den Stick) benutzen könnte. Zwecks G-Tag battery auslesen und Anwesenheit, dies geht zur Zeit leider noch nicht mit nur einem Dongle. (so weit ich weiß, blockieren sich die beiden sckripte)

Wie kann ich spezifizieren, welches Bluetooth Device ich für was nehme? Kann ich da irgendwo angaben treffen?

Würde mich über ein Paar hilfreiche Tipps und Antworten freuen!

Dankende Grüße,

Fixel
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: DeeSPe am 04 Juli 2017, 09:08:49
Stichwort HCI ! 8)

Vermutlich war Dein integriertes BT HCI0 und das neue ist nun HCI1.
hcitool sollte weiter helfen können.
In PRESENCE lässt sich das zu benutzende HCI Device einstellen.

Gruß
Dan
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: Fixel2012 am 04 Juli 2017, 09:17:17
Zitat von: DeeSPe am 04 Juli 2017, 09:08:49
Stichwort HCI ! 8)

Vermutlich war Dein integriertes BT HCI0 und das neue ist nun HCI1.
hcitool sollte weiter helfen können.
In PRESENCE lässt sich das zu benutzende HCI Device einstellen.

Gruß
Dan

Danke dir! Das hilft mir nun schon mal sehr!

mit hcitool dev lassen sich nun die bluetooth dongle anzeigen.

Habe leider nur zwei Mac-Adressen, werde es aber sobald ich zuhause bin, mit beiden hci0 und hci1 versuchen, hoffentlich funktioniert es dann wieder 8)

Das hci device setzt man übrigens so:

attr MeinGtag bluetooth_hci_device hci0/hci1

Dankende Grüße,

Fixel
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: binford6000 am 04 Juli 2017, 15:22:56
Hallo Fixel,
ZitatDas LEScan skript habe ich zur sicherheit nochmals heruntergeladen gehabt, aber das hat auch nichts gebracht.

lepresenced verwendet den lan-bluetooth Modus vom PRESENCE-Modul. Der Adpater ist änderbar im lepresence-Skript selbst.
Im Standard immer hci0:
  my $device = "hci0";

Zitatattr MeinGtag bluetooth_hci_device hci0/hci1

Das funktioniert nur im local-bluetooth Modus vom PRESENCE-Modul. Also OHNE lepresenced-Skript.

Könnte es vielleicht sein, dass Du beides machst? Also lepresenced laufen lässt und das PRESENCE-Modul
aber auf local-bluetooth steht? Das würde auch erklären, warum PRESENCE nur auf absent steht. 
Denn lepresenced "belegt" das einzige Bluetooth device exklusiv...

Mit zwei Dongles kannst Du übrigens auch den Batterie-Level abfragen. Siehe hier:
https://forum.fhem.de/index.php/topic,68104.0.html

VG Sebastian
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: Fixel2012 am 04 Juli 2017, 16:51:58
Danke euch beiden, hat nun alles funktioniert!

Das Modul zum Battery auslesen hatte ich schonmal kurz im Einsatz, und habe es nun wieder reaktiviert  :D

Dankende Grüße,

Fixel
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: binford6000 am 05 Juli 2017, 22:49:46
Hallo Zusammen,
Ich habe jetzt umgestellt von lepresenced und 1x PRESENCE via lan-bluetooth auf einem Raspi
auf 2x PRESENCE via function auf 2 Raspis. Der zweite meldet via FHEM2FHEM. Beide landen in einem ROOMMATE:
function {`sudo /opt/fhem/scripts/lescan.sh XX:XX:XX:XX:XX:XX`} 60 60
lescan.sh:
#!/bin/bash
filename=/tmp/bluetooth_devices.$$
hcitool lescan > $filename & sleep 5
pkill --signal SIGINT hcitool
sleep 1
searchresult=$(grep -c $1 $filename)
if [ $searchresult -gt 0 ]; then
  echo 1
else
  echo 0
fi
rm $filename

Zusätzlich noch einmal nachts den Batterie-Wert auslesen via Skript (wenn ROOMMATE asleep):
#!/bin/bash
stringZ=$(sudo gatttool -b XX:XX:XX:XX:XX:XX --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  Sebastian.gtag.PRE battery $decimal"

Läuft alles bombe-stabil!
VG Sebastian
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: chaot4ever am 03 Oktober 2017, 18:40:31
@binford6000

Kannst du mir bitte sagen, wie du FHEM2FHEM aufgesetzt hast bezüglich Host und Remote und ob du die PRESENCE function beim Host UND beim Remote so definiert hast incl. lescan.sh sript bei beiden?

Wie würde das script lauten, wenn man nur einen hci (hci0 oder hci1) selektiv ansprechen will?

Danke für die Hilfe zum Voraus.
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: binford6000 am 05 Oktober 2017, 14:42:27
Hi chat4ever, klaro:

FHEM2FHEM auf Host (10.3.3.40):
defmod fhem2 FHEM2FHEM 10.3.3.41:7072 LOG:gtag1.PRE.*
PRESENCE + dummy auf Host:
defmod gtag1.PRE dummy
defmod Sebastian.gtag1.PRE PRESENCE event gtag1.PRE:absent gtag1.PRE:present
PRESENCE auf Remote (10.3.3.41):
defmod gtag1.PRE PRESENCE function {`sudo /opt/fhem/scripts/lescan.sh 7C:2F:80:98:AC:0F`} 30 60
Und das lescan.sh Skript läuft auf Host und Remote identisch:
#!/bin/bash
filename=/tmp/bluetooth_devices.$$
hcitool lescan > $filename & sleep 10
pkill --signal SIGINT hcitool
sleep 1
searchresult=$(grep -c $1 $filename)
if [ $searchresult -gt 0 ]; then
        echo 1
else
        echo 0
fi
rm $filename


VG Sebastian
Titel: Antw:G-Tag Anwesenheit Umstellung auf BT Stick statt rpi BT
Beitrag von: chaot4ever am 05 Oktober 2017, 23:12:41
Super!
Danke vielmals, funzt perfekt!
Richi