Se rendre au contenu

ACRouter — Contrôleur de routeur solaire open source

Routeur de puissance AC intelligent pour la gestion de l'énergie solaire

OverviewHow It WorksFonctionnalitésMatérielModesDémarrage rapide

GitHub Releases Platform Framework Licence

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.


Qu'est-ce qu'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.

Pourquoi ACRouter ?

Problème Solution
Excess solar exported to the grid at low rates Le router vers le chauffe-eau ou d'autres charges
Expensive battery storage Utiliser le stockage thermique (chauffe-eau) à la place
Solutions commerciales complexes Simple, open source, accessible au DIY
Le contrôle marche/arrêt fixe gaspille de l'énergie Variation par découpe de phase pour un contrôle précis

Comportement journalier typique d'un système PV connecté au réseau avec charge chauffe-eau.

Paramètre Sans ACRouter Avec ACRouter
Injection solaire en journée Élevée Faible
Taux d'autoconsommation ~40–50 % ~70–85 %
Source d'eau chaude Réseau (soir/nuit) Surplus solaire (journée)
Batterie requise Oui (stockage) Non
Energy exported/wasted Significative Minimale
Coût énergétique total Plus élevé 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.


Fonctionnalités

  • 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.

Matériel

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.


Modes de fonctionnement

Mode Behavior Idéal pour
OFF Dimmer at 0%, no regulation Maintenance
AUTO Balances P_grid → 0 (consumes all surplus) ⭐ Routage solaire standard
ECO Avoids grid import; allows export Export OK, avoid paid import
OFFGRID Runs only on solar; ignores grid Systèmes hors réseau
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 pour les détails.


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 pour les détails.

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.


Démarrage rapide

  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.


Documentation

Document Description
📖 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.

Ce qu'ACRouter n'est pas

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

Contribuer

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


Licence

ACRouter est un logiciel open source. Voir LICENSE pour les détails.


Remerciements

  • rbAmp / DimmerLink — smart sensing & dimmer modules (rbdimmer.com)
  • ESP-IDF — Framework de développement IoT d'Espressif
  • ArduinoJson — Bibliothèque JSON pour systèmes embarqués
  • Communauté — Contributeurs et testeurs

Fait avec ⚡ pour la communauté de l'énergie solaire

⭐ Étoiler ce projet🐛 Signaler un problème💬 Discuter