Home Assistant Unofficial Reference 2024.12.1
config_flow.py
Go to the documentation of this file.
1 """Config flow for Raspberry Pi Power Supply Checker."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import Awaitable
6 from typing import Any
7 
8 from rpi_bad_power import new_under_voltage
9 
10 from homeassistant.config_entries import ConfigFlowResult
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.config_entry_flow import DiscoveryFlowHandler
13 
14 from .const import DOMAIN
15 
16 
17 async def _async_supported(hass: HomeAssistant) -> bool:
18  """Return if the system supports under voltage detection."""
19  under_voltage = await hass.async_add_executor_job(new_under_voltage)
20  return under_voltage is not None
21 
22 
23 class RPiPowerFlow(DiscoveryFlowHandler[Awaitable[bool]], domain=DOMAIN):
24  """Discovery flow handler."""
25 
26  VERSION = 1
27 
28  def __init__(self) -> None:
29  """Set up config flow."""
30  super().__init__(
31  DOMAIN,
32  "Raspberry Pi Power Supply Checker",
33  _async_supported,
34  )
35 
37  self, data: dict[str, Any] | None = None
38  ) -> ConfigFlowResult:
39  """Handle a flow initialized by onboarding."""
40  has_devices = await self._discovery_function(self.hass)
41 
42  if not has_devices:
43  return self.async_abort(reason="no_devices_found")
44  return self.async_create_entry(title=self._title, data={})
ConfigFlowResult async_step_onboarding(self, dict[str, Any]|None data=None)
Definition: config_flow.py:38