[ST Edge] Aqara H2 Wall Outlet EU / WP-P01D / `lumi.plug.aeu001` Zigbee Driver

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:

  • switch
  • powerMeter
  • energyMeter
  • voltageMeasurement
  • currentMeasurement
  • temperatureMeasurement
  • refresh
  • healthCheck

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:

  1. Endpoint 21 / AnalogInput.PresentValue
    Preferred instantaneous power path.

  2. ElectricalMeasurement.ActivePower
    Fallback if the AnalogInput value is stale.

  3. 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 0xFCC0 preference 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

  1. Open the driver channel invitation link.
  2. Sign in with your Samsung account.
  3. Accept the invitation.
  4. Enroll the SmartThings Hub that should receive the driver.
  5. Under Available Drivers, install the Aqara H2 Wall Outlet EU driver.
  6. Remove the outlet from SmartThings if it was previously paired with another driver.
  7. Factory-reset the outlet.
  8. 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 0xFCC0 read/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:


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.

8 Likes