Neues Modul: 74_BleTagBattery - Batterie Informationen für BLE Tags

Begonnen von mumpitzstuff, 27 Februar 2017, 21:29:50

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Welches deiner 3 Bluetooth Dongles welche hciX Nummer erhält ist oft reiner Zufall. Das kann sich sogar von reboot zu reboot ändern und ist ein echter Mist. Der besagte Fehler lässt vermuten, das entweder die Tags außerhalb der Reichweite des Dongles sind oder Bluetooth durch irgend etwas gestört wird z.B. WLAN. Insbesondere das intern verbaute Bluetooth Modul im rpi3 macht sehr sehr häufig solche Probleme. Lepresenced müsste hci0 verwenden, wenn du nichts separat in der config geändert hast. Versuch jetzt mal die Tags in die Nähe des PIs zu bringen und dann einmal mit hci1 und einmal mit hci2 den statusRequest durchzuführen. Ist eins davon besser als das andere?
Grundsätzlich sollte sich der automatisch durchgeführte statusRequest nicht vom manuell ausgeführten unterscheiden. Der automatisch ausgeführte schaut allerdings nach, ob sich der Tag in Reichweite befindet.

Jamo

SouzA:
Zitat(hci0 wird wohl das vom Raspi sein, hci1 der erste Dongle, hci2 der zweite Dongle)

Wie mumpitzstuff schon sagt, ist nicht immer klar welches Dongle welche hciX Nummer erhält. Bei mir war es so, das wenn ich einen externen BT dongle angesteckt habe, dieser die Nummer 0 bekommen hat, und der interne on-board dann die Nummer 1. Kannst Du aber selber mit "hciconfig" überprüfen. Einmal hciconfig anstossen, OHNE externem BT dongle, dann nochmal mit externem BT dongle.
Und ja, soweit ich weiss benutzt lepresenced immer hci0.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

JWRu

ZitatUnd ja, soweit ich weiss benutzt lepresenced immer hci0
Man kann in /etc/default/lepresenced einstellen, welches Bluetooth-Device verwendet wird.
Beispielsweise
BLUETOOTH_DEVICE="hci1"
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

SouzA

Hi,
erst einmal herzlichen Dank an euch für die Antworten. :-*
Ich gehe das mal der Reihe nach durch.

Zitat von: mumpitzstuff am 29 März 2020, 23:32:57
Welches deiner 3 Bluetooth Dongles welche hciX Nummer erhält ist oft reiner Zufall. Das kann sich sogar von reboot zu reboot ändern und ist ein echter Mist. Der besagte Fehler lässt vermuten, das entweder die Tags außerhalb der Reichweite des Dongles sind oder Bluetooth durch irgend etwas gestört wird z.B. WLAN. Insbesondere das intern verbaute Bluetooth Modul im rpi3 macht sehr sehr häufig solche Probleme. Lepresenced müsste hci0 verwenden, wenn du nichts separat in der config geändert hast. Versuch jetzt mal die Tags in die Nähe des PIs zu bringen und dann einmal mit hci1 und einmal mit hci2 den statusRequest durchzuführen. Ist eins davon besser als das andere?
Grundsätzlich sollte sich der automatisch durchgeführte statusRequest nicht vom manuell ausgeführten unterscheiden. Der automatisch ausgeführte schaut allerdings nach, ob sich der Tag in Reichweite befindet.
Habe die gtags in die direkte Nähe zu dem Raspi gelegt.
Bei manueller Statusabfrage ist es egal, welcher hci (hci1 oder hci2) genommen wird. Mal gehen alle durch, mal bleibt einer hängen...
Bei den automatischen Abfragen ist das im übrigen genau so. Habe ich nochmal nachgeschaut.

