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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user