Sokszor találkozok a témával, hogy az "olcsó" kijelzős Xioami Mija LYWSD03MMC hő és páratartalom szenzorok hogyan integrálhatók okos otthonokba. Mivel tényleg jó áron lehet hozzájuk jutni, ezért rendeletem párat, aztán az integrálását csak megoldom valahogy, hisz a google a barátom :)
Segítségül is hívtam és elég gyorsan rátaláltam a bitekmindenhol blogra (https://bitekmindenhol.blog.hu/2020/12/19/az_esp32_es_a_ble_homerok), ahol már kész megoldást kínáltak. Mázlimra volt itthon a fiókban egy ESP32 D1 mini modul, a leírás alapján fel is töltöttem rá a firmware-t és HA alá mqtt-n jöttek is az adatok. Boldog is voltam kb. 2 napig, amikor megállt az adat küldés. Nem gond, újraindítottam az ESP-t, de 2 nap után ismét megállt és stabilan csak 2-3 napot bírt reboot nélkül, így új megoldás után kellett néznem. Az átmeneti időszakra beraktam egy cron jobot, ami minden nap újraindította az eszközt. Íme a script:
cat espeasy-restart.sh
#!/bin/bash
cd /tmp
curl http://espeasyblegw-ip/?cmd=reboot &
A megoldás pedig ott lapult a HomeAssistant-ban, jobban mondva a Supervisor alatt, ami nem más, mint az ESPHome addon :) Nincs más teendőnk, mint telepíteni, ha nem lenne még fenn.
Telepítést követően az addon weblapját elindítva, az oldal alján lévő bazi nagy zöld + -ra kattintva, hozzuk létre a leendő WiFi-Bluetooth Gatewayünk alapjait.
Második lépésként szükségünk lesz néhány adatra, hogy be tudjuk állítani az ESP32-n futó ESPHome-ot, hogy gyűjtse nekünk a szükséges adatokat a Mijáról. Ehhez látogassuk meg a https://atc1441.github.io/TelinkFlasher.html weboldalt. Az oldalon kattintsunk a Connect gombra, melynek hatására (ha engedjük neki, akkor kereső módba kapcsolja az eszközünk bluetooth modulját és) megjelenik a listában a mijánk.
Párosítás követően kattintsunk a "Do Activation" gombra, hogy megszerezzük a "Mi Bind Key"-t.
Ha ez megvan, akkor vissza a HomeAssistant ESPHome bővítményéhez és írjuk meg a konfigot az alábbiak szerint. (Szándékosan képként illesztettem be, hogy ne csak CtrlC+CtrlV bűvészkedés legyen, megmaradjon a hibafaktor ;) )
Miután megvan a konfig, mentsük el és ellenőrizzük, hogy nem gépeltünk -e el valamit. Ha minden stimmel, akkor nincs más hárta, mint az install. Mivel most fogjuk először feltölteni a firmwaret az ESP32-re, így az OTA update nem játszik, marad a manuális megoldás.
A sikeres firmware fordítást követően automatikusan letöltésre kerül a feltöltendő bináris.
A firmware feltöltésre az ESPHome flasher alkalmazást használom, ami beszerezhető githubról. https://github.com/esphome/esphome-flasher/releases/tag/v1.3.0
A feltöltést követően a HomeAssistantban az ESPHome addon alatt onlinera vált a létrehozott eszközünk (és innentől kezdve már OTA-n keresztül is el tudjuk végezni a firmware feltöltést). A logjaiban látszik, hogy kapcsolódik a beállított WiFi AP-hoz, elkészül a gyűjtő rész és létrehozásra kerül az MQTT topic is.
Kis várakozást követően már a HomeAssistant Entitásai között üdvözölhetjük a gyári firmware-n hagyott Xioami Mija LYWSD03MMC hő és páratartalom mérőnk adatait.
Ezt követően már csak a dobozolás maradt hátra, amihez egy elhalálozott kerti világítás tetejét használtam fel, mert abba pont elfért az ESP32 D1 mini:
A tápja egy mezei töltő, ami 5V 700mA-t tud, de ennek ennyi elég is (3 hónapja megy stabilan)
Egy 10x10-es ház közepén helyeztem el, így a házon belüli eszközöket pont eléri, így most 8db Mija adatait gyűjti.