feat: Werks-Token im Einrichtungsdialog vorbelegen

Die Firmware antwortet im Auslieferungszustand und nach jedem Werksreset mit
dem oeffentlichen Werks-Token aabbccddeeff0011223344 - genau wie ninlight.
Wie ha-ninlight belegt die Integration es deshalb im Dialog vor, beim
manuellen Einrichten, beim Fund per mDNS und in den Texten zur
Token-Erneuerung.
This commit is contained in:
ninharp
2026-09-22 17:48:53 +02:00
parent adec66a6a2
commit 5ac410a416
5 changed files with 109 additions and 37 deletions
+4 -3
View File
@@ -23,6 +23,7 @@ from .api import NinstripAuthError, NinstripClient, NinstripError, NinstripRespo
from .const import (
CONF_SCAN_INTERVAL,
DEFAULT_SCAN_INTERVAL,
DEFAULT_TOKEN,
DOMAIN,
MAX_SCAN_INTERVAL,
MIN_SCAN_INTERVAL,
@@ -94,7 +95,7 @@ class NinstripConfigFlow(ConfigFlow, domain=DOMAIN):
data_schema=vol.Schema(
{
vol.Required(CONF_HOST, default=self._host): str,
vol.Required(CONF_TOKEN): str,
vol.Required(CONF_TOKEN, default=DEFAULT_TOKEN): str,
}
),
errors=errors,
@@ -117,7 +118,7 @@ class NinstripConfigFlow(ConfigFlow, domain=DOMAIN):
async def async_step_discovery_confirm(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Das Token steht einmalig auf der seriellen Konsole - es muss von Hand herein."""
"""Vorbelegt mit dem Werks-Token - ein frisch onboardetes Geraet antwortet damit."""
errors: dict[str, str] = {}
if user_input is not None:
info, errors = await self._async_probe(self._host, user_input[CONF_TOKEN])
@@ -125,7 +126,7 @@ class NinstripConfigFlow(ConfigFlow, domain=DOMAIN):
return await self._async_finish(self._host, user_input[CONF_TOKEN], info)
return self.async_show_form(
step_id="discovery_confirm",
data_schema=vol.Schema({vol.Required(CONF_TOKEN): str}),
data_schema=vol.Schema({vol.Required(CONF_TOKEN, default=DEFAULT_TOKEN): str}),
description_placeholders={"name": self._discovered_name, "host": self._host},
errors=errors,
)