π«π· Version FranΓ§aise | π¬π§ English Version
Ce projet est le routeur principal d'un système de routage photovoltaïque intelligent. Il mesure en temps réel les échanges d'énergie au niveau du compteur électrique (via une sonde SCT013 ou famille Shelly ) et pilote des variateurs AC distants ou directement sur la carte pour maximiser l'autoconsommation solaire.
Le routeur tourne sur un TTGO T-Display (ESP32 avec écran couleur intégré) et offre une interface web complète pour le suivi et la configuration. ( ou un Wemos ESP32 sur la carte dimmer avec un Shelly pour la mesure )
π La documentation complΓ¨te est disponible sur le wiki APPER (en franΓ§ais)
Il s'agit du routeur PV opensource de l'association franΓ§aise APPER. La carte est open source, mais vous pouvez la commander directement auprΓ¨s de l'association. Celle-ci Γ©tant reconnue d'intΓ©rΓͺt gΓ©nΓ©ral au regard de la fiscalitΓ© franΓ§aise, elle gΓ©nΓ¨re un crΓ©dit d'impΓ΄t de 60% pour les particuliers franΓ§ais.
Tout le travail de dΓ©veloppement des cartes et du logiciel est purement bΓ©nΓ©vole. Un petit encouragement fait toujours plaisir :
La carte au format DIN est disponible Γ la commande sur Helloassos (le TTGO et les Γ©lΓ©ments externes ne sont pas fourni ), livrΓ©e avec son support DIN. Frais de port inclus pour les pays europΓ©ens.
- π Mesure en temps rΓ©el du flux d'Γ©nergie (injection / soutirage rΓ©seau)
- ποΈ Pilotage de variateurs AC distants ou locaux (Robotdyn / SSR)
- π₯οΈ Γcran couleur intΓ©grΓ© (TTGO T-Display) avec indicateurs WiFi
- π Interface web complΓ¨te et responsive (dashboard + configuration)
- π IntΓ©gration MQTT, Home Assistant, Jeedom, Domoticz
- π‘ Source d'Γ©nergie externe compatible (Shelly EM, Enphase Envoy)
- π‘οΈ Surveillance de la tempΓ©rature avec sondes Dallas 18B20
- β±οΈ Planificateur horaire (minuteur par charge)
- π MΓ©canismes de sΓ©curitΓ© intΓ©grΓ©s (fusible, sonde tempΓ©rature recommandΓ©e)
- π Mise Γ jour OTA intΓ©grΓ©e
Panneaux solaires
β
βΌ
[Onduleur] βββββββΊ RΓ©seau Γ©lectrique
β
βΌ
[Compteur Linky] ββ[Sonde SCT013 ou Shelly]βββΊ [Routeur PV - TTGO T-Display]
β
ββββββββββββββ΄βββββββββββββ
βΌ βΌ
[Variateur distant] [Relais locaux]
(PV-Dimmer ESP8266/ESP32) (Ballon ECS, chauffageβ¦)
Le routeur analyse la direction du courant au compteur :
- Injection (nΓ©gatif) β surplus solaire β augmentation progressive de la charge
- Soutirage (positif) β consommation rΓ©seau β rΓ©duction de la charge
L'objectif : maintenir un Γ©change rΓ©seau proche de 0 W en permanence pour maximiser l'autoconsommation.
Avant de raccorder la carte au rΓ©seau Γ©lectrique, respectez les normes Γ©lectriques locales :
- Utilisez des cΓ’bles correctement isolΓ©s pour Γ©viter les courts-circuits.
- Installez des protections (disjoncteur 2A minimum).
- En cas de doute, faites appel Γ un professionnel qualifiΓ©.
- Utilisez toujours des sondes Dallas pour surveiller les tempΓ©ratures.
Depuis un navigateur compatible (Chrome ou Edge) :
- Rendez-vous sur https://ota.apper-solaire.org/ota.php
- SΓ©lectionnez le port sΓ©rie auquel le TTGO est connectΓ©
- Choisissez "INSTALL PV ROUTER TTGO" ou une autre version selon votre carte
- Validez le message d'installation β le programme est chargΓ© automatiquement
- Versions officielles disponibles sur : GitHub Releases
- Mise Γ jour OTA directement depuis la page
/updatede l'interface web du routeur
Après le flash, ouvrez la console série ("Log & Console") et saisissez :
pass votre_mot_de_passe_wifi
ssid votre_ssid_wifi
reboot
L'Γ©cran TTGO affiche l'IP et le niveau de signal WiFi (en haut Γ droite) :
- π‘ Jaune : > -64 dBm (bon)
- π Orange : > -70 dBm (moyen)
- π΄ Rouge : > -80 dBm (faible)
Connectez-vous au point d'accès WiFi du routeur et configurez votre réseau via l'interface captive.
Connectez-vous Γ l'IP affichΓ©e sur l'Γ©cran TTGO depuis votre navigateur.
Vous y trouvez :
- Sigma (W) : puissance Γ©changΓ©e avec le rΓ©seau
- Dimmers (%) : puissance envoyΓ©e aux variateurs
- TempΓ©rature (Β°C) : sonde du 1er variateur ou sonde locale
- Γtat : Stable / Injection / RΓ©seau
- Bouton ON/OFF OLED : commande de l'Γ©cran (timer configurable)
Accessible via le menu "Configuration"
(SchΓ©ma rΓ©alisΓ© par Titi)
La carte dispose d'une protection intégrée (fusible verre 0,15A ou automatique), mais il est recommandé de la placer derrière un disjoncteur 2A.
Installez la carte dans le tableau Γ©lectrique et connectez la sonde SCT013 sur la phase de sortie du compteur Linky (entre le Linky et le tableau).
En plus de la sonde SCT013, connectez le variateur Dimmer Γ l'emplacement prΓ©vu sur la carte. Une sonde Dallas 18B20 est fortement recommandΓ©e pour Γ©viter toute surchauffe.
Il est conseillΓ© d'alimenter le Robotdyn en aval des rΓ©sistances du ballon pour une double sΓ©curitΓ© thermique.
- Sur les ballons en stΓ©atite : n'utilisez qu'une seule rΓ©sistance pour une rΓ©gulation plus fine et moins de perturbations rΓ©seau.
- Prenez le plus grand variateur Robotdyn (20A) ou un SSR Random 40A minimum.
- En cas de puissance Γ©levΓ©e, ventilez le dissipateur thermique du variateur (triac).
| Endpoint | MΓ©thode | Description |
|---|---|---|
/state |
GET | Γtat courant (JSON) |
/stateshort |
GET | Γtat abrΓ©gΓ© (JSON) |
/statefull |
GET | Γtat complet (JSON) |
/config |
GET | Configuration (JSON) |
/ping |
GET | Test de connectivitΓ© |
| Endpoint | Description |
|---|---|
/reboot |
RedΓ©marrage |
/boost |
Mode boost 2h |
/resetdallas |
RΓ©initialisation sonde Dallas |
| Paramètre | Description |
|---|---|
?cycle=X |
Cycle de mesure |
?delta=X |
Seuil puissance positive |
?deltaneg=X |
Seuil puissance nΓ©gative |
?tmax=X |
TempΓ©rature maximale |
?voltage=X |
Tension rΓ©seau |
?cosphi=X |
Facteur de puissance |
?offset=X |
Offset de mesure |
?ssid=X |
SSID WiFi |
?pass=X |
Mot de passe WiFi |
?save=1 |
Sauvegarde en flash |
?relay1=0/1/2: OFF / ON / Toggle relais 1?relay2=0/1/2: OFF / ON / Toggle relais 2
GET /getminuteur?dimmer: Lecture minuteur variateurANY /setminuteur: RΓ©glage (heure_demarrage,heure_arret,temperature,puissance)
| Endpoint | Description |
|---|---|
/getwifi |
Configuration WiFi |
/getenvoy |
DonnΓ©es Enphase Envoy |
/getmqtt |
Configuration MQTT (JSON) |
/log.txt |
Journal système |
/getmemory |
Utilisation mΓ©moire (JSON) |
/cosphi |
Mesure du facteur de puissance |
-
β Pas de connexion WiFi
- VΓ©rifiez les identifiants rΓ©seau
- RedΓ©marrez l'appareil
- VΓ©rifiez le niveau de signal sur l'Γ©cran TTGO
-
π Mesure de puissance incorrecte
- VΓ©rifiez le positionnement de la sonde SCT013 (phase sortie compteur Linky)
- Ajustez les paramètres
cosphietoffsetvia l'API
-
π‘οΈ Sonde de tempΓ©rature non dΓ©tectΓ©e
- VΓ©rifiez le cΓ’blage Dallas 18B20
- Utilisez
/resetdallaspour forcer une rΓ©initialisation
- Journal système :
/log.txt - Console sΓ©rie : depuis l'outil OTA β "Log & Console"
- Γtat complet :
/statefull - MΓ©moire des tΓ’ches :
/getmemory
- Forkez le projet
- CrΓ©ez une branche (
git checkout -b feature/MaFonctionnalite) - Commitez vos modifications (
git commit -m 'Ajout MaFonctionnalite') - Poussez la branche (
git push origin feature/MaFonctionnalite) - Ouvrez une Pull Request
- PlatformIO
- ESP32 Arduino Core
- ArduinoJson
- OneWire
- DallasTemperature
- TFT_eSPI (affichage TTGO T-Display)
-
Carte routeur DIN : vendue par l'association APPER
- CrΓ©dit d'impΓ΄t 60% en France
- Frais de port inclus (Europe)
- Support DIN fourni
-
Composants additionnels :
- TTGO T-Display (ESP32 avec Γ©cran couleur intΓ©grΓ©)
- Sonde SCT013 (mesure de courant)
- Sonde Dallas 18B20 (tempΓ©rature)
-
Variateur (optionnel) : voir le projet complΓ©mentaire PV-Dimmer
| Composant | Prix approx. |
|---|---|
| Carte APPER | 25β¬ |
| TTGO T-Display | 12β¬ |
| Sonde SCT013 | 8β¬ |
| Total | ~45β¬ |
- DΓ©veloppΓ© bΓ©nΓ©volement par Sunstain Tech Solutions pour la communautΓ© APPER
- SchΓ©ma de cΓ’blage rΓ©alisΓ© par Titi
- Contributions de la communautΓ© open-source
- Projet open-source Γ usage non commercial
Ce projet est sous licence Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
This project is the main router of an intelligent photovoltaic routing system. It measures real-time energy exchanges at the electricity meter (via an SCT013 sensor or Shelly family device) and controls remote AC dimmers or local dimmers to maximize solar self-consumption.
The router runs on a TTGO T-Display (ESP32 with built-in color display) and provides a complete web interface for monitoring and configuration. (or a Wemos ESP32 on the dimmer board with a Shelly for power measurement)
π Full documentation available on the APPER wiki (French)
This is the open-source PV router from the French association APPER. The board is open-source, but you can order it directly from the association. As a recognized public-interest organization under French tax law, purchases generate a 60% tax credit for French individuals.
All development work is purely voluntary. Encouragements are always welcome:
The DIN format board is available to order on Helloassos (TTGO not included) β shipped with DIN rail mount. Shipping included for European countries.
- π Real-time energy flow measurement (injection / grid draw)
- ποΈ Control of remote AC dimmers or local dimmers (Robotdyn / SSR)
- π₯οΈ Built-in color display (TTGO T-Display) with WiFi signal indicators
- π Comprehensive and responsive web interface (dashboard + configuration)
- π MQTT, Home Assistant, Jeedom, Domoticz integration
- π‘ External energy source support (Shelly EM, Enphase Envoy)
- π‘οΈ Temperature monitoring with Dallas 18B20 sensors
- β±οΈ Time-based scheduler (timer per load)
- π Integrated safety mechanisms (fuse, recommended temperature sensor)
- π Built-in OTA updates
Solar panels
β
βΌ
[Inverter] βββββββΊ Electrical grid
β
βΌ
[Linky meter] ββ[SCT013 sensor or Shelly]βββΊ [PV Router - TTGO T-Display]
β
ββββββββββββββ΄βββββββββββββ
βΌ βΌ
[Remote dimmer] [Local relays]
(PV-Dimmer ESP8266/ESP32) (Water heater, heatingβ¦)
The router analyzes the current direction at the electricity meter:
- Injection (negative) β solar surplus β gradually increases the load
- Grid draw (positive) β grid consumption β reduces the load
The goal: keep the grid exchange close to 0 W at all times to maximize self-consumption.
Before connecting the board to the electrical grid, comply with local electrical safety standards:
- Use properly insulated cables to avoid short circuits.
- Install protective devices (minimum 2A circuit breaker).
- If unsure, consult a qualified professional.
- Always use Dallas sensors to monitor temperatures.
From a compatible browser (Chrome or Edge):
- Go to https://ota.apper-solaire.org/ota.php
- Select the serial port connected to the TTGO
- Choose "INSTALL PV ROUTER TTGO" or another version depending on your board
- Confirm the installation β firmware is uploaded automatically
- Official releases: GitHub Releases
- OTA update directly from the router's
/updateweb page
After flashing, open the serial console ("Log & Console") and type:
pass your_wifi_password
ssid your_wifi_ssid
reboot
The TTGO display shows the IP and WiFi signal strength (top right):
- π‘ Yellow: > -64 dBm (good)
- π Orange: > -70 dBm (fair)
- π΄ Red: > -80 dBm (weak)
Connect to the router's WiFi access point and configure your network through the captive portal interface.
Connect to the IP shown on the TTGO display from your browser.
The dashboard shows:
- Sigma (W): power exchanged with the grid
- Dimmers (%): power sent to dimmers
- Temperature (Β°C): first dimmer sensor or local sensor
- State: Stable / Injection / Grid
- ON/OFF OLED button: screen control (configurable timer)
Accessible via the "Configuration" menu.
(Diagram by Titi)
The board has built-in protection (0.15A glass fuse or automatic), but it is recommended to place it behind a 2A circuit breaker.
Install the board in the electrical panel and connect the SCT013 sensor on the output phase of the Linky meter (between Linky and the panel).
In addition to the SCT013 sensor, connect the Dimmer board to the dedicated connector on the router board. A Dallas 18B20 sensor is strongly recommended to prevent overheating.
It is advisable to power the Robotdyn dimmer downstream of the water heater heating elements for double thermal safety.
- On soapstone tanks: use only one heating element for finer regulation and fewer grid disturbances.
- Use the largest Robotdyn dimmer (20A) or a minimum 40A Random SSR.
- For high power loads, add cooling to the dimmer's heat sink (triac).
| Endpoint | Method | Description |
|---|---|---|
/state |
GET | Current state (JSON) |
/stateshort |
GET | Abbreviated state (JSON) |
/statefull |
GET | Full state (JSON) |
/config |
GET | Configuration (JSON) |
/ping |
GET | Connectivity test |
| Endpoint | Description |
|---|---|
/reboot |
Restart device |
/boost |
Activate 2-hour boost mode |
/resetdallas |
Reset Dallas sensor detection |
| Parameter | Description |
|---|---|
?cycle=X |
Measurement cycle |
?delta=X |
Positive power threshold |
?deltaneg=X |
Negative power threshold |
?tmax=X |
Maximum temperature |
?voltage=X |
Grid voltage |
?cosphi=X |
Power factor |
?offset=X |
Measurement offset |
?ssid=X |
WiFi SSID |
?pass=X |
WiFi password |
?save=1 |
Save to flash |
?relay1=0/1/2: OFF / ON / Toggle relay 1?relay2=0/1/2: OFF / ON / Toggle relay 2
GET /getminuteur?dimmer: Read dimmer timerANY /setminuteur: Set timer (heure_demarrage,heure_arret,temperature,puissance)
| Endpoint | Description |
|---|---|
/getwifi |
WiFi configuration |
/getenvoy |
Enphase Envoy data |
/getmqtt |
MQTT configuration (JSON) |
/log.txt |
System log |
/getmemory |
Task memory usage (JSON) |
/cosphi |
Power factor measurement |
-
β No WiFi connection
- Check network credentials
- Restart the device
- Check signal level on the TTGO display
-
π Incorrect power measurement
- Check SCT013 placement on Linky output phase
- Adjust
cosphiandoffsetparameters via the API
-
π‘οΈ Temperature sensor not detected
- Check Dallas 18B20 wiring
- Use
/resetdallasto force re-detection
- System log:
/log.txt - Serial console: OTA tool β "Log & Console"
- Full state:
/statefull - Task memory:
/getmemory
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- PlatformIO
- ESP32 Arduino Core
- ArduinoJson
- OneWire
- DallasTemperature
- TFT_eSPI (TTGO T-Display)
-
DIN Router Board: sold by APPER Association
- 60% tax credit in France
- Shipping included (Europe)
- DIN rail mount included
-
Additional components:
- TTGO T-Display (ESP32 with built-in color display)
- SCT013 sensor (current measurement)
- Dallas 18B20 probe (temperature)
-
Dimmer (optional): see companion project PV-Dimmer
| Component | Approx. Price |
|---|---|
| APPER Board | β¬25 |
| TTGO T-Display | β¬12 |
| SCT013 sensor | β¬8 |
| Total | ~β¬45 |
- Voluntarily developed by Sunstain Tech Solutions for the APPER community
- Wiring diagram by Titi
- Open-source community contributions
- Non-commercial open-source project
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License





