Xiaomi Mijia LYWSD03MMC to mały, kwadratowy termometr z higrometrem i wyświetlaczem LCD, zasilany baterią CR2032. Po wyjęciu z pudełka współpracuje z aplikacją Mi Home i wysyła odczyty zaszyfrowane. Home Assistant odczyta je przez integrację Xiaomi BLE, ale tylko wtedy, gdy podasz mu klucz szyfrowania urządzenia.
Popularną alternatywą jest otwarte oprogramowanie autorstwa pvvx, udostępnione w repozytorium ATC_MiThermometer. Wgrywa się je przez Bluetooth ze strony internetowej, bez otwierania obudowy i bez lutowania. Potem termometr rozgłasza odczyty w otwartym formacie BTHome, który Home Assistant wykrywa sam, a ty dostajesz ustawienia, których fabryczne oprogramowanie nie ma: korektę temperatury i wilgotności, regulowane odstępy między rozgłoszeniami, ekran z zegarem i zapis pomiarów w pamięci urządzenia.
Opisuję cały proces, a także wersje sprzętowe, przy których wszystko jest trudniejsze, niż sugerują liczne starsze poradniki.
Zanim dokupisz kolejne sztuki
LYWSD03MMC produkowano w kilku wersjach sprzętowych i najnowsze sporo zmieniły. W README projektu pvvx są dwa ostrzeżenia, które warto przeczytać przed zamówieniem większej partii:
- Egzemplarze w wersji sprzętowej B1.5 lub B1.6, sprzedawane od marca 2025 roku, projekt oznacza jako niezalecane ze względu na duży pobór prądu i słaby kontrast wyświetlacza. Wersja B1.6 ma też fabryczne oprogramowanie niezgodne ze starszymi wersjami sprzętu.
- Fabryczne oprogramowanie Xiaomi 2.1.1_0159 (a według projektu także inne nowe wersje 2.1.1_xxxx) blokuje prostą drogę. Żeby wgrać na nie własne oprogramowanie, trzeba najpierw dodać termometr w Mi Home i pobrać jego klucze z chmury Xiaomi. Szczegóły są w kroku 3.
Jeśli masz starsze egzemplarze, wgranie oprogramowania zajmuje zwykle kilka minut na sztukę. Przy zakupie nowych możesz trafić na egzemplarz wymagający dłuższej procedury, a którą wersję dostaniesz, okaże się dopiero po dostawie.
To samo oprogramowanie obsługuje też inne termometry: Xiaomi Miaomiaoce MHO-C401, Qingping CGG1 i CGDK2, Xiaomi MJWSD05MMC i coraz więcej modeli Tuya. Pełna lista obsługiwanych urządzeń jest w osobnym repozytorium. Poniższe kroki dotyczą LYWSD03MMC. Inne modele różnią się głównie sposobem wejścia w tryb parowania.
Czego potrzebujesz
- Komputera albo telefonu z Androidem, z Bluetoothem i przeglądarką Google Chrome, Microsoft Edge lub Opera. Wgrywanie korzysta z interfejsu Web Bluetooth, więc w innych przeglądarkach nie zadziała.
- Nowej albo dobrze naładowanej baterii. Według README w LYWSD03MMC poziom baterii musi przekraczać 40%, żeby połączenie i wgrywanie przebiegły bez problemów, bo tańsza wersja sprzętu ma mały zapas mocy.
- Home Assistanta z działającą integracją Bluetooth: z wbudowanym albo podłączonym przez USB adapterem Bluetooth albo z pośrednikami Bluetooth w ESPHome (o pośrednikach więcej na końcu).
Krok 1: przygotuj przeglądarkę
Otwórz stronę do wgrywania, TelinkMiFlasher.html. Nie musisz pobierać żadnych plików z GitHuba, bo strona sama proponuje oprogramowanie pasujące do wykrytego urządzenia.
Na Androidzie, Windowsie i Linuksie trzeba jeszcze włączyć eksperymentalną funkcję przeglądarki. W Chrome otwórz chrome://flags/#enable-experimental-web-platform-features, ustaw Experimental Web Platform features na Enabled i uruchom przeglądarkę ponownie. Bez tej opcji strona może się połączyć, ale proces przerwie się na dalszym etapie.
Krok 2: połącz się i aktywuj urządzenie
- Modele z przyciskiem wymagają najpierw długiego naciśnięcia, które kasuje stare powiązania. LYWSD03MMC nie ma przycisku, więc od razu przechodzisz do łączenia.
- Na stronie wgrywania naciśnij Connect. Przeglądarka pokaże listę pobliskich urządzeń Bluetooth. Wybierz
LYWSD03MMCi trzymaj termometr blisko komputera. - Po połączeniu pojawi się przycisk Do Activation. Naciśnij go. Ten krok przeprowadza wymianę kluczy wymaganą przez fabryczne oprogramowanie, a strona ustawia urządzeniu nowy klucz powiązania (bindkey).
Sama aktywacja też się przydaje. Według dokumentacji integracji Xiaomi BLE klucz wygenerowany przez stronę pvvx działa w Home Assistancie, ale aplikacja Mi Home przestaje rozpoznawać termometr, dopóki go w niej nie usuniesz i nie dodasz ponownie. Jeśli wystarczy ci fabryczne oprogramowanie w Home Assistancie, możesz tu skończyć: zapisz klucz i dodaj urządzenie przez integrację Xiaomi BLE. Jeśli zależy ci na BTHome i dodatkowych ustawieniach, czytaj dalej.
Krok 3: wgraj nowe oprogramowanie
W starszym egzemplarzu naciśnij przycisk Custom Firmware ver x.x, a potem Start Flashing. Pasek postępu dojdzie do końca po krótkiej chwili. Termometr uruchomi się ponownie i zmieni nazwę Bluetooth na coś w rodzaju ATC_F02AED.
Jeśli egzemplarz ma fabryczne oprogramowanie 2.1.1_0159, obowiązuje procedura opisana w zgłoszeniu nr 602:
- Dodaj termometr do aplikacji Mi Home.
- Pobierz jego klucze z chmury Xiaomi, na przykład narzędziem Xiaomi Cloud Tokens Extractor.
- Połącz się z termometrem w TelinkMiFlasher, wpisz Device known id, Mi Token i Mi Bind Key, a potem wybierz Login.
- Wybierz oprogramowanie
ATC_vNNi uruchom aktualizację.
Jeśli to się nie uda, według projektu trzeba najpierw zaktualizować oryginalne oprogramowanie. W egzemplarzach B1.5 i B1.6 sprzedawanych od marca 2025 roku instrukcja każe wgrać proponowany plik Original_OTA_... jako krok pośredni. Po tej aktualizacji ekran nie działa, ale Bluetooth tak, więc powtarzasz procedurę z kroku 3, tym razem bez ponownej aktualizacji oprogramowania Xiaomi.
Całą operację da się odwrócić. README podaje, że w każdej chwili możesz wrócić do oryginalnego oprogramowania, wybierając jego plik na tej samej stronie.
Krok 4: wybierz BTHome i ustaw termometr
Połącz się ponownie, tym razem z urządzeniem o nowej nazwie ATC_.... Strona pokaże teraz opcje konfiguracji. Dla Home Assistanta najważniejsze są te:
- Advertising Type: wybierz BTHome. Oprogramowanie oferuje też formaty Xiaomi, ATC i Custom, ale według README z wbudowanymi integracjami Home Assistanta działają tylko BTHome i format Xiaomi. Pozostałe wymagają nieoficjalnego dodatku Passive BLE Monitor. Projekt zapowiedział też, że od wersji 6.0 obsługiwany będzie wyłącznie BTHome v2, więc w nowych instalacjach lepiej nie wybierać innych formatów.
- Temperature and Humidity offset: poprawka dodawana do odczytów, na przykład
-1.4obniża temperaturę o 1,4 °C. Zanim ją ustawisz, zostaw termometr na kilka godzin obok wzorca, któremu ufasz, w tym samym miejscu i z dala od słońca czy kaloryfera. - Comfort, Show batt, Clock: ekrany, które wyświetlacz pokazuje po kolei. Set time wysyła do urządzenia aktualną godzinę dla ekranu z zegarem.
- Odstępy między rozgłoszeniami i pomiarami oraz moc nadawania. Przy domyślnych ustawieniach LYWSD03MMC (rozgłoszenie co 2,5 sekundy i pomiar co 10 sekund) README podaje średni pobór prądu 14-15 µA i ponad rok pracy na baterii CR2032. Krótsze odstępy albo większa moc nadawania skracają ten czas. Ustawienia od +3 do +10 dB wymagają mocniejszego zasilania niż bateria pastylkowa.
Naciśnij Send Config, żeby zapisać zmiany w urządzeniu. Set default, a po nim Send Config, przywraca ustawienia domyślne.
Jednej opcji lepiej nie ruszać, jeśli nie wiesz, czy sprzęt ją obsługuje: Bluetooth 5 LE Long Range. Zwiększa zasięg, ale integracja Bluetooth w Home Assistancie nie obsługuje w pełni Bluetootha 5, a Web Bluetooth w Chrome nie potrafi jeszcze wyszukiwać urządzeń Bluetooth 5. Jeśli włączysz ją przypadkiem, wyjmij baterię i włóż ją z powrotem, a termometr wróci do zwykłego trybu Bluetooth 4.2.
Krok 5: dodaj termometr do Home Assistanta
Po wybraniu BTHome większość pracy wykona Home Assistant. Integracja BTHome sama wykrywa urządzenia, gdy działa integracja Bluetooth. Przejdź do Ustawienia > Urządzenia oraz usługi (Settings > Devices & services). Termometr powinien się pojawić w sekcji Wykryte (Discovered). Zatwierdź go, a dostaniesz encje temperatury, wilgotności i baterii.
Jeśli wolisz szyfrowane rozgłoszenia, włącz szyfrowanie formatu BTHome na stronie wgrywania i skopiuj klucz powiązania. Podczas konfiguracji Home Assistant poprosi o 32-znakowy klucz szesnastkowy. Bez szyfrowania temperaturę w pokoju odczyta każdy w zasięgu Bluetootha. Dla większości osób to nieszkodliwe, ale szyfrowanie nic nie kosztuje poza przechowaniem jeszcze jednego klucza.
Oprogramowanie zapisuje też pomiary w buforze cyklicznym w pamięci flash, do 20 000 rekordów uśrednianych w wybranym przez ciebie odstępie. Odczytasz je i zobaczysz na wykresie na tej samej stronie. Przydaje się to przy termometrze, który stoi poza zasięgiem Home Assistanta, na przykład w piwnicy albo w samochodzie.
Odbiór: adapter czy pośrednik na ESP32
Termometr tylko nadaje, a Home Assistant tylko słucha, więc od jakości odbioru zależy, jak często odświeżają się wartości. Źródła nie są tu zgodne i warto znać oba stanowiska.
Home Assistant zaleca pośredniki Bluetooth w ESPHome na płytkach ESP32 do zwiększania zasięgu Bluetootha i wiele osób używa ich właśnie z tymi termometrami. README projektu pvvx prezentuje odwrotne stanowisko. Odradza odbiorniki na ESP32, bo według autora nie odbierają BLE z pełną szybkością, ESPHome gubi wiele pakietów rozgłoszeniowych, a podłączone urządzenia ESP32 rozładowują baterie termometrów. Zamiast nich poleca adapter Bluetooth na USB 2.0 High Speed, zwłaszcza przy wielu urządzeniach BLE.
W praktyce pasywne nasłuchiwanie przez pośrednik to inna sytuacja niż aktywne połączenie, a pojedyncze zgubione rozgłoszenia niewiele znaczą, gdy termometr wysyła je co 2,5 sekundy. Jeśli w historii widzisz długie przerwy, zanim zrzucisz winę na oprogramowanie, postaw odbiornik bliżej termometru albo spróbuj adaptera USB w komputerze z Home Assistantem.
README ostrzega też przed zużyciem nośnika: częste aktualizacje z BLE oznaczają wiele zapisów do bazy danych i do plików BlueZ. Przy kilkudziesięciu urządzeniach warto wyłączyć z rejestratora (recorder) niepotrzebne encje albo zapisywać je rzadziej.
Najczęstsze błędy
- Słaba bateria podczas wgrywania. Poniżej mniej więcej 40% LYWSD03MMC traci połączenie. Najpierw wymień baterię.
- Niewłączona eksperymentalna opcja albo przeglądarka bez Web Bluetooth, na przykład Firefox czy Safari.
- Pozostawiony format Xiaomi albo ATC. Urządzenie działa w innych narzędziach, ale nie pojawia się w integracji BTHome.
- Ustawianie poprawki po kilku minutach. Temperatura i wilgotność stabilizują się powoli. Porównuj odczyty po kilku godzinach.
- Zamawianie nowych egzemplarzy z myślą o starej, szybkiej procedurze. Nowy sprzęt może wymagać rejestracji w Mi Home albo w ogóle nie być wart przeróbki.