Hallo @AlexTrovato,
Hast du neue Erkenntnisse?
Jetzt, wo ich eine Gladys-Instanz laufen habe, kann ich Tests mit dem Bluetooth-Modul und meinen LYWSD03MMC durchführen.
Bisher werden sie erkannt, aber ohne empfangene Daten.
Hallo @AlexTrovato,
Hast du neue Erkenntnisse?
Jetzt, wo ich eine Gladys-Instanz laufen habe, kann ich Tests mit dem Bluetooth-Modul und meinen LYWSD03MMC durchführen.
Bisher werden sie erkannt, aber ohne empfangene Daten.
Hallo, nein, ich hatte keine Zeit zum Suchen. Ich kümmere mich darum, sobald ich Zeit habe.
Was muss ich suchen? Wenn ich etwas Zeit habe, würde ich es gerne versuchen, da ich einen Gladys-Dev und die berühmten Temperaturfühler habe.
Du kannst es mir per PN erklären, hier oder per Videoanruf, egal ![]()
Im Großen und Ganzen muss man den Dienst und die Eigenschaft auf dem Gerät finden, mit der man die gewünschten Daten abrufen kann.
Auf dem Raspberry Pi geht es um gattool in der Kommandozeile. Sobald man es schafft, die Informationen darüber abzurufen, muss man sie dann in NodeJS codieren, aber meine Priorität ist es zunächst, die richtigen Dienste/Eigenschaften zu finden, die auf dem Gerät gelesen werden sollen.
Mit all diesen Schlüsselwörtern denke ich, dass Google dir viele Beispiele geben wird ![]()
Ich habe ein interessantes Projekt gefunden, das uns vielleicht sogar bei einigen Technologien helfen könnte.
@AlexTrovato hast du gesehen, was sie anbieten?
Es handelt sich um eine Art Broker, mit dem man sich mit verschiedenen Smart-Home-Geräten (433 MHz, Bluetooth, Infrarot, LoRa usw.) verbinden kann und alles über MQTT weiterleitet.
Hallo Alex,
du hattest diesen Artikel (auf Französisch) gefunden, der beschreibt, wonach du für das Xiaomi LYWSD03MMC-Modell suchst.
Gute (Wieder-)Lektüre
Und der Artikel beschreibt alle Schritte Schritt für Schritt, super Fund!
Ich war gerade dabei, die Anleitung von einem anderen Blog zu befolgen, aber ich hatte Fehler bei den Bluetooth-Verbindungen… Gut, dass das schon in deinem Link steht ![]()
Nach etwas mehr Recherche gibt es zwei Möglichkeiten, die Daten der LYWSD03MMC-Sensoren zu lesen.
Verbindung per BLE herstellen und die Daten lesen, indem man die Dienste und Characteristics kennt.
Die Broadcast-Nachricht lesen, die alle Minuten gesendet wird und keine Verbindung erfordert. Offensichtlich ist diese Lösung extrem energieeffizient, da sie nie direkt mit dem Sensor interagiert.
Leider erfordert Punkt 2) das Entschlüsseln der Nachricht, indem man zuvor den Entschlüsselungsschlüssel abruft.
Aber es gibt eine alternative Lösung: Ein Firmware-Flash (über das Telefon), um den Verschlüsselungsteil zu deaktivieren.
Der andere Vorteil ist, dass die Dienste und Characteristics bereits von @AlexTrovato angegeben sind:
Ich werde dieses Tutorial testen und euch hier ein Feedback geben!
Ich habe das Tutorial befolgt und das Flashen funktioniert super (Chrome unter W10).
Einige Punkte sind jedoch zu beachten:
Zwei Fragen kommen mir in den Sinn, wobei dieses Custom-Firmware es ermöglicht, die Sensordaten ohne Verbindung zu lesen und somit die Batterie stark zu schonen:
Ist es deiner Meinung nach @pierre-gilles und @AlexTrovato vorstellbar, als Voraussetzung für diesen Sensor anzugeben, dass er geflasht werden muss, um ihn zu verwenden?
Kann man zwei Betriebsmodi anbieten? Einen mit regelmäßiger BLE-Verbindung zum Gerät und den anderen im Passivmodus, indem die alle 1 Minute gesendeten Daten gelesen werden?
Wenn das der einzige Weg ist, ihn mit Gladys zu verwenden, dann ja, man sollte den Nutzer darauf hinweisen! (Dokumentation + Benutzeroberfläche)
Auf jeden Fall die einfachste Methode.
Auch die energieeffizienteste (passives Scannen).
Ich stimme zu, in diesem Fall sollte der Dienst eine Informationszeile mit einem Link zur Dokumentation für als LYWSD03MMC erkannte Sensoren anzeigen.
Hallo @imilicent
Du hast mich mit dem Sensor-Flash mit dem ATC-Firmware auf die richtige Spur gebracht
Ich habe eine Python-Bibliothek gefunden, die die Sensordaten in MQTT importiert
Das funktioniert eher gut, abgesehen von der Batterie mit einem großen Workaround
Es handelt sich um die Bibliothek JsBergbau/MiTemperature2: Read the values of the Xiaomi Mi Bluetooth Temperature sensor 2 (github.com)
Die Integration in Gladys erscheint mir kompliziert
Diese Lösung reicht mir, bis ich etwas Besseres finde
Ich werde sehen, ob ich ein Tutorial erstellen kann. In der Zwischenzeit habe ich weitere Xiaomi-Geräte bestellt, um sie zu testen
Jetzt muss ich das nur noch in Node.js umsetzen ![]()
Aus Neugier habe ich trotzdem einen Sensor auf die Originalversion des Firmwares zurückgesetzt und überraschenderweise funktioniert es auch ohne Änderungen ![]()
Ich musste jedoch den Bluetooth auf Gladys deaktivieren, damit mein Skript dahinter meine Geräte scannen kann
Hallo
Ich bringe das Thema wieder hoch, denn bald geht es in den „Winter“-Modus und dann läuft Gladys für mich auf Hochtouren! ^^
Also, arbeitet noch jemand an der Erkennung von Xiaomi-Bluetooth-Sensoren?
Soweit ich weiß @Hamtaro
Du hast freie Bahn ![]()
Hallo,
Ich habe es versucht: Ich habe einen Sensor geflasht, die JsBergbau-Bibliothek auf einem Pi Zero installiert; Ich kann die Werte abrufen, aber nicht richtig formatieren, um sie über MQTT an Gladys zu senden. Hast du einen Tipp zur korrekten Konfiguration?
Vielen Dank im Voraus.
Ach ja, ein kurzer Erfahrungsbericht zu diesen Bluetooth-Sensoren.
Aufgrund ihres Displays hält die Batterie kaum ein Jahr, während meine Xiaomi Zigbee-Sensoren nur etwa 10 % verbrauchen.
Ich bin ziemlich enttäuscht von der Lebensdauer der Batterien, was leider viel Müll verursacht ![]()
[Edit]
Bis auf den Bluetooth-Sensor, den ich geflasht habe, der mir seit dem Flash-Tag „schwache Batterie“ anzeigt, aber trotzdem noch funktioniert!
Na ja, ich habe es geschafft, ein neues Skript zu basteln. Ich kann die Werte auch in Gladys abrufen. ![]()