Passa al contenuto

ACRouter — Controller router solare open source

Router di potenza AC intelligente per la gestione dell'energia solare

OverviewHow It WorksFunzionalitàHardwareModiAvvio rapido

GitHub Releases Platform Framework Licenza

The dashboard: live grid/solar/load power, the divert level, and the mode selector — here exporting 1200 W into the load in AUTO.

The dashboard: live grid/solar/load power, the divert level, and the mode selector — here exporting 1200 W into the load in AUTO.


Cos'è ACRouter?

ACRouter is an open-source controller that automatically redirects excess solar energy to resistive loads (like water heaters) via smooth phase-angle dimming — instead of exporting it to the grid. It maximizes self-consumption of your solar power and reduces electricity costs.

Perché ACRouter?

Problema Soluzione
Excess solar exported to the grid at low rates Reindirizzarlo allo scaldacqua o ad altri carichi
Expensive battery storage Usare l'accumulo termico (scaldacqua) al loro posto
Soluzioni commerciali complesse Semplice, open source, adatto al fai-da-te
Il controllo fisso on/off spreca energia Dimmerizzazione con taglio di fase per un controllo preciso

Comportamento giornaliero tipico di un impianto FV connesso alla rete con carico scaldacqua.

Parametro Senza ACRouter Con ACRouter
Immissione solare diurna Alta Bassa
Tasso di autoconsumo ~40–50 % ~70–85 %
Fonte acqua calda Rete (sera/notte) Surplus solare (giorno)
Batteria necessaria Sì (per accumulo) No
Energy exported/wasted Significativa Minima
Costo energetico totale Più alto Lower (up to ~30% less)

Figures are typical estimates and vary with your installation (PV size, load, tariffs, and usage).


How It Works

A v2.0 system is an ESP32-family host plus smart I2C modules:

plaintext
rbAmp (I2C)  ──▶  sensor_hub  ──▶  RouterController  ──▶  DimmerLink (I2C)  ──▶  load
  measures grid    merges the       decides how much     phase-cut output       (heater)
  (+ solar/load)   sources          to divert (grid→0)    (dimmer id 4)

The rbAmp module measures grid power (and optionally solar/load), the RouterController runs a ~5 Hz balancing loop, and the DimmerLink module drives the load — raising or lowering it so the grid exchange trends to zero. All the surplus is consumed locally instead of exported.


Funzionalità

  • Smart measurement (rbAmp). Clamp-on CT current + line voltage over I2C; self-calibrating, no ADC tuning. Grid / solar / load channels.
  • Smart dimming (DimmerLink). Phase-angle 0–100% on a dedicated controller; zero-cross handled in the module.
  • Seven operating modes for grid-tied, export-protection, off-grid, and manual scenarios.
  • External web app — capability-aware UI (the device redirects to it).
  • REST API + WebSocket, MQTT + Home Assistant auto-discovery, OTA (ESP32 tier).
  • Two targets — ESP32 (full) and low-cost ESP32-C2, with capability-aware feature gating.
  • Configurable & persistent — settings in NVS; configure via web app, REST, MQTT, or serial.
  • Open source.

Hardware

ACRouter v2.0 uses a modular architecture: an ESP32 or ESP32-C2 host plus rbAmp (measurement) and DimmerLink (dimmer) modules sharing one I2C bus.

Part Role
ESP32 / ESP32-C2 host Runs the firmware, control loop, connectivity
rbAmp Grid/solar/load current + line voltage sensing (clamp-on CT)
DimmerLink Phase-cut dimmer driving the resistive load

Minimum build: one host + one rbAmp (with a grid channel) + one DimmerLink. Wiring, addresses, CT models, and pull-ups are covered in the Hardware Guide.

ACRouter is designed to work with modules from rbdimmer.com and open-source DIY hardware.


Modalità operative

