Skip to content
Home Assistant TestFlight
Lighting

Xiaomi Gateway 3

AlexxIT/XiaomiGateway3 · vv4.3.0

HACSLocal push

Home Assistant custom component for control Xiaomi Multimode Gateway (aka Gateway 3), Xiaomi Multimode Gateway 2, Aqara Hub E1 on default firmwares over LAN

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.

EntityShows up asNote
lightLight
switchSwitch or outlet
coverBlind, garage door, window or door
climateThermostat
alarm_control_panelSecurity system
binary_sensorSensor (motion, contact, leak, smoke…)
sensorSensor (temperature, humidity, air quality…)
buttonButton (as a switch)
selectMode picker (as switches)

2 reports below say how a device from this integration behaves in the Home app.

What people report

Local push Zigbee, BLE and Mesh support through Xiaomi gateways, with models added by user PRs. Old gateway firmware can leave sensors Unknown, and some cover entities misbehave in HomeKit.

  • Works13
  • Partly works2
  • Not working1
  • Won’t be supported1
DeviceIn Home AssistantIn Apple HomeWhat they saidSource
Cpcker M3 BLE Mesh wall switchesWorks LocalSupport added including mmWave presence
Saved copy
This PR adds full MIoT specification support for the Cpcker M3 series BLE Mesh smart wall switches. This series features built-in millimeter-wave human presence sensors and a touch interaction screen, covering two specifications: ckcper.switch.bln001 (single-button) and ckcper.switch.bln002 (double-button). The following functionalities are implemented: Independent Channel Control: Independent switching for each relay circuit. Button Event Reporting: Accurate triggering and reporting of single-click, double-click, and long-press events, directly compatible with HA automation.

Excerpt saved from GitHub on 2026-10-23.

PR #1734 · 2026-06
Gra Smart Controller V7 MeshWorks LocalBLE Mesh outlet/switch support added
Saved copy
Description This PR adds support for the Gra Smart Controller V7 (Mesh) device (model: `giot.plug.v7icm`, pdid: `23928`), manufactured by GranchiploT. The device is a BLE Mesh outlet/switch that supports: - On/Off switch control ## Changes - Added device entry to `devices.py`: - `pdid`: `23928` - `model`: `giot.plug.v7icm` - `brand`: `GranchiploT` - `name`: `Gra Smart Controller V7 (Mesh)` - Converter: `BaseConv("switch", "switch", mi="2.p.1")` - controls the main switch via property `#2.p.1` (on/off) ## Testing - Device discovered automatically via Xiaomi Gateway 3 integration - Switch …

Excerpt saved from GitHub on 2026-10-23.

PR #1754 · 2026-08
GranwinIoT plug v6shsm and wireless switchesWorksSupport added
Saved copy
Hi. This PR includes: - Add support for giot.plug.v6shsm - Add support for zjdh.curtain.xj002 - Add support for series of GranwinIoT wireless switches (giot.remote.v51kwm, giot.remote.v52kwm, giot.remote.v53kwm, giot.remote.v54kwm and giot.remote.v56kwm) - Change string to enum (BUTTON_4_DOUBLE) for giot.remote.v58kwm

Excerpt saved from GitHub on 2026-10-23.

PR #1518 · 2024-12
Linptech KS1Pro wireless buttonWorks LocalBLE button support added, tested on ZNDMWG03LM
Saved copy
new device which is not found in home.miot-spec.com at the moment tested on Xiaomi Multimode Gateway (CN) ZNDMWG03LM FIRMWARE........: 1.5.0_0102 #20210816 and homeassistant docker image: homeassistant/home-assistant:2023.10

Excerpt saved from GitHub on 2026-10-23.

PR #1228 · 2023-12
Linptech KS2 temperature/humidity sensorWorksSupport added
Saved copy
1. Add support for `linp.light.lx2bcw` - Implements initial support for the Linptech LX2BCW smart light. - Related issue: #1560 2. Add support for `linp.sensor_ht.ks2bb` - Adds decoding and entity setup for the Linptech KS2 temperature and humidity sensor. - Related issue: #1539 3. Enhance `linp.motion.hs1bb2` support - Adds custom configuration options: - `no_motion_time` - `no_motion_duration` - Merges and aligns behavior with the Xiaomi Motion Sensor 2S for consistency.

