YaSolR ?
YaSolR is an ESP32 firmware for Solar Router compatible with nearly any existing hardware components. It supports most hardware used in routers like:
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.
Please go to the overview page to know how a solar router works.
Benefits
YaSolR is one of the most optimized and powerful Open-Source Solar Router firmware available:
- 12-bits resolution with linear interpolation for a precise TRIAC control
- 3-Phase support with JSY-333, Shelly or MQTT
- Custom dimmer library optimized for ESP32 (π§)
- Dimmer range remapping like Shelly Dimmers
- Frequency auto-detection supports 50/60Hz
- Harmonics can be lowered to comply with regulations thanks to several settings
- Independent or Sequential Outputs with grid excess sharing
- PID Controller optimized and customizable
- PID Tuning web interface
- Precise Power Calibration
- Precise Zero-Cross Detection with ZC pulse analysis
- RMT Peripheral used for DS18 readings
- SafeBoot partition for recovery and system update
- SSL/TLS MQTT Support with embedded root certificates
- Up to 20-25 measurements / second with a local or even a remote JSY
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
- supports remote temperature and measurement
- compatible with many hardware components:
- DS18 Temperature Sensors
- ESP32: Dev Kit boards, S3 Dev Kit boards, ESP32s, WIPI 3, Denky D4, Lilygo T Eth Lite S3 boards (Ethernet support), WT32-ETH01 boards (Ethernet support), Olimex ESP32-POE boards (Ethernet support), Olimex ESP32 Gateway boards (Ethernet support)
- Many Zero-Cross Detection modules (JSY-MK-194G, Pulse ZCD, BM1Z102FJ, etc)
- Random (async) and Zero-Cross (sync) Solid State Relays
- Robodyn 24A / 40A
- Voltage Regulators (Loncont LSA or LCTC)
- etc
Detailed Features
- Outputs
- Grid Power Measurement
- Relays
- Monitoring and Management
- MQTT, REST API and Home Automation Systems
- Online / Offline modes
- PID Control and Tuning
- Virtual Excess and EV Charger Compatibility
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:
Β | Robodyn 24A |
Robodyn 40A |
Random SSR |
Zero-Cross SSR |
Voltage Regulator |
---|---|---|---|---|---|
Phase Control |
β | β | β | β | β |
Burst Fire Control (π§) |
β | β | β | β | β |
All the supported dimmer types:
- Zero-Cross Detection based:
- LSA / LCTC Voltage Regulators + PWM->Analog 0-10V + ZCD
- Random Solid State Relay + ZCD
- Robodyn 24/40A
- Triac + ZCD
- PWM based:
- LSA / LCTC Voltage Regulators + PWM->Analog (π§)
- DAC based:
- LSA / LCTC Voltage Regulators + DAC GP8211S (DFR1071) (π§)
- LSA / LCTC Voltage Regulators + DAC GP8403 (DFR0971) (π§)
- LSA / LCTC Voltage Regulators + DAC GP8413 (DFR1073) (π§)
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.
Here are the supported bypass relays:
Electromagnetic Relay | Zero-Cross SSR | Random SSR |
---|---|---|
Note that the electromagnetic relay above is interesting because it has both a NO and NC contacts. So the NC contact (closed when relay is in default open position) can be connected to the dimmer and used to prevent any power to go through the dimmer when the bypass relay is on.
Temperature (optional)
Measuring the temperature of the water tanker is important to be 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. Here is a list of all supported devices:
JSY-MK-193
first channel (AC, RS485 interface)JSY-MK-194T
andJSY-MK-194G
first channel (AC, TTL interface)PZEM-004T V3
- Remote JSY through UDP with MycilaJSY UDP Sender (as fast as a local JSY!)
- Remote JSY through ESP-Now (π§) (as fast as a local JSY!)
PZEM-004T V3 | JSY |
---|---|
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)Excess Power Limiter (W)
for Independent or Sequential Outputs: 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.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 Detection
: 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 analyze ZC pulses from the Zero-Cross Detection and display the average pulse length and period
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-163T
(AC, TTL interface)JSY-MK-193
second channel (AC, RS485 interface)JSY-MK-194T
andJSY-MK-194G
second channel (AC, TTL interface)JSY-MK-227
andJSY-MK-229
(AC and DC, RS485 interface)- Remote JSY through UDP with MycilaJSY UDP Sender (as fast as a local JSY!)
- Remote JSY through ESP-Now (π§) (as fast as a local JSY!)
3-Phase:
MQTT
(Home Assistant, Jeedom,Shelly 3EM
, etc)JSY-MK-333
andJSY-MK-333G
(AC, RS485 interface)- Remote JSY through UDP with MycilaJSY UDP Sender (as fast as a local JSY!)
- Remote JSY through ESP-Now (π§) (as fast as a local JSY!)
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
Charts
: Live charts (grid power, routed power, THDi, PID tuning, etc)Display
: Support I2C OLED Display (SSD1307
,SH1106
,SH1107
)GPIO
: A GPIO section shows the view of configured pins and activated pins, to report issues, duplications or invalid pins.Health
: configuration mistakes are detected as much as possible and issues displayed when a component was found to not properly work.Translation
: en / frLEDs
: Support LEDs for visual alertsPush Button
: Support a push button to restart the deviceRestart
,Factory Reset
,Config Backup & Restore
,Debug Mode
, etcStatistics
: Harmonic information, power factor, energy, routed power, grid power, grid frequency and voltage, etcsystem Temperature Sensor
: Support a temperature sensor for the router box (DS18B20
)Web console
: View ESP logs live from a Web interfaceWeb OTA Firmware Update
: Update firmware through a Web interface (with SafeBoot recovery partition)
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 the 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.