Skip to content

v4.25

Choose a tag to compare

@github-actions github-actions released this 22 Oct 08:16
ddd1d86

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 reset on 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.json and 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.N preview 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.js bridge 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