1
0
Fork
You've already forked ESP32-SolarMonitor
0
ESP32 based RS485 modbus adapter for monitoring EpEver or compatible solar charge controllers
  • C++ 94.1%
  • C 3.6%
  • Python 2.3%
2026年03月02日 05:40:40 +01:00
boards Initial commit 2024年12月01日 19:32:17 +13:00
data Initial commit 2024年12月01日 19:32:17 +13:00
docs Initial commit 2024年12月01日 19:32:17 +13:00
include refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
src refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
.gitignore Initial commit 2024年12月01日 19:32:17 +13:00
extra.template.ini refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
git-rev.py refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
LICENSE.md Initial commit 2024年12月01日 19:32:17 +13:00
partitions-esp32-c6.csv Initial commit 2024年12月01日 19:32:17 +13:00
pio_env.py Initial commit 2024年12月01日 19:32:17 +13:00
platformio.ini refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
post_build.py refactor and migrate to CodeBerg 2026年03月02日 17:38:22 +13:00
README.md Added link to protocol documentation 2024年12月01日 19:35:21 +13:00

ESP32 Solar monitor

For EPEver and compatible charge controllers using RS485 Modbus

Documentation

Schematic and PCB

Schematic and Gerber files.

The relevant pin mappings are set in the config.h file.

Modbus protocol

EPEver documentation

Configuration

The firmware is configured using the config.json file on the ESP32 file system. This can be changed via the web UI, or pre-flashed using the PlatformIO 'Upload Filesystem Image' target

Any properties in the config.json file that are ommitted will be set to their default values.

{
 "controllerNodeId": 1,
 "timezone": "NZST-12NZDT,M9.5.0,M4.1.0/3",
 "hasRelais": false,
 "relaisDuration": 3,
 "hasLora": false
}
Setting JSON property Default Notes
Node/device id of the controller, configurable in the controller controllerNodeId 1 Defaults to 1. Can be changed using the EPEver software
Timezone timezone NZST-12NZDT,M9.5.0,M4.1.0/3 Posix TZ format
Relais populated hasRelais false Is the on board relais populated? This can be used to briefly cut power to a connected device
Relais period (s) relaisDuration 3 How long to trigger the relais for
Lora modem populated hasLora false Is the LoRa modem populated and should be used?
Wifi enabled wifiEnabled true

Wifi

If no wifi credentials have been configured yet it will automatically launch an AP using the SSID SolarMon-<ESP32mac>. The device's Web UI can be accessed at 192.168.100.1.

A password for the AP and the Web UI can be configured in the file extra.ini which needs to be created by copying extra.template.ini and applying the desired changes.