1 """Config flow for the Home Assistant Green integration."""
3 from __future__
import annotations
10 import voluptuous
as vol
14 async_get_green_settings,
15 async_set_green_settings,
27 from .const
import DOMAIN
29 _LOGGER = logging.getLogger(__name__)
31 STEP_HW_SETTINGS_SCHEMA = vol.Schema(
34 vol.Required(
"power_led"): selector.BooleanSelector(),
35 vol.Required(
"activity_led"): selector.BooleanSelector(),
36 vol.Required(
"system_health_led"): selector.BooleanSelector(),
42 """Handle a config flow for Home Assistant Green."""
49 config_entry: ConfigEntry,
50 ) -> HomeAssistantGreenOptionsFlow:
51 """Return the options flow."""
55 self, data: dict[str, Any] |
None =
None
56 ) -> ConfigFlowResult:
57 """Handle the initial step."""
62 """Handle an option flow for Home Assistant Green."""
64 _hw_settings: dict[str, bool] |
None =
None
67 self, user_input: dict[str, Any] |
None =
None
68 ) -> ConfigFlowResult:
69 """Manage the options."""
71 return self.
async_abortasync_abort(reason=
"not_hassio")
73 return await self.async_step_hardware_settings()
75 async
def async_step_hardware_settings(
76 self, user_input: dict[str, Any] |
None =
None
77 ) -> ConfigFlowResult:
78 """Handle hardware settings."""
80 if user_input
is not None:
84 async
with asyncio.timeout(10):
86 except (aiohttp.ClientError, TimeoutError, HassioAPIError)
as err:
87 _LOGGER.warning(
"Failed to write hardware settings", exc_info=err)
88 return self.
async_abortasync_abort(reason=
"write_hw_settings_error")
92 async
with asyncio.timeout(10):
96 except (aiohttp.ClientError, TimeoutError, HassioAPIError)
as err:
97 _LOGGER.warning(
"Failed to read hardware settings", exc_info=err)
98 return self.
async_abortasync_abort(reason=
"read_hw_settings_error")
104 return self.
async_show_formasync_show_form(step_id=
"hardware_settings", data_schema=schema)
HomeAssistantGreenOptionsFlow async_get_options_flow(ConfigEntry config_entry)
ConfigFlowResult async_step_system(self, dict[str, Any]|None data=None)
ConfigFlowResult async_step_init(self, dict[str, Any]|None user_input=None)
ConfigFlowResult async_create_entry(self, *str title, Mapping[str, Any] data, str|None description=None, Mapping[str, str]|None description_placeholders=None, Mapping[str, Any]|None options=None)
vol.Schema add_suggested_values_to_schema(self, vol.Schema data_schema, Mapping[str, Any]|None suggested_values)
_FlowResultT async_show_form(self, *str|None step_id=None, vol.Schema|None data_schema=None, dict[str, str]|None errors=None, Mapping[str, str]|None description_placeholders=None, bool|None last_step=None, str|None preview=None)
_FlowResultT async_create_entry(self, *str|None title=None, Mapping[str, Any] data, str|None description=None, Mapping[str, str]|None description_placeholders=None)
_FlowResultT async_abort(self, *str reason, Mapping[str, str]|None description_placeholders=None)
dict async_set_green_settings(HomeAssistant hass, dict[str, bool] settings)
dict[str, bool] async_get_green_settings(HomeAssistant hass)
bool is_hassio(HomeAssistant hass)