NEWS
Test Adapter BLE v0.12.x
-
Ich weiß leider nicht wie genau dein Adapter funktioniert. Evtl. wäre es möglich, die dafür nötigen Executables per SSH auf einem anderen Host auszuführen.
Meine derzeitige Lösung nutzt einfach bluez zur Kommunikation mit dem BLE Thermometer und das sieht dann so aus:
"ssh root@192.168.0.2 'bluez ...'" -
@Holzlenkrad Ich nutze intern die
noble
Library, da hab ich wenig Einfluss was intern passiert.
Hast du mal über Multihost nachgedacht? Ich hab ioBroker BLE auf nem Pi Zero W laufen, um Empfangsproblemen im Haus entgegen zu wirken. -
Ich habe mal eine Frage
Kann ich diesen Adapter für eine Anwesenheitserkennung mit einem Xiomi Mi Band 5 und einer Apple Watch nutzen
Wenn Ja wie bekomme ich die Beiden Geräte rein?
Danke im Voraus
Gruß
Marcel -
@Wszene
ble.0.options.allowNewDevices
muss dafür auftrue
stehen (bitte danach wieder ausschalten!)
Vermutlich muss auch diese Option in den Einstellungen gesetzt sein:
-
@AlCalzone
Danke genau das habe ich gemacht
Es werden gefühlt 1000 Geräte gefunden
Aber eine Apple Watch ist nicht dabei
Das Mi Band 5 meiner Frau wurde gefundenDie nächste Frage die ich mir stelle ist wie kann ich dann mit den Datenpunkte sehen wann Jemand da ist oder nicht
-
@Wszene Such mal im Forum, es gibt Skripte hierfür. Meist wird geschaut, ob RSSI (Signalstärke) länger nicht aktualisiert wurde, dann ist das Gerät abwesend.
-
@alcalzone Keine Ahnung ob das der passende Thread für mein Problem ist, aber da ich den BLE 0.12 nutze schreibe ich es mal hier rein.
Es geht um die runden BLE Thermometer/Hygrometer mit e-Ink Display.
Ich hatte mir vor Weihnachten diese mit HomeKit Unterstützung bestellt:
https://www.amazon.de/gp/product/B08HN15N6J/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1
Werden zwar als Cleargrass beworben, auf den Geräten steht aber Qinping.Wollte die parallel über ioBroker auslesen für Automatisierungen und Grafana Plots bekomme sie aber nicht über deinen Adater eingebunden:
Hatte dir dazu auch schon mal auf Github was geschrieben.
Habe mir jetzt zum Testen auch einen ohne HomeKit Unterstützung gekauft:
https://www.amazon.de/gp/product/B08L4S5V4Y/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
Heißt wieder Cleargrass, dieses mal M-Version an Stelle von H-Version, auf dem Geräte steht aber wieder Qinping. Es ist in der Tat nicht HomeKit kompatibel und lässt sich anders als die H-Version mit der Xiaomi Home App verbinden und auslesen.In ioBroker bekomme ich schon mal 2 services fdcd und fe95 angezeigt aber immer noch keine Temperatur und Luftfeuchtigkeit.
Die 58:2D:34 ist ja angeblich ab der 0.7.2 eingetragen, d.h. das Gerät müsste als ein MiTemperature Gerät erkannt werden.
Hast du eine Idee, woran es liegt, dass ich keine Werte angezeigt bekomme?
-
@pgbroker said in Test Adapter BLE v0.12.x:
Unterstützung gekauft:
Hast du das Xiaomi Plugin im Adapter aktiviert?
-
@rushmed Ja, habe ich.
-
@pgbroker Poste mir bitte mal die vollständigen Werte. Mit halb abgeschnitten Strings in Screenshots kann ich nichts anfangen.
-
@alcalzone Hi. Habe noch ein bischen im Internet recherchiert und folgenden Link gefunden:
https://github.com/alexvenom/XiaomiCleargrassInkDislpay/blob/master/XiaomiClearGrassInk.js
Darin steht, dass alle Informationen im service "FDCD" stehen und auch, was sie bedeuten:
/* All the information is in this Property called "FDCD" on the advertising data. The HEX string is as follows: "0807453810342d580104f500da02020145" (quotes included) To which: 0807 or 0801: Ignore, but useful to identify relevant data 453810342d58: MAC address, INVERTED (58:2d:34:10:38:45) 0104f500da02: Data for Temperature and Humidity, broken as follows - 01: Indicates the Temperature and Humidity events - 04: Event data length (4, 2 bytes for Temperature, 2 bytes for Humidity) - f500: Temperature data inverted (00f5), which translates to 245, equivalent to 24.5C - da02: Humitity data inverted (02da), which translates to 730, equivalent to 73.0% 020145: Data for Battery, bronek as follows - 02: Indicates the Battery events - 01: Event data length (1 byte) - 45: Battery data, which translates to 69, equivalent to 69%
Habe das eben mal mit meinem Teil nachgerechnet.
Aktueller Wert in fdcd: 8816 790812342d58 01 04 bb00 5e01 020164
Aufgedröselt nach obiger Beschreibung ergibt das:
8816 - Irgend was
790812342d58 - MAC Adresse umgedreht, passt.
01 04 - irgendwelche Events
bb00 - x00bb sind 187 entspricht 18,7°C
5e01 - x015e sind 350 entspricht 35%
020164 - relevant ist nur x64 entspricht 100%und der Sensor zeigt an: 18,7°C, 35% Luftfeuchtigkeit und volle Batterie.
Ich würde sagen, das passt exakt.
So wie ich das sehe, braucht es zum Auslesen ein eigenes Plugin, denn das Xiaomi Plugin erwartet die Daten im Service "fe95".
Die Daten aus dem Service String rauszuparsen ist eigentlich simpel (s. obigen Link):
if (JSON.stringify(serviceData[i].uuid).includes('fdcd')){ stringAdvertise = JSON.stringify(serviceData[i].data.toString('hex')) temp = parseInt(stringAdvertise.substring(23, 25) + stringAdvertise.substring(21, 23), 16) console.log('Temp: ' + temp/10 + 'ºC') humidity = parseInt(stringAdvertise.substring(27, 29) + stringAdvertise.substring(25, 27), 16) console.log('Humidity: ' + humidity/10 + '%') battery = parseInt(stringAdvertise.substring(33, 35), 16) console.log('Battery: ' + battery + '%') console.log('') }
-
Ja, sieht aus als müsste das Paket leicht anders geparst werden. Die Event IDs (z.b. 0104) haben sich auch geändert im Vergleich Xiaomi-Plugin.
Könntest du mir diese Infos in ein Issue in Github kopieren, damit ich es nicht vergesse?
-
Huhu...Ich nenne eine Krups Küchenmaschine mit Bluetooth mein Eigen. Man kann sie mit der gleichnamigen App per Bluetooth verbinden. Wie bekomme einzelne Datenpunkte wie Start oder Fertig in den Iobroker ?
-
@haselchen Schwierig, insbesondere weil die meisten Apps aktiv verbinden. Dazu musst du das Protokoll kennen - welche Charakteristiken genutzt werden, wie die Befehle und Daten formatiert sind, wie sie ausgetauscht werden...
Ich hab das für meine Kaffeemaschine mal angefangen. Alleine das Reverse-Engineering der Befehle hat mich einige Wochenenden gekostet. Im Adapter implementiert ist es noch nicht, zumal hier noch Verbindungen verwaltet werden müssen. Während die aktiv sind, können keine anderen Daten ausgewertet werden. Mit ein Grund, warum der Adapter derzeit nur lauscht und keine aktiven Verbindungen macht.Dass die unterstützten Sensoren dauerhaft von sich aus Daten senden, ist eher ein angenehmer Zufall.
-
Ich habe auch seit Wochen kein Update meiner Xiaomi Sensoren bekommen und wollte mal schauen was da schon wieder los ist.
Da ist mir auch aufgefallen dass in den Objekten DriverState auf "poweredOff" steht.
Der Adapter ist aber grün. Ich hatte jetzt die Sensoren aus den Objekten gelöscht, es werden keine gefunden. Xiami Plugin steht drin.Irgendwie gab es zu dem poweredOff-Problem keine wirkliche Lösung, oder?
-
-
@hg6806 sagte in Test Adapter BLE v0.12.x:
Irgendwie gab es zu dem poweredOff-Problem keine wirkliche Lösung
zufällig internes Bluetooth?
bei mir ist es so, das es mit der Spannung im Server zusammen hängt(internes Bluetooth), unter anderem passiert das auch manchmal, wenn ich z.b. backup/snapshot ausführe oder VM neu starte.Lösung dafür, Server runterfahren, kurz Stromlos machen, einschalten, danach, steht der driverstate wieder auf poweredOn
-
@thomas-braun
Gerade geamcht. Hatte auch ein paar Pakete installiert. Danach den Pi neu gestartet.
BLE steht zwar auf grün, jedoch noch immer in den Objekten "PoweredOff"
Hier mal das Log seit Start.ble.0 2021-01-31 11:14:14.109 info (1346) starting scanner process... ble.0 2021-01-31 11:14:14.107 info (1346) monitored services: fe95 ble.0 2021-01-31 11:14:14.105 info (1346) enabled plugins: Xiaomi, _default ble.0 2021-01-31 11:14:14.103 info (1346) loaded plugins: Xiaomi, mi-flora, ruuvi-tag, _default ble.0 2021-01-31 11:14:13.936 info (1346) starting. Version 0.12.0 in /opt/iobroker/node_modules/iobroker.ble, node: v12.20.1, js-controller: 3.2.6-0 ble.0 2021-01-31 11:14:02.062 info (747) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason ble.0 2021-01-31 11:14:02.060 info (747) terminating ble.0 2021-01-31 11:14:02.053 info (747) Got terminate signal TERMINATE_YOURSELF
@crunchip
Ja, internes BT. Habe gerade mal den PI runtergefahren und einige Sekunden stromlos gemacht.
Steht noch immer auch poweredOff -
@crunchip sagte in Test Adapter BLE v0.12.x:
@hg6806 sagte in Test Adapter BLE v0.12.x:
Irgendwie gab es zu dem poweredOff-Problem keine wirkliche Lösung
zufällig internes Bluetooth?
bei mir ist es so, das es mit der Spannung im Server zusammen hängt(internes Bluetooth), unter anderem passiert das auch manchmal, wenn ich z.b. backup/snapshot ausführe oder VM neu starte.Lösung dafür, Server runterfahren, kurz Stromlos machen, einschalten, danach, steht der driverstate wieder auf poweredOn
Exakt das passiert bei mir auch ab und zu und da hilft wirklich nur runter fahre und kurz stromlos machen.
Wenn mans weiß, kein Ding, aber da habe ich schon Stunden mit der Fehlersuche am Adapter verbracht und einige Nerven verballert -
@hg6806
Ich würde alles auf Stand halten.
js-controller ist auf v 3.2.12 im Beta-Zweig