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
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
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
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
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
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
@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.
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
Super!
Danke vielmals, funzt perfekt!
Richi