Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaromeyer/mipurifier-esphome
ESPHome for the Xiaomi Mi Air Purifier 3H (and similar devices using the same protocol)
https://github.com/jaromeyer/mipurifier-esphome
Last synced: 3 months ago
JSON representation
ESPHome for the Xiaomi Mi Air Purifier 3H (and similar devices using the same protocol)
- Host: GitHub
- URL: https://github.com/jaromeyer/mipurifier-esphome
- Owner: jaromeyer
- License: unlicense
- Created: 2022-11-30T12:12:39.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-08T19:22:57.000Z (5 months ago)
- Last Synced: 2024-09-08T20:53:35.904Z (5 months ago)
- Language: C++
- Homepage:
- Size: 461 KB
- Stars: 88
- Watchers: 9
- Forks: 12
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-esphome-components - mipurifier
- awesome-esphome-components - mipurifier
README
## ESPHome for various Xiaomi Air Purification Devices
> For a step-by-step guide with pictures visit [this thread](https://community.home-assistant.io/t/link-xiaomi-air-purifier-3-3h-with-custom-esphome-firmware/656741/9) on the official home assistant forum.
There are two separate microcontrollers inside the device: one STM32F4 which actually controls the device, and one ESP32 which only acts as a gateway to the internet/local network. This config replaces the firmware running on the ESP32 and implements the [MIoT protocol](https://github.com/blakadder/miot) used to communicate with the STM32.
### Features:
- turning the purifier on/off
- exposing PM2.5, humidity, temperature, and remaining filter life as sensor values
- switching modes
- controlling speed in manual mode
- changing various settings (display brightness, beeper, lock)
- sending custom commands using the `esphome.mipurifier_send_command` service (e.g. sending `down set_properties 5 1 false` disables beeping)### FAQ
#### Does this remove the `Filter remaining 0%` warning?
Flashing this firmware does NOT change anything about how the remaining filter life is read/managed. However you can easily reset your filter to continue using it by following [this video](https://www.youtube.com/watch?v=usiX_J9Yy2o) for example.#### Is my air purifier supported?
The following devices are known to work with this library (this list is not exhaustive)
- Air Purifier 3 (2019) (zhimi.airpurifier.ma4)
- Air Purifier 3H (2019) (zhimi.airpurifier.mb3)
- Air Purifier Pro H (AC-M13-SC)Please don't hesitate to expand this list by opening a pull request if your device also works with this library! Make sure to backup the original firmware on your device's ESP32 before flashing ESPHome.
### Flashing
> For a step-by-step guide with pictures visit [this thread](https://community.home-assistant.io/t/link-xiaomi-air-purifier-3-3h-with-custom-esphome-firmware/656741/9) on the official home assistant forum.Connect any USB-to-serial adapter and power on the ESP32 while `GPIO0` and `GPIO2` are pulled low.
The following steps have been tested with the AC-M6-B01 Board (REV3-BDR) by using the ESPHome Add-on within Home Assistant:
- Prepare an usb-to-serial adapter (a CP2102 chip has been used here) by installing the required drivers on the computer you will flash the board
- Pull GPIO0 low by bridging soldering spot 1 (GPIO0) and 2 (GND)
- No need to solder here if you have a wire that fits more or less tight into the soldering spot
- Pull GPIO2 low by connecting Pin 24 (GPIO2) to GND (e.g., Pin 15, spot 1, or spot 2)
- Open Home Assistant on any client machine via Web Browser using https
- A Windows 10 client was used here while Home Assistant was running on a different machine
- Your browser must support WebSerial to flash from a different client than the ESPHome Server. Chrome do support WebSerial.
- Open the ESPHome Web Interface
- If not done before, enter your Wi-Fi settings in secrets.yaml
- Select "NEW DEVICE"
- Name your device, e.g. with "Air Purifier Livingroom"
- Select the device type, ESP32 in this case
- Do not install the device in the next step, instead, press Skip
- Use "EDIT" on the device tile to overwrite the device settings with the content of mipurifier.yaml
- Copy the mipurifier.h file into the same directory where the .yaml (Air-Purifier-Livingroom.yaml if you have named the device as written above) file is located
- Default path is /Config/esphome/.
- Connect the usb-to-serial adapter with the board as shown on the image below
- Plug in the usb-to-serial adapter on the client machine
- The board will beep two times on powering up
- If it does not - you may need to power it externally as the USB/TTL adapter may not be powerful enough (IMPORTANT: first disconnect VCC from the USB/TTL adapter)
- Use "Install" on the device tile within the 3 dots and select "Plug into this computer" and follow the further instructions
- After the install process has been finished, detach the usb-to-serial adapter from the client
- Remove the bridges both for GPIO0 and GPIO2
- Reassemble your Purifier
- Power on the device
- Wait for the device to connect to your WiFi
- Test the device by using the control panel in Home AssistantTypical problems:
- ESPHome is unable to find the usb-to-serial adapter
- Make sure that you have installed the latest drivers for the adapter matching your client OS
- ESPHome is unable to connect to the AC-M6-B01 board
- Check all connections between the adapter and the board
- Exchange RX and TX if the problem remains
- Compiling/Installing takes a very long time
- Compiling on an Raspi 4 might take more than 10 minutes
- If this step takes more time, you can try to restart the ESPHome AddOn and restart the install process
- The device will not join your WiFi
- Make sure that your router allows new unknown devices to join
- Power off the device and power on the device again