Xiaomi Temperature and Humidity Monitor 2 – firmware pro Homebridge

Xiaomi Temperature and Humidity Monitor 2, také označovaný jako LYWSD03MMC, je malý Bluetooth LE teplo/vlkhoměr, primárně určený pro provoz prostřednictvím Mijia brány a Xiaomi Home aplikace. Díky pluginu homebridge-mi-hygrothermograph je ale možné používat ho i v rámci Homebridge. Protože má ale spousta lidí problém zprovoznit tuto kombinaci s originálním firmwarem, je cestou využití alternativního firmwaru ATC.

Pro úspěšné provedení výše uvedeného budeme potřebovat tyto věci:

  1. Teploměr Xiaomi Temperature and Humidity Monitor 2
  2. Počítač nebo Mac s podporou Bluetooth 4.0
  3. Webový prohlížeč Google Chrome
  4. Stažený firmware ATC_MiThermometer – poslední verze souboru ATC_Thermometer.bin

Krok č. 1 – Instalace závislostí a povolení přístupu k Bluetooth pro Homebridge

Na začátku je nezbytné zajistit, aby byly nainstalované nezbytné komponenty. Připojíme se k Raspberry Pi prostřednictvím SSH a spustíme následující příkaz:

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Následně je potřeba povolit, aby Homebridge mohl využívat Bluetooth. Pokud máme nastavené aliasy, můžeme na SSH využít příkaz HB_SHELL pro přepnutí do terminálu Homebridge. Další možností je ve webovém rozhraní Homebridge kliknout na tlačítko a následně na Terminál. Zde zadáme následující příkaz:

sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

Krok č. 2 – Instalace pluginu a základní nastavení

Nainstalujeme plugin homebrige-mi-hygrothermograph prostřednictvím webového rozhraní Homebridge . Po instalaci není potřeba nic nastavovat, stačí základní nastavení potvrdit tlačítkem Uložit.

Následně je potřeba restartovat Homebridge v debug modu. To je možné prostřednictvím webového rozhraní, kliknutím na tlačítko a následně na Homebridge nastavení, kde následně zapneme možnost Homebridge Debug Mode.

Po přepnutí na záložku Stav bychom měli během chvíle v logu objevit podobné hlášení:

[1/22/2022, 9:41:09 AM] [Temperature & Humidity] [a4:c1:38:f6:7b:ba] Discovered peripheral
      Id: a4c138f67bba
      LocalName: undefined
      rssi: -78
      serviceData: 50305b0509ba7bf638c1a40d1004e900e001

To znamená, že Homebridge už zařízení vidí, ale bohužel v této fázi s ním ještě nedokáže komunikovat. Z tohoto hlášení nás zajímá adresa zařízení, v tomto případě a4:c1:38:f6:7b:ba. V případě, že máme zařízení víc, objeví se tato hlášení i pro všechna ostatní – s různými adresami zařízení.

Pole Bind Key zůstává prázdné, při použití alternativního firmware se nevyplňuje.

Vrátíme se na záložku Pluginy a v nastavení pluginu Homebridge Mi Hygrothermograph vložíme adresu zařízení. Současně si zde můžeme zařízení pojmenovat. V případě, že máme více zařízení, kliknutím na tlačítko Add Accessory přidáme další, kde opět vyplníme název a adresu zařízení.

Následně klikneme na tlačítko Uložit a restartujeme Homebridge.


Krok č. 3 – Flashnutí firmware ATC_MiThermometer

Dalším krokem je samotné flashnutí alternativního firmware. Kromě toho, že odpadá problematické použití Bind Key, umožňuje pár dalších drobných nastavení jako například vypnutí zobrazování „smajlíka“ nebo zobrazení stavu baterie na displeji.

Samotné flashnutí probíhá prostřednictvím webového prohlížeče – důrazně doporučuji Chrome, s jinými prohlížeči jsem neuspěl. V Chrome je potřeba zapnout funkci Experimental Web Platform features. To provedeme tak, že do adresního řádku zadáme chrome://flags, následně vyhledáme položku Experimental Web Platform features a přepneme na možnost Enabled.

Následně otevřeme webovou adresu https://atc1441.github.io/TelinkFlasher.html

