Skip to content

Releases: solectrus/helios

v0.3.0

17 May 11:03
v0.3.0
6436792

Choose a tag to compare

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_PROVIDER no longer lose their entire forecast-collector service — they correctly default to forecast.solar
  • Stacks that define everything inline in compose environment: blocks (no .env file) 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 to 3000:3000
  • Stacks with multiple shelly-collector services (one per device) are imported into a single, unified Shelly device list
  • Legacy *_INFLUX_MEASUREMENT variables 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_INTERVAL now 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

07 May 10:49
v0.2.0
823736f

Choose a tag to compare

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.bak and .env.bak and 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_DECLINATION is fanned out to per-roof values.
  • Shelly: mode and power_data_type are preserved.
  • Polling intervals are preserved instead of reset to defaults: INFLUX_POLL_INTERVAL, POWER_SPLITTER_INTERVAL, dashboard WEB_CONCURRENCY.
  • The SENEC data source is inferred from the actual measurement found in InfluxDB.
  • Legacy ELECTRICITY_PRICE and FEED_IN_TARIFF variables 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.yaml are 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.
  • TZ is passed through to database services and the shelly-collector.
  • Dashboard uses Redis DB 1.
  • FORCE_SSL is emitted based on the presence of Traefik.
  • Bind-mount volume paths and the power-splitter interval are emitted via .env.
  • An imported ingest service 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

30 Apr 11:01
v0.1.1
70a5c00

Choose a tag to compare

Small maintenance release.

Changes

  • Slimmer Docker image: unused files removed

Full Changelog: v0.1.0...v0.1.1

v0.1.0

30 Apr 11:01
v0.1.0
84235b7

Choose a tag to compare

Initial release

HELIOS manages your SOLECTRUS stack through a web interface — no more editing config files by hand or running Docker commands on the terminal.

Pre-1.0: Still under active development. Expect a few rough edges.