feat: implement UI config flow with single-instance enforcement (#4)

This commit was merged in pull request #4.
This commit is contained in:
2026-09-13 14:52:06 -04:00
parent ec888b6426
commit f787d04a6b
4 changed files with 287 additions and 0 deletions
@@ -0,0 +1,28 @@
"""Config flow for NestQuest."""
from __future__ import annotations
from typing import Any
from homeassistant import config_entries
from homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN
class NestQuestConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for NestQuest."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
"""Handle the user step of the config flow."""
await self.async_set_unique_id(DOMAIN, raise_on_progress=False)
if self._async_in_progress() or self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
if user_input is None:
return self.async_show_form(step_id="user")
return self.async_create_entry(title="NestQuest", data=user_input)
+17
View File
@@ -0,0 +1,17 @@
{
"title": "NestQuest",
"config": {
"step": {
"user": {
"title": "Add NestQuest",
"description": "Set up NestQuest to start coordinating the household. No additional configuration is required."
}
},
"abort": {
"single_instance_allowed": "NestQuest is already configured. Only a single instance is allowed."
},
"create_entry": {
"default": "NestQuest was successfully configured."
}
}
}
@@ -0,0 +1,17 @@
{
"title": "NestQuest",
"config": {
"step": {
"user": {
"title": "Add NestQuest",
"description": "Set up NestQuest to start coordinating the household. No additional configuration is required."
}
},
"abort": {
"single_instance_allowed": "NestQuest is already configured. Only a single instance is allowed."
},
"create_entry": {
"default": "NestQuest was successfully configured."
}
}
}