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

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

Vorheriges Thema - Nächstes Thema

binford6000

Moin,
so ich habe mal alles ausprobiert jedoch leider ohne Erfolg...  :(

  • lepresenced beendet und BT Dongle ab- und angesteckt --> Connection refused (111)
  • lepresenced beendet und hciconfig down/up/reset --> Connection refused (111)
  • lepresenced bearbeitet mit constant RETRY_SLEEP = 20 und restart --> Connection refused (111)
Ich gebe auf. Hätte mich auch gewundert, wenn es diesmal funktioniert hätte. Ich tippe
mal auf meinen BT-Dongle. Vielleicht geht es ja demnächst nach Umzug auf rpi3 mit
intergiertem BT Device... Trotzdem gute Arbeit und Danke für den Support!

VG Sebastian

mumpitzstuff

Das sieht irgendwie sehr danach aus, dass du entweder bei deiner Software Installation was falsch gemacht hast (Bluez nicht richtig installiert) oder dein Dongle keinen vernünftigen Bluetooth Low Energie Support bietet. Sollte dem so sein, gibts Ersatz für um die 10€ z.B. von CSL. Die Dinger sind recht vernünftig.

Mumpitz

Zitat von: mumpitzstuff am 04 März 2017, 23:34:22
Das sieht irgendwie sehr danach aus, dass du entweder bei deiner Software Installation was falsch gemacht hast (Bluez nicht richtig installiert) oder dein Dongle keinen vernünftigen Bluetooth Low Energie Support bietet. Sollte dem so sein, gibts Ersatz für um die 10€ z.B. von CSL. Die Dinger sind recht vernünftig.
Kannst Du mal den Typ posten, welchen Du im Einsatz hast und funktionier? Was hast Du für Erfahrungen mit der Reichweite?

binford6000

ZitatKannst Du mal den Typ posten, welchen Du im Einsatz hast und funktionier? Was hast Du für Erfahrungen mit der Reichweite?

Mein BT Donlge ist der hier: Inateck USB nano Bluetooth-Adapter V4.0

Die Reichweite ist sehr gut. Mein gtag wird idR. schon im Auto im Hof erkannt. Wohnung ist im 1. OG. Etwa 10-15m werden es sein.
VG Sebastian

knopf_piano

Hab mir damals auch nen neuen zugelegt, set dem klappt hcitool-scan, auch inateck
zotac nano mit proxmox und ganz viel zeug drauf

mumpitzstuff

Der Scan klappt ja bei ihm auch. Nur der Zugriff über Gatttool auf bestimmte Werte wie z.B. das Batterielevel nicht.
Wenn ich das im Internet richtig sehe, müsste das Ding eigentlich alles unterstützen. Bist du sicher das du bluez installiert hast und nicht nur ein Subset davon? Ist dein System aktuell (sudo apt-get update, sudo apt-get upgrade)? Bist du auf Raspbian Jessie oder irgend was altes? Ansonsten hab ich noch das hier gefunden:

https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=133246
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=126899
https://eclipse.github.io/kura/doc/bluetooth-le-example.html

binford6000

ZitatIst dein System aktuell (sudo apt-get update, sudo apt-get upgrade)? Bist du auf Raspbian Jessie oder irgend was altes?

Ich habe ein aktuelles debian jessie mit bluez 5.23 am Laufen. Woran erkennt man ob bluez richtig instaliert ist?

pi@raspberrypi:~ $ bluetoothd -v
5.23

betateilchen

#22
Zitat von: mumpitzstuff am 27 Februar 2017, 21:29:50
Installation:

  • add the new update site: update add

Es gibt übrigens auch FHEM Anwender, die nicht die Standard-Update-Prozedur in ihrer FHEM Installation verwenden...
Gib doch bitte auch eine "normale" git URL an, wo man sich das Modul holen kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mumpitzstuff

Zitat von: betateilchen am 11 März 2017, 00:51:48
Es gibt übrigens auch FHEM Anwender, die nicht die Standard-Update-Prozedur in ihrer FHEM Installation verwenden...
Gib doch bitte auch eine "normale" git URL an, wo man sich das Modul holen kann.

Ich habs im ersten Beitrag ganz unten hinzugefügt.

Fixel2012

#24
Danke für das tolle Modul! Nach dem ich die Zeit im lepresenced-Script von 1 auf 5 Sekunden geändert habe, funktioniert es einwandfrei!



EDIT: Ich habe immer mal wieder Probleme mit der Verbindung zu meinem G-Tag. Nach dem zurück stellen von 5 auf eine Sekunde läuft wieder alles.

Im Moment nutze ich das Interne Bluetooth vom Raspi 3. Einen Stick habe ich hier auch noch rum fliegen, doch leider wird dieser nicht erkannt. Muss ich einen bestimmten Stick haben um ihn einbinden zu können? :o

Bzw. wie läuft der Betrieb von zwei Bluetooth devices an einem Gerät? Wäre jemand so nett und erläutert mir kurz wie ich zwei Geräte in FHEM einbinde  ??? 8)