Zitat von: Jamo am 30 März 2020, 12:58:48
SouzA:
Wie mumpitzstuff schon sagt, ist nicht immer klar welches Dongle welche hciX Nummer erhält. Bei mir war es so, das wenn ich einen externen BT dongle angesteckt habe, dieser die Nummer 0 bekommen hat, und der interne on-board dann die Nummer 1. Kannst Du aber selber mit "hciconfig" überprüfen. Einmal hciconfig anstossen, OHNE externem BT dongle, dann nochmal mit externem BT dongle.
Und ja, soweit ich weiss benutzt lepresenced immer hci0.
Du hast recht, die interne Bluetooth-Stelle bekommt in der Regel den hci2. Is bei mir zumindest so...

Zitat von: JWRu am 30 März 2020, 14:39:22
Man kann in /etc/default/lepresenced einstellen, welches Bluetooth-Device verwendet wird.
Beispielsweise
BLUETOOTH_DEVICE="hci1"
Habe ich nachgeschaut und das Script sieht verdammt jungfräulich aus... hci0 steht darin.
Würde ich auch dabei belassen wollen.

Trotzdem bin ich jetzt nicht weiter...
Woran es liegt, dass das Modul unzuverlässig bei mir arbeitet habe ich so noch nicht herausfinden können.
Habt ihr noch eine Idee, was man prüfen könnte/müsste?

Vielen Dank und bis denn!
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

mumpitzstuff

Tut mir leid, aber ich habe keine Ahnung, was das dann noch sein könnte. Wenn der Fehler aber nur manchmal auftritt, dann ist es zumindest für ein Batteriereading egal. Es wird dir außerdem das Level angezeigt, so das du teilweise noch Wochen mit einem niedrigen Batteriestand auskommst. Solange alles wenigstens 1x die Woche aktualisiert wird, ist alles gut.

SouzA

Zitat von: mumpitzstuff am 01 April 2020, 23:45:54
Tut mir leid, aber ich habe keine Ahnung, was das dann noch sein könnte. Wenn der Fehler aber nur manchmal auftritt, dann ist es zumindest für ein Batteriereading egal. Es wird dir außerdem das Level angezeigt, so das du teilweise noch Wochen mit einem niedrigen Batteriestand auskommst. Solange alles wenigstens 1x die Woche aktualisiert wird, ist alles gut.
Prinzipiell gebe ich dir da recht.
Bin aber eher immer so darauf aus, eine Maschine ohne Fehler am laufen zu haben :)

Thx und vielen Dank für eure Beiträge
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

mumpitzstuff

Du kannst ja mal versuchen das Kommando zum auslesen der Infos in ein Script zu packen und dann hintereinander die 3 Tags mit dem Script im Terminal auszulesen. Wenn das besser klappen sollte als mit dem Modul, dann würde ich versuchen da noch mal ins Detail zu gehen. Vermutlich wirst du aber auf ähnliche Probleme stoßen.

MikeR

Hallo,

erstmal: Das Modul an sich funktioniert super. Danke schön dafür. Ich habe nur ein kleines, aber für meine Anwendung essentielles Problem:
Das Modul trägt ja zu den Tags die Batterieinfos als Attribute dazu. Und mein Problem stellt sich so dar, dass ich auf diese Attribute - die ich in der Weboberfläche sehe und die auch aktualisiert werden - nicht zugreifen kann.

Weder wird ein Event, der bei Änderung eines Attributwertes gefeuert, noch kann ich mit ReadingsVal die Werte auslesen.

Hängt das ggf. mit der Art und Weise zusammen, wie diese Pseudo-Attribute in die eigentlichen PRESENCE-Objekte rein injected werden?
Kann ich da was machen? Oder mache ich gar irgendwas falsch?

Im Log ausser einer lapidaren "invalid value" Meldung nix. Wenn ich das ReadingsVal einem Dummy zuweise (egal ob mit "value" im Set oder nicht) steht im Dummy der Name der lokalen Variablen, in der ich das ReadingsVal zwischenpuffere...

Liebe Grüße
Mike

P.S.: Nur der Vollständigkeit halber, ikch will die Batterielevel auslesen und auf den KNX-Bus senden. Daher der Aufriss

mumpitzstuff

Das Modul erzeugt Readings in den jeweiligen Tag Devices. Diese kann man ganz normal auslesen und weiter verarbeiten z.b. mittels Notify.