NB : Zur Vergrößerung der Bilder: Rechtsklick / Bild in neuer Registerkarte öffnen
/!\ ACHTUNG /!\ unter 30% Batterie, die auf Jeedom angezeigt wird, gibt es eine Abnahme der Zuverlässigkeit der Informationen, um 20% Ein LOW BATTERIE-Display ist auf dem LCD mit Bluetooth-Verlust sichtbar
Wenn wir mit der Hausautomation beginnen, kehren wir tastend zurück, und unsere Entscheidungen orientieren sich schnell an den billigsten Produkten. Viele von uns beginnen mit einer nicht (zu) teuren Marke und einem guten Ruf, Xiaomi!
Angesichts des Preises entscheiden sich viele von uns für dieses Produkt:

Aber da wir in diesem Moment mit der Hausautomation beginnen, können wir uns die Galeere nicht vorstellen, in die uns dieses kleine, schöne und billige Thermometer versetzen wird!
Erforderlich:
- Ein Sensor
- Jeedom mit Bluetooth-Antenne (lokal oder deportiert)
- BLEA (Plugin)
- JeeXplorer (Plugin)
- Ein PC / Handy mit Bluetooth
Es gibt mehrere Themen, die erklären, wie man BLEA mit BindKeys betäubt, blinkt und betäubt oder nichts berührt und ein Xiaomi-Gateway in Kombination mit einem Alexa-Skill verwendet und es dank des AlexaAPI/smarthome-Plugins in Jeedom wieder aufnimmt.
Wir zollen all jenen Tribut, die mit diesen Quellen gearbeitet haben:
https://github.com/atc1441/ATC_MiThermometer
http://atcnetz.blogspot.com/2020/09/custom-firmware-fur-das-4-xiaomi.html
https://github.com/pvvx/ATC_MiThermometer#bluetooth-advertising-formats
https://community.jeedom.com/t/refresh-xiaomi-lywsd03mmc/17216
https://community.jeedom.com/t/valeurs-non-remontees/44590/10
https://community.jeedom.com/t/refresh-xiaomi-lywsd03mmc/17216/77
Jede Methode hat ihre Vor- und Nachteile:
AlexaAPI/Smarthome:
Vorteile:
- Keine Hacks
- Sehr einfach
- Kein Blitzen
Nachteile:
- Erfordert ein Xiaomi Bluetooth-Gateway
- Mit Alexa
- Löcher in den Liften (sehr selten, aber ärgerlich, wenn man eine Heizung steuert)
- Nicht CloudFree (Internetabhängig)
BLEA mit BindKey:
Vorteile:
- CloudFree (Internetabhängig)
- Kein Blitzen
Nachteile:
- Komplex (Wiederherstellung @MAC, BindKey)
- Löcher in den Liften (sehr selten, aber ärgerlich, wenn man eine Heizung steuert)
- BindKey-Änderungen bei Verbindung mit MihHome/Sonstiges
- Haben Sie eine Bluetooth-Antenne
- Installation einer Schlüsselentschlüsselungsabhängigkeit
BLEA mit Blitzlicht:
Vorteile:
- Einfach
- Parametrierbarer Sensor
- Bergauf ohne Loch (oder bisher noch nicht festgestellt)
Nachteile:
- Flashing
- Haben Sie eine Bluetooth-Antenne
Selbst das alles ist nicht so kompliziert, in einigen Fällen sogar sehr einfach, es ist nicht unbedingt die Vision, die man von Anfang an haben kann. Ich habe lange Zeit herumgetrampelt, getappt, Fehler gemacht und oft nicht sehr einfache Dinge verstanden.
Deshalb schreibe ich dieses Tutorial über die letzte Lösung, wobei ich den Jeedom-Anfänger so weit wie möglich bekannt mache.
Warum diese Methode wählen?
Ich habe sie alle getestet und war nie wirklich zufrieden, zu viel Loch im Lift oder zu viel Haltedruck. Am Ende blieb ich auf der stabilsten zu meinem Geschmack AlexaAPI/smarthome. Ich hatte mich damals nicht für das Blitzen entschieden, da es keine Möglichkeit gab, es in BLEA zu integrieren.
Die neue Firmware hat mich überzeugt, denn diese Lösung scheint mir die stabilste in Bezug auf Aufzüge, bessere Akku-Optimierung und Nachteile können als Vorteile angesehen werden.
Für Vergleich auf 1H mit meinen Sonden noch unter Alexa:
Alexa

BLEA blitzt auf

Festgestellt ohne Anruf!
Wichtiger Hinweis:
Für diejenigen, die die verschiedenen Methoden auf längere Sicht vergleichen möchten, möchte ich Sie daran erinnern, dass die Protokolle standardmäßig täglich über 2 Stunden im CRON-Archiv (ca. 4 Stunden) mit einem Durchschnittswert pro Stunde geglättet/mittelt werden:

Dies ergibt sich aus:

