Aqara Smart Plug EU (SP-EUC01): Local Setup in Home Assistant
This post contains affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.
The Amazon listing for the Aqara Smart Plug EU says “REQUIRES AQARA HUB.” That’s misleading. It means the plug requires a Zigbee coordinator — a hub — but it doesn’t have to be Aqara’s hub. Pair it to a coordinator running Zigbee2MQTT and the Aqara hub requirement drops away entirely. Nothing routes through Aqara’s servers, nothing registers with the Aqara Home app, and you get energy monitoring data straight into Home Assistant’s Energy Dashboard.
This guide covers exactly that: pairing the SP-EUC01 to Zigbee2MQTT, getting its six sensor entities into Home Assistant, configuring the Energy Dashboard, building a practical local automation, and dealing with the firmware v42 toggle bug that trips up people who have IKEA buttons on the same Zigbee mesh.
What the SP-EUC01 does — and why it works without the Aqara hub
The SP-EUC01 is a Type F (Schuko) smart plug rated to 10A / 2300W. It runs Zigbee 3.0. Any Zigbee 3.0 coordinator will pair with it directly.
When paired to Zigbee2MQTT, it exposes six categories of data:
- switch — on/off/toggle control
- power — instantaneous watts (updates on change)
- energy — cumulative kilowatt-hours since last counter reset
- voltage — volts
- current — amps
- device_temperature — the plug’s internal temperature, polled every 30 minutes
The Aqara app and hub aren’t part of this picture. The plug doesn’t phone home to Aqara’s servers when you control it via Z2M — the MQTT message goes from Home Assistant to your Zigbee coordinator to the plug, and back. The “Aqara hub required” language on the Amazon listing refers to the hub-based pairing path for people who want to use the Aqara Home app. If you’re using Zigbee2MQTT, you’re taking a different path entirely.
One bonus that’s easy to miss: the SP-EUC01 acts as a Zigbee router when plugged in. Because it’s mains-powered and always on, it extends your Zigbee mesh. If you have battery-powered sensors at the edges of your mesh that occasionally drop, a SP-EUC01 somewhere in between can improve their reliability. See the temperature/humidity sensor T1 setup for an example of a sensor that benefits from a stronger mesh.
Prerequisites
- Home Assistant with the Zigbee2MQTT add-on installed and running
- A Zigbee coordinator — CC2652P-based sticks (SONOFF Zigbee 3.0 USB Dongle Plus, Electrolama zzh!, etc.), a SkyConnect, ConBee II, or any other coordinator Z2M supports. The SP-EUC01 is Zigbee 3.0; you don’t need anything special.
- Mosquitto broker configured and connected to Z2M
This guide picks up from a working Z2M installation. If you’re starting from scratch, the door/window sensor T1 guide covers the basics of getting the Z2M add-on running in the context of an Aqara device setup.
Before you start: if your Zigbee coordinator is plugged directly into a USB 3.0 port on your server, move it to a USB 2.0 extension cable. USB 3.0 controllers radiate interference across the 2.4 GHz band and cause pairing failures and intermittent dropouts on all Zigbee devices — not just plugs.
Pairing the SP-EUC01 to Zigbee2MQTT
Unlike battery-powered Aqara sensors, the SP-EUC01 is mains-powered. It doesn’t sleep, so you don’t need to keep tapping the button throughout the pairing process. This makes it straightforward:
- Plug the SP-EUC01 into a mains socket. The LED will briefly flash.
- Open the Zigbee2MQTT frontend and click Permit join (All).
- Hold the button on the side of the plug for approximately 5 seconds until the blue LED starts blinking rapidly. This puts it into pairing mode (or factory-resets it if it was previously paired).
- Watch the Z2M log. The coordinator will run through the device interview — you’ll see cluster negotiation in the log. When the interview finishes, the device appears in your Z2M devices list.
- Assign a friendly name (e.g.,
washing_machineordesk_lamp). Home Assistant will auto-discover entities if MQTT discovery is enabled in your Z2Mconfiguration.yaml(homeassistant: true).
That’s it. No Aqara account, no scanning a QR code in an app, no cloud activation step.
If pairing doesn’t complete: confirm that permit join is still active (it times out after 254 seconds — the Zigbee spec maximum). Hold the button again to restart the pairing attempt.
Entities in Home Assistant
After pairing, the following entities appear in Home Assistant under the device:
| Entity | Type | Notes |
|---|---|---|
switch |
Switch | On/off/toggle control |
power |
Sensor (W) | Instantaneous; updates on change |
energy |
Sensor (kWh) | Cumulative since last reset |
voltage |
Sensor (V) | Mains voltage |
current |
Sensor (A) | Instantaneous |
device_temperature |
Sensor (°C) | Polled every 30 minutes |
The entities are all local — no cloud dependency. Controlling the switch from an HA automation runs entirely over MQTT between HA and your coordinator.
Setting up the Energy Dashboard
Home Assistant’s Energy Dashboard tracks household electricity consumption over time. The SP-EUC01 integrates neatly with it, but you need to use the right entity.
Use the energy entity (kWh), not the power entity (W).
The energy entity is cumulative kilowatt-hours — the running total since the counter was last reset. This is what the Energy Dashboard expects under “Individual devices.” The power entity reports instantaneous watts and isn’t appropriate for the Energy Dashboard, though it’s useful for automations.
To add the plug to the Energy Dashboard:
- Go to Settings → Dashboards → Energy in Home Assistant.
- Under Individual devices, click Add device.
- Search for the entity named something like
sensor.washing_machine_energyand select it. - Save and give the dashboard a few hours to accumulate data.
Calibration options: the SP-EUC01 supports percentual calibration offsets for energy, voltage, and current measurements. These are configurable from the device settings panel in the Z2M frontend. Calibration applies to the next device report — changes don’t take effect on any value already in flight. Precision (decimal places) is also configurable, but you can only reduce precision, not increase it beyond the device’s native output.
If your energy readings look slightly off against a reference meter, the calibration offsets are the right place to adjust. For most installations the defaults are accurate enough.
Resetting the energy counter: the SP-EUC01 accumulates energy indefinitely, and resetting it is one of the more awkward parts of working with this plug. Unlike Tuya smart plugs, the SP-EUC01 does not accept a simple {"reset": ""} or {"reset_energy": true} MQTT payload — those commands are silently ignored.
The working procedure uses the Z2M developer console:
- Open the Zigbee2MQTT frontend and go to the SP-EUC01’s device page.
- Click the Dev console tab.
- Set: Endpoint
1, ClustergenBasic(0x0000), Command0(Reset to factory defaults). Send. - Wait up to 2 minutes for the reset to propagate; the
energyentity will return to 0.
Note that this is the cluster 0x0000 “Reset to factory defaults” command. It clears the energy counter without un-pairing the device from your mesh. You can wrap this in an HA script if you want a one-click reset from the dashboard, but there’s no built-in button for it in the entity UI.
A practical local automation: laundry done notification
This is one of the most common uses for a smart plug with power monitoring. The SP-EUC01 sits on a washing machine outlet. When the machine finishes and its power draw drops back to idle, HA sends a notification. No cloud, no integration with the washing machine itself — just local power monitoring.
alias: Laundry done notification
trigger:
- platform: numeric_state
entity_id: sensor.washing_machine_power
below: 5
for: "0:02:00"
condition:
- condition: state
entity_id: input_boolean.washing_machine_running
state: "on"
action:
- service: notify.mobile_app_your_phone
data:
message: "Laundry is done"
title: "Washing machine"
- service: input_boolean.turn_off
target:
entity_id: input_boolean.washing_machine_running
mode: single
The logic: when the washing machine’s power draw has been below 5W continuously for 2 minutes, it’s done. Washing machines typically draw 100W or more during a cycle and spike much higher during heating; the idle draw is near zero.
You’ll want a paired automation that flips input_boolean.washing_machine_running to on when power exceeds ~100W for 5 minutes — that prevents the “laundry done” notification from firing when the machine has just been sitting idle. The Z2M entities for this pattern are all in place; the boolean lives entirely in Home Assistant. The water leak sensor guide covers a related pattern: combining a leak sensor with a smart plug to cut power to an appliance when a leak is detected under it.
The firmware v42 toggle bug — and how to avoid it
This is the most common issue people run into with the SP-EUC01 on a mixed Zigbee mesh. After an OTA firmware update to v42, the plug can spontaneously toggle when certain Zigbee switches — documented cases involve the IKEA E1812 (shortcut button) and E1743 (on/off switch) — route their traffic through the plug as a mesh hop.
The underlying issue is in how the SP-EUC01’s v42 firmware handles routing. When an IKEA button’s Zigbee frames pass through the SP-EUC01 as a router, the plug misinterprets part of the routing traffic as a toggle command intended for itself. The result is the plug switching state at random.
Workaround options:
- Downgrade to firmware v32. This requires a modified firmware file to bypass Aqara’s downgrade restriction. The full procedure is documented in Zigbee2MQTT issue #13903, where the affected community first reported and worked through the bug.
- Avoid OTA updates until the firmware situation is resolved. If your SP-EUC01 is currently on v32 or earlier, leave it. The OTA update from Z2M is not automatic unless you’ve enabled it; Z2M prompts you, and you can decline.
- Remove the IKEA devices from your mesh, or change their routing path. If the IKEA devices aren’t routing through the SP-EUC01, the bug doesn’t trigger. This is harder to control in a large mesh where Zigbee picks its own routes.
A newer firmware build dated 07-19-2024 exists, but community testing has documented separate “auto off” misbehavior on that build — see Zigbee2MQTT discussion #26644. Whether the v42 toggle behavior is resolved is not cleanly separable from these reports. Check the linked threads for the latest status before applying any OTA updates.
The practical takeaway: if you don’t have IKEA Zigbee switches on your mesh, the toggle bug is unlikely to affect you. If you do, defer OTA updates until the situation is confirmed resolved.
Overload protection
The SP-EUC01 supports configurable overload protection via Z2M. The valid range is 100W to 2300W (the plug’s rated maximum is 10A / 2300W). If power draw exceeds the configured threshold, the plug cuts power to the load.
The default protection threshold is 2300W — effectively no protection below the hardware limit. For typical applications (charging a phone, running a desk lamp, monitoring a washing machine) this is fine. For appliances that can push close to the rated limit, consider setting a lower threshold with a margin.
High-draw appliances like dishwashers at full heating capacity, electric kettles, and some washing machine models with in-drum heating can approach or briefly exceed 2300W. The SP-EUC01 is not a safe choice for monitoring a 2400W kettle on a continuous basis — the margin is too thin. For lower-draw appliances there’s plenty of headroom.
Overload protection is configurable from the device settings panel in Z2M or via MQTT set commands.
Quick spec summary
| Specification | Value |
|---|---|
| Zigbee standard | Zigbee 3.0 |
| Max load | 10A / 2300W |
| Plug type | Type F (Schuko, EU) |
| Energy monitoring | Yes (W, kWh, V, A) |
| Zigbee router | Yes (mains-powered, always on) |
| Aqara hub required | No (with Zigbee2MQTT) |
| OTA firmware updates | Via Z2M |
| Calibration offsets | Yes (energy, voltage, current) |
Common questions
Does the Aqara smart plug work without the Aqara hub?
Yes, when paired to Zigbee2MQTT. The “REQUIRES AQARA HUB” label on the Amazon listing describes the Aqara Home app path. Zigbee2MQTT is a separate path that bypasses the Aqara ecosystem entirely. The plug has no hardware dependency on Aqara’s hub — it’s standard Zigbee 3.0. The Aqara Hub M2 guide covers what the Aqara hub path looks like for comparison.
How do I add the SP-EUC01 to the Home Assistant Energy Dashboard?
Add the energy entity (the kWh sensor, not the power/watts sensor) under “Individual devices” in Settings → Dashboards → Energy. The watts entity is for automations; the kWh entity is for the dashboard.
Why does my Aqara smart plug turn on by itself?
If you’ve recently applied an OTA firmware update, this is likely the v42 toggle bug described above. The most common trigger is having IKEA Zigbee switches (E1812 or E1743) on the same mesh that route traffic through the plug. Check your Z2M firmware version and review GitHub issue #13903 for the current recommended fix.
Can I use the Aqara smart plug as a Zigbee repeater?
Yes. Because it’s mains-powered and always on, the SP-EUC01 automatically acts as a Zigbee router. Battery-powered devices that would otherwise reach their coordinator over a long hop can route through the plug instead, which generally improves reliability. You don’t need to configure anything — this is automatic.
How do I reset the energy counter on the SP-EUC01?
Use the Zigbee2MQTT developer console: on the device page, send Cluster 0x0000, Command 0 (Reset to factory defaults), Endpoint 1. The {"reset_energy": true} payload that works on some Tuya plugs is silently ignored by the SP-EUC01.
No hub, no Aqara account, no cloud dependency. Plug it in, pair it, and within a few minutes you have a fully local switch with energy monitoring feeding Home Assistant’s Energy Dashboard. The firmware toggle bug is real but avoidable: skip OTA updates if you have IKEA Zigbee buttons on your mesh, or stay on firmware v32 until the community confirms a clean fix. For everything else, the SP-EUC01 is one of the more capable plugs you can get for a local Zigbee setup.


