Releases: solectrus/helios
Releases · solectrus/helios
v0.3.0
Importing existing stacks
HELIOS was hardened against a wide range of real-world SOLECTRUS configurations. Many of the following fixes prevent silent data loss when importing an existing compose.yaml / .env:
- Incompatible stacks are now blocked on import with a clear message instead of failing later (#89)
- Old stacks without
FORECAST_PROVIDERno longer lose their entire forecast-collector service — they correctly default to forecast.solar - Stacks that define everything inline in compose
environment:blocks (no.envfile) keep their passwords, secrets, org and bucket instead of getting fresh random secrets on export - InfluxDB role tokens (admin / read-write / write) wired through per-service custom variable names are now resolved individually instead of collapsing onto a single token
- Sensor mappings defined only in
.env(missing from the dashboard service) are recovered instead of being silently dropped together with their collector's data - Environment variables of unmanaged SOLECTRUS services are preserved
- Solcast multi-roof setups keep the correct per-roof site IDs across import/export
- A remapped dashboard host port (e.g.
3010:3000) is preserved instead of being reset to3000:3000 - Stacks with multiple
shelly-collectorservices (one per device) are imported into a single, unified Shelly device list - Legacy
*_INFLUX_MEASUREMENTvariables emitted by the old Online Configurator (2024) no longer leak into the imported configuration
Backup & Restore
- New backup system: create, download, upload, and restore full backups of your stack (#99)
Configuration
- Large configuration surveys split into smaller, focused steps
- Connection-test buttons in surveys (InfluxDB, MQTT, …) to verify settings before saving
- Improved forecast provider selection;
FORECAST_INTERVALnow adapts to the chosen provider - Dashboard host port configurable on a dedicated Network page
- Ingest image variant and data retention configurable under Advanced
- Collector image variant selectable for data sources
- Toggle to control whether InfluxDB port 8086 is published
- Switching deployment mode no longer leaves behind stale InfluxDB connection fields from the previous mode
Services & Monitoring
- Redis cache flush action available for services (#124)
- CPU usage and RAM shown in the header
- Support bundle now includes the InfluxDB schema overview and Postgres tables with row counts
UI
- New SOLECTRUS theme and Geist fonts
- Redesigned settings cards with a status footer
- Mobile-first navigation and layout
- Fixed a layout shift in service rows; labels now show the actual compose filename
Fixes
- Postgres data volume mount is now version-aware, fixing a wrong mount path on PostgreSQL < 18 (#124)
- Backup times shown in your timezone; restore no longer tears down HELIOS itself (#99)
- Self-update and restore respect the actual compose filename
- Exposed InfluxDB is routed through Traefik (#89)
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Stack adoption & UI polish
UI
- Deployment mode moved to its own card. Switching modes prunes sections that don't apply.
- Collectors-only and dashboard-only modes now show the correct set of services, data sources and sensors. The Sensors tab is hidden in collectors-only setups.
- New "Additional MQTT topics" page for standalone topic mappings.
- Shelly devices can be added and edited through a CRUD UI; per-phase fields are supported.
- Data source pages have a new empty state with a button to add the first entry.
- Service status row redesigned for legibility. The pending state remains visible for the entire duration of the job.
- "Recreate" was renamed to "Update".
- Log viewer: live streaming in the modal works reliably again, smooth-scrolls new lines, shows an indicator when new lines arrive while scrolled up, no longer grows the DOM unbounded, and the streaming status indicator was redesigned.
- The logs button is disabled for containers that have not yet started.
- When starting a service fails because one of its dependencies could not start, the requested service now shows a "Blocked by …" error pointing at the actual cause — instead of being left in a neutral state with no indication that the start had failed.
- Flash messages auto-dismiss after a delay.
- The "Get support" page offers both a GitHub Discussion and an Issue. Secrets are scrubbed from container logs before they are included in a support bundle.
- Bootstrap now displays the generated admin password after install. The disk-space preflight check uses more realistic numbers.
- External InfluxDB host can be configured.
- On the Configuration page, two new actions appear when backup files exist: "Reset import" restores the original
compose.yaml.bakand.env.bakand re-runs the importer; "Delete backups" removes them once the configuration is considered final. - Smaller fixes for headings, restart UI, custom sensor labels and modal opening.
Importer
- Traefik labels on managed services are read in and round-tripped on re-export.
- Custom bind-mount paths and named Docker volumes are preserved.
- Forecast: single-roof installations and multi-MPPT inverters are detected; a global
FORECAST_DECLINATIONis fanned out to per-roof values. - Shelly:
modeandpower_data_typeare preserved. - Polling intervals are preserved instead of reset to defaults:
INFLUX_POLL_INTERVAL,POWER_SPLITTER_INTERVAL, dashboardWEB_CONCURRENCY. - The SENEC data source is inferred from the actual measurement found in InfluxDB.
- Legacy
ELECTRICITY_PRICEandFEED_IN_TARIFFvariables and deprecated mqtt-collector variables are dropped on import. $$escaping in compose env values is unescaped correctly.- Standalone MQTT topic mappings are kept.
- The importer was split internally into smaller extractors per concern.
Exporter
- Environment variables in
compose.yamlare emitted in a stable order. Diffs across re-exports now reflect actual changes. - The single InfluxDB token was split into four role-scoped tokens (admin, read-write, write, read), each routed to the services that need it.
TZis passed through to database services and the shelly-collector.- Dashboard uses Redis DB 1.
FORCE_SSLis emitted based on the presence of Traefik.- Bind-mount volume paths and the power-splitter interval are emitted via
.env. - An imported
ingestservice is preserved on re-export, even when no balcony sensors are configured. - The do-not-edit warning header at the top of generated files was hardened.
- Per-provider azimuth ranges are annotated as comments.
- Duplicate labels on managed services are removed.
Container management
- After a HELIOS self-update, restart-pending markers now reflect the actual differences introduced by the new version. Stack files are rewritten on boot, and the baseline used for change detection is stored on the host instead of inside the container image, so it survives the update.
v0.1.1
Small maintenance release.
Changes
- Slimmer Docker image: unused files removed
Full Changelog: v0.1.0...v0.1.1