Diese Parameter müssen für einen objektiven Vergleich geändert werden.
- Blitzen
Auch wenn die von Aaron Christophel vorgeschlagene alte Blitzmethode bereits nicht schlecht war
https://atc1441.github.io/TelinkFlasher.html
https://github.com/atc1441/ATC_MiThermometer
http://atcnetz.blogspot.com/2020/09/custom-firmware-fur-das-4-xiaomi.html
Victor pvvx hat es übernommen und verbessert!
https://github.com/pvvx/ATC_MiThermometer
https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
Zusammenfassend lässt sich sagen, dass diese neue Schleife ein automatisches Laden der neuesten Firmware, eine Batterieoptimierung sowie eine Vielzahl zusätzlicher Einstellungen (einschließlich eines physikalischen Aktionsauslösers am Teststift, dazu muss man schweißen:p )
Besuchen Sie die Seite https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
Anmerkung: Wenn Sie einen Sensor haben, der bereits im T1441-Format geblitzt wurde, müssen Sie möglicherweise entweder den T1441-Blitzer verwenden, um die Xiaomi-Firmware zurückzugeben, oder die Seite verwenden https://pvvx.github.io/ATC_MiThermometer/TelinkOTA.html und um ein OTA-Update von T1441 auf PVVX durchzuführen. Kehren Sie dann zum PVVX-Blitzer zurück, um die Einstellungen zu ändern.
- Aktivieren Sie das Bluetooth des PCs/Mobilgeräts, bevor Sie versuchen, eine Verbindung herzustellen
- Geben Sie „LYWSD03“ in „BLE device name prefix filter“ (damit haben Sie nur Xiaomi-Thermometer), „ATC“ wird den Filter für ein bereits geblitztes Thermometer setzen
- Tippen Sie auf "Verbinden" und wählen Sie Ihr Thermometer
- Warten Sie, bis die Verbindung hergestellt ist
- Tippen Sie auf "Do Activation"
- Warten Sie auf die Wiederherstellung von Xiaomi-Schlüsseln
- Tippen Sie auf "Custom Firmware ver 2.x"
- Beachten Sie, dass der Knopf daneben der ist, um die Xiaomi-Basisversion zurückzugeben
- Tippen Sie auf "Start Flashing"
- Flash dauert mehrere Sekunden oder Minuten
- Wenn dies nicht von alleine geschieht, drücken Sie "Reconnect"
- Sofern nichts Besonderes erforderlich ist, empfehle ich, nur zwei Werte zu berühren:

- Advertising type ist das Frame-Format, standardmäßig ist es auf „ALL“ und sendet daher auch Frames im Xiaomi-Format, von dem ich denke, dass es die Quelle für verrückte Werte ist, die Sie im letzten Video sehen werden, da ich vergessen habe, diese Einstellung am Anfang zu ändern.
Man wählt also »Atc1441« denn für dieses Format wurde der Code entwickelt, der später verwendet werden soll, und 5000ms.
Durch die Wahl von „Atc1441“ anstelle von „ALL“ werden inkohärente Temperaturen vermieden (z. B.: 3000°C), außerdem das "ALL" zu halten, wird die Batterie für nutzlose Informationen verderben und die Veröffentlichung des Formats, an dem Sie interessiert sind, durch 4 teilen.

- Advertising interval ist der Frame Refresh-Wert, den ich gewählt habe, da er die Batterielebensdauer um 7 Monate optimiert, ohne die Refresh-Frequenz zu stark zu beeinträchtigen.

- Sobald die Einstellungen ausgewählt sind, drücken Sie "Send Config"

Das Blitzen ist vorbei!
- Ändern der Datei lywsd03.py
Anmerkung: es scheint, dass die ursprüngliche .Py diese Flash-Version ohne Änderung lesen kann (vorbehaltlich Bestätigung), der Unterschied im Code (Parse) würde es ermöglichen, die Daten (bemerkt in der Kopfzeile) zum Zeitpunkt der Anwesenheitsüberprüfung wiederzugeben, ohne eine Verbindung herzustellen, ein bisschen, als ob Sie nach einem WLAN-Netzwerk suchen und hinter dem Namen gab es klare Informationen. Der folgende Code kann also nützlich sein, um den Refresh indirekt zu erzwingen, ohne die Sonde zu blockieren.
Wenn man an Jeedom gewöhnt ist, mag das dumm klingen, aber wenn man anfängt, fragt man sich, wie man eine Datei ändert; Winscp funktioniert nicht ohne Root-Rechte, PuTTY ist unpraktisch, wenn Sie nicht vollständig mit linux… vertraut sind.
Die Antwort ist einfach, JeeXplorer!
JeeXplorer ist ein „Explorer“-Plugin, wie der Name schon sagt, es ermöglicht das Bearbeiten, Erstellen, Löschen von Dateien/Ordnern
- Öffnen Sie JeeXplorer
- Navigieren Sie durch die Baumstruktur zu html/plugins/blea/resources/blead/devices/
- Speichern Sie die Datei lywsd03.py
- Rechtsklick

