Thanks for helping improve private, local-first solar monitoring.
- Search existing issues for the same gateway, firmware, or symptom.
- Confirm the problem occurs on the newest release.
- Export only HelioSlate's sanitized diagnostics when requested.
- Remove full serial numbers, MAC addresses, certificates, email addresses, computer names, local/public IP addresses, Tailscale hostnames, and tokens from screenshots and pasted logs.
Security vulnerabilities should follow SECURITY.md, not a public issue.
HelioSlate currently supports the tested PVS6 Varserver shape. A useful request for another firmware or gateway includes:
- Vendor and exact hardware model.
- Firmware version.
- Whether the device is homeowner-owned and reachable on the local LAN.
- Publicly documented read-only API material, if available.
- The smallest possible redacted sample response needed to demonstrate a different field or payload shape.
Do not upload an entire capture. Replace device IDs and serials consistently so relationships remain testable without exposing the household.
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 installBefore submitting a change, run:
.\.venv\Scripts\python.exe -m ruff check backend tests scripts
.\.venv\Scripts\python.exe -m mypy backend\helioslate
.\.venv\Scripts\python.exe -m pytest
npm.cmd --prefix frontend test
npm.cmd --prefix frontend run build
npm.cmd --prefix onboarding test
npm.cmd --prefix onboarding run lint
.\.venv\Scripts\python.exe scripts\check_publication_safety.py- Keep production PVS operations read-only.
- Preserve certificate pinning and private-network validation.
- Never infer missing energy or silently smooth across collection gaps.
- Keep remote viewers read-only and owner approval local to the host.
- Add or update tests for protocol, security, collection, and history changes.
- Use synthetic fixture data in tests, documentation, and screenshots.
Keep changes focused and explain:
- What changed and why.
- User-visible behavior.
- Security or privacy implications.
- Validation performed.
By contributing, you agree that your contribution is licensed under the project's MIT License.