Every surplus watt becomes hot water, route it to your loads.
The router measures the house balance ~5× per second and fills the heater with exactly the power you would have exported. Runs on ESP32, ESP8266 — even a bare Arduino.
Docs · GitHub · Live demo · Discussions · License (open source) · Shop · Contact
Why ACRouter
Class 0.5 metering · 7 control modes · MQTT & Home Assistant · External web UI + OTA · Open‑source firmware
Smooth phase‑angle dimming (0–100%)
rue proportional control instead of relay/burst switching — no rapid import/export cycling that upsets modern smart meters.
Real‑time offloaded to a dedicated Cortex‑M0+ (DimmerLink)
All hard timing lives on the co‑processor, so ACRouter runs on ESP32, ESP8266, or a bare Arduino — no “ESP32 tax”.
Measurement‑grade sensing
rbAmp modules are factory‑calibrated (256‑point LUT) with 5kHz read signal to Class 0.5 on resistive loads — near metering accuracy at a commodity price.
Beyond diverting
Solar balance, Grid‑Limit, off‑grid, tariff/schedule — all in one platform, switched by mode, not by buying another box.
Open-source & updatable
Firmware is open‑source and free; the web dashboard is an external app served from CDN, updated over the air without re‑flashing.
Native MQTT & Home Assistant
Auto‑discovery, plus REST API and serial console.
How it works & Use cases
1
Sense
clip‑on rbAmp CT sensors read power at your grid input (and solar).
2
Decide
ACRouter's PID loop drives your target: zero grid export, consumption under a limit, or a heating schedule.
3
Route
DimmerLink smoothly dims your water heater, floor or space heater to match.
Solar surplus → self‑consumption
Every kilowatt you export is a kilowatt you bought back later. ACRouter watches your grid meter and pushes solar surplus into your heaters instead of the grid — driving export to zero. Typical self‑consumption rises from ~40–50% to ~70–85%, cutting energy cost by roughly 30% — no battery required
In the box - Kit2: rbAmp‑UI2 (voltage + grid & solar current) + DimmerLink & Dimmer 16A/24A/40AMode - AUTO (P_grid → 0), ECO (anti‑export), + Manual / Boost / Off
Sensing - True active power, import/export direction, full solar + grid monitoring, Class 0.5
Best for - PV owners who want zero export and full system analytics

Grid‑Limit → stay under your cap
On a capped tariff, a weak supply, or a generator? ACRouter keeps your grid draw below a set limit by smoothly throttling your heaters — so you never trip the limit or overload the feed. Most diverters can only chase solar surplus; this one actively caps consumption.
In the box - Kit1: rbAmp‑UI1 (voltage + grid current) + DimmerLink & Dimmer 16A/24A/40AMode - LIMIT (hold P_grid ≤ target), ECO, + Manual / Boost / Off
Sensing - True active power on the grid input, Class 0.5
Best for - apped tariffs, limited service, generator‑fed sites
Schedule → heat when it's cheapest
No solar, no sensors — just smart timing. Run your heater at full or reduced power during cheap‑tariff windows and keep it off when energy is expensive. The simplest, lowest‑cost way in.
In the box - Kit0: DimmerLink & Dimmer 16A/24A/40AMode - Schedule, Manual (fixed level), Boost (100%), Off
Best for - Night‑tariff / timed heating, entry‑level setups

Specs & accuracy
Metering
Class 0.5 on resistive loads (PF ≈ 1), factory‑calibrated 256‑point LUT + low‑range gain compensation; system class ~1% with the CT clamp. (12‑bit ADC on the sensing module is the declared class limit.)
Mains
110 / 220 V AC, 50 / 60 Hz (auto‑detected).
Interfaces
HTTP / REST, MQTT, UART/serial, Wi‑Fi AP+STA.
MCUs
ESP32, ESP8266, minimal Arduino build.
Modular hardware
ACRouter is a platform, not a single box — pick the modules your scenario needs and upgrade without replacing the brain.
rbAmp - sensing modules
I (current), UI1 (voltage + 1 current), UI2 (voltage + 2 currents). Factory‑calibrated, Class 0.5 on resistive loads. Dedicated Cortex‑M0 for math & 5kHz sensor reading.
DimmerLink
dedicated Cortex‑M0+ dimmer co‑processor over I²C/UART; offloads all real‑time timing and scales to multiple channels on one bus.
Dimmer
Phase‑angle TRIAC dimming, zero‑cross synchronized.
Relay
ON/OFF switching for non‑dimmable or coarse loads.
FAQ
Yes, 110/220 V at 50/60 Hz, frequency auto‑detected.
Resistive loads for dimming — immersion/water heaters, floor and space heating. ON/OFF relays for non‑dimmable loads.
Phase‑angle dimming is smooth and continuous, avoiding the rapid import/export cycling of relay/burst diverters.
No. Grid‑Limit and Schedule kits work without any generation.
Community & support
Questions, builds and feature ideas live in GitHub Discussions; bugs go to Issues. Contributions welcome — see the contributing guide in the repo.