Excerpt saved from GitHub on 2026-10-23.

PR #1597 · 2025-04
Linptech LX2BCW lightWorksSupport added
Saved copy
1. Add support for `linp.light.lx2bcw` - Implements initial support for the Linptech LX2BCW smart light. - Related issue: #1560 2. Add support for `linp.sensor_ht.ks2bb` - Adds decoding and entity setup for the Linptech KS2 temperature and humidity sensor. - Related issue: #1539 3. Enhance `linp.motion.hs1bb2` support - Adds custom configuration options: - `no_motion_time` - `no_motion_duration` - Merges and aligns behavior with the Xiaomi Motion Sensor 2S for consistency.

Excerpt saved from GitHub on 2026-10-23.

PR #1597 · 2025-04
Panasonic ceiling fan lightWorksSupport added
Saved copy
Add support for panasonic ceiling fan light. Model: pmfbj.light.lz8321. Add support for Xiaomi Smart Wall Outlet XMZNCZ02LM. Add support for Xiaomi double wall button. Model: xiaomi.remote.mcn002

Excerpt saved from GitHub on 2026-10-23.

PR #1615 · 2025-06
Topwit bath heater lightWorks LocalMesh light, heat and ventilation entities added
Saved copy
Summary Add Mesh support for `topwit.bhf_light.rzw76` (`pdid: 26045`). ## Added entities - `light` - `status` - `temperature` - `heat_low` - `blow` - `ventilation` - `heat_high` - `child_lock_status` - `ventilation_delay` - `stop_working` ## Mapping reference Official MIoT spec: https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:bath-heater:0000A028:topwit-rzw76:1:0000C82C mijia Products wiki https://mijia.wiki/products/topwit.bhf_light.rzw76 ## Validation - Already tested on the device

Excerpt saved from GitHub on 2026-10-23.

PR #1721 · 2026-04
Xiaomi double wall buttonWorksSupport added
Saved copy
Add support for panasonic ceiling fan light. Model: pmfbj.light.lz8321. Add support for Xiaomi Smart Wall Outlet XMZNCZ02LM. Add support for Xiaomi double wall button. Model: xiaomi.remote.mcn002

Excerpt saved from GitHub on 2026-10-23.

PR #1615 · 2025-06
Xiaomi Flood Sensor oh83wWorks LocalFixed after report: old gateway firmware handled in v4.2.0
Saved copy
Device: xiaomi.flood.oh83w Gateway: ZNDMWG03LM, ZNDMWG02LM, YTC4044GL, lumi.gateway.mgl03 by Xiaomi Firmware: 1.5.0_0102 XiaomiGateway3: Version 4.1.4 + latest devices.py This version of devices.py has support for xiaomi.flood.oh83w and the device appears in Home Assistant, but all sensors state is Unknown. The flood detector device is working ok when checking using xiaomi mobile app. I added many new type of Xiaomi sensors today without any problem in others sensors than this one.

Excerpt saved from GitHub on 2026-10-23.

Issue #1712 · 2026-02
Xiaomi Safe Box MCN003WorksSupport added
Saved copy
Summary This PR adds support for the Xiaomi Safe Box (MCN003) to xiaomigateway3. The device model is MCN003, and the MIOT ID is 12229. Supported Features Device recognition and entity mapping Safe box status monitoring Lock status detection Battery status reporting Alarm status reporting Event notification support

Excerpt saved from GitHub on 2026-10-23.

PR #1747 · 2026-08
Xiaomi Smart Wall Outlet XMZNCZ02LMWorksSupport added
Saved copy
Add support for panasonic ceiling fan light. Model: pmfbj.light.lz8321. Add support for Xiaomi Smart Wall Outlet XMZNCZ02LM. Add support for Xiaomi double wall button. Model: xiaomi.remote.mcn002

Excerpt saved from GitHub on 2026-10-23.

PR #1615 · 2025-06
Zjdh curtain xj002WorksSupport added
Saved copy
Hi. This PR includes: - Add support for giot.plug.v6shsm - Add support for zjdh.curtain.xj002 - Add support for series of GranwinIoT wireless switches (giot.remote.v51kwm, giot.remote.v52kwm, giot.remote.v53kwm, giot.remote.v54kwm and giot.remote.v56kwm) - Change string to enum (BUTTON_4_DOUBLE) for giot.remote.v58kwm

Excerpt saved from GitHub on 2026-10-23.

PR #1518 · 2024-12
Linptech Smart Curtain MotorPartly works LocalBroken in Home
Cannot control from Home app unless exposed as garage door or gate
Controls broke in HomeKit Bridge after 2024.10.3; works in HA; custom converter was wrong
Saved copy
Start from device diagnostics. I have no idea what device you talking about. > 10807: ["Linptech", "Linp Smart Curtain Motor", "linp.curtain.c2"], "spec": [ MapConv("motor", "cover", mi="2.p.1", map={0: "stop", 1: "open", 2: "close"}), CurtainPosConv("position", mi="2.p.2"), MathConv("target-position", "number", mi="2.p.2", min=0, max=100, entity=ENTITY_CONFIG), BaseConv("target_position", mi="2.p.3"), BaseConv("motor_reverse", "switch", mi="2.p.4"), MapConv("mode", "select", mi="2.p.5", map={0: "default", 1: "doublmode", 2: "leftmode", 3: "rightmode"}), ],

Excerpt saved from GitHub on 2026-10-23.

Issue #1485 · 2024-11
Xiaomi Light Sensor GZCGQ01LMPartly works LocalWorks on gateway but one user saw lux values differing from cloud
Saved copy
the Light Sensor GZCGQ01LM works with Gateway DMWG03LM Firmware 1.0.6_0016. It reports lux and update is all working. But I notice that the value is off. This is local value it reports from Xiaomi Gateway 3 Integration. This is cloud value it reports from Xiaomi Miot Auto and Mi home app. This is accurate. The shape is good so I downloaded the values and run regressions on both data. It's roughly a nature log curve. Not sure if it's a bug or just me. I tried to delete everything and add them back. It's the same. Technically it still could work with Template conversion.

Excerpt saved from GitHub on 2026-10-23.

Issue #1419 · 2024-08
XiaomiGateway3 lights and switchesNot workingBroken in Home
Accessory creation failed for lights and switches
Custom integration entities failed to create HomeKit accessory
Saved copy
The model needs to be cast to a string here: https://github.com/AlexxIT/XiaomiGateway3/blob/master/custom_components/xiaomi_gateway3/core/helpers.py Please open an issue on the component. Sent from my iPhone > On Sep 2, 2021, at 2:58 PM, Quan *@*.*> wrote: > >  > XiaomiGateway3 > https://github.com/AlexxIT/XiaomiGateway3 > > >, > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe.

Excerpt saved from GitHub on 2026-10-23.

Issue #55560 · 2021-09
EraClean deodorizerWon’t be supported LocalOnly online status; device works via direct Bluetooth, not gateway
Saved copy
Hi! Your integration got partial support for device only connected status. can you add full support of era.airp.cwb03 ? https://home.miot-spec.com/spec/era.airp.cwb03 i found Esphome component for other model if it helps https://github.com/dentra/esphome-components/tree/master/components/miot_cwbs01

Excerpt saved from GitHub on 2026-10-23.

Issue #1438 · 2024-09

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 push

Talks to the device on your network, and the device tells Home Assistant the moment something changes.

Details

Installs (analytics)3,250 (0.46%)
GitHub stars2,800
Latest versionv4.3.0 (2026-10-15)
Set up in the UIYes
Maintainers@AlexxIT
LicenseMIT

Devices listed in its README

  • Support Xiaomi/Aqara Zigbee devices simultaneously in Mi Home and Hass
  • Support some Zigbee devices from other brands only in Hass
  • Support for Zigbee devices of hundreds of brands only in Hass (read more)
  • Support for Zigbee devices of hundreds of brands in MQTT (read more)

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.

ForkStarsLast pushDescription
zvldz/XiaomiGateway3★ 142022-12-12Control Zigbee, BLE and Mesh devices from Home Assistant with Xiaomi Gateway 3 (ZNDMWG03LM) on original firmware
niceboygithub/XiaomiGateway3★ 42026-09-23Control Zigbee, BLE and Mesh devices from Home Assistant with Xiaomi Gateway 3 (ZNDMWG03LM) on original firmware

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.