Danke und Gruß Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Jojo11

Hallo,

auch ich habe dieses Modul jetzt mal installiert, scheitere aber genau wie einige Mitstreiter an diversen Fehlermeldungen :-\ Irgendwann habe ich mit gatttool auch mal einen Zustand ausgelesen - es funktioniert theoretisch also schon. Allerdings nur mit einem der zwei dongles, die ich im System habe. Ich habe einen RPI3 im Netz (on board BT) sowie 2 RPI 2 mit je einem dongle und dann noch einen FHEM-Server, der keinen dongle hat.
Da ich ungern für die Batterieüberwachung einen einzelnen dongle "opfern" möchte: Wäre es nicht möglich, die Batterie-Funktionalität in lepresenced zu integrieren? Oder geht das prinzipiell nicht? Ich fände es irgendwie logischer, wenn der Batteriezustand genau wie die Anwesenheit durch jeden BT-Satelliten im System gesammelt und per collectord dann entsprechend weitergegeben werden könnte. Dann müssten sich die unterschiedlichen Skripte auch nicht um den BT-Dongle streiten.

schöne Grüße
Jo

mumpitzstuff

Zitat von: Fixel2012 am 12 März 2017, 13:16:58
Danke für das tolle Modul! Nach dem ich die Zeit im lepresenced-Script von 1 auf 5 Sekunden geändert habe, funktioniert es einwandfrei!



EDIT: Ich habe immer mal wieder Probleme mit der Verbindung zu meinem G-Tag. Nach dem zurück stellen von 5 auf eine Sekunde läuft wieder alles.

Im Moment nutze ich das Interne Bluetooth vom Raspi 3. Einen Stick habe ich hier auch noch rum fliegen, doch leider wird dieser nicht erkannt. Muss ich einen bestimmten Stick haben um ihn einbinden zu können? :o

Bzw. wie läuft der Betrieb von zwei Bluetooth devices an einem Gerät? Wäre jemand so nett und erläutert mir kurz wie ich zwei Geräte in FHEM einbinde  ??? 8)

Danke und Gruß Fixel

Dann stell doch mal das Modul auf Verbose 5 und schau dir das Resultat im Logfile an. Vielleicht gibt das mehr Aufschluss. Bei Verwendung eines zweiten Dongles kannst du lepresenced z.b. mit hci0 laufen lassen und alles andere wie zum Beispiel dieses Modul auf hci1. Im Modul kannst du dazu das Attribut hciDevice verwenden.

mumpitzstuff

Zitat von: Jojo11 am 25 März 2017, 14:03:05
Hallo,

auch ich habe dieses Modul jetzt mal installiert, scheitere aber genau wie einige Mitstreiter an diversen Fehlermeldungen :-\ Irgendwann habe ich mit gatttool auch mal einen Zustand ausgelesen - es funktioniert theoretisch also schon. Allerdings nur mit einem der zwei dongles, die ich im System habe. Ich habe einen RPI3 im Netz (on board BT) sowie 2 RPI 2 mit je einem dongle und dann noch einen FHEM-Server, der keinen dongle hat.
Da ich ungern für die Batterieüberwachung einen einzelnen dongle "opfern" möchte: Wäre es nicht möglich, die Batterie-Funktionalität in lepresenced zu integrieren? Oder geht das prinzipiell nicht? Ich fände es irgendwie logischer, wenn der Batteriezustand genau wie die Anwesenheit durch jeden BT-Satelliten im System gesammelt und per collectord dann entsprechend weitergegeben werden könnte. Dann müssten sich die unterschiedlichen Skripte auch nicht um den BT-Dongle streiten.

schöne Grüße
Jo

Ich habe lepresenced leider nicht geschrieben, aber das dürfte auch so kaum möglich sein. Lepresenced benötigt hcitool und alles andere gatttool und beide Tools vertragen sich nicht. Es gewinnt immer nur eins der beiden Tools. Um das zu umgehen müsste man sehr tief in die Bluetooth Treiber absteigen...

Darüber hinaus würde mich interessieren was die Fehlermeldungen sind. Kannst du einfach auf verbose 5 gehen und mir dann den Output aus dem Logfile zukommen lassen? Was passiert wenn du versuchst den Status manuell mehrfach hintereinander zu holen? Geht dann die Anfrage durch?

SouzA

Hi,

erstmal herzlichen Dank für dieses Modul!

