Repository navigation
v4.25
A big one: a new look with a Dashboard you build yourself, optional user accounts, settings that survive updates, a browser installer and a live demo you can try without hardware.
Try it first: the live demo runs this exact UI on a simulated inverter, in your browser.
New look
- Redesigned UI with dark and light themes. Fonts are bundled on the device, so it looks the same with no internet. Small text meets 4.5:1 contrast in both themes.
- Sidebar grouped into Monitor / Configure / Device, with a top bar showing where you are (the device name on the Dashboard).
- Phones: a bottom bar (Home, Gauges, Values, Params, More); More opens the full menu as a drawer. Gauge pages scroll on phones instead of shrinking to fit. Tablets and phones in landscape get a slim icon rail.
- Parameters: a bar counts changes that are live but not yet saved to flash, with Restore and Save to flash.
Dashboard you can build
- The Dashboard is now a gauge page: same grid, same editor, saved in the same
gauges.json. Any tile can go on the Dashboard or on a gauge page, and move between them. - New tile types: status (the old dashboard header), metric with sparkline, inverter messages, command terminal, action buttons and CAN sender.
- Existing layouts carry over: your gauge pages are kept, and you get a Dashboard rebuilt from the old fixed one.
- Sample layouts (Gauges → Edit Layout → Load sample layout) are reworked to fill a widescreen.
User accounts (optional, off by default)
- Viewer / operator / admin roles, enforced on the device for every page, command, file and upload. Viewers can watch but not change anything; operators can drive and change parameters; admins manage the device, firmware and users.
- Off until you create the first admin (Settings → Users & Access). With no users, the device behaves exactly as before.
- Passwords are stored salted and hashed in NVS, never in the filesystem. Sign-in is rate limited.
- Locked out? Hold BOOT for 10 s, or type
auth reseton the debug serial port. - Details, including what is and isn't protected over plain HTTP: see "Users and access" in the README.
Settings survive updates
- Device settings are now kept across web-interface updates.
settings.jsonand UI preferences are mirrored into NVS and restored if an update erases them, so the ESP keeps talking to the inverter after updating. - Layouts too: just before flashing, the Update page saves your gauges, plots, presets, favourites and virtual values in the browser and puts them back afterwards.
- New: Settings → Configuration → Reset device settings, for a deliberate factory reset of the device config (users, Wi-Fi and layouts kept).
Install and updates
- Browser installer: flash a new board from Chrome or Edge at the installer page. Pick Stable or Dev; it detects ESP32 or ESP32-S3 and picks the right image. No third-party site, no tools to install.
- Stable and Dev update channels (Update tab → Update channel). Dev gets each
vX.Y-dev.Npreview build, then the stable release that follows. Stable is the default.
Fixes
- Remote support works again: openinverter.org's remote support page can send commands through the ESP (the
inverter.jsbridge was lost in the v4 rewrite). With sign-in on, it runs with the opener's role. - Data logger no longer floods the ESP with back-to-back requests, which stalled the dashboard and gauges while logging. Samples are paced to at most 20/s.
- Phones: a drag that starts on a gauge tile scrolls the page.
For contributors
- CONTRIBUTING.md now asks for features as PRs here rather than forks, and maps each kind of feature to the one place it plugs in.
- The E2E suite is up to 254 tests, including the permission model; the mock ESP enforces the same route table as the firmware.
Updating from v4.24: use the Update page as usual, but export your settings first (Update page → Export settings (backup)) and re-import them afterwards. v4.24 doesn't keep them yet; from v4.25 on, updates keep them for you.
Full Changelog: v4.24...v4.25