NEWS
Problem beim Einbinden des Xiaomi Bluetooth Thermo- und Hygrometer
-
Hallo Community,
ich habe seit einiger Zeit von Xiaomi ein kleines rundes Thermometer/Hygrometer mit Display und Bluetooth LE Schnittstelle.
Nun wollte ich natürlich die Werte von dem Teil auch an ioBroker. Mit dem BLE Adapter funktioniert es leider nicht, weil das Gerät die Mwsswerte nicht in seinen "advertised" services hat, sondern nur als notification die angefragt (request) werden muss. Durch einen Hinweis beim FHEM Forum bin ich dann auf das Kommandozeilentool GATTTOOL gestoßen mit dem Genau das möglich ist. Über die Kommandozeile konnte ich so die Werte entsprechend auslesen. Die Hex werte können direkt in ASCII gewandelt werden. Im folgenden Bespielt heißt das Ergebnis umgewandelt also "T=22.7 H=33.7"
Auf einen Request folgen 10(!) Notifications des Sensors und anschließend ist ruhe.
pi@ioBroker-Pi:~ $ gatttool -b 4C:65:A8:D0:13:83 --char-write-req -a 0x10 -n 0100 --listen Characteristic value was written successfully Notification handle = 0x000e value: 54 3d 32 32 2e 37 20 48 3d 33 33 2e 37 00 Notification handle = 0x000e value: 54 3d 32 32 2e 35 20 48 3d 33 33 2e 39 00 Notification handle = 0x000e value: 54 3d 32 32 2e 36 20 48 3d 33 33 2e 37 00 Notification handle = 0x000e value: 54 3d 32 32 2e 35 20 48 3d 33 34 2e 30 00 Notification handle = 0x000e value: 54 3d 32 32 2e 36 20 48 3d 33 33 2e 37 00 Notification handle = 0x000e value: 54 3d 32 32 2e 34 20 48 3d 33 34 2e 30 00 Notification handle = 0x000e value: 54 3d 32 32 2e 36 20 48 3d 33 33 2e 39 00 Notification handle = 0x000e value: 54 3d 32 32 2e 36 20 48 3d 33 34 2e 30 00 Notification handle = 0x000e value: 54 3d 32 32 2e 36 20 48 3d 33 33 2e 38 00 Notification handle = 0x000e value: 54 3d 32 32 2e 35 20 48 3d 33 34 2e 30 00Nun kommt mein Problem, von dem ich hoffe, dass einer von euch bei dessen Lösung behilflich sein kann:
Führt man das gatttool wie oben beschrieben aus wird es so lange ausgeführt bis man mit Strg+C abbricht. D.h. die 10 Werte kommen rein und anschließend passiert einfach nichts mehr.
Wenn ich also in Java Script per "exec()" gatttool aufrufe bekomme ich leider nie ein gültige antwort. Hat von euch jemand eine Idee wie ich die Werte aus der Kommandozeile nach ioBroker bekomme? Das Ziel ist in greifbarer Nähe, aber doch so fern…
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden