I have been working on a dedicated SmartThings Edge driver for the Aqara Smart Wall Outlet H2 EU, also known as:
Retail model: WP-P01D
Zigbee model: lumi.plug.aeu001
Manufacturer: Aqara / LUMI
At first glance, this is probably one of the least exciting Smart Home devices imaginable.
It is a wall outlet.
It sits in the wall, looks like a wall outlet, and if everything goes well, it provides power like a wall outlet.
So why does it need a dedicated SmartThings Edge driver?
Because this particular wall outlet is much more interesting than it looks.
The Aqara H2 Wall Outlet EU is not just a simple Zigbee plug with on/off control. It exposes metering, protection features, power-on behavior, LED control, button lock, charging protection, overload protection, and several device-specific values through a mixture of standard Zigbee clusters, non-obvious endpoints, and Aqara manufacturer-specific data.
A generic SmartThings driver may recognize it as some kind of Zigbee power/meter device, but it does not understand the full device model.
This driver is intended to fix that.
Supported device
Confirmed target
Manufacturer: Aqara / LUMI
Model: lumi.plug.aeu001
Retail model: WP-P01D
Device: Aqara Smart Wall Outlet H2 EU
This driver is intentionally focused on this one device.
It is not a generic Zigbee plug driver, and it is not part of the Aqara H2 Wall Switch driver. The outlet shares some technical patterns with the H2 wall switches, but it is a different device class and deserves a clean, separate implementation.
Why this driver exists
The Aqara H2 Wall Outlet EU has an unusual internal structure.
The important part is that it is not a simple single-endpoint plug.
The device uses multiple endpoints:
Endpoint 1 -> metering, electrical measurement, temperature, Aqara settings
Endpoint 2 -> actual controllable outlet switch
Endpoint 21 -> preferred instantaneous power path via AnalogInput
That matters a lot.
A generic driver can easily pick up the wrong part of the device. In practice, this can lead to limited functionality, duplicate or confusing switch behavior, missing preferences, missing metering values, or incomplete SmartThings UI representation.
This dedicated driver handles the outlet as a device-specific Aqara implementation instead of treating it as a generic Zigbee meter.
What this driver supports
The driver exposes the outlet as a SmartThings device with:
switchpowerMeterenergyMetervoltageMeasurementcurrentMeasurementtemperatureMeasurementrefreshhealthCheck
The current implementation supports:
- outlet on/off control
- live power reporting in W
- accumulated energy reporting in kWh
- voltage reporting where provided by the device
- current reporting where provided by the device
- device temperature where provided by the device
- LED indicator control
- physical button lock
- power-on behavior after power loss
- charging protection
- charging protection limit
- overload protection
The driver also includes defensive parsing for Aqara/Xiaomi aggregate reports, because some of the useful values are not always exposed through the obvious standard Zigbee attributes.
Confirmed behavior from testing
External testing confirmed the core behavior:
- the driver is selected automatically
- the outlet can be switched on and off
- connected devices receive power
- live power reporting works
- energy metering works
- LED indicator control works
- button lock works
The more advanced measurement values, especially voltage, current, and device temperature, required additional Aqara/Xiaomi aggregate parsing and are handled defensively in the current release.
Preferences exposed by the driver
The driver exposes several Aqara-specific settings directly as SmartThings preferences.
LED indicator
Controls the outletβs LED indicator.
Useful if the outlet is installed somewhere where a status LED would be annoying at night.
Button lock
Locks the physical button on the outlet.
This is useful when the outlet should not be switched manually by accident, especially if automations depend on the device state.
Power-on behavior
Controls how the outlet behaves after power is restored.
Available options:
- on
- off
- previous
- inverted
This is important for fixed installations, where an unexpected state after a power outage can be undesirable.
Charging protection
Enables Aqaraβs charging protection behavior.
This can be useful for devices that should not remain powered indefinitely after charging or after the load drops below a certain threshold.
Charging protection limit
Sets the low-power threshold used by the charging protection feature.
Overload protection
Sets the overload protection threshold.
This is one of the features that makes the outlet more than a basic on/off plug.
Example SmartThings routines
Because this device provides power and energy data, it can be used for more than simple switching.
Examples:
Device finished detection
If power drops below 5 W for several minutes:
-> Send notification
-> Optional: turn outlet off
Useful for appliances such as washing machines, chargers, dehumidifiers, or other devices where the load pattern indicates whether the device is active.
Automatic safety shutoff
If power is above a chosen threshold for too long:
-> Turn outlet off
-> Send notification
Standby control
If nobody is home:
-> Turn selected outlets off
Power-loss behavior
After power returns:
-> Restore previous outlet state
The exact automation possibilities depend on how the connected device behaves, but the combination of switch control and metering makes the outlet useful in many practical SmartThings routines.
Technical implementation
This driver is built around the deviceβs actual Zigbee structure.
Endpoint model
Endpoint 1:
Basic
OnOff
SimpleMetering
ElectricalMeasurement
TemperatureMeasurement
Aqara manufacturer cluster 0xFCC0
Endpoint 2:
OnOff
Actual outlet control
Endpoint 21:
AnalogInput
Preferred instantaneous power reporting
The key point is that endpoint 2 is used as the primary control endpoint.
Endpoint 1 is still important for metering, electrical data, Aqara-specific settings, and fallback behavior.
Endpoint 21 is used as the preferred instantaneous power source.
Aqara manufacturer-specific cluster
The interesting device-specific settings live in Aqaraβs manufacturer-specific cluster:
Cluster: 0xFCC0
Manufacturer code: 0x115F
The driver uses this cluster for:
| Feature | Attribute |
|---|---|
| Button lock | 0x0200 |
| Charging protection | 0x0202 |
| LED indicator | 0x0203 |
| Charging protection limit | 0x0206 |
| Overload protection | 0x020B |
| Power-on behavior | 0x0517 |
This is the part a generic SmartThings driver does not normally expose.
Power and metering logic
The outlet reports power through more than one possible path.
The driver uses the following priority:
-
Endpoint 21 / AnalogInput.PresentValue
Preferred instantaneous power path. -
ElectricalMeasurement.ActivePower
Fallback if the AnalogInput value is stale. -
SimpleMetering.CurrentSummationDelivered
Used for accumulated energy.
The driver also reads and stores the relevant multipliers and divisors so the values can be converted into normal SmartThings units.
Aqara/Xiaomi aggregate parsing
Some values are not reliably available through the most obvious standard Zigbee reads.
For this device family, useful values may arrive through Aqara/Xiaomi aggregate attributes such as:
0x00F7
0xFF01
The driver includes a defensive parser for these reports.
It can extract known values such as:
- device temperature
- voltage
- current
- power
while ignoring or safely skipping unknown fixed-size values.
This part of the driver is intentionally defensive. Aqara/Xiaomi aggregate payloads can vary between devices and firmware versions, so the parser avoids assuming too much and does not let one unexpected value corrupt the rest of the packet.
What is not exposed yet
The driver intentionally keeps a few things conservative.
Power outage count
The device can expose a power outage count in some integrations, but SmartThings does not have a clean stock capability for this value.
For now, this is not surfaced as a user-facing capability.
OTA updates
OTA handling is not implemented in this custom driver.
Custom diagnostic capabilities
The driver currently focuses on useful SmartThings stock capabilities and preferences.
Custom capabilities may be added later if there is a clear benefit, but I prefer not to add extra UI surface unless it is really useful.
Differences from a generic SmartThings driver
A generic Zigbee driver may expose only a small subset of the device.
This dedicated driver adds:
- correct endpoint handling
- endpoint 2 outlet control
- endpoint 21 power handling
- Aqara
0xFCC0preference support - overload protection preference
- charging protection preference
- button lock preference
- LED preference
- power-on behavior preference
- defensive aggregate parsing
- cleaner SmartThings profile for this specific outlet
The goal is not to create a broad generic plug driver.
The goal is to support this specific Aqara wall outlet properly.
Installation
- Open the driver channel invitation link.
- Sign in with your Samsung account.
- Accept the invitation.
- Enroll the SmartThings Hub that should receive the driver.
- Under Available Drivers, install the Aqara H2 Wall Outlet EU driver.
- Remove the outlet from SmartThings if it was previously paired with another driver.
- Factory-reset the outlet.
- Pair it again in SmartThings.
If everything matches correctly, the driver should be selected automatically.
If the outlet was previously added with a generic SmartThings driver, a clean remove / reset / re-pair is recommended.
Pairing notes
If the device joins as a generic Zigbee Power / Meter device, make sure:
- the driver is installed on the correct hub,
- the hub has been enrolled in the driver channel,
- the outlet was removed and reset before pairing again,
- the device model is
lumi.plug.aeu001.
The driver includes manufacturer fingerprints for both likely manufacturer strings:
Aqara / lumi.plug.aeu001
LUMI / lumi.plug.aeu001
It also includes a conservative rescue fingerprint to allow driver selection in cases where SmartThings does not match the exact manufacturer string during pairing.
Known limitations
- This driver is specific to the Aqara Smart Wall Outlet H2 EU / WP-P01D.
- It is not intended for other Aqara plugs unless they identify and behave like this model.
- Power outage count is not exposed as a user-facing capability.
- OTA is not implemented - useless with Aqara devices.
- Aggregate parsing is conservative by design.
- Measurement behavior may depend on firmware and reporting behavior.
Driver structure
Going to upload to GitHub later today
The driver is intentionally small and focused:
.
βββ config.yaml
βββ fingerprints.yaml
βββ profiles/
β βββ aqara-h2-wall-outlet-eu.yaml
βββ src/
βββ init.lua
βββ aqara_h2_outlet/
βββ common.lua
File overview
config.yaml
Defines package metadata and Zigbee permission.
fingerprints.yaml
Contains exact manufacturer/model fingerprints and fallback matching.
profiles/aqara-h2-wall-outlet-eu.yaml
Defines the SmartThings profile, capabilities, preferences, and category.
src/init.lua
Creates the Zigbee driver and registers capabilities, lifecycle handlers, capability handlers, and Zigbee handlers.
src/aqara_h2_outlet/common.lua
Contains the device-specific implementation:
- lifecycle handling
- endpoint mapping
- refresh logic
- switch command handling
- Aqara
0xFCC0read/write handling - preference application
- power and energy conversion
- voltage/current handling
- temperature handling
- aggregate parsing
Who should use this driver?
Use this driver if:
- you have the Aqara Smart Wall Outlet H2 EU,
- your device identifies as
lumi.plug.aeu001, - you want more than generic on/off support,
- you want Aqara-specific settings exposed in SmartThings,
- you are comfortable using a community-created Edge driver.
Do not use this driver if:
- you are using a different Aqara plug model,
- you want a broad generic plug driver,
- you prefer to stay on the stock/generic SmartThings driver,
- your automations depend on official SmartThings support only.
Credits and sources
Thanks to the external tester who tested the driver with a real Aqara Smart Wall Outlet H2 EU and provided the feedback that made the final driver possible. The driver was developed without having the physical outlet in hand, so real-device testing was essential, the logcat output for confirming automatic driver selection, outlet control, power reporting, energy metering, LED control, button lock, and the remaining measurement behaviour.
The implementation was also heavily informed by the existing Zigbee ecosystem work around this device and related Aqara/Xiaomi devices:
-
Zigbee2MQTT device page for Aqara WP-P01D
Useful as the main public feature reference for the outlet. It documents the exposed values and settings such as switch state, device temperature, power outage count, power-on behavior, power, energy, voltage, current, overload protection, LED indicator, button lock, charging protection, and charging limit.
Aqara WP-P01D control via MQTT | Zigbee2MQTT -
Aqara Wall Outlet H2 EU product page
Useful for the end-user feature description, especially consumption monitoring, power automation, LED behavior, charging protection, overload protection, and the general product positioning.
https://eu.aqara.com/en-eu/products/aqara-wall-outlet-h2 -
Aqara Wall Outlet H2 EU technical specifications
Useful for the basic device facts: Type F / Schuko outlet, model WP-P01D, 250 V / 16 A rating, Zigbee protocol, dimensions, and operating range.
Wandsteckdose H2 EU Technische Daten - Aqara -
ZHA device support request for
lumi.plug.aeu001
Very useful for understanding why generic support is not enough. The report describes the unusual behavior with multiple switches, endpoint-specific control, delayed power reporting, and missing device-specific entities.
[Device Support Request] Aqara Wall Outlet H2 EU (WP-P01D) Β· Issue #3187 Β· zigpy/zha-device-handlers Β· GitHub -
Public ZHA custom quirk / reference implementation
Useful for the Aqara-specific0xFCC0attribute mapping, including button lock, charging protection, LED indicator, charging limit, overload protection, and power-on behavior.
Custom ZHA quirks for Aqara Wall Outlet H2 EU and Wall Switch H1 EU Β· GitHub -
deCONZ WP-P01D device page
Useful as another public integration reference for the device identity and deCONZ-side support status.
Aqara wall outlet H2 EU (WP-P01D) - deCONZ REST-API -
deCONZ Xiaomi manufacturer-specific cluster notes
Useful background material for Aqara/Xiaomi aggregate attributes such as0x00F7/0xFF01, and for understanding why values like device temperature, voltage, current, power, and power-outage counters may arrive through manufacturer-specific payloads rather than simple standard-cluster reads.
Xiaomi manufacturer specific clusters, attributes and attribute reporting - dresden-elektronik/deconz-rest-plugin GitHub Wiki -
SmartThings Edge driver documentation
Useful for the general driver structure, fingerprints, profiles, lifecycle handlers, and Zigbee driver model used by SmartThings Edge.
Driver Components and Structure | Developer Documentation | SmartThings -
SmartThings Zigbee data type documentation
Useful for handling Zigbee data types, especially integer and floating-point types used by Aqara manufacturer-specific attributes and aggregate payloads.
Zigbee Data Types
Disclaimer
This is a community-created SmartThings Edge driver.
It is not an official SmartThings release and is not maintained, reviewed or supported by SmartThings.
Use it at your own risk, and test automations carefully, especially if they control unattended loads or devices where unexpected switching could matter.




