Home Assistant integration for EcoPlug protocol Wi-Fi outlets, sold under several brand names:
- WiOn (50049, 50050, 50055, etc.)
- Workchoice (e.g. RC-032W)
- Woods
- KAB
These are all the same ESP8266-based outlet running stock EcoPlug firmware. The integration does local LAN discovery and control over UDP — no cloud, no broker, the Eco Plug / WiOn phone app is only needed once for initial Wi-Fi onboarding.
If your plug uses the Smart Life / Tuya app instead, this is not the right integration. Use Home Assistant's first-class Tuya integration for those.
The original gbealmer/pyecoplug integration hasn't been
updated in years and doesn't load on modern HA. This fork:
- ✅ Modernized for Home Assistant 2024+ / Python 3.12+ (
SwitchEntityinstead of the long-removedSwitchDevice, dropped deadATTR_HIDDEN/EVENT_TIME_CHANGEDimports) - ✅ Added required
versionandiot_classtomanifest.json(HA refuses custom integrations without these) - ✅ MAC-based fallback naming — if the plug has no name set in the WiOn app, it now appears as
EcoPlug AA:BB:CCinstead of an emptyswitch.entity that collides with other unnamed plugs - ✅
DeviceInfoso each plug shows up properly under Devices & Services - ✅
hacs.jsonfor HACS custom-repository install - ✅ Improved logging — discovery and add/remove are now visible at INFO
- HACS → ⋮ → Custom repositories → add
https://github.com/itskevinb/hass-ecoplugas type Integration - Search HACS for "EcoPlug" → Download
- Restart Home Assistant
- Add to
configuration.yaml:switch: - platform: ecoplug scan_interval: 10
- Restart Home Assistant again. Plugs on the LAN are auto-discovered as switches.
- Copy
custom_components/ecoplug/into your HA/config/custom_components/ - Add the
switch:block above toconfiguration.yaml - Restart HA
- The plugs and the Home Assistant host must be on the same broadcast domain (same VLAN/subnet).
Discovery is UDP broadcast to
255.255.255.255:5888. UDP broadcasts don't cross VLANs. - The HA host listens on UDP
8900for discovery responses. - If your plugs are on an IoT VLAN and HA isn't on that VLAN, you'll need either: (a) HA running a NIC on the IoT VLAN, or (b) some other way to bridge the broadcasts (e.g. UDM Pro "DHCP Relay" or custom UDP forwarders).
- No energy monitoring, even on plugs that have the chip.
- No HA UI config flow yet — switch is declared in YAML.
- Discovery requires LAN broadcast (see Network requirements above).
- Upstream library
philburr/pyecoplug— reverse-engineered the EcoPlug protocol. gbealmer/pyecoplug— original HAcustom_componentwrapper that this fork builds on.