Running smart bulbs on a no-neutral circuit forces a choice: let the switch cut power (breaking your automations), or wire for constant power and lose physical control. The Aqara H1 no-neutral switch solves this once you enable **decoupled mode**, which separates the physical rocker from the load relay. The switch becomes a trigger-emitter rather than a power gate. Your bulbs stay powered. Your automations keep running. Your physical switch still works.

This guide covers exact steps for both ZHA and Zigbee2MQTT — including single press, double press, and long press actions — all local, no Aqara hub, no cloud.

## Why Decoupled Mode Matters for Smart Bulbs

A standard smart switch does two things when you press it: it sends a state event and it physically switches the relay controlling the load. For a dumb bulb, that’s fine. For a smart bulb, cutting the relay cuts power — the bulb loses its network connection, forgets its state, and can’t respond to automations until someone manually powers it back on.

Decoupled mode disables the automatic relay action. Press the rocker and you get an event, not a relay toggle. Home Assistant receives the button event, runs whatever automation you’ve configured, and your smart bulb never loses power.

This is the correct architecture for any Zigbee or Wi-Fi smart bulb on a no-neutral circuit. Without it, you’re fighting the hardware every time someone uses the physical switch.

**Model numbers (EU SKUs):**
– **WS-EUK01** — single rocker, no neutral, EU
– **WS-EUK02** — double rocker, no neutral, EU

Both share the same Zigbee cluster structure and decoupled mode configuration. If you have a neutral wire, there are separate SKUs — but the ZHA and Z2M configuration steps below apply equally.

## Physical Installation: What You Need to Know

Before pairing anything, the physical installation has constraints you can’t ignore on a no-neutral circuit.

**What you have:** a switch box with only two wires — live and switched-live. No neutral.

**How it works without a neutral:** the H1 draws a tiny parasitic current through the load (your bulb) to power its Zigbee radio. This is normal and expected. Most LED bulbs tolerate it. A few don’t — they flicker at rest or fail to pair. If you see flicker before the switch is paired, the bulb is incompatible with parasitic-draw operation.

**What you’ll need:**
– Aqara H1 WS-EUK01 (or WS-EUK02 for double)
– Smart bulb with constant power (wired line-side, switch relay bypassed or in decoupled mode)
– Zigbee coordinator already running in Home Assistant (USB dongle, Sonoff Zigbee Bridge, etc.)
– ZHA or Zigbee2MQTT already set up and functional

**Wiring for constant power (bulb must always be powered):**

If you want the bulb to have constant power regardless of the switch relay state, you have two options:

1. **Bypass the relay at the fitting** — wire the bulb directly to live/neutral at the ceiling, not through the switch. Run a cable back to a separate smart switch if needed. This is cleanest but requires access to the ceiling fitting.
2. **Use decoupled mode and leave relay state alone** — the relay stays in whatever state you last set it. If it’s ON, bulbs have power. If it ever gets toggled OFF accidentally (firmware restart, pairing reset), you lose power. Most users leave it ON and use decoupled mode only for event generation.

For most no-neutral installations, option 2 — decoupled mode with relay left ON — is the practical choice. The rest of this guide assumes that setup.

## Pairing the H1 Switch with Home Assistant

Both ZHA and Z2M pairing follow the same hardware process.

**Step 1: Put the switch in pairing mode**

With the switch mounted and powered (or held against the wall with wires connected for testing):

1. Press and hold the rocker for 5 seconds until the LED flashes rapidly.
2. Alternatively: use a pin/paperclip to press the reset button on the side of the device for 5 seconds.

The LED will flash to indicate pairing mode active.

**Step 2: Open the pairing wizard in Home Assistant**

– **ZHA:** Settings → Devices & Services → ZHA → Add Device
– **Z2M:** Zigbee2MQTT dashboard → Permit join (All or specific coordinator)

The H1 should appear within 30–60 seconds. If it doesn’t, cycle the switch power or retry the pairing mode process.

**Step 3: Confirm device**

After pairing:
– ZHA will show it as “Aqara WS-EUK01” (or similar)
– Z2M will show the model identifier in the device list

At this point the switch is paired but **not yet in decoupled mode**. Pressing the rocker will toggle the relay. Continue below to fix that.

## Enabling Decoupled Mode in ZHA