Modalità Behavior Ideale per
OFF Dimmer at 0%, no regulation Manutenzione
AUTO Balances P_grid → 0 (consumes all surplus) ⭐ Routing solare standard
ECO Avoids grid import; allows export Export OK, avoid paid import
OFFGRID Runs only on solar; ignores grid Sistemi off-grid
MANUAL Fixed user level Testing / scheduling
BOOST 100% output ⚠️ (high grid draw — don't leave unattended) Fast heating (cheap tariff)
GRID_LIMIT Caps grid draw by current (no export) — advanced, API-only Stay under a supply limit

See Router Modes per i dettagli.


Source Code & Firmware

ACRouter is fully open-source. The firmware, documentation, and build configuration are available on GitHub:

Resource Link
Source code github.com/robotdyn-dimmer/ACRouter
Releases & firmware GitHub Releases
Documentation (GitHub) docs/
Report issues GitHub Issues

Pre-built Firmware (v2.0.0)

Download the zip for your target, flash with esptool — see Compilation & Flashing per i dettagli.

Profile Target Interfaces Download
ESP32 Full ESP32 HTTP + MQTT + OTA + ESP-NOW ACRouter-v2.0.0-esp32-full.zip
C2-HTTP ESP32-C2 HTTP/REST API only ACRouter-v2.0.0-c2-http.zip
C2-MQTT ESP32-C2 Headless MQTT only ACRouter-v2.0.0-c2-mqtt.zip

Each zip contains a 4-file set (bootloader, partition table, OTA data, application) plus flash offset instructions.


Avvio rapido

  1. Flash the firmware for your target/profile (ESP32, C2-HTTP, or C2-MQTT) — see Compilation.
  2. Wire the rbAmp and DimmerLink modules to the host's I2C bus (with pull-ups) — see the Hardware Guide. (If you change the default I2C pins, that setting is applied by a reboot before the modules can be discovered.)
  3. Power on and connect WiFi — the device starts an access point ACRouter_XXXX (e.g. ACRouter_A1B2); join it, open http://192.168.4.1, give it your home WiFi, then open the external web app (or use serial — no WiFi needed).
  4. Commission (in the app or over REST): discover modules (rescan) → assign roles (rbAmp grid channel + CT model; DimmerLink role=dimmer → auto-binds to a dimmer output) → verify the grid sign under a known load.
  5. Select AUTO and start saving energy. (Assigning role=dimmer drives the output live; a one-time reboot may be needed for the dimmer's status/telemetry to appear.)

The full walkthrough is in the Commissioning guide.


Documentazione

Documento Descrizione
📖 Overview Architecture & features
🔧 Hardware Guide Modules, wiring, I2C
🔌 Commissioning First-run bring-up
⚙️ Compilation Targets, profiles, build & flash
🎮 Router Modes Mode details
⌨️ Terminal Commands Serial CLI reference
🌐 Web API GET / POST REST endpoints
📐 Sensor Calibration CT models & rbAmp
📡 MQTT Guide Topics & config-over-MQTT
🏠 Home Assistant MQTT integration
📚 Glossary Terms explained

Safety

⚠️ This project involves mains voltage (110 V / 230 V AC).

  • Installation by a qualified electrician; de-energize before wiring.
  • Proper isolation, fusing, and RCD/GFCI protection; keep low-voltage I2C wiring away from mains.
  • Resistive loads only (heating elements) — not motors, transformers, LED drivers, or electronics.

Cosa ACRouter NON è

  • Not a battery inverter · not a smart plug/relay controller · not a certified grid-protection device · not for inductive or electronic loads.

Contribuire

Contributions welcome — report bugs, suggest features, improve docs, or submit code via pull request on GitHub.


Licenza

ACRouter è software open source. Vedere LICENSE per i dettagli.


Ringraziamenti

  • rbAmp / DimmerLink — smart sensing & dimmer modules (rbdimmer.com)
  • ESP-IDF — Framework di sviluppo IoT di Espressif
  • ArduinoJson — Libreria JSON per sistemi embedded
  • Comunità — Contributori e tester

Fatto con ⚡ per la comunità dell'energia solare

⭐ Metti una stella al progetto🐛 Segnala un problema💬 Discuti