Xiaomi Mi Smart Pedestal Fan
syssi/xiaomi_fan · v2026.8.0.0
Xiaomi Mi Smart Fan integration for Home Assistant
In Apple Home through HomeKit Bridge
What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.
| Entity | Shows up as | Note |
|---|---|---|
fan | Fan |
2 reports below say how a device from this integration behaves in the Home app.
What people report
Local miIO/MIoT control of many Xiaomi and Mijia fans; maintainers merge new models quickly in 2026. Older HA updates broke some models and HomeKit lacks a native Natural mode toggle.
- Works9
- Partly works1
- Not working1
- Requested1
| Device | In Home Assistant | In Apple Home | What they said | Source |
|---|---|---|---|---|
| Mi Smart Standing Fan 2 P18 | Works Local | Support mergedSaved copyUsing FanP10's class for P18 similar to P11 and P15. It fixes the issue #136 Excerpt saved from GitHub on 2026-10-23. | PR #144 · 2021-06 | |
| Mi Smart Standing Fan 2 P30 | Works Local | ESP32C3 variant added alongside dmaker.fan.p30Saved copySome units of the 'Mi/Xiaomi Smart Standing Fan 2 P30' ship with a newer ESP32C3 WiFi chip and report themselves over miIO as model 'xiaomi.fan.p30' instead of the existing 'dmaker.fan.p30'. This is a genuinely different, currently undocumented MIoT spec (no entry on home.miot-spec.com or miot-spec.org at the time of writing) with a completely different property layout: separate services per function (LED, buzzer, child lock, delay timer) instead of one combined 'fan' service. Currently, fan.py forces xiaomi.fan.p30 through the dmaker.fan.p10 mapping (see the existing 'elif model in … Excerpt saved from GitHub on 2026-10-23. | PR #319 · 2026-06 | |
| Mi Smart Standing Fan 2 Pro | Works Local | Tested workingSaved copyHi there, today I got myself a Smart Standing Fan 2 Pro, so I spent some time adding support to it. I have tested all the supported functions and they all work correctly. [code] https://www.mi.com/global/product/xiaomi-smart-standing-fan-2-pro/ Excerpt saved from GitHub on 2026-10-23. | PR #195 · 2022-07 | |
| Mijia Smart Standing Fan Pro (BPLDS09DM) | Works Local | Requested then added in Pro Slim 2 PRSaved copy… copied the work of @geirra and modified the mapping according to the specs here https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:xiaomi-p43:1. I'm not a Developer, so this is copied and pasted from a local copy I was working on when I found out that on/off works if I force the model to be teh p85 for my p43. I hope there are no mistakes due to my pasting. The fan.py I have modified for my Home Asisstant Works as expected. Excerpt saved from GitHub on 2026-10-23. | PR #342 · 2026-08 | |
| Xiaomi fan zhimi.fan.za1 | Works Local | Works in Home Speed property fixed so HomeKit stops erroring | Speed handling refactored to be HomeKit compliantSaved copyMy device is zhimi.fan.za1 v2.0.3. The value from `get_prop "['speed']"` seems pretty weird, it keeps varying from like 400~700 even the fan speed isn't changing. `['speed_level']` does show the current speed of the fan correctly. Enabling `homekit` with `fan: - platform: xiaomi_miio_fan` would make hass keep complain about the `KeyError`: [code] Looks like it treats the `"['speed']"` prop as the actual speed, then turns out to be invalid. Therefore I have to create a custom fan template in order to be able to change its speed via homekit. Is this intended or have I missed something? Thanks … Excerpt saved from GitHub on 2026-10-23. | Issue #28 · 2019-04 |
| Xiaomi Smart Desktop Air Circulation Fan | Works Local | Added with fan_turn serviceSaved copySummary - Add support for `xiaomi.fan.p70` (Xiaomi Smart Desktop Air Circulation Fan) - Implements `XiaomiFanP70` class extending `XiaomiFanP33` with P70-specific MIoT mapping - Vertical oscillation exposed via `FanEntityFeature.DIRECTION` (forward = on, reverse = off) - Reuses `fan_set_vertical_oscillation_on/off` services - Adds `FanStatusP70`, `FanP70`, `OperationModeFanP70` (Straight=0 / Natural=1) - Follows same `get_properties_for_mapping` pattern as P76/P39 ## Device | Property | Value | |---|---| | Model | `xiaomi.fan.p70` | | Name | Xiaomi Smart Desktop Air Circulation Fan | | … Excerpt saved from GitHub on 2026-10-23. | PR #303 · 2026-05 | |
| Xiaomi Smart Standing Air Circulation Fan | Works Local | Support mergedSaved copySummary - Add support for `xiaomi.fan.p76` (Xiaomi Smart Standing Air Circulation Fan / JLLDS01XY) - Implements `XiaomiFanP76` class extending `XiaomiFanP33` with P76-specific MIoT mapping - Adds vertical oscillation control via new services `fan_set_vertical_oscillation_on/off` - Adds `FanStatusP76`, `FanP76`, `OperationModeFanP76` (Straight/Natural modes) - MIoT property mapping: fan speed, horizontal/vertical swing, LED, buzzer, child lock, delay ## Device | Property | Value | |---|---| | Model | `xiaomi.fan.p76` | | Name | Xiaomi Smart Standing Air Circulation Fan | | SKU | JLLDS01XY | | … Excerpt saved from GitHub on 2026-10-23. | PR #299 · 2026-05 | |
| Xiaomi Smart Standing Fan Pro Slim 2 | Works Local | Support mergedSaved copy… copied the work of @geirra and modified the mapping according to the specs here https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:xiaomi-p43:1. I'm not a Developer, so this is copied and pasted from a local copy I was working on when I found out that on/off works if I force the model to be teh p85 for my p43. I hope there are no mistakes due to my pasting. The fan.py I have modified for my Home Asisstant Works as expected. Excerpt saved from GitHub on 2026-10-23. | PR #342 · 2026-08 | |
| Xiaomi Smart Tower Fan | Works Local | Support mergedSaved copyAdded support for Xiaomi Smart Tower Fan (dmaker.fan.p39) For reference: API overview: https://home.miot-spec.com/spec/dmaker.fan.p39 Spec: https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:dmaker-p39:1 Fixes #213 Fixes #223 Excerpt saved from GitHub on 2026-10-23. | PR #225 · 2023-07 | |
| Xiaomi Pedestal Fan 2S / dmaker.fan.1c | Partly works Local | Partly in Home Natural/manual mode not a native toggle; template switch not grouped with fan | Works; Natural mode needs separate switch workaroundSaved copyFindings: HomeKit Bridge + dmaker.fan.1c (Nature mode / Manual support) I've successfully implemented Nature mode (Auto/Manual) support for the `dmaker.fan.1c` model via Apple HomeKit Bridge. Sharing our findings in case it's useful for the maintainers. ### Environment - Model: `dmaker.fan.1c` - Integration: `xiaomi_miio_fan` (syssi) via HACS - Home Assistant with HomeKit Bridge integration - `configuration.yaml` preset_modes_override: `["Nature"]` ### How HomeKit Bridge communicates fan mode HomeKit exposes fans with a Manual/Auto toggle. The commands sent differ: - Auto → … Excerpt saved from GitHub on 2026-10-23. | Issue #137 · 2021-06 |
| Xiaomi fan zhimi.fan.za5 | Not working Local | Stopped working after HA 2021.12 and 0.5.4Saved copyHi, After upgrading to 0.5.4 version the ZA5 fan still doesn't work. Below you can find the log: Logger: custom_components.xiaomi_miio_fan.fan Source: custom_components/xiaomi_miio_fan/fan.py:1384 Integration: xiaomi_miio_fan (documentation, issues) First occurred: December 27, 2021, 2:42:50 PM (1094 occurrences) Last logged: 12:06:35 AM XiaomiFanZA5 Got exception while fetching the state: {'code': -9999, 'message': 'user ack timeout'} , _retry=1109 XiaomiFanZA5 Got exception while fetching the state: {'code': -9999, 'message': 'user ack timeout'} , _retry=1110 XiaomiFanZA5 Got exception … Excerpt saved from GitHub on 2026-10-23. | Issue #177 · 2021-12 | |
| Xiaomi Smart Standing Fan Pro Slim (P85) | Requested | Support PR closed unmergedSaved copyThis adds support for the Xiaomi Smart Standing Fan Pro Slim (P85). Have tested all features and they seem to work fine. I have chosen to implement indication_light service as compared to hack around the light function as they have different designs. The old function has dimming this one has on or off. The service also matches the behaviour of the child lock and buzzer Excerpt saved from GitHub on 2026-10-23. | PR #315 · 2026-06 |
Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.
How it connects
Local polling
Talks to the device on your network, asking it for updates every so often.
Details
| Installs (analytics) | 614 (0.09%) |
|---|---|
| GitHub stars | 508 |
| Latest version | 2026.8.0.0 (2026-10-01) |
| Set up in the UI | No, YAML |
| Maintainers | @syssi |
| License | Apache-2.0 |
Devices listed in its README
- Pedestal Fan Fan V2
- Pedestal Fan Fan V3
- Pedestal Fan Fan SA1
- Pedestal Fan Fan ZA1
- Pedestal Fan Fan ZA3
- Pedestal Fan Fan ZA4
- Smartmi Standing Fan 3
- Pedestal Fan Fan 1C
- Pedestal Fan Fan P5
- Pedestal Fan Fan P8
- Pedestal Fan Fan P9
- Pedestal Fan Fan P10
- Mijia Pedestal Fan
- Smart Standing Fan 2 Pro
- Pedestal Fan Fan P15
- Mi Smart Standing Fan 2 P18
- Mi Smart Standing Fan 2 P30
- Rosou SS4 Ventilator
- Xiaomi Smart Tower Fan
- Xiaomi Smart Standing Air Circulation Fan
- Xiaomi Smart Desktop Air Circulation Fan
- Mi Smart Standing Fan 2 Lite
- Xiaomi Smart Standing Fan Pro Slim
- Xiaomi Smart Standing Fan Pro Slim 2
- Mijia Smart Evaporative Cooling Fan
- Xiaomi Smart Standing Air Circulation Fan / Mijia Circulation Fan
- Rosou SS310 Ventilator
- Mijia Fan
Notable forks
Forks with stars, or with code pushed at least 90 days after the original’s last push. Useful when the original goes quiet.
| Fork | Stars | Last push | Description |
|---|---|---|---|
| damianpasek/xiaomi_fan | ★ 10 | 2020-09-01 | Xiaomi Mi Smart Fan integration for Home Assistant |
| iwzoo/xiaomi_fan | ★ 6 | 2020-05-11 | Xiaomi Mi Smart Fan integration for Home Assistant |
| tsunglung/xiaomi_fan | ★ 5 | 2022-03-09 | Xiaomi Mi Smart Fan integration for Home Assistant |
In ReReHome
Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.
Bridges get their own settings page listing the accessories behind them.
Sources
- Documentation: https://github.com/syssi/xiaomi_fan
- Source code: https://github.com/syssi/xiaomi_fan
- Issues: https://github.com/syssi/xiaomi_fan/issues
- HACS: https://hacs.xyz