Kedves Blogolvasó!
A leírásban végig vesszük, hogy az ESP32 és a Xiaomi Mijia hőmérséklet és páratartalom érzékelő, hogyan kapcsolható Home Assistant alá. Egyébként ez egy nagyon egyszerű folyamatnak tűnhet, mert van hozzá leírás az ESPhome honlapján, viszont azért mint minden ilyen DIY projekt ez is tartalmaz buktatókat.
Ami a szenzort illeti nagyon aranyos kis dekoratív eszköz. Ahogy a CR2032-es elemeket beleraktam, már hasított is. Kellett kb 5 perc neki, hogy a három egymás mellé helyezett szenzor közel azonos értékre beáljon, viszont így is azt láttam, hogy egész jól vannak kalibrálva.
Nah de lássuk, hogy is lesz ebből HA alá integrált eszköz. Első körben én úgy gondoltam, hogy nem cserélem le a firmware-t csak generálok egy Bind Key-t. Ehhez a leírásban elérhető „Telink Flasher” webes kliensen keresztül kiválasztottam az eszközt, és legeneráltam a kulcsot. Sajnos nekem csak mobilról működött a dolog, ezért ide is mobilos képeket illesztek be.
Első Lépés:
Második Lépés:
Párosítás után a következőt kell látni:
Az előbbi képen már jól lehet látni, hogy megjelent a „Bind Key” és a szenzor adatai is már kiolvasásra kerültek.
ESP32 és Xiaomi Mijia – ESPhome kód
esp32_ble_tracker: sensor: - platform: xiaomi_lywsd03mmc mac_address: "A4:C1:38:2B:B4:84" bindkey: "c62f827d252ec993851fd6ee5c9ca27d" temperature: name: "Nappali hőmérséklet" humidity: name: "Nappali páratartalom" battery_level: name: "Nappali LYWSD03MMC akksi töltöttség" - platform: xiaomi_lywsd03mmc mac_address: "A4:C1:38:12:A0:A5" bindkey: "5f55c734af5716f1cba44017972c6d7f" temperature: name: "Hálószoba hőmérséklet" humidity: name: "Hálószoba páratartalom" battery_level: name: "Hálószoba LYWSD03MMC akksi töltöttség" - platform: xiaomi_lywsd03mmc mac_address: "A4:C1:38:E7:2C:2C" bindkey: "31d0703732604f55ca39cab4f73b7c3a" temperature: name: "Dolgozó szoba hőmérséklet" humidity: name: "Dolgozó szoba páratartalom" battery_level: name: "Dolgozó szoba LYWSD03MMC akksi töltöttség"
Ezután szokásos módon feltöltöttem a kódot, az integrációk között hozzáadtam az ESPhome új eszközt, és kidobáltam a Lovelace-re az Entitásokat. Viszont itt jöttek az érdekességek.
A képeken jól látszik, hogy elég ritkán frissülnek a mért adatok, holott egyébként nem ennyire stabil a lakás hőmérséklete.
Belenéztem a log-ba, hogy egyáltalán az ESP32 látja-e az eszközöket, és ami furcsa volt, hogy igen.
Ezután állítottam az ESPhome-ban a tracker beállításán, de semmi eredményre nem jutottam.
esp32_ble_tracker: scan_parameters: interval: 640ms duration: 30s active: true
Végül elhatároztam, hogy akkor marad a Custom Firmware. Szerencsére a firmware forrasztás nélkül OTA-n keresztül is feltölthető. Firmware: ATC – Thermometer – Firmware
Lássuk a lépéseket képekben:
Válasszuk a Flashelni kívánt eszközt:
Olvassuk be a firmware-t:
Válasszuk a Start Flashing opciót, és látni fogjuk, ahogy Fimware-t elkezde a flasher feltölteni:
Miután a firmware felment, az eszköz új néven fog megjelenni a Scanelt eszközök listáján. És csatalkozásnál is csak annyit fogunk látni a logban, hogy Detected Custom Firmware. Ezután az általunk választott beállításokat küldjük el az eszköznek. Az alábbi összevágott képen látható a folyamat, és a log is. Egy dologra figyeljünk, hogy amikor elküldjük a beállításokat, akkor az „Advertysing Type” paraméternél mindig a „Custom” paramétert válasszuk, mert ha nem, akkor az eszközök nem kommunikálnak megfelelően az ESP32-vel.
ESP32 és Xiaomi Mijia – Frissített ESPhome kód
esp32_ble_tracker: scan_parameters: interval: 320ms duration: 60s active: true sensor: - platform: atc_mithermometer mac_address: "A4:C1:38:2B:B4:84" temperature: name: "Nappali hőmérséklet" humidity: name: "Nappali páratartalom" battery_level: name: "Nappali hőmérő akkumulátor szint" - platform: atc_mithermometer mac_address: "A4:C1:38:12:A0:A5" temperature: name: "Dolgozó szoba hőmérséklet" humidity: name: "Dolgozó szoba páratartalom" battery_level: name: "Dolgozó szoba hőmérő akkumulátor szint" - platform: atc_mithermometer mac_address: "A4:C1:38:E7:2C:2C" temperature: name: "Hálószoba hőmérséklet" humidity: name: "Hálószoba páratartalom" battery_level: name: "Hálószoba hőmérő akkumulátor szint"
A végeredményről nem tennék be képeket, mert így is terjedelmes lett ez a leírás is. Viszont szóban összefoglalva, így már betonstabil lett a szenzorok működése, és a kijelzőn is megjelenik az elem töltöttsége százalékos formában.
Ami tudni érdemes, ezekről a kis BLE szenzorokról szerintem annyi, hogy elsőre nem kell megijedni, hogy ritkábban frissülnek a mérési adatok, mert csak akkor lesz látható a változás a Home Assistant-ban, ha a mérési adatok is változnak. Akinél betonstabil a lakás vagy ház hőmérséklete és páratartalma, annál alig észrevehető lesz a változás a kirajzolt grafikonon. Viszont ezzel a Custom Firmware-es megoldással nálam nem fordul elő az, hogy órákig nem frissülnek a mért adatok, holott a kijelzőn meg frissül.
Remélem hasznos volt a leírás, és érthető.
Ha tetszett a leírás Like-old facebook oldalunkat, hogy értesülj a további hasonló leírásokról!
Mikrokontroller Blog és Webáruház – Facebook