YaSolR ?
YaSolR is an ESP32 firmware for Solar Router compatible with nearly any existing hardware components.
If you already have a Solar Router at home based on ESP32, built by yourself or someone else, there is a good chance that YaSolR will be compatible.
![]() |
![]() |
YaSolR is a software that will run on your Solar Router.
YaSolR does not come with hardware. But this website will help you pick and build your router.
Benefits
YaSolR is one of the most optimized and powerful Solar Router firmware available:
- 12-bits resolution with linear interpolation for a precise TRIAC control
- Up to 25 measurements / second with a local JSY
- Up to 20 measurements / second with a remote JSY
- PID Controller optimized and customizable
- PID Tuning web interface
- RMT Peripheral used for DS18 readings
- Harmonics can be lowered to comply with regulations thanks to several settings
- Custom dimmer library optimized for ESP32 (🚧)
- MCPWM (Motor Control Pulse Width Modulator) for phase control (🚧)
- 3-Phase support
- Precise Zero-Cross Detection
- Dimmer range remapping like Shelly Dimmers
This is a big Open-Source project following best development practices. YaSolR is:
- flexible by allowing you to pick the hardware you want
- easy to use with one of the best easy-to-use and responsive Web Interface, REST API and MQTT API
- compatible with Home Assistant and other home automation systems (Auto Discovery)
- compatible with EV Charging Box like OpenEVSE
- compatible with 110/230V 50/60Hz
- compatible with remote dimmer, relay, temperature, measurement (ESP-Now / UDP)
- compatible with many hardware components:
- ESP32 Dev Kit
- ESP32 S3 Dev Kit
- ESP32s
- Lilygo T Eth Lite S3 (Ethernet support)
- WT32-ETH01 (Ethernet support)
- Random and Zero-Cross SSR
- Standalone Zero-Cross Detection modules
- Robodyn 24A / 40A
- Voltage Regulators (Loncont LSA or LCTC)
- DS18 Temperature Sensors
- etc
Detailed Features
- Routing Outputs
- Grid Power Measurement
- 2x Relays
- Monitoring and Management
- MQTT, REST API and Home Automation Systems
- Online / Offline modes
- PID Control and Tuning
- Remote Capabilities
- Virtual Excess and EV Charger Compatibility
Routing Outputs
YaSolR supports up to 2 outputs. A routing output is connected to a resistive load and controls its power by dimming the voltage. Each output is composed of the following components:
- Dimmer (required)
- Bypass Relay (optional)
- Temperature (optional)
- Measurement device (optional)
- Additional Output Features
Dimmer (required)
A dimmer controls the power sent to the load. Example of supported dimmers:
Dimmer Type | Phase Control |
Burst Fire Control (🚧) |
---|---|---|
Robodyn 24A![]() |
✅ | ✅ |
Robodyn 40A![]() |
✅ | ✅ |
Random SSR![]() |
✅ | ✅ |
Zero-Cross SSR (🚧)![]() |
❌ | ✅ |
Voltage Regulator (🚧)![]() |
✅ | ✅ |
Bypass Relay (optional)
A bypass relay allows to force a heating at full power and bypass the dimmer at a given schedule or manually.
Keeping a dimmer on
generates heat so a bypass relay can be installed to avoid using the dimmer.
If a bypass relay is installed, the dimmer will be used instead and will be set to 0-100% to simulate the relay.
Electromagnetic Relay | Zero-Cross SSR | Random SSR |
---|---|---|
![]() |
![]() |
![]() |
Temperature (optional)
Measuring the temperature of the water tanker is important to ve able to trigger automatic heating based on temperature thresholds, or stop the routing if the temperature i reached.
This can also be done:
- using a remote temperature sensor through MQTT
- using a remote temperature sensor through ESP-Now (🚧)
- using one of the supported sensor:
DS18B20 |
---|
![]() |
Measurement device (optional)
Each output supports an optional measurement device to measure the power routed to the load.
JSY-MK-194T
: has 2 clamps, and is used to monitor the aggregated routed output power (sum of the two outputs) and the grid power with the second clamp.PZEM-004T V3
: can monitor each output independently. It cannot be used to measure the grid power.
PZEM-004T V3 | JSY-MK-194T |
---|---|
![]() |
![]() |
Additional Output Features
Bypass Automatic Control
/Manual Control
: Automatically force a heating as needed based on days, hours, temperature range, or control it manuallyDimmer Automatic Control
/Manual Control
: Automatically send the grid excess to the resistive load through the dimmer (or manually control the dimmer yourself if disabled)Independent or Sequential Outputs with Grid Excess Sharing
: Outputs are sequential by default (second output activated after first one at 100%). Independent outputs are also supported thanks to the sharing feature to split the excess between outputs. This feature is available inDimmer Automatic Control
mode.Dimmer Duty Limiter
: Set a limit to the dimmer power to avoid routing too much powerDimmer Temperature Limiter
: Set a limit to the dimmer to stop it when a temperature is reached. This temperature can be different than the temperature used in auto bypass mode.Statistics
: Harmonic information, power factor, energy, routed power, etcAutomatic Resistance Calibration
(🚧): if a JSY or PZEM is installed, automatically discover and save the resistance value of the connected load.Dimmer Range Remapping
: Remap the dimmer duty to a different range (e.g. 10-80%). Some dimmers (especially voltage regulator controlled through a PWM-analog conversion), are working between 1-8V so remapping the duty is necessary.Zero-Cross Pulse Analysis
(🚧): YaSolR will try to get some pulse analysis from the Zero-Cross Detection
Grid Power Measurement
Measuring the grid power is essential to know how much power is available to route. YaSolR supports many ways to measure the grid power and voltage:
Mono-phase:
MQTT
(Home Assistant, Jeedom,Shelly EM
, etc)JSY-MK-194T
(25 measurements / second)- Remote
JSY-MK-194T
through UDP (20 measurements / second) - Remote
JSY-MK-194T
through ESP-Now (🚧)
3-Phase:
MQTT
(Home Assistant, Jeedom,Shelly 3EM
, etc)JSY-MK-333
(🚧)- Remote
JSY-MK-333
through UDP (🚧) - Remote
JSY-MK-333
through ESP-Now (🚧)
Relays
YaSolR supports up to 2 relays to control external resistive loads or contactors.
- Supports
NO / NC
relay type Automatic Control
/Manual Control
: You can specify the resistive load power in watts connected to the relay. If you do so, the relay will be automatically activated based on the excess power.
Monitoring and Management
Dashboard:
Charts
: Live charts (grid power, routed power, THDi, PID tuning, etc)Health
: configuration mistakes are detected as much as possible and issues displayed when a component was found to not properly work.Languages (i18n)
: en / frLEDs
: Support LEDs for visual alertsManual Override
: Override anything remotely (MQTT, REST, Website)GPIO
: A GPIO section shows the view of configured pins and activated pins, to report issues, duplications or invalid pins.Restart
,Factory Reset
,Config Backup & Restore
,Debug Logging
Statistics
: Harmonic information, power factor, energy, routed power, grid power, grid frequency and voltage, etcWeb console
: View ESP logs live from a Web interfaceWeb OTA Firmware Update
: Update firmware through the Web interface
Hardware:
Display
: Support I2C OLED Display (SSD1307
,SH1106
,SH1107
)Push Button
: Support a push button to restart the deviceTemperature Sensor
: Support a temperature rensor for the router box (DS18B20
)
MQTT, REST API and Home Automation Systems
The router exposes a lot of statistics and information through MQTT and REST API and provides a very good integration with Home Assistant or other home automation systems. The router can be completely controlled remotely through a Home Automation System.
REST API
: extensive REST API supportMQTT
: extensive MQTT API (withTLS
support)- Home Assistant Integration: Activate Home Assistant Auto Discovery to automatically create a YaSolR device in Home Assistant with all the sensors
Online / Offline modes
Access Point Mode
: router can work in AP mode without WiFi and InternetAdmin Password
: to protect the website, API and Access PointCaptive Portal
a captive portal is started first time to help you connect the routerEthernet & Wifi
: ESP32 boards with Ethernet and WiFi are supportedNTP
support to synchronize time and date with Internet. If not activated, it is still possible to manually sync with your browser.Offline Mode
: The router can work without WiFi, even teh features requiring time and date.
PID Control and Tuning
The router uses a PID controller to control the dimmers and you have full control over the PID parameters to tune it.
Demo on Youtube:
Virtual Excess and EV Charger Compatibility
Thanks to power measurement, the router also provides these features:
Virtual Excess
: Expose the virtual excess (MQTT, REST API, web) which is composed of the current excess plus the routing powerEV Charger Compatibility
(i.e OpenEVSE): Don’t prevent an EV charge to start (router can have lower priority than an EV box to consume available production excess)
A measurement device is required to use these features.
OSS vs PRO
OSS and Pro firmware are the same, except that the PRO version relies on commercial (paid) libraries and provides some additional features based on a better dashboard.
The Pro version is only 25 euros and gives access to all the perks of the Pro version below:
Feature | OSS (Free) | PRO (Paid) |
---|---|---|
Dashboard | Overview only | Full Dashboard as seen in the screenshots |
Manual Dimmer Control | Home Assistant MQTT API REST API |
From Dashboard Home Assistant MQTT API REST API |
Manual Bypass Control | Home Assistant MQTT API REST API |
From Dashboard Home Assistant MQTT API REST API |
Manual Relay Control | Home Assistant MQTT API REST API |
From Dashboard Home Assistant MQTT API REST API |
Configuration | Debug Config Page | From Dashboard Debug Config Page |
Automatic Resistance Calibration | ❌ | ✅ |
Energy Reset | ❌ | ✅ |
GPIO Config and Health | ❌ | ✅ |
Hardware Config and Health | ❌ | ✅ |
Output Statistics | ❌ | ✅ |
PID Tuning View | ❌ | ✅ |
PZEM Pairing | ❌ | ✅ |
Help & Support | Facebook Group | Facebook Group Forum Bug Report |
Web Console | WebSerial Lite | WebSerial Pro |
Dashboard | ESP-DASH | ESP-DASH Pro |
OTA Firmware Update | ElegantOTA | ElegantOTA Pro |
The money helps funding the hardware necessary to test and develop the firmware.
Alternatives and Inspirations
This project was inspired by the following awesome Solar Router projects:
- Routeur Solaire Apper (Cyril P., xlyric)
- Routeur Solaire PVbrain (Sébastien P., SeByDocKy)
- Routeur Solaire MK2 PV Router (Robin Emley)
- Routeur Solaire Mk2 PV Router (Frédéric M.)
- Routeur Solaire Tignous (Tignous)
- Routeur Solaire MaxPV (Jetblack31)
- Routeur solaire “Le Profes’Solaire” (Anthony G., Le Profes’Solaire)
- Routeur solaire “Le Profes’Solaire” (Adapation from Benoit C.)
- Routeur solaire Multi-Sources Multi-Modes et Modulaire (André B., F1ATB)
- Routeur solaire ESP Home (Remy)