Skip to content

Repository files navigation

HelioSlate

HelioSlate is a private, local-first monitoring dashboard for a homeowner-owned SunPower/SunStrong PVS6. It collects authenticated telemetry from the gateway on the home LAN, preserves real gaps instead of inventing data, and keeps credentials and history on the Windows host computer.

HelioSlate overview showing sanitized real household telemetry

Sanitized real-system capture; household and device identifiers have been removed.

Important

HelioSlate is an independent open-source project. It is not affiliated with, endorsed by, or supported by SunPower, SunStrong, Maxeon, or Tailscale.

What it provides

  • Live solar production, household consumption, import, and export flow.
  • Rolling day, week, month, and year history based only on observed intervals.
  • Persistent per-microinverter inventory, one-minute panel history, comparative yield, and interactive inspection.
  • Rich CSV exports for system and panel measurements.
  • A lightweight background collector with a Windows notification-area icon.
  • Optional read-only household access through Tailscale without router port forwarding.
  • A self-hosted invitation helper published through an optional Tailscale Funnel; the public helper contains instructions but no solar telemetry.

HelioSlate rolling seven-day history using sanitized real household telemetry

Compatibility

HelioSlate is currently tested with a homeowner-owned PVS6 that exposes the authenticated Varserver interface used by supported SunPower/SunStrong firmware. Other gateways and vendor-cloud integrations are not currently supported.

Setup scans only bounded private IPv4 subnets. It checks a public firmware signature without a credential, lets the owner approve the gateway's TLS certificate, and then attempts to derive and verify the required five-character owner credential locally. If automatic identification is unavailable, the UI provides a manual recovery guide.

Privacy and safety

  • Production PVS traffic is GET-only; mutation queries cannot be represented by the transport.
  • The gateway certificate is explicitly pinned before authentication.
  • The five-character PVS credential and optional Tailscale credential are held by Windows Credential Manager, not project files.
  • History, membership, and configuration remain under %LOCALAPPDATA%\HelioSlate on the host computer.
  • Fixture/preview telemetry is never stored as live history.
  • Missing collection time remains missing and is never filled with inferred curves.
  • Remote household identities receive no telemetry before explicit owner approval and are restricted to read-only routes afterward.
  • The publication build fails if tracked files contain common credentials, private keys, live-looking Tailscale hostnames, personal home-directory paths, non-example email addresses, or runtime databases/certificates.

Read Security, Privacy, and the PVS protocol boundary before deploying or contributing.

Windows installation

Download HelioSlate-Setup.exe from the repository's Releases page and run it on the Windows 10 or Windows 11 x64 computer that will stay on and collect data. The packaged installer includes the application runtime; Python, Node.js, and a separate database server are not required on the household computer.

During first-time setup:

  1. Name the household solar system.
  2. Let HelioSlate search the private LAN for the PVS6, or enter its local address manually.
  3. Review and approve the local gateway certificate fingerprint.
  4. Let HelioSlate authenticate automatically. If the gateway does not expose the required identity, follow the on-screen guide to enter the final five characters of the PVS gateway serial.
  5. Keep Start with Windows enabled if the computer should collect after login even when no dashboard tab is open.

The host must be awake and signed in for collection and remote dashboards to remain available.

History semantics

  • Day: rolling 24 hours, stored in one-minute energy buckets.
  • Week: rolling 7 days, displayed as hourly energy buckets.
  • Month: rolling 30 days, displayed as measured daily totals.
  • Year: rolling 365 days, displayed as measured weekly totals.

Panel relative yield compares the integrated panel output with the aligned household-panel median only where both values were actually collected:

relative yield = sum(panel watts) / sum(aligned median-panel watts)

A recurring deficit may suggest shade, debris, orientation differences, or a hardware issue, but the ratio alone does not diagnose a cause.

For a legible comparison, the panel trend uses 15-minute daylight-energy buckets in Day view, daily yield points in Week and Month views, and weekly yield points in Year view. Near-zero dawn/dusk medians and under-observed buckets are excluded instead of being allowed to create unstable ratios.

HelioSlate live panel analytics using sanitized real microinverter telemetry

The same panel cards adapt to a compact, touch-friendly mobile layout:

HelioSlate panel analytics on a simulated mobile dashboard

Utility estimates

HelioSlate keeps measured import and export separate from optional financial estimates. Owners can enter flat import and export rates locally; the dashboard then shows recorded value and a coverage-normalized 30-day pace. These figures are estimates, not utility bills, and do not model time-of-use schedules, fixed charges, netting rules, or annual true-up adjustments.

HelioSlate grid value estimates using sanitized real household telemetry

Optional household access

HelioSlate can use Tailscale Serve for the private read-only dashboard and Tailscale Funnel for a small public invitation helper. Solar data is never placed on the public helper. Recipients still need the host's Tailscale machine share and explicit approval inside HelioSlate.

See Private remote access for the complete owner and recipient flow, security boundaries, and Tailscale limitations.

Development

Requirements:

  • Windows 10 or Windows 11
  • Python 3.12
  • Node.js 24 or a compatible current Node release
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev,build]"
npm.cmd --prefix frontend install
npm.cmd --prefix onboarding install
.\.venv\Scripts\python.exe -m pytest
npm.cmd --prefix frontend test
npm.cmd --prefix frontend run build
npm.cmd --prefix onboarding test
.\.venv\Scripts\python.exe -m helioslate.launcher

Build the Windows installer with:

powershell -ExecutionPolicy Bypass -File .\scripts\build_windows.ps1

The build runs the publication-safety scanner before producing artifacts.

Documentation

Contributing

Contributions and carefully redacted hardware-compatibility reports are welcome. Read CONTRIBUTING.md before opening an issue or pull request. Never post PVS credentials, full serials, MAC addresses, certificates, account emails, household telemetry, API tokens, or live private URLs.

HelioSlate is licensed under the MIT License.

About

Private, local-first SunPower PVS6 monitoring dashboard

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages