NEWS
hygrometer (luftfeuchte) - hilfe bei integration
-
@SBorg said in hygrometer (luftfeuchte) - hilfe bei integration:
ESPHome mit einem ESP32 ist nicht so schwierig, nur muss man halt den "bindkey"/token auslesen. Der wird erst mit dem ersten Kontakt zum Cloud-Server in China erstellt und im Mijia abgelegt. Vorher kannst du keine Daten per BT empfangen.
Das ist nicht nötig, einfach einmal mit der custom firmware bespielt wird der bindkey direkt im browser angezeigt. Empfangen werden können die broadcasts übrigens auch ohne binkey, allerdings können Sie nicht dekodiert werden und sind deswegen ziemlich nutzlos.
Den ESP und BT-Empänger kannst du dann wieder auf einem Steckboard "zusammen zimmern"
Und das wäre mir auch neu. Ich kenne keinen einzigen BT-Empfänger der mit einem ESP(82xx) kompatibel ist. Deswegen nimmt man einen ESP32 welcher bluetooth bereits an board hat.
-
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
im moment habe ich 4 umsetzungsmöglichkeiten:
- openMqtt gateway (https://compatible.openmqttgateway.com/)
- custom software im device
- esphome mit esp32
- alter raspi3 als slave mit ble adapter (einfachste lösung für nicht-bastler - nachteil: viel "hardware" für das auslesen von 3 sensoren)
Also um diese Xiaomi LYWSD03MMC:
auszulesen benötigst du als erstes mal eine hardware die bluetooth spricht. Ein raspi könnte sich anbieten ist aber eigentlich ein totaler overkill - und zwar nicht nur hardwareseitig sondern auch softwareseitig (Zeitaufwand, Komplexität, Fehleranfälligkeit, etc.).
Besser also safe & simple: ein ESP32 bietet sich hier an. Wichtig ist aber das dieser permanent bestromt werden muss weil, anders wie von @SBorg beschrieben, die Xiaomi LYWSD03MMC nur von selbst die Messwerte sendet und diese nicht extra abgefragt werden. Dies ist mit auch der Grund wieso diese kleinen Dinger 1 Jahr (bei 10-minütigen Sendeintervall) mit einer Knopfzelle
laufen, und das sogar mit LCD
!
Der "TelinkFlasher" (läuft direkt im Browser) ist mit Abstand der einfachste Weg an den Bindkey (=Key zur Entschlüsselung der Broadcasts) zu kommen. Außerdem ersparst du dir damit ein China
Cloud
Account
und packet
sniffing
mit Wireshark
.
Mit dem gleichen Flasher kannst du wahlweise auch eine custom firmware aufspielen, ein korrekter Bindkey wird dann nicht mehr benötigt.Bleibt die Frage welche software auf dem ESP32 laufen soll um die Xiaomi Broadcasts einzufangen. Ich hatte tatsächlich mal vor über 2 Jahren mit OMG (OpenMQTTGateway) hantiert, durch esphome ist dies aber komplett obsolet geworden. Der Fakt das esphome alle (und noch viel viel mehr) Funktionalitäten von OMG abbildet sowie auch eine wirkliche praktische Modularisierung und Skalierungsmöglichkeiten bietet ist der Zug
für mich hier abgefahren.
Eine schöne Eigenschaft bei esphome ist, dass man nicht nur stumpf die Daten vom Xiaomi Dinges ((Temperatur, Luftfeuchte und Batterie Level) bekommen muss, sondern diese wahlweise auch noch gleich erweitern kann, z.B. um Taupunkt oder Absolute Feuchtigkeit:
Außerdem hat man natürlich esphome style
auch Zugriffs auf's ganze Sortiment und kann sich z.B. Feldstärke, Uptime, Status usw. anzeigen lassen wie auch direkt den ESP steuern und z.B. neu starten.
Außerdem kann man seinen ESP natürlich auch noch um beliebige Hardware aufmotzen und z.B. ein Display anhängen auf dem auch die Sensordaten der Xiaomis anzeigt werden könnten:
-
Sehr schöne Entwicklung in diesem Thread! Ich spitze hier mal die Ohren. Hatte vor Jahren von solchen Bluetooth/WLAN-Gateways geträumt. Als dann die ESP32 rauskamen, hatte ich aber nicht die Muße, mich in FreeRTos und die Espressif Entwicklungsumgebung einzuarbeiten.
Aber wenn ESPHome das alles schon kann, ist das ein Blick wert. Und vielleicht könnte ich dann auch meinenAutomower 440 einbinden?
@OpenSourceNomad : Es wird wirklich Zeit für ein Einführung in ESPHome und Deine Projekte, Gateways etc.
Habe zwar schon die meisten Anwendungen mit HM, WLAN und 433MHz realisiert. Und 433MHz Sensoren sind billig und mit den Reichweiten komme ich durchs ganze Haus und in den Garten. Aber die Technik ist alt, generell unidirektional und einige Geräte (T-H-Sensoren) legen sich beim Batteriewechsel lästigerweise neue Adressen zu. -
vielen dank - super ausführlich - ich habe eh gleich 2 esp32 mitbestellt und werde wohl deine beschriebene methode mal versuchen. wäre es möglich mal ein solches yaml file von dir zu posten ?
habe schon mal versucht esphome näher anzuschauen - aber irgendwie finde ich den zugang nicht - werd also nochmals die beschreibungen lesen .
falls jmd ein gutes video kennt, bitte posten - ich finde nur videos mit home-assistant. über die command oberfläche geht es wohl auch - aber das muss ich erst sehen und machen, um zu entscheiden, ob ich das positiv bewerten kann. evtl ist das hier eine lösung: ESPHome dashboard
da ich viele tasmota devices habe, wäre das hier auch interessant für mich: https://tasmota.github.io/docs/Bluetooth/#ble-sensors-on-esp32-using-built-in-bluetooth auch der LYWSD03MMC wird unterstützt - leider scheint die battery nicht übertragen zu werden - was ein großer nachteil ist
-
muss noch eine sache fragen:
um das dahsboard ohne homeassistant zu nutzen .
ich habe im büro direkt am schreibtisch einen raspi4, der eigentlich nur mit chrome (kiosk) eine visseite mit meinen cams anzeigt.
ich könnte doch diesen mit python bespielen und als admin tool für esphome nutzen. somit kann ich die erstinstallation über usb machen und habe dann auch noch das dashboard.wie machst du das ? nutzt du home assistant oder nur über command und python auf deinem pc ?
-
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
falls jmd ein gutes video kennt, bitte posten - ich finde nur videos mit home-assistant. über die command oberfläche geht es wohl auch - aber das muss ich erst sehen und machen, um zu entscheiden, ob ich das positiv bewerten kann. evtl ist das hier eine lösung: ESPHome dashboard
ESPHome ist zwar sehr eng mit home assistant verbandelt (und ist aktuell auch die einzige Plattform die mit der native api und one click configuration das gute, 20 Jahre alte, mqtt komplett überflüssig macht) ist aber natürlich auch trotzdem noch 100% kompatibel zu mqtt. Wahlweise können esphome nodes natürlich auch komplett autark arbeiten oder Kommunikation über SMS (das kompatible Modul kostet schlappe 2€ und läuft bei mir mit 10-jahres Simkarte), 433, IR und zig anderen Möglichkeiten kommunizieren.
Ohne home assistant kannst du esphome entweder als pip oder per docker installieren. Es werden soweit alle verbreiteten Plattformen unterstützt, einzig bei Windows muss man auf das Dashboard verzichten.
falls jmd ein gutes video kennt, bitte posten - ich finde nur videos mit home-assistant
Die werden dir genau so helfen sobald esphome bei dir läuft da es überall gleich funktioniert und auch das Dashboard das gleiche ist. Du musst einzig auf den Komfort der 1-klick-Installation (hassio addon ist im Endeffekt das gepackte Docker Image) und auf die api verzichten und diese z.B. durch mqtt ersetzen in deiner Konfiguration.
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
ich habe im büro direkt am schreibtisch einen raspi4, der eigentlich nur mit chrome (kiosk) eine visseite mit meinen cams anzeigt.
ich könnte doch diesen mit python bespielen und als admin tool für esphome nutzen. somit kann ich die erstinstallation über usb machen und habe dann auch noch das dashboard.Genau das kannst du machen. Du musst ja nur einmal initial über usb flashen, danach ist ota angesagt.
Außerdem kannst du dir wahlweise auch die binary aus dem Dashboard von esphome ziehen (oder bei command line aus dem zugehörigen Ordner) und diese wie jede andere auch (z.B. vom PC) flashen. Hier sei auch noch einmal auf den esphomeflasher verwiesen - speziell sinnvoll bei esp32 (da der esphomeflasher automatisch das korrekte Partitionslayout wiederherstellt),.wie machst du das ? nutzt du home assistant oder nur über command und python auf deinem pc ?
Hauptsächlich über die Kommandozeile (habe eine lokale Installation mittels pip3/python), so kann ich meine yaml-Dateien ganz elegant mit den Editoren meines Vertrauens bearbeiten. Zu 99,9% benutze ich folgende zwei Kommandos:
esphome nodename.yaml run
undesphome nodename.yaml logs
, ersteres macht quasi alles (yaml syntax prüfen, kompilieren und auch gleich den upload über ota, oder wahlweise ubs wenn angeschlossen ist, sowie das öffnen des loggings). Zweites Kommando öffnet das logging, ebenfalls über ota oder wenn usb dann klassisch als serial log. In Farbe -
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
wäre es möglich mal ein solches yaml file von dir zu posten ?
Also eigentlich genau wie es in der Dokumentation schon beschrieben ist:
Natürlich mit Anpassungen (mac, bindkey) für den eigenen Gebrauch
sensor: - platform: xiaomi_lywsd03mmc mac_address: "A4:B1:32:C3:78:33" # No 1 bindkey: "ceb77045cf87732b045f4af4df823de0" # No 1 temperature: name: "${upper_devicename} Xiaomi No 1 Temperature" id: no1temperature humidity: name: "${upper_devicename} Xiaomi No 1 Humidity" id: no1humidity battery_level: name: "${upper_devicename} Xiaomi No 1 Battery Level"
Der Taupunkt und die Absolute Feuchtigkeit, hier im Bild, ist ebenfalls nur ein copy & paste, von hier:
sieht bei mir dann so aus:
- platform: template name: "${upper_devicename} Xiaomi No 1 Absolute Humidity" lambda: |- const float mw = 18.01534; // molar mass of water g/mol const float r = 8.31447215; // Universal gas constant J/mol/K return (6.112 * powf(2.718281828, (17.67 * id(no1temperature).state) / (id(no1temperature).state + 243.5)) * id(no1humidity).state * mw) / ((273.15 + id(no1temperature).state) * r); // in grams/m^3 unit_of_measurement: g/m³ icon: 'mdi:water' - platform: template name: "${upper_devicename} Xiaomi No 1 Dew Point" lambda: return (243.5*(log(id(no1humidity).state/100)+((17.67*id(no1temperature).state)/(243.5+id(no1temperature).state)))/(17.67-log(id(no1humidity).state/100)-((17.67*id(no1temperature).state)/(243.5+id(no1temperature).state)))); unit_of_measurement: °C icon: 'mdi:thermometer-alert'
bleiben noch:
Wifi Feldstärke, Uptime, Version, Status und der Restart switch. Alles copy & paste wie in der Dokumentation.Zusätzlich natürlich noch die core Einstellungen sowie wie wifi, ota, logger, web server und dann eben noch wahlweise api oder mqtt für die Kommunikation zur Zentrale. Alles copy & paste aus der Doku.
Für Einstellungen die sich wiederholen sei auf die substitions und vor allem die packages verwiesen. Wifi, ota, logger, web server usw. muss man dann nicht für jeden node einzeln definieren sondern kann diese in einer yaml für alle nodes vorhalten.
Um das wlan Passwort dann z.B. für (sagen wir mal 100 oder 1000 esphome nodes
) zu ändern muss genau eine Datei angefasst werden und ein Kommando (
update-all
) in die Kommandozeile (oder eben ein klick im Dashboard)...und es gibt Leute die können ihr (kompromittiertes, im Internet einsehbares) WLAN Passwort nicht ändern weil Sie alle Ihre Geräte einzelnen aktualisieren müssten und Ihnen das zu großer Aufwand ist
Wahrscheinlich aber egal weil die Leute ja genau sowenig updates einspielen um bekannte Sicherheitslücken zu fixen...
-
@OpenSourceNomad sagte in hygrometer (luftfeuchte) - hilfe bei integration:
@SBorg said in hygrometer (luftfeuchte) - hilfe bei integration:
Den ESP und BT-Empänger kannst du dann wieder auf einem Steckboard "zusammen zimmern"
Und das wäre mir auch neu. Ich kenne keinen einzigen BT-Empfänger der mit einem ESP(82xx) kompatibel ist. Deswegen nimmt man einen ESP32 welcher bluetooth bereits an board hat.
Ich kenne zumindest den HM-10
Banggood
Hat sogar schon einen Level-Shifter für 5V<-> 3.3V extra für die ESP82xx onboard.
(Habe ich selbst aber noch nie benutzt. Der BT-Empfänger vom NUC deckt das gesamte Grundstück [und mehr] ab )
@OpenSourceNomad sagte in hygrometer (luftfeuchte) - hilfe bei integration:
Wichtig ist aber das dieser permanent bestromt werden muss weil, anders wie von @SBorg beschrieben, die Xiaomi LYWSD03MMC nur von selbst die Messwerte sendet...
Finde ich zwar nirgends, dann hätte ich mich aber verschrieben
Mit der Original-Firmware musst du per Handy/Cloud die Daten abfragen, denn von der APP werden die Daten erst auf Anforderung gesendet. Das war auch das Problem beim BLE Adapter, dass es freiwillig von sich aus nichts sendet. Mit der Customized-FW sendet es die Daten im eingestellten Intervall, auch ist das Daten-Format wesentlich einfacher (und zumindest dokumentiert bei Einstellung "Customized"). Aber ev. reden wir auch einfach von verschiedenen Firmwares. -
@SBorg said in hygrometer (luftfeuchte) - hilfe bei integration:
Ich kenne zumindest den HM-10
Habe ich mich falsch ausgedrückt: Ich kenne keinen BT-Empfänger für einen ESP82XX der mit esphome kompatibel ist
Alles andere ist für mich nicht von Bedeutung
Hat sogar schon einen Level-Shifter für 5V<-> 3.3V extra für die ESP82xx onboard.
Ist übrigens für esp82xx's nicht nötig. Die können 5V auf den GPIO's ohne Einschränkungen handhaben.
Allerdings ist das Ding ja sowieso preislich uninteressant. Habe gerade zwei esp32 für 6€ (ergo 3€/Stk) geschossen und die haben BT bereits on board und werden voll von esphome unterstützt
-
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
falls jmd ein gutes video kennt, bitte posten
Dieses hier ist halbwegs aktuell (v1.14 ist im Video zu sehen, aktuell ist v1.15 welche ein paar Aktualisierungen am Dashboard hat) und beschreibt einen einfachen Anwendungsfall in einem schönen britisch
:
Wird zwar auch in Verbindung mit Home Assistant gezeigt, aber abzüglich des Hass.io Addons (wahlweise halt mit docker oder pip installiert) am Anfang und der api (z.B. durch mqtt ersetzt wenn nicht anders möglich) am Ende, beschreibt es ziemlich genau das "arbeiten" mit dem esphome Dashboard.
-
danke dir - werd ich anschauen - habe schon mal ein wenig getestet mit esphome - mir gefällt das mit dem ota flashen sehr gut
leider habe ich es nicht zum laufen gebracht - wollte einen dt11 anschliessen aber der wurde nicht erkannt brw die werte kamen nicht- ich weiß nicht, ob ich den richtigen esp32 boardtreiber verwendet habe.
die die hygrometer sind auch noch nicht da
-
Vielleicht auch eine/die DP1500 / DP50 Lösung?
-
@OpenSourceNomad sagte in hygrometer (luftfeuchte) - hilfe bei integration:
Ist übrigens für esp82xx's nicht nötig. Die können 5V auf den GPIO's ohne Einschränkungen handhaben.
Ich sach mal jein. So herum hast du natürlich Recht, aber der BT braucht 5V und kann dann mit den 3.3V vom GPIO des ESPs nix anfangen.
...und dacht ich doch dass wir bisserl aneinandervorbeiredenAber mal btt, haben wir den eigentlich tatsächlich vergessen: Shelly H&T ? Keinerlei Gebastel, WLAN, ~2 Jahre Betriebszeit mit einer Batterie, <20,- €
-
schaut schon mal besser aus - jetzt muss mqtt noch eingebunden werden - weiß zwar nicht,was der da findet - aber erfindet schon mal
der dht ist nur zum testen gewsen und hängt direkt dran
-
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
weiß zwar nicht,was der da findet - aber erfindet schon mal
Der findet irgendwelche Bluetooth Gerätschaften in der nähe die laut herumschreien. Kann sehr vieles sein, angefangen von Handy, Drucker, TV, Tags und vieles mehr. Kann man u.a. für eine Anwesenheitserkennung (üblicherweise für bewegliche Geräte) verwenden.
der dht ist nur zum testen gewsen und hängt direkt dranWunderbar, dann bist du jetzt offiziell esphome zertifiziert
Komplizierter wird es eigentlich nicht mehr wenn man einmal den Aufbau verstanden hat und die Suche in den docs kennt -
@OpenSourceNomad ja- habe auch eine smartwatch gefunden - die beiden anderen kann ich nicht definieren - ist ja auch nicht wichtig - mit der smartwatch könnte ich jetzt (wie du erwähnt hast) eine anwesenheitserkennung machen.
dht11 daten sind schon über mqtt im server.
jetzt müßten nur noch die china sensoren kommen - dann kann es los gehen
- achso, die gehören auch noch geflasht, damit sie daten senden - aber dann kann es losgehen - mal sehen ob vor weihnachten noch was ankommt
dieses ota flashen ist echt genial
-
@liv-in-sky Mein 3er Pack (s.o) läuft schon seit 2 Tagen. 6,76€ (für den Pack, nicht pro Stück) und ~ 10 Tage Lieferzeit (mit Hermes!?) ... Keine Ahnung wie sie das machen...
...und der absolute Clou: waren sogar CR2032 mit drin -
@SBorg ob ihrs glaubt oder nicht - hat jetzt gerade geklingelt - die sensoren sind da
-
@lemuba said in hygrometer (luftfeuchte) - hilfe bei integration:
Vielleicht auch eine/die DP1500 / DP50 Lösung?
https://www.froggit.de/product_info.php?info=p412_dp1500-wh31a-wi-fi-wetterserver-usb-dongle-inkl--1-x-dp50-thermo-hygrometer-funksensor.html60€ für einen Sensor? Da bleibt einen tatsächlich der Frosch
im Halse stecken. Laut Datenblatt unterscheiden die sich nicht einmal in der Genauigkeit von den 2,5€ Xiaomi Krachern (Batterie bereits im Lieferumfang enthalten anders wie beim 60€ Frosch)
-
@liv-in-sky said in hygrometer (luftfeuchte) - hilfe bei integration:
achso, die gehören auch noch geflasht, damit sie daten senden
Müssen nicht. Zum testen kannst du auch einfach mal die Seite zum flashen der custom firmware aufrufen und auf "aktivieren" klicken (nachdem er dein xiaomi gefunden hat). Dir sollte dann der Bind-Key angezeigt werden und du kannst die Daten direkt mittels epshome dekodieren (mit der stock firmware). Die Chinakracher App ist dafür nicht nötig - wer würde sich so was überhaupt freiwillig auf's Handy holen?
Einzig das Sendeintervall ohne custom firmware ist meines Wissens fix (10 Minuten) und es gibt kein Delta das er bei einer Änderung auch früher sendet.