feat(eosdash): add the remaining steps to the setup assistant - #1515⁠

The setup assistant only covered the location, the horizons and the energy
management, and sent the user to the Config page for everything else.

Add the steps PV system, weather, prices and fees, load, devices and
measurements, each with an explanation, an example and a check of what is
still to do.

Add a Home Assistant step after the measurements step that explains what EOS
reads from and writes to Home Assistant, with a template sensor and an automation
as example. Its status reports a missing state of charge mapping, missing instruction
entities and an adapter that is selected while EOS does not run as an add-on. The
measurements step keeps the choice of the adapter.

Add examples for an inverter, an electric vehicle and a home appliance.

A step can now show configuration values depending on the value of another
one (WizardChoice), so that only the settings of the selected provider are
shown. The horizon of the selected optimization algorithm uses the same
mechanism instead of a placeholder in the configuration name.

Describe the profiles, point to the Profiles page and use the
profile_adjustment settings in the examples. The packaged profiles are
generic and give no size, so the devices step now reports a battery,
electric vehicle or inverter whose effective nominal capacity or power is
unknown. The changelog entry names the Home Assistant step.

Signed-off-by: SchaafAlexander <86607129+SchaafAlexander@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Assisted-by: Claude Code (claude-fable-5-2)
This commit is contained in:
SchaafAlexander
2026-11-12 13:35:37 +01:00
committed by GitHub
co-authored by Claude Fable 5.2
parent 8e94ab02d1
commit fca524a913
5 changed files with 1009 additions and 32 deletions
+18
View File
@@ -201,3 +201,21 @@ class TestEOSdashInBrowser:
assert dash.page.locator("#wizard").count() == 1
assert "Step 2 of" in dash.page_content()
assert dash.errors == []
def test_setup_wizard_shows_provider_settings(self, dash: DashPage) -> None:
"""Selecting a provider in the setup wizard shows its settings, which work in the wizard."""
assert dash.open_tab("/eosdash/wizard") == 200
dash.page.click("#wizard-step-pv")
dash.page.wait_for_selector("#wizard[hx-vals*='\"pv\"']")
dash.page.click("#wizard summary:has-text('pvforecast.provider')")
dash.page.select_option("#pvforecast-provider-value-select", "PVForecastAkkudoktor")
dash.page.click("#pvforecast-provider-update-value-form button")
planes = "#wizard summary:has-text('pvforecast.planes')"
dash.page.wait_for_selector(planes)
# The card of a list of items sends its updates to the wizard, too
dash.page.click(f"{planes} button:has-text('Add item')")
dash.page.wait_for_selector(f"{planes} >> text=1 item")
assert dash.page.locator("#wizard[hx-vals*='\"pv\"']").count() == 1
assert dash.errors == []