ZHA exposes decoupled mode through the Zigbee cluster management interface. It’s not in the standard device settings panel — you have to go one level deeper.

**Steps:**

1. Go to **Settings → Devices & Services → ZHA**
2. Click on your H1 switch device
3. Click **Manage Zigbee Device** (button in the top-right area of the device page)
4. In the cluster list, find and select **OppleSwitchCluster** (cluster ID 64704 / 0xFCC0 — this is an Aqara-proprietary cluster)
5. Locate the attribute **`operation_mode`** (attribute ID `0x0200`)
6. Set value to `0` (event/decoupled mode) — this enables decoupled mode
– `0` = event mode (decoupled) ← set this
– `1` = control relay (default, coupled)
7. Click **Set Value**

> **Note:** Some ZHA versions also require setting the `mode` attribute (ID `0x0009`) to `1` in the same cluster to ensure button-press events are generated. If presses aren’t registering as ZHA events after setting operation_mode, write `1` to attribute `0x0009` as well.

After setting, press the rocker. The relay should not toggle. If you have a multimeter, verify the load stays on. The status LED will still respond — it’s independent of the relay.

**For WS-EUK02 (double rocker):** the device has two endpoints (typically EP1 and EP2). Select the correct endpoint in Manage Zigbee Device before writing the attribute for each rocker — EP1 for the left rocker, EP2 for the right.

## Enabling Decoupled Mode in Zigbee2MQTT

Z2M makes this significantly simpler. The `operation_mode` attribute is exposed directly in the device’s exposes panel.

**Steps:**

1. Open Zigbee2MQTT dashboard
2. Navigate to **Devices** → select your H1 switch
3. Click the **Exposes** tab
4. Find **`operation_mode`** — it will show as a dropdown or toggle
5. Change it from `control_relay` to `decoupled`
6. The change applies immediately; no restart required

That’s it. Z2M handles the cluster write behind the scenes. To set it via MQTT directly:

“`yaml
# Publish to: zigbee2mqtt//set
{
“operation_mode”: “decoupled”
}
“`

Valid values: `”decoupled”` or `”control_relay”`.

The `configuration.yaml` device block doesn’t persist `operation_mode` — it’s set via MQTT and stored by Z2M. Set it once via UI or MQTT publish; it survives restarts.

## Setting Up Single, Double, and Long Press Actions

Once decoupled, the switch emits action events rather than relay toggles.

**ZHA action events:**

Button actions arrive as `zha_event`. The action values for WS-EUK01:

| Physical Action | ZHA Event Value |
|—|—|
| Single press | `single` |
| Double press | `double` |
| Long press | `hold` |

Example automation (ZHA):

“`yaml
alias: H1 Living Room – Single Press Toggle Bulb
trigger:
– platform: event
event_type: zha_event
event_data:
device_ieee: “”
command: “single”
action:
– service: light.toggle
target:
entity_id: light.living_room_bulb
“`

For double press:

“`yaml
alias: H1 Living Room – Double Press Scene
trigger:
– platform: event
event_type: zha_event
event_data:
device_ieee: “”
command: “double”
action:
– service: scene.turn_on
target:
entity_id: scene.living_room_movie
“`

To confirm the exact command strings for your firmware, use Developer Tools → Events → Listen to `zha_event` and press the rocker.

**Zigbee2MQTT action events:**

Actions arrive on the device’s MQTT topic as the `action` attribute.

| Physical Action | Z2M Action Value |
|—|—|
| Single press | `single` |
| Double press | `double` |
| Long press | `hold` |

Z2M exposes these as Home Assistant device triggers automatically via MQTT discovery. Use them directly in the automation UI:

1. Automations → Create Automation
2. Trigger type: **Device**
3. Select your H1 switch
4. Choose action: “Single press”, “Double press”, or “Hold”

Or in YAML via `mqtt` trigger:

“`yaml
alias: H1 Kitchen – Long Press Scene Off
trigger:
– platform: device
domain: mqtt
device_id: “”
type: action
subtype: hold
action:
– service: scene.turn_on
target:
entity_id: scene.kitchen_off
“`

**For WS-EUK02 (double rocker):** each rocker generates separate action events. Based on Z2M device definitions, the format is likely `1_single`, `2_single`, `1_double`, `2_double`, etc. — but confirm against your Z2M exposes tab or ZHA event log, as firmware revisions affect this.

