LYWSD03MMC Zigbee Display
Show any numeric Home Assistant value — battery state of charge, solar power, electricity price — on a cheap Xiaomi LYWSD03MMC thermometer, sent over Zigbee via Zigbee2MQTT.
- Custom firmware
- Stable
- High brick risk
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
First release of the ext-display firmware for the Xiaomi LYWSD03MMC.
What's new
- Based on pvvx/ZigbeeTLc v0.1.4.0 (commit 66e4b2f)
- Adds four writable attributes (cluster 0x0204, 0x0120–0x0123) to show custom values on the LCD
- Display values are kept in RAM only, never written to flash
Install
Flash 1141-020a-01403002-Z03MMC.zigbee from the ATC firmware using TelinkMiFlasher, then install the Zigbee2MQTT converter and Home Assistant blueprint from this repository. See the README for the full guide.
Compatibility
- Xiaomi LYWSD03MMC
- Zigbee2MQTT 2.x
- Tested with Zigbee2MQTT 2.14.2 and an EmberZNet 7.4.4 coordinator
SHA-256: 841f817ec4198456ca53d61267c1cb328cf8523bae1f14b69cf200d440fb2afc
Flashing custom firmware is at your own risk.
Before you start
- How hard is it?
- EasyCopy a file or use a web page. No extra software.
- What you need
- Comfort with the command line
- A computer
- Another hack installed first
- Can it break my device?
- Could leave your device unusable.
- Can I undo it?
- The project doesn't say. Assume you can't.
Did it work for you?
Did LYWSD03MMC Zigbee Display v0.1.4.0-ext1 work on your Xiaomi LYWSD03MMC?
No reports yet for v0.1.4.0-ext1.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: Xiaomi LYWSD03MMC.
No compatibility information yet.
Getting started
From the project's README ("Quick start"):
- Get the device keys
Stock Xiaomi firmware 2.1.10159 and newer only accepts firmware updates after login with the device's own keys.
Add the thermometer to the Mi Home app.
Run Xiaomi Cloud Tokens Extractor (tokenextractor.exe on Windows). QR login (q) avoids captcha and 2FA.
Find the device with model miaomiaoce.sensorht.t2 and note its ID, TOKEN and BLE KEY.
Flash the ATC (Bluetooth) firmware
This is a required intermediate step: only pvvx's BLE firmware can receive the large Zigbee image.
Open TelinkMiFlasher in Chrome or Edge and click Connect.
Enter the ID, token and bind key and click Login.
Hardware B1.5/B1.6 made from March 2025: first flash the suggested OriginalOTA…0159c.bin, then reconnect and log in again.
Flash ATCv59.bin. After reconnecting, the device is named ATCxxxxxx and the log says "Detected custom Firmware".
Flash the Zigbee display firmware
Connect to the ATCxxxxxx device in TelinkMiFlasher.
Click Choose file, select firmware/1141-020a-01403002-Z03MMC.zigbee and start the update.
The device reboots into Zigbee mode and disappears from Bluetooth.
Only ever flash .zigbee files. A .bin larger than 128 KB can brick the device.
Install the Zigbee2MQTT converter
Copy zigbee2mqtt/lywsd03mmcextdisplay.mjs to /externalconverters/ (as a Home Assistant app: /homeassistant/zigbee2mqtt/externalconverters/).
Restart Zigbee2MQTT and check the log for Loaded external converter 'lywsd03mmcextdisplay.mjs'. …
Risk and recovery
- Brick risk
- High
- Requires opening the device
- No
From the project's README ("Firmware details and updates"):
Property Value Base pvvx/ZigbeeTLc v0.1.4.0, commit 66e4b2f Manufacturer / image type 0x1141 / 0x020A File version 0x01403002 (one above pvvx's official 0x01403001) SHA-256 841f817ec4198456ca53d61267c1cb328cf8523bae1f14b69cf200d440fb2afc Do not install official ZigbeeTLc updates offered in Zigbee2MQTT unless you want to remove the display feature. Zigbee2MQTT normally refuses downgrades, so returning to the official v0.1.4.0 requires a build with a higher version number or waiting for pvvx's next release.
Build from source
Linux, with the toolchain bundled in pvvx's repository:
git clone https://github.com/pvvx/ZigbeeTLc cd ZigbeeTLc git checkout 66e4b2ff47f571fdf35165df567e9a40b965c527 git apply ../firmware/ZigbeeTLcextdisplay.patch make install make -j PROJECTNAME=Z03MMC POJECTDEF="-DBOARD=BOARDLYWSD03MMC -DSTACKBUILD=0x02" ZNAME="Xiaomi:LYWSD03MMC-z"
The OTA image is written to bin/1141-020a-01403002-Z03MMC.zigbee. The patch touches 6 files (~70 lines) and should port easily to newer ZigbeeTLc versions.
Releases
| Version | Name | Released |
|---|---|---|
| v0.1.4.0-ext1 | —Latest | 6 October 2026 |
Credits, license and support
- License
- MIT