Skip to content

Releases: Developer-Simon/energy-node

v0.8.5

Choose a tag to compare

@github-actions github-actions released this 04 Oct 20:34
c15a920

Features

  • The changelog pages open on the highlights, the switch at the top shows everything. (#84) (5cc1cfb)
  • homeassistant: add Energy Node Companion as a history exchange peer (#85) (5bd7f48)
  • dashboard: list the recorded series in the history exchange announcement (58c59a2)
  • dashboard: relay an optional sender label with history exchange offers (e4dc868)
  • dashboard: name the source of exchanged history rows in the settings (6a5d816)
  • dashboard: link the HA device to the node's Tailscale address (7c6d6ab)
  • dashboard: switch the versions page between highlights and everything (25b7c01)

Documentation

  • dashboard: use matching German quotes for the device link note (7f5a20f)
  • describe the Home Assistant history exchange peer (793aad8)
  • highlights and details, screenshot script for the installer (105e72e)

Tests

  • dashboard: follow the settings and history exchange cache-bust (979e317)
  • dashboard: smoke fixtures carry highlight flags (0fadf49)

v0.8.3

Choose a tag to compare

@github-actions github-actions released this 01 Oct 22:03
d862195

Features

  • battery_soc: save the state on an interval and recover after a crash (#78) (dc62037)
  • updater: record changelog.json next to the installed manifest (a823aa6)
  • dashboard: lead the update pill to the update screen for users who may update (70fd1b0)
  • battery_soc: add the save interval setting to the service schema (df73211)

Fixes

  • dashboard: rest the battery flow icon on its fill level at 0 W (#81) (295ab6a)
  • dashboard: report the installed version as from in the redeploy preview (adcdc18)

Tests

  • dashboard: cover /redeploy/api/changelog through the real handler chain (4977691)
  • dashboard: ship a changelog in the simulated package so the smoke run shows what is new (9829d3b)

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 16:22
ea05c63

Highlights

  • Bilingual dashboard: every screen is available in English and German, with a language switcher, a number format setting and locale-aware dates.
  • Device icons and favourites: pick an icon per device and pin favourite entities to the cards and the device modal. The icons also ship as a Home Assistant icon set.
  • Versions page: a new page under settings shows the installed component versions, the changelog and the update check.
  • DC-only battery systems: battery_soc supports DC-only setups, and the configuration forms only show the fields that apply to your system type and bank layout.
  • Automations: weekdays in the editor and a new sun_window condition.
  • Redeploy: a running redeploy stays visible across the dashboard's self-update restart.

Features

  • dashboard: per-device icons and pinned favourite entities (#53) (d649df3)
  • homeassistant: ship the dashboard's device icons as an HA icon set (#54) (c4c196b)
  • battery_soc: DC-only systems in the MQTT service and conditional config forms (#58) (89bacae)
  • dashboard: localization foundation with language switcher (#59) (7f8ed9f)
  • dashboard: number format setting and locale-aware dates (localization A2) (#60) (6d8ba8b)
  • dashboard: localize the shell and the overview (#62) (e96f396)
  • automation: weekdays in the editor and a sun_window condition (#63) (b32936a)
  • dashboard: localize energy and settings (#64) (5445f5b)
  • dashboard: localize configuration and the layout editor (#67) (9609a2d)
  • dashboard: localize automations and history, guard every UI text (#68) (cce3f4f)
  • dashboard: localize API error messages (#69) (368214a)
  • dashboard: localize validation errors and diagnostics (#70) (9827111)
  • dashboard: show installed component versions under settings (#71) (c8ef59b)
  • dashboard: localize the system configuration form (#72) (c716d05)
  • dashboard: localize the device configuration forms (#73) (180110d)
  • dashboard: show the redeploy screen in the dashboard language (#74) (6542022)
  • dashboard: write the central schema in English and move German to the catalog (bd26f60)
  • dashboard: describe every field of the system configuration form (012ea1c)
  • dashboard: add a versions package that reads what the installer left on the node (0dee5e2)
  • dashboard: add read-only /api/v1/versions and /api/v1/changelog (637efd3)
  • dashboard: add the versionsPanel component and its texts (56c0ffa)
  • dashboard: add a versions page under Einstellungen (d2c90cf)
  • dashboard: drop the dashboard version from the System panel (5d446fb)
  • dashboard: drop the link to the Versionen tab from the System panel (be8b2ee)
  • dashboard: move the update check into its own card on the Versionen page (643fa05)
  • dashboard: catalog keys for diagnostics warnings (f412fb4)
  • dashboard: translatable fields in API error responses (b1afd64)
  • config: deliver catalog keys for configuration display names (a123577)
  • storagehealth: return catalog keys next to the German labels (8b8b464)
  • settings: return a catalog key for the bridge address warning (10d63fe)
  • energy: return catalog keys for role labels and sign hints (a0e4fd6)
  • settings: add number format and digit grouping settings (2c67fd6)
  • webui: show live device values in the configured number format (f23ebf5)
  • history: localize chart labels, tooltips and the date range picker (dcde8a1)
  • localize: resolve the UI language from cookie and Accept-Language (1835383)
  • dashboard: installer-style language pill and a formatting settings card (16aa9a8)
  • dashboard: validate conditional JSON schema entries (if/then/else) (56cb98e)
  • dashboard: expose each service's reload result per configuration (6f9f9ea)
  • dashboard: show and hide conditional schema fields in the config editor (ca8f760)
  • dashboard: show whether a service took over a saved configuration (304d813)
  • battery_soc: conditional battery schema for system type and bank layout (53943e9)
  • dashboard: animate conditional schema fields in and out (90425d7)
  • battery_soc: require the bank A voltage topic in the dashboard form (5573a33)
  • dashboard: export the device icon catalogue for Home Assistant (e7b3f40)
  • dashboard: store per-device icon and favourite preferences (490352a)
  • dashboard: let favourite entities drive the compact card rows (78749f7)
  • dashboard: add a device icon catalogue and render it on the cards (8c90408)
  • dashboard: serve device preferences to the tab, the stream and the modal (053972a)
  • dashboard: add the device preferences and icon catalogue endpoints (8a9256a)
  • dashboard: edit device icon and favourites in the device modal (1f32950)
  • dashboard: pin a device's favourite entities at the top of its modal (b385f9c)
  • dashboard: suggest device icons by type and polish the display prefs (1b14baa)

Fixes

  • dashboard: name the signed battery and grid energy roles (99a5cb4)
  • dashboard: name history series instead of showing their ids (84753a7)
  • dashboard: pass service fields and previous versions to the redeploy preview (#51) (0c07bc1)
  • redeploy: keep following a run across the dashboard's self-update restart (#52) (38a0609)
  • dashboard: tidy localization texts after the final review (c2b5853)
  • dashboard: drop two unused catalog keys (b1e01ca)
  • dashboard: keep plural-reserved .other off the versions catalog keys (e4e2b09)
  • dashboard: wrap version rows on narrow screens and localize release dates (036591f)
  • config: name Trucki devices as IoT sticks (2a16239)
  • dashboard: hide conditional schema fields despite the grid display rule (e3225b3)
  • dashboard: start the status watch after the editor save reloads the config (11911c0)
  • dashboard: tolerate fields of inactive schema branches from older files (06071f4)
  • battery_soc: show the imbalance threshold only for two banks in series (f402372)
  • dashboard: keep the exported icon markup readable in diffs (dc5114a)
  • dashboard: keep the pinned-favourites block from breaking the modal grid (c0876ee)

Refactors

  • dashboard: stop reading the services VERSION file on the node (c1e19de)
  • dashboard: report passed-through API errors as detail (aa941d5)

Documentation

  • dashboard: English screenshots and docs for the bilingual UI (85caf1c)
  • dashboard: describe config_revision as the last load attempt (715dd30)
  • battery_soc: document DC-only systems, signed inputs and current units (6c2df1f)
  • dashboard: document the device preference endpoints and bump the assets (aed1eee)

Tests

  • dashboard: add --simulate-installed to the smoke test and check the versions API with it (25c06ff)
  • dashboard: fix cross-realm deepEqual in the new prefsDraft test (02d2ef3)

Style

  • dashboard: gofmt the device-prefs struct fields (19d915e)
  • dashboard: draw device icons larger inside their frame (86f909c)

v0.7.8

Choose a tag to compare

@github-actions github-actions released this 23 Sep 17:31
1e6d571

Features

  • installer: add package sources (file, repo build, GitHub) (#42) (f831eab)
  • dashboard: download the newest release bundle from the redeploy page (#44) (245b277)
  • installer: restart only the service units whose version changed (#48) (1d2c57f)
  • shelly: optional wake webhook so a sleeping Gen1 device is polled the moment it wakes (3105234)
  • installer: pass step requirements from the manifest to the web UI (69ffe39)
  • installer: carry a restart-all request from the UI to the service steps (bad757a)
  • installer: show per service which units restart in the preview (e2464cb)
  • updater: take the target from the root-owned target.json for user-independent bundles (e3813fc)
  • dashboard: add a GitHub release client that finds and downloads the node bundle (0493264)
  • dashboard: extract, validate and atomically install a downloaded bundle (e0896ae)
  • dashboard: add the Fetcher that downloads the newest bundle into the candidate directory (d411166)
  • dashboard: run a prepare step in the redeploy host through a Prepare seam (4def9a9)
  • dashboard: download the newest release bundle into the redeploy candidate directory (6ae89ec)
  • updater: record the applied manifest as installed-manifest.json (c7e3d4b)

Fixes

  • auth: backfill RoleCheckUpdates for an already-bootstrapped admin (#38) (58d94f3)
  • dashboard: show the download icon in the masthead update badge (#40) (d50ebf9)
  • dashboard: stop duplicate energy card mounts from fighting over springs (#41) (3d3d7a8)
  • installer: restart service units on update and record the installed manifest (#43) (0f2aec2)
  • render the system-action helper on the node, validate targets with fullmatch, register the new tests (e546498)
  • dashboard: hand the redeploy page the session's CSRF token (7bd8f3a)
  • dashboard: implement the new hostapi.Sink.Message method (8ae6af3)

Documentation

  • describe which service units an update restarts (08ae4b9)

Tests

  • dashboard: add a shelly-ht smoke preset for sleepy H&T devices (07f6a6e)
  • dashboard: show the package download in the local smoke test (f2c2f2c)

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 22:38
80f184b

Fixes

  • apsystems: stop publishing the legacy power_status sensor removal (#36) (b1d352b)
  • bootstrap: make steps 20, 40, 65, 70 and the diagnosis work on a real node (#37) (11eef9d)
  • auth: backfill RoleCheckUpdates for an already-bootstrapped admin (#38) (58d94f3)

Documentation

  • installer: add an end-user installer page and refresh the developer page (31acec4)

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 19:34
e5fc9db

Features

  • dashboard: make the "check for updates" button more prominent (00a5e46)
  • dashboard: link the update-available chip to the redeploy screen (c60f545)
  • webui: add the installer's layer-3 web UI, browser tests and CI (#28) (e819b5e)
  • installer: polish for the installer webui (#30) (05d424b)
  • installer: hide dashboard tabs for deselected optional services (#31) (59f2d40)
  • apsystems: RAM-only power limits and extended diagnostics (#32) (909e735)
  • installer: add the dashboard's local self-update path (Plan D) (#33) (e50d236)
  • auth: add a role gating the GitHub update check (92e35f4)
  • updatecheck: add a GitHub release version checker (7f5a047)
  • settings: add a toggle for the automatic update check (207c345)
  • dashboard: run the daily update check and expose it over HTTP (4b2cf9e)
  • dashboard: show an update-available badge in the masthead (148a77e)
  • dashboard: add a manual update check to settings (e1e2d0b)
  • dashboard: add the updaterjob staging format (9b727eb)
  • dashboard: add the energy-node-updater orchestrator script Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (1a90149)
  • installer: install the updater unit and its .path trigger in step 60 Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (cd5df50)
  • dashboard: add the local updaterhost Backend (a23ab21)
  • dashboard: mount the local redeploy screen and resume it after a self-update restart Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (2f2f0a2)
  • dashboard: allow an optional installed_services block in config.json Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (0710bea)
  • dashboard: add Config.ServiceInstalled with the default-on rule Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (faa9300)
  • dashboard: thread a resolved installed_services map into the overview handler (9dbaa36)
  • dashboard: hide the automations tab and tailscale/tuya settings subpages when deselected Co-Authored-By: Claude Haiku 4.5 noreply@anthropic.com (106aa98)

Fixes

  • updatecheck: recognize the v-prefixed version main.go actually passes (7808e4c)
  • dashboard: use InFlight() to allow staging new jobs after previous job completes (2086154)
  • installer: remove unnecessary committed copy of signing key (3e23319)
  • dashboard: gate /redeploy/ behind the system-actions role and CSRF (7f3a132)
  • installer: make a real redeploy work and stop job.json from steering root (694cbe3)
  • dashboard: silence SC2317 on the trap-only finish_interrupted (7d5843d)
  • dashboard: keep the generated config schema in sync with its source (38d5d6d)
  • dashboard: forward-compatible schema, close automations fragment gap (6549e38)

Documentation

  • installer: reflect the merged web UI and its provisioning precondition (#29) (84726c8)

Tests

  • dashboard: add a smoke-test flag to simulate an available update (5c98ab5)
  • dashboard: add --https to the local smoke test (386d716)
  • dashboard: add a smoke-test preset with every optional service off (f1f33f5)

Chores

  • dashboard: bump version to v0.7.0 (441d4a7)
  • dashboard: bump cache-busted asset versions (d8d2094)
  • dashboard: depend on the energy-node-webui module (0ed9456)

v0.6.5

Choose a tag to compare

@github-actions github-actions released this 13 Sep 18:41
79ba6ee

Features

  • dashboard: replace theme select with a four-way segmented slider (#23) (3855e9c)
  • dashboard: redesign the MQTT settings tab (#24) (8844555)
  • installer: build the node-half bootstrap chain and signed bundle pipeline (#25) (f11e962)
  • installer: add the developer CLI's transport engine (#26) (1f8e44e)
  • dashboard: restyle MQTT settings tab to match card layout (2d5f2bf)
  • dashboard: fill row gaps and add floating save bars on MQTT tab (a389ce4)

Fixes

  • dashboard: keep MQTT settings steppers from overflowing narrow cards (65eb162)
  • dashboard: update webui tests for the bumped CSS cache-bust versions (49355fb)
  • dashboard: fix MQTT tab reflow, add steppers and tooltips (927e10f)

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 18:09
a1f6ec6

Features

  • dashboard: migrate config.json schema_version 1 to 2 on load (#20) (b8f72d1)
  • ⚠ Breaking: move node telemetry into the dashboard nodeagent (#19) (8049117)
  • dashboard: serve automation notifications from a dedicated endpoint (#6) (58bd7a6)
  • make device services self-describing with per-service manifests (#12) (2e8c911)
  • ⚠ Breaking: fold the config.json node block into dashboard.node_* (schema_version 2) (#14) (e7f4ba1)
  • dashboard: rebuild the history settings tab (#16) (5a41c5c)
  • dashboard: rebuild the settings tabs as responsive material cards (#18) (d905f8b)
  • dashboard: migrate config.json schema_version 1 to 2 on load (3ac68ef)
  • nodeagent: add injectable system-metric readers (547d1f3)
  • nodeagent: build the energy_node HA discovery and state payloads (acdd553)
  • ⚠ Breaking: move node telemetry into the dashboard, delete the energy-node service (540eac6)
  • dashboard: broadcast simulation_active and expose per-metric toggles (99dd2a5)
  • nodeagent: derive per-service liveness from MQTT (627cadc)
  • dashboard: optional CPU temp, RAM and undervoltage in the status bar (1fe14fe)
  • ⚠ Breaking: move the dashboard's own topics under outstation/energy_node (25358cb)
  • dashboard: rebuild the general and display settings tabs as material cards (fdba93e)
  • dashboard: rebuild the Verläufe settings tab with Apple-style controls (fecc586)
  • appconfig: add dashboard.node_* alongside the node block (e1c73d1)
  • dashboard: compose config.schema.json from per-service fragments (fc73de5)

Fixes

  • dashboard: finish the config.json v1 -> v2 migration path (#21) (9d4fb53)
  • dashboard: finish the config.json v1 -> v2 migration path (89252c9)
  • dashboard: show system-config revisions as a read-only list (#7) (3e7dee7)
  • changelog: roll unreleased sections into a hand minor bump (ea01be2)
  • nodeagent: address task-6 review findings (ee8e3c4)
  • nodeagent: correct throttle bits, guard node id, unify device block (92bd8fa)
  • dashboard: style the mqtt metric-toggle fieldset and refresh stale docs (0b3e4ec)

Refactors

  • split src/ into services/ and libs/, rename service-level device_id to service_id (#10) (75abe73)
  • remove git hooks, and stop the per-PR CHANGELOG stacking (#13) (c643260)
  • normalise the node MQTT/HA id to energy_node (800fd08)
  • dashboard: remove the no-op discovery-JSON-tooltip feature (04f298a)
  • read the node identity from dashboard.node_* (5e1e672)

Documentation

  • finish the energy-node -> energy_node rename and guard it (a01c32e)
  • drop remaining git-hooks references (7786f6d)
  • config.schema.json is now generated from per-service fragments (0105cb7)

Style

  • dashboard: lay the history settings cards out in a responsive grid (bc0cf9b)

Chores

  • bump minor versions for dashboard, services and energy_node_common (549a100)

CI

  • version-bump: refresh component changelogs on the PR branch (#11) (6326afb)
  • path-filter the workflow and flag breaking changes in the changelog (#15) (5282452)
  • skip Markdown-only diffs and gate the job set on the version bump (#17) (9446219)

Other

  • feat!: drop the node block, bump schema_version to 2 (7990f5c)

v0.6.0

v0.6.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Sep 22:15
8049117

Features

  • dashboard: serve automation notifications from a dedicated endpoint (#6) (58bd7a6)
  • make device services self-describing with per-service manifests (#12) (2e8c911)
  • ⚠ Breaking: fold the config.json node block into dashboard.node_* (schema_version 2) (#14) (e7f4ba1)
  • dashboard: rebuild the history settings tab (#16) (5a41c5c)
  • dashboard: rebuild the settings tabs as responsive material cards (#18) (d905f8b)
  • nodeagent: add injectable system-metric readers (547d1f3)
  • nodeagent: build the energy_node HA discovery and state payloads (acdd553)
  • ⚠ Breaking: move node telemetry into the dashboard, delete the energy-node service (540eac6)
  • dashboard: broadcast simulation_active and expose per-metric toggles (99dd2a5)
  • nodeagent: derive per-service liveness from MQTT (627cadc)
  • dashboard: optional CPU temp, RAM and undervoltage in the status bar (1fe14fe)
  • ⚠ Breaking: move the dashboard's own topics under outstation/energy_node (25358cb)
  • dashboard: rebuild the general and display settings tabs as material cards (fdba93e)
  • dashboard: rebuild the Verläufe settings tab with Apple-style controls (fecc586)
  • appconfig: add dashboard.node_* alongside the node block (e1c73d1)
  • dashboard: compose config.schema.json from per-service fragments (fc73de5)

Fixes

  • changelog: roll unreleased sections into a hand minor bump (ea01be2)
  • dashboard: show system-config revisions as a read-only list (#7) (3e7dee7)
  • nodeagent: address task-6 review findings (ee8e3c4)
  • nodeagent: correct throttle bits, guard node id, unify device block (92bd8fa)
  • dashboard: style the mqtt metric-toggle fieldset and refresh stale docs (0b3e4ec)

Refactors

  • split src/ into services/ and libs/, rename service-level device_id to service_id (#10) (75abe73)
  • remove git hooks, and stop the per-PR CHANGELOG stacking (#13) (c643260)
  • normalise the node MQTT/HA id to energy_node (800fd08)
  • dashboard: remove the no-op discovery-JSON-tooltip feature (04f298a)
  • read the node identity from dashboard.node_* (5e1e672)

Documentation

  • finish the energy-node -> energy_node rename and guard it (a01c32e)
  • drop remaining git-hooks references (7786f6d)
  • config.schema.json is now generated from per-service fragments (0105cb7)

Style

  • dashboard: lay the history settings cards out in a responsive grid (bc0cf9b)

Chores

  • bump minor versions for dashboard, services and energy_node_common (549a100)

CI

  • version-bump: refresh component changelogs on the PR branch (#11) (6326afb)
  • path-filter the workflow and flag breaking changes in the changelog (#15) (5282452)
  • skip Markdown-only diffs and gate the job set on the version bump (#17) (9446219)

Other

  • feat!: drop the node block, bump schema_version to 2 (7990f5c)

v0.5.18

Choose a tag to compare

@github-actions github-actions released this 07 Sep 17:42
9c19382

What's Changed

Full Changelog: v0.5.15...v0.5.18