## Recommended Automation Patterns

With decoupled mode and multi-press actions, a single H1 switch can handle several scenarios:

**Single press → toggle main light**
Most common pattern. Toggle whatever bulb is wired to that circuit (now always powered). One press on, one press off.

**Double press → activate scene**
Great for “movie mode”, “morning”, or “all off” scenes. Users naturally discover double-tap after they’ve been using the switch a while.

**Long press → brightness step or all-room off**
Long press pairs well with a brightness step (5–10% up per hold interval) or a global “turn everything off” action. Home Assistant’s `light.turn_on` with `brightness_step_pct` works well here.

**Combined with a related Aqara plug ([Aqara SP-EUC01](/aqara-sp-euc01-zigbee2mqtt-home-assistant/)):**
Use the switch’s double press to toggle a nearby smart plug — useful for lamps that aren’t wired through the switch at all.

**Integration with [Aqara Cube T1 Pro](/aqara-cube-t1-pro-home-assistant-zigbee2mqtt/):**
If you have a Cube in the same room, the switch’s single press can toggle the main light while the Cube handles dimming via rotation. Complementary control without overlap.

## Troubleshooting: Switch Disconnects When Bulb Is Off

This is the most common reported issue with no-neutral H1 deployments.

**Symptom:** Switch becomes unreachable in HA when the smart bulb is off (turned off via HA, not the physical switch).

**Cause:** The switch draws its operating current through the load. In a no-neutral circuit, when the bulb is completely powered off (smart bulb put to sleep or relay opened), the current path is interrupted. The switch loses power, drops from the Zigbee mesh, and HA marks it unavailable.

This only occurs when:
– The bulb’s internal driver fully blocks current when “off” (some do, many don’t)
– The circuit wiring doesn’t provide any alternative return path

**Fixes:**

1. **Use decoupled mode** (which you’re already doing) and never turn the bulb’s power off — only change its brightness/color/on-off state via Zigbee. The relay stays closed, the bulb stays powered, the switch stays powered.

2. **Add a bypass capacitor/resistor** in parallel with the bulb. Install a small bypass device (Shelly Bypass, Fibaro Bypass 2, or a generic RC snubber) to maintain a trickle current path. This is the hardware fix if the software approach isn’t sufficient.

3. **Run a neutral** — if you have any access to neutral at the fitting, run it back to the switch box. This permanently resolves the parasitic-draw dependency.

If the switch is reporting unavailable intermittently even with decoupled mode and always-on bulb, check whether other Zigbee devices are routing through it — a weak mesh can look like a disconnect issue.

## Blocking Aqara Cloud Access

The H1 is a Zigbee device, not Wi-Fi. It communicates only with your Zigbee coordinator. There’s no direct cloud access from the switch itself.

If you’re running direct-Zigbee (ZHA or Z2M with USB coordinator), there’s no Aqara hub in the loop and therefore no cloud reporting — you’re already cloud-free by architecture.

If you’re evaluating whether to add an Aqara Hub M3 for Matter bridging alongside your direct-Zigbee setup, see the [Aqara Hub M3 local integration guide](/aqara-hub-m3-matter-bridge-home-assistant-local/). The M3 can coexist, but the H1 should remain paired to your ZHA/Z2M coordinator, not the hub, to keep it local.

**Firewall recommendation (belt-and-suspenders):**

If your Zigbee coordinator host (the HA machine) is on a segmented IoT VLAN, block outbound traffic to Aqara’s servers at the VLAN firewall level. Aqara uses `*.aqara.com` and `*.aqara.cn` domains. This doesn’t affect ZHA or Z2M operation, which communicate only on your local Zigbee radio frequency.

For a full [Zigbee2MQTT and Xiaomi/Aqara device isolation approach](/zigbee2mqtt-xiaomi/), the linked guide covers coordinator placement, VLAN segmentation, and blocking Aqara update servers.

The H1 no-neutral switch is one of the better hardware choices for this use case — locally controllable, multi-action capable, and wiring-compatible with no-neutral boxes. Decoupled mode is the one configuration step that unlocks its full value. Set it once in ZHA or Z2M, wire your automations, and the physical switch becomes a proper part of your local stack rather than a liability.