This project adds support for the Xiaomi Kettle Pro to Home Assistant. It establishes a direct local connection to your kettle, which allows you to control it from anywhere using Home Assistant. Currently, it is confirmed to work with the yunmi.kettle.v9 and should support v10 to v16. If your Kettle Pro is still your faithful companion today, please give it a try!
- Set the temperature of mode: heating, warming
- Heat the water to the set temperature
- Keep water warm according to the set temperature
- monitor water temperature, device status
- yunmi.kettle.v9
- yunmi.kettle.v10 to v16 (likely supported)
yunmi.kettle.v9 serves as the testing device (mjhwsh02ym on a label on the bottom of the device). Other models are likely supported since they all share the Mi Smart Kettle Pro name. You can verify device name here.
- Recommended Version:
HA: 2025.5.3+
HACS: 2.0.5+
- Make sure your Xiaomi Home app can control your device.
- Get your device token, model, and MAC address by following this project: Xiaomi-cloud-tokens-extractor.
- Check that your kettle model is in the range yunmi.kettle.
v9tov16. - Make sure your Home Assistant has at least one available Bluetooth adapter which supports BLE 4.2+.
- It is recommended to enable
Remember keep warm temperature after lifting kettlein the Xiaomi Home app. The kettle will automatically enter keep-warm status when lifted and placed back.
1. Install using HACS
Click
Then, Open HACS > Search Mi Smart Kettle Pro and click DOWNLOAD
cd /tmp
git clone https://github.com/asruda/mi_kettle_pro.git
cd mi_kettle_pro
./install.sh <your HA directory>/config3: Download Releases and Copy Manually
copy mi_kettle_pro/custom_components/xiaomi_home folder to <HA Directory>/config/custom_components folder in your Home Assistant.
Add a new entry for one device in the Home Assistant UI:
- Set Heating Temperature: The target temperature when the
Heatbutton is pressed. - Set Warming Temperature: The target temperature when the
Warmbutton is pressed.
| Name | Type | Usage | Description |
|---|---|---|---|
| Heat | button | set heating mode | When the button is pressed, the kettle is set to heating mode first. After the water temperature reaches the target temperature, the kettle switches to warming mode |
| Set Heating Temperature | number | set heating temperature | min: 50, max: 100 |
| Warm | button | set warming mode | |
| Set keep-warm Temperature | number | set keep-warm temperature | min: 10, max: 90 |
| Operational Mode | sensor | whether the device is controllable | value: control, monitor |
| Current Temperature | sensor | current water temperature | |
| Status | sensor | kettle status | value: cooling, heating, keeping warm, idle |
- Make sure there is always enough water in the kettle.
- Remote control is only possible by pressing the kettle's boil physical button (requires enabling
Automatic heat preservation after boilingin the Xiaomi Home app), or by pressing the second physical keep-warm button to set in the warming mode. If the device status is idle, the component cannot control the kettle. - Only one application can control your device at a time - either this component or the Xiaomi Home app. If you want to control your device using the Xiaomi Home app, please disable the device in Home Assistant first.
- When the login process finishes, the component will update mode config
3and4on your device as follows:
| Mode | Edit | Description |
|---|---|---|
0 |
no | - |
1 |
no | - |
2 |
no | - |
3 |
yes | warming mode, Temperature: warming temperature, Duration: 12 hours |
4 |
yes | heating mode, Temperature: heating temperature, Duration: 1 hours |
- If the connection is intermittent, try lifting and replacing the kettle.
- If the mode buttons are disabled, please short-press the second physical keep-warm button to activate the warming mode, indicated by the warming LED turning on.
- After updating the token, reload the component for the changes to take effect.
This work was inspired by prior projects on Xiaomi device integration and protocol analysis.