fix: Einstellungen liessen sich gar nicht speichern

In ha-dev brach jeder Versuch, den Abfrageabstand oder die HA-Adresse zu
sichern, mit einem 500er ab. Im Protokoll stand der Grund:

    ValueError: Config entry update listeners should not be used with
    OptionsFlowWithReload

Der Eintrag meldete zusaetzlich einen add_update_listener an, der beim
Aendern neu laedt - genau das macht OptionsFlowWithReload aber schon
selbst, und Home Assistant weist die Kombination rundheraus ab. Der
Listener faellt weg.

Die Tests in test_config_flow.py konnten das nicht sehen: dort ist
async_setup_entry durchweg ersetzt, der Eintrag wird also nie wirklich
aufgesetzt und meldet auch keinen Listener an. Der neue Test in
test_init.py laeuft am eingerichteten Eintrag und faellt, wenn man den
Listener wieder einbaut - gegengeprueft.
This commit is contained in:
Michael Sauer
2026-09-22 23:41:22 +02:00
parent 257838a227
commit 3dc89089cc
2 changed files with 33 additions and 5 deletions
+5 -4
View File
@@ -48,7 +48,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: NinstripConfigEntry) ->
entry.runtime_data = coordinator
await async_start_catalog(hass, async_get_shared(hass))
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
entry.async_on_unload(entry.add_update_listener(_async_options_updated))
return True
@@ -69,6 +68,8 @@ async def async_remove_entry(hass: HomeAssistant, entry: NinstripConfigEntry) ->
ir.async_delete_issue(hass, DOMAIN, f"wifi_guard_{entry.entry_id}")
async def _async_options_updated(hass: HomeAssistant, entry: NinstripConfigEntry) -> None:
"""Eine geaenderte Abfragehaeufigkeit wirkt ohne Neustart."""
await hass.config_entries.async_reload(entry.entry_id)
# Kein add_update_listener zum Neuladen: der Einstellungsdialog ist ein
# OptionsFlowWithReload und laedt selbst neu. Beides zusammen weist Home
# Assistant seit 2026.x rundheraus ab ("Config entry update listeners should
# not be used with OptionsFlowWithReload") - gemerkt am 22.09.2026, als sich
# in ha-dev keine einzige Einstellung speichern liess.