Overview
BossMonitor is a WiFi monitoring and control gateway for EG4 18KPV solar inverters. It runs on a WaveShare ESP32-S3 Mini and connects to your inverters via RS485 Modbus RTU or TCP/IP. Access it from any browser on your local network — no internet required for most features.
| Feature | Description |
|---|---|
| Live monitoring | Solar power, battery SOC, grid status, load — multiple views updated every 5 seconds |
| Energy Flow diagram | Animated real-time power flow between solar, battery, grid, and loads |
| Per-pack BMS data | Individual battery pack SOC, voltage, temperature, cycle count (requires BMS mode setup) |
| Inverter settings | Read and write EG4 operating parameters over RS485 — charge, discharge, grid, and mode settings |
| GridBoss control | Configure SP port outlets, generator control, load shedding, and AC coupling |
| MQTT / Home Assistant | Publish 27 sensor entities to any MQTT broker with Home Assistant auto-discovery |
| Data logging | 5-minute interval CSV log, 7 days retained, downloadable as spreadsheet |
| OTA updates | Flash new firmware over WiFi — no USB cable required |
| Dual WiFi modes | Connect to your router, or run as its own hotspot (no router needed) |
Connecting for the First Time
Easy access via mDNS hostname
Once connected to your router, BossMonitor is reachable at http://bossmonitor.local from any device on the same network — no need to look up an IP address. This works on Windows, Mac, iOS, and Android.
If the device is in Router Mode
- Connect your phone or laptop to the same WiFi router as BossMonitor.
- Open a browser and go to
http://bossmonitor.local - If that does not work, find the device IP in your router's connected-devices list and browse to it directly.
If the device is in AP Mode (hotspot)
- On your phone or laptop, open WiFi settings and connect to the network named BossMonitor (or the custom name set by your installer).
- If prompted "No internet — stay connected?" tap Yes / Use this network anyway.
- Open a browser and go to
http://192.168.4.1
192.168.15.1. Connect to it to reconfigure WiFi settings.
WiFi Modes
BossMonitor supports two network modes, switchable from the Admin page.
| Mode | When to use | Device IP |
|---|---|---|
| Router Mode | Site has an existing WiFi router. Multiple users can access simultaneously. Access via bossmonitor.local. |
Assigned by router (or use bossmonitor.local) |
| AP Mode | No router available. BossMonitor creates its own WiFi network. One user at a time. | Always 192.168.4.1 |
Dashboard index.html
The main landing page. Shows a live summary of solar, battery, load, and grid status, plus navigation to all other pages. Updates every 5 seconds.
Status Cards
- Solar — combined PV watts from all inverters, with operating mode shown below
- Battery — state of charge %; sub-line shows charging/discharging direction and watts
- Load — total power being consumed by your loads
- Grid — current grid power (positive = importing, negative = exporting) and grid status
Navigation
| Button | Goes to |
|---|---|
| Energy Flow | Animated real-time power flow diagram |
| Classic | Original EG4-style monitor layout |
| Gauges | Dark-theme arc gauge dashboard |
| Detail | Full raw inverter data table |
| Batteries | Battery pack summary from inverter Modbus data |
| BMS Packs | Per-pack data from the EG4 WiFi dongle (requires BMS mode) |
| Admin & Settings | System configuration and maintenance |
The dashboard automatically syncs the ESP32 clock to your browser's time on every page load, keeping data log timestamps accurate. A warning banner appears if the clock has not been set.
Use the Dark/Light toggle in the top-right corner to switch themes. Your preference is remembered across visits.
Energy Flow flow.html
Animated dark-theme diagram showing real-time power movement between solar panels, batteries, grid, and loads. Flowing dashes indicate direction and speed scales with power level.
- Solar (orange) — PV generation in watts or kilowatts
- Battery (green) — charging or discharging, with SOC percentage
- Grid (blue) — importing from or exporting to the grid
- Load (amber) — power being consumed right now
Best viewed on a wall-mounted tablet or monitor as a live status display. Updates every 5 seconds.
Classic View eg4monitor.html
The original EG4-style monitor layout showing all inverter parameters in a familiar format. Useful if you prefer the traditional view or want to see values that are not shown on the newer dashboard. Updates every 5 seconds.
Live Gauges gauges.html
Dark-theme real-time arc gauge dashboard. Refreshes every 5 seconds. Best viewed on a wall-mounted tablet or monitor.
- SOC arc — battery state of charge. Colour changes: green → yellow → red as SOC drops.
- PV bars — individual power from each PV string on each inverter
- Battery power — positive = charging, negative = discharging
- Load arc — total power being consumed by your loads
- Grid status — green Online / red Offline banner
Detail Monitor monitor.html
Tabular view of all raw inverter data — voltages, currents, temperatures, fault codes, and register values. Useful for diagnosing issues or verifying specific readings. Updates every few seconds.
Batteries batteries.html
Battery pack summary sourced from inverter Modbus data. Shows the overall battery bank state as reported by the master inverter: SOC, voltage, current, power, and temperature. This data is always available when the inverter is communicating — no special setup required.
BMS Packs battery_bms.html
Per-pack battery data captured directly from the EG4 WiFi dongle. When BMS mode is active, BossMonitor intercepts the data stream the dongle sends to the EG4 cloud every ~30 seconds and extracts individual pack statistics for up to 15 battery packs.
Data shown per pack
- Pack name (Battery_ID_01 through Battery_ID_15)
- State of charge (SOC %) — calibrated per-pack value
- State of health (SOH %)
- Pack voltage (V)
- Max and min cell voltages (mV)
- Max cell temperature (°C)
- Charge cycle count
The status bar at the top of the page shows when data was last received. If no data has arrived in over a minute, check that the dongle is connected to the BossMonitor AP (see BMS Pack Setup).
Admin Page admin.html
Central control panel for all system configuration and maintenance tasks.
Real-Time Stats
Shows live Total Solar power and Battery SOC, updated every 10 seconds.
Monitoring & Configuration Buttons
| Button | Goes to |
|---|---|
| Energy Flow | Animated live energy flow diagram |
| Live Monitor | Real-time inverter readings table |
| Data Charts | Historical solar, battery, and load graphs |
| Data History (CSV) | Download logged data as a spreadsheet |
| Comm Settings | Transport mode (TCP / RS485) and BMS operating mode |
| Manage Inverters | Add, remove, or configure inverters and Modbus addresses |
| MQTT Settings | Configure MQTT broker and Home Assistant integration |
| Inverter Settings | Read and write charge, discharge, grid, and operating parameters |
WiFi Mode
Switch between Router Mode and AP (hotspot) Mode. Enter the desired network name and optional password, then click the mode button. The device reboots into the new mode.
System Maintenance
| Button | Action |
|---|---|
| Upload File | Upload HTML, config, or other files to device storage (FFat) |
| Program Firmware | Flash new firmware over WiFi (OTA). Device reboots after flashing. |
| Set Time | Manually set the ESP32 clock if auto-sync did not work |
| Reset WiFi | Erase WiFi credentials and restart in setup mode |
192.168.15.1 to reconfigure.
Comm Settings settings.html
Configures how the ESP32 communicates with the inverters and whether to intercept BMS battery pack data from the EG4 WiFi dongle.
Transport Mode
| Mode | Connection | When to use |
|---|---|---|
| RTU (RS485 Modbus) | Physical RS485 cable via RJ45 | Recommended. More reliable, works without a network. Required for Inverter Settings writes. |
| TCP (WiFi Dongle) | WiFi network connection to inverter's built-in web server | Use if RS485 wiring is not available. Inverter Settings writes not supported in TCP mode. |
BMS Operating Mode
Controls whether BossMonitor intercepts the EG4 WiFi dongle's data stream to capture per-pack battery data. A reboot is required when changing this setting.
| Mode | Description |
|---|---|
| Standard | Normal operation. The EG4 dongle connects directly to the EG4 cloud. No BMS pack data is captured. |
| MITM | BossMonitor creates a SoftAP (EG4-Bridge). Dongle connects to that AP. BossMonitor intercepts the data stream and forwards everything to the real EG4 cloud. EG4 app continues working. Requires internet. |
| Standalone | BossMonitor creates a SoftAP (EG4-Bridge). Dongle connects to that AP. BossMonitor simulates the cloud locally. No internet needed, but the EG4 mobile app will not receive updates. |
| LAN MITM | No SoftAP. Dongle stays on your home router. BossMonitor runs a DNS proxy that intercepts us2.solarcloudsystem.com and returns its own LAN IP, causing the dongle to connect here automatically. Requires a one-time router DNS setting change. Fully self-healing after reboots — no manual dongle redirect ever needed. |
In MITM or Standalone mode, BossMonitor creates a WiFi access point with the credentials shown in the BMS AP Credentials fields (default: SSID EG4-Bridge, password bridge1234). The EG4 dongle must be redirected to connect to this AP. See BMS Pack Setup.
In LAN MITM mode, no AP credentials are needed. Instead, set your router's DNS server to the ESP's LAN IP. See BMS Pack Setup for the Eero procedure.
RS485 Pin Configuration
Default pins for the WaveShare ESP32-S3 Mini with CAN/Modbus board:
| Signal | GPIO | RJ45 Pin |
|---|---|---|
| TX | 17 | — |
| RX | 18 | — |
| DE (direction enable) | 21 | — |
| RS485 A+ | — | 7 |
| RS485 B− | — | 8 |
Inverter Settings inverter_settings.html
Read and write EG4 operating parameters directly over RS485. Organised into four tabs matching the EG4 maintenance page layout.
Safe Mode
All write buttons are disabled by default. Tick "Enable write commands" in the yellow banner before any Set button will work. This prevents accidental changes.
Reading Current Values
Click Read in the device bar at the top. The page polls all known registers from the master inverter and fills in the fields. Always read before writing to avoid overwriting settings you did not intend to change.
Writing a Value
- Click Read to load current values.
- Tick "Enable write commands".
- Change the value in the field you want to update.
- Click the Set button next to that field only. Only that one register is written.
- The status bar at the top confirms success or shows an error.
Tabs
| Tab | Contents |
|---|---|
| Common | Output working mode (SBU/SUB), EPS backup enable, PV input mode, start voltage |
| Application | Sell to grid, PV charge priority, AC coupling |
| Charging | Grid charge enable/power/SOC, charge current limit, PV charge priority, time windows |
| Discharging | Discharge current limit, on/off-grid cut-off SOC, forced discharge, peak shaving |
Bit-field Registers
Several settings share a single register (for example, register 21 controls EPS enable, grid charge, forced discharge, feed-in, and more — each in a different bit). When you click Set for one of these, the ESP32 reads the full current register value, changes only the relevant bit, and writes the result back. Other settings in the same register are preserved.
GridBoss gridboss.html
Configuration page for the EG4 GridBoss SP port and connected loads. Allows reading and writing GridBoss operating parameters over RS485.
SP Port Outlets
Each SP port outlet can be configured independently. Modes include:
- Smart Load — outlet switches based on SOC thresholds or solar availability
- AC Couple — connects an AC-coupled solar source (e.g. grid-tied inverter)
- Load Shedding — outlet cuts off under configurable conditions to protect battery
- Unused — outlet disabled
Generator Control
Configure automatic generator start/stop based on battery SOC thresholds. Set the SOC level that triggers generator start and the SOC level at which it shuts off.
MQTT / Home Assistant mqtt.html
BossMonitor can publish inverter data to any MQTT broker, with built-in Home Assistant auto-discovery support. Once connected, 27 sensor entities appear automatically in Home Assistant without any manual configuration.
Setup
- Go to Admin → MQTT Settings.
- Enter your MQTT broker IP address or hostname and port (default 1883).
- Enter broker username and password if required.
- Check Active to enable publishing.
- Click Save. The broker status pill at the top of the page will turn green when connected.
Published Entities (27 total)
Entities include: solar power per string, total PV, battery SOC, battery voltage, battery current, battery power, grid status, grid power, load power, inverter operating mode, EPS voltage, temperatures, and more. All entities are published under the bossmonitor/ topic prefix.
Home Assistant Auto-Discovery
When the broker is connected, BossMonitor publishes MQTT discovery payloads so Home Assistant automatically creates all 27 entities under a "BossMonitor" device. No manual configuration in configuration.yaml is needed.
Manage Inverters manage_inverters.html
Add or remove inverters from the device catalog, and assign Modbus slave addresses.
Setting a Modbus Address
- Go to Manage Inverters → Set Modbus Address.
- Select the inverter by serial number from the dropdown.
- Enter the desired address (1 for master, 2 for slave).
- Click Set Address. The ESP32 writes the address to the inverter and confirms by reading it back.
Diagnostic: Read a Holding Register
Verify the Modbus address of any inverter by calling:
http://bossmonitor.local/read_hold_reg?slave=1®=15&sn=XXXXXXXXXX
Register 15 holds the current Modbus slave address. The response shows the value read back from the inverter.
Data History /get_history
BossMonitor logs inverter data every 5 minutes to a CSV file on the device. Up to 7 days of logs are kept; older files are deleted automatically.
To download: Admin → Data History (CSV). The file opens directly in Excel or Google Sheets.
To view as charts: Admin → Data Charts for graphed historical solar, battery, and load data.
Log Columns
Timestamp, Total PV (W), Battery SOC (%), Battery Voltage (V), Battery Power (W), Grid Status, Load Power (W), and per-inverter PV strings.
Firmware Update (OTA) firmware.html
Update the ESP32 firmware without a USB cable.
- Obtain the new firmware
.binfile from your installer. - Go to Admin → Program Firmware, or navigate directly to
firmware.html. - Click Choose File and select the
.binfile. - Click Upload. Wait for the upload to complete (progress shown).
- Click Flash & Reboot. The device restarts with the new firmware.
- Reconnect your browser after ~15 seconds.
If BMS mode is active: After a firmware reboot, the EG4 dongle may temporarily lose its connection to BossMonitor. It should reconnect automatically within a minute. If it does not, see BMS Pack Setup for the redirect procedure.
File Upload upload.html
Upload HTML pages, configuration files, or other files to the device's internal storage (FFat filesystem). Useful for updating a single web page without reflashing the entire firmware.
Go to Admin → Upload File, select the file, click Start Upload.
Clock / Time Sync /manualsettime
The ESP32 does not have a battery-backed clock. Time is set from your browser each time the dashboard loads. If the clock is wrong:
- Load the Dashboard — it auto-syncs silently on every page load.
- Or go to Admin → Set Time to set it manually.
A warning banner appears on the dashboard if the clock is not set (showing year 1970). Data logs will have incorrect timestamps until the clock is synced.
Troubleshooting
Can't connect to the device
- Try
http://bossmonitor.localfirst — this works on most networks without needing to know the IP. - If in Router Mode — the device IP may have changed. Set a DHCP reservation in your router so it always gets the same IP.
- If in AP Mode — make sure your device did not automatically switch back to mobile data. Reconnect to the BossMonitor WiFi and tap "Use without internet" if prompted.
- If neither works — connect to BossMonitor-Recovery at
192.168.15.1and check WiFi settings.
Inverter shows "Offline" or data is all zeros
- Check RS485 cable connections — RJ45 connectors must be fully seated.
- Verify the correct Modbus slave address is configured and matches what is set on the inverter.
- Check Comm Settings — confirm mode is set to RTU if using RS485.
- Use the diagnostic URL:
http://bossmonitor.local/read_hold_reg?slave=1®=15&sn=XXXXXXXXXXto test RS485 communication directly.
Inverter Settings page says "requires RTU mode"
Go to Comm Settings and switch to RS485 Modbus RTU mode first. Inverter Settings writes are not supported over TCP.
BMS Packs page shows no data / "waiting for session"
- Confirm BMS mode (MITM or Standalone) is enabled in Comm Settings and the device has been rebooted since the setting was applied.
- Confirm the EG4 dongle is connected to the
EG4-BridgeWiFi network (or whatever SSID you configured), not your home router. - The dongle pushes data approximately every 30 seconds — wait up to a minute after connecting.
- In MITM mode, the device must have internet access to forward the session to the EG4 cloud. If internet is down, switch to Standalone mode.
- After a firmware update or reboot, the dongle may need a minute to reconnect. If it does not reconnect on its own, follow the redirect procedure in BMS Pack Setup.
MQTT not connecting
- Verify the broker IP and port in MQTT Settings. The broker must be on the same network as BossMonitor.
- If the broker requires authentication, confirm the username and password are correct.
- The status pill on the MQTT Settings page updates when you save — a green "Connected" pill confirms the broker accepted the connection.
Data log timestamps show 1970
The clock was not set when that data was logged. Load the dashboard to sync the clock — future log entries will have correct timestamps. Old entries cannot be corrected.
OTA upload fails partway through
Check that the .bin file is not corrupted. Ensure WiFi signal is strong at the device location. A failed upload does not overwrite the running firmware — try again.
RS485 Wiring Reference
Two EG4 18KPV inverters sharing one RS485 cable via an RJ45 Y-connector.
| Component | Detail |
|---|---|
| Controller board | WaveShare ESP32-S3 Mini with CAN/Modbus Industrial Board |
| RS485 baud rate | 19200 |
| Protocol | Modbus RTU (EG4 variant — serial number embedded in packet) |
| Cable | Cat5/Cat6 ethernet. RJ45 pin 7 = RS485 A+, pin 8 = RS485 B− |
| Topology | ESP32 → RJ45 Y-connector → Inverter 1 (addr 1) and Inverter 2 (addr 2) |
| Termination | 120Ω termination resistor at the far end of the cable if runs are long |
BMS Pack Setup
The BMS pack data feature intercepts the data stream between the EG4 WiFi dongle and the EG4 cloud, extracting per-pack battery statistics for each battery tower. This requires a one-time hardware and software setup.
Hardware Requirement
EG4-Bridge WiFi network stays alive and the dongle stays connected. Battery banks with pass-through charging are widely available for $10–20. Connect it between the wall adapter and the ESP32.
First-Time Setup
- In Comm Settings, select MITM (EG4 app keeps working) or Standalone (no internet needed). Optionally change the AP SSID and password from the defaults. Click Save & Reboot.
- After reboot, BossMonitor broadcasts a WiFi network named
EG4-Bridge(or your custom SSID). - On the EG4 dongle's configuration page, change the dongle's WiFi from your home router to
EG4-Bridge(default password:bridge1234). - The dongle connects within about a minute and begins pushing data every 30 seconds.
- Open BMS Packs from the dashboard to confirm data is arriving.
After a Reboot or Firmware Update
When BossMonitor reboots, EG4-Bridge briefly disappears. The dongle will attempt to reconnect when the AP comes back up — this usually happens automatically within a minute or two. If it does not reconnect on its own, repeat step 3 above.