- Lassen Sie die duplizierte Datei wird es dienen, wenn Sie es jemals wiederherstellen möchten
- Bearbeiten Sie die Datei (Rechtsklick bearbeiten oder Doppelklick links) mit dem Code mit dem Dudusse optimiert durch DrKamp und geändert durch skillix Um negative Werte zu berücksichtigen:
# coding: utf-8 from bluepy import btle import time import logging import globals import struct from multiconnect import Connector from notification import Notification class Lywsd03(): def __init__(self): self.name = 'lywsd03' self.ignoreRepeat = False def isvalid(self,name,manuf='',data='',mac=''): logging.debug('LYWSD03------isvalid data=%s, mac=%s, name=%s, manuf=%s' % (data, mac, name, manuf)) if name.lower() in [self.name]: return True if data.lower().startswith("1a18") and (mac.lower().startswith("a4:c1:38")): #broadcasted advertising data return True def parse(self,data,mac,name,manuf): logging.info('LYWSD03------adv data=%s, mac=%s, name=%s, manuf=%s' % (data, mac, name, manuf)) action={} action['heute'] = 1 bd = bytes.fromhex(data) (temp,) = struct.unpack('>H', bd[8:10]) if temp > 60000 : temp = 0 - ( 65530 - temp ) temp = temp / 10 humi = bd[10] batt = bd[11] action["temperature"] = temp action["moisture"] = humi action["battery"] = batt logging.info('LYWSD03-----mac=%s, temp=%s, humi=%s, batt=%s' % (mac, temp,humi,batt)) return action def read(self,mac): result={} try: conn = Connector(mac) conn.connect() if not conn.isconnected: conn.connect() if not conn.isconnected: return batt = bytearray(conn.readCharacteristic('0x3a')) battery = batt[0] message = Notification(conn,Lywsd03) notification.subscribe(10) result['battery'] = battery result['id'] = mac logging.debug('LYWSD03------'+str(result)) return result except Exception as e: logging.error(str(e) return result def handlenotification(self,conn,handle,data,action={}): result={} if hex(handle) == '0x36': received = bytearray(data) temperature = float(received[1] * 256 + received[0]) / 100 moisture = received[2] result['moisture'] = mouture result['temperature'] = temperature result['id'] = conn.mac result['source'] = globals.daemonname globals.JEEDOM_COM.add_changes('devices::'+conn.mac,result) globals.COMPATIBILITY.append(Lywsd03)
- Speichern und beenden

- Sichern Sie Ihre Datei, indem Sie sie duplizieren und umbenennen

- BLEA:
- Den Dämon wiederbeleben

/! \ WICHTIG: Wenn Sie eine Remote-Antenne verwenden, denken Sie an

Und

- Starten Sie einen Scan
- /! \ Denken Sie daran, das Bluetooth des PCs/Mobiltelefons auszuschalten, da es immer verbunden ist, und dies ist der Fall der Sensor und wird nicht nachweisbar sein oder überprüfen, ob sich das @ MAC nicht bereits in den unbekannten Geräten von BLEA befindet
- Wählen Sie „lywsd03“ und folgen Sie der klassischen Inklusion
- Deaktivieren Sie die erzwungene refresh
- Kreuzen Sie historisieren an, wenn Sie Graphen haben oder Ihre Aufstiege überprüfen möchten

Hier sind Sie fertig!
NB: Wenn Sie extreme Temperaturen haben, vergewissern Sie sich, dass Sie den Adversering-Typ gewechselt haben. Ist dies der Fall, können Sie eine zweite Sicherheit verwenden, indem Sie einen Höchstwert anwenden:


Bonus – Alexa-Plugin (ASH)
Für diejenigen, die ihre Thermometer an Alexa senden möchten, um mündlich darauf zuzugreifen, ist dies die Einrichtung:
- Finden Sie Geräte in Alexa Plugin, Check weiterleiten, Typ auswählen Temperatursensor

- Wenn Sie sich mit einem NOK (Das funktioniert auch mit dem OK) Klicken Sie darauf, er erklärt Ihnen, was er braucht

- Übertragen Sie sie auf die entsprechende Bestellung:


Dann, Getriebe der Temperaturregelung

- Sichern, kehren Sie zum Alexa-Plugin zurück, sichern Sie erneut.
- Starten Sie einen Scan in der ALEXA-Anwendung
Normalerweise wird Ihr Thermometer entdeckt und OK im Plugin.
Bonus-Bonus
Im letzten Bild habe ich meine Temperatursteuerung so eingestellt, dass sie benachrichtigt wird (Sprache und SMS), wenn mein Kühlschrank länger als 10 Minuten über 11 Grad steigt. Dies vermeidet das Erstellen von Szenarien.