Aber:
ich habe drei GTags über lepresenced eingebunden.
Alle drei haben folgendes Attribut:
Attributes:
   bluetooth_hci_device hci1

Das ist die interne Schnittstelle vom Raspi3.

Das BleTagBattery-Modul schaut in Summe so aus:
Internals:
   NAME       Bat_Gtags
   NR         280
   STATE      active
   TYPE       BleTagBattery
   VERSION    0.0.3
   Readings:
     2017-04-13 11:52:29   state           active
   Helper:
     01_Gtag  public
     02_Gtag  public
Attributes:
   hciDevice  hci0
   room       Residents,Tools

Hier habe ich auf den Bluetooth-Stick gezeigt. (hci0)

Aus irgendeinem Grund findet der den 03_Gtag nicht.
Hat jemand eine Ahnung warum?

Vielen Dank für Antwort.

Bis denn
SouzA

EDIT:
Wenn ich mit set Bat_Gtags statusRequest die aktualisierung force, wird auch nur 01_Gtag zuverlässig aktualisiert.
Dazu auch noch das log:

2017.04.13 12:10:07 4: Sub BleTagBattery_Run (Bat_Gtags) - start blocking call
2017.04.13 12:10:07 5: Sub BleTagBattery_stateRequest (Bat_Gtags) - state request called
2017.04.13 12:10:07 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device found. device: 01_Gtag
2017.04.13 12:10:07 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device name: Gigaset G-tag
2017.04.13 12:10:07 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device address: 7C:2F:80:AD:8D:84
2017.04.13 12:10:07 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - tag already saved in hash
2017.04.13 12:10:10 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 0, result: handle: 0x001b value: 55

2017.04.13 12:10:10 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - processing gatttool response: 55
2017.04.13 12:10:10 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - processing gatttool response for device 01_Gtag. batteryLevel: 85
2017.04.13 12:10:10 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device found. device: 02_Gtag
2017.04.13 12:10:10 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device name: Gigaset G-tag
2017.04.13 12:10:10 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device address: 7C:2F:80:AD:AD:4D
2017.04.13 12:10:10 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - tag already saved in hash
2017.04.13 12:10:12 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 0, result: handle: 0x001b value: 64

2017.04.13 12:10:12 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - processing gatttool response: 64
2017.04.13 12:10:12 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - processing gatttool response for device 02_Gtag. batteryLevel: 100
2017.04.13 12:10:12 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device found. device: 03_Gtag
2017.04.13 12:10:12 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device name: Gigaset G-tag
2017.04.13 12:10:12 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - device address: 7C:2F:80:AD:AD:4E
2017.04.13 12:10:12 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - try to connect with public
2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 0, result: connect error: Software caused connection abort (103)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 1, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 2, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 3, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 4, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - invalid gatttool response
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - try to connect with random
2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 0, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 1, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 2, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 3, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - call gatttool char read loop: 4, result: connect: No route to host (113)

2017.04.13 12:10:13 4: Sub BleTagBattery_readSensorValue (Bat_Gtags) - invalid gatttool response
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - tag not supported
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingRun (Bat_Gtags) - processing gatttool response for device 03_Gtag. batteryLevel:
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingDone (Bat_Gtags) - set readings batteryLevel and battery of device: 01_Gtag
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingDone (Bat_Gtags) - set readings batteryLevel and battery of device: 02_Gtag
2017.04.13 12:10:13 4: Sub BleTagBattery_BlockingDone (Bat_Gtags) - done
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

Den Fehler "Software caused connection abort (103)" habe ich bei mir noch nie zu Gesicht bekommen. Laut Internet bedeutet dieser Fehler, dass sich der Bluetooth Dongle verabschiedet hat und danach nichts mehr geht. Deshalb wird auch dein dritter G-Tag nicht mehr erkannt. Laut Google kommen 2 Dinge in Betracht:


  • Dein Bluetooth Dongle ist nicht der Beste. Mögliche Lösung: Versuch mal lepresenced auf hci0 und BleTagBattery auf hci1 zu setzen, also jeweils den anderen Dongle zu verwenden.
  • Du hast ein Bluez installiert, dass nicht richtig funktioniert. Siehe hierzu z.B. folgenden Beitrag. https://bugreports.qt.io/browse/QTBUG-44622 Die Empfehlung irgendwelche Bluez Versionen manuell zu installieren, möchte ich jetzt aber lieber nicht aussprechen. Versuch erst mal die Dongles zu tauschen.

Das Modul funktioniert auf jeden Fall korrekt. Wenn sich der Dongle ab und zu verabschiedet oder der Bluetooth Stack, dann kann ich da leider vom Modul her nicht viel machen. Falls jemand noch eine Idee hat, wie man das Problem im Modul angehen könnte, dann bin ich für Ratschläge offen.