Zde kliknutím na tlačítko Connect spustíme vyhledávání okolních zařízení. V seznamu vyhledáme zařízení s názvem LYWSD03MMC a klikneme na tlačítko Spárovat. Zde je potřeba trpělivost, může trvat několik desítek sekund, než se zařízení v seznamu objeví.

Následně sledujeme log v úplně spodní části stránky. Zde se objeví během půlminuty hlášky Detected Mi Thermometer a následně Connected. Na displeji zařízení v tuto chvíli svítí symbol Bluetooth.

Následně v horní části klikneme na tlačítko Do Activation počkáme několik sekund, než se vyplní pole Mi Token. Pak v části Select Frimware klikneme na tlačítko Vybrat soubor, vyhledáme v počítači stažený soubor firmwaru ATCMiThermometer.bin a potvrdíme kliknutím na tlačítko Start Flashing.

Log ve spodní části by se měl plnit hláškami v podobném znění:

Activating now, please wait...
Activation successfull
Received device infos are correct
Login Successfull
File was selected, size: 64320 bytes
Count: 4020
Start DFU
Update done after 54.714 seconds
Disconnected.

Po úspěšném flashnutí se na displeji zařízení objeví nápis Atc. V tuto chvíli opět tlačítkem Connect spustíme vyhledávání. Pokud jsme mezitím nezavřeli okno prohlížeče, bude stále v seznamu zařízení pod názvem LYWSD03MMC, v opačném případě ho najdeme v seznamu pod názvem ATC. Opět klikneme na tlačítko Spárovat a sledujeme log ve spodní části stránky, kde se tentokrát objeví hláška Detected Custom firmware.

V tuto chvíli můžeme provádět nastavení alternativního firmwaru. Nezbytné pro funkčnost je nastavení Advertising Type na hodnotu Mi Like, aby si zařízení rozumělo s Homebridge pluginem.

Dále stojí za pozornost nastavení Smiley, kterým nastavíme, v jaké podobě (a zda vůbec) chceme na displeji zobrazit „smajlíka„, a nastavení Show battery in LCD, kterým si můžeme zapnout zobrazení stavu baterie přímo na displeji (pak se střídá ve spodní části displeje s vlhkostí).

Po dokončení nastavení stránku zavřeme a z displeje zařízení zmizí symbol Bluetooth. V tuto chvíli se můžeme vrátit do webového rozhraní Homebridge, kde bychom na záložce Stav měli v logu objevit hlášky podobné těmto:

[1/22/2022, 9:41:09 AM] [Koupelna] [a4:c1:38:f6:7b:ba] Temperature: 23.3C
[1/22/2022, 9:41:09 AM] [Koupelna] [a4:c1:38:f6:7b:ba] Humidity: 48%

To značí úspěch. Nyní už jen opět vypneme debug mode Homebridge, opět kliknutím na tlačítko a následně na Homebridge nastavení, kde vypneme možnost Homebridge Debug Mode. Nakonec Homebridge naposledy restartujeme a můžeme si plně užívat teploměrů v HomeKitu.


A pokud máte 3D tiskárnu, tak si na uvedený teploměr můžete vytisknout praktický stojánek nebo třeba držák:

$ s myšlenky na „$ s“
  1. Děkuji za super návod. Jen 2 dotazy – jak blízko/daleko k Rpi musí tento teploměr být? Rpi mám v racku v technické, ale teploměr bych chtěl umístit jinam. Bránit bude nějaká ta příčka, dveře… „Uvidí“ to na sebe? A jak je to s baterií? Přece jen je tam jen CR2032, při neustálém bluetooth kontaktu moc dlouhá životnost asi nebude co?

    1. Mám to doma, dosah jsou 10ky metru. RPi mam na chodbě a cidla v kazde mistnosti. Na zahradu do psi boudy to nedosahne, ale v ramci baraku (drevostavba) ano. Baterka vydrzi pul roku i vic. Muzes nastavit jak casto to odesila, tim se bat spori.

  2. Děkuji za návod. Jen bych se chtěl zeptat…je potřeba flash toho FW? Protože na té stránce, kde se hledají jednotlivé zařízení, jde získat i ten BindKey.

  3. zaujimave, ze pri pripojeni so stock firmware cez chrome vidime aj teplotu aj bind key, ale s custom firmware nie. kazdopadne mi to nejde ani so stock firmware a bind key, ani s custom firmware a mac adresami 😀

Napsat komentář: Milan Zrušit odpověď na komentář