2929 DOMAIN ,
3030)
3131
32+
33+ def _get_experimental_schema (suggested_value : str | None = None ) -> vol .Schema :
34+ """Get the schema for experimental features configuration."""
35+ entity_selector = selector .EntitySelector (
36+ selector .EntitySelectorConfig (
37+ domain = ["sensor" , "input_number" , "number" ],
38+ )
39+ )
40+ if suggested_value :
41+ return vol .Schema (
42+ {
43+ vol .Optional (
44+ CONF_EXTERNAL_TEMP_ENTITY ,
45+ description = {"suggested_value" : suggested_value },
46+ ): entity_selector ,
47+ }
48+ )
49+ return vol .Schema (
50+ {
51+ vol .Optional (CONF_EXTERNAL_TEMP_ENTITY ): entity_selector ,
52+ }
53+ )
54+
55+
3256_LOGGER = logging .getLogger (__name__ )
3357
3458STEP_USER_DATA_SCHEMA = vol .Schema (
@@ -87,6 +111,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
87111
88112 def __init__ (self ) -> None :
89113 """Initialize the config flow."""
114+ super ().__init__ ()
90115 self ._connection_data : dict [str , Any ] = {}
91116 self ._experimental_features : bool = False
92117 self ._device_info : dict [str , Any ] = {}
@@ -151,17 +176,7 @@ async def async_step_experimental(self, user_input: dict[str, Any] | None = None
151176 external_temp_entity = user_input .get (CONF_EXTERNAL_TEMP_ENTITY )
152177 return self ._create_entry (external_temp_entity = external_temp_entity )
153178
154- experimental_schema = vol .Schema (
155- {
156- vol .Optional (CONF_EXTERNAL_TEMP_ENTITY ): selector .EntitySelector (
157- selector .EntitySelectorConfig (
158- domain = ["sensor" , "input_number" , "number" ],
159- )
160- ),
161- }
162- )
163-
164- return self .async_show_form (step_id = "experimental" , data_schema = experimental_schema )
179+ return self .async_show_form (step_id = "experimental" , data_schema = _get_experimental_schema ())
165180
166181 def _create_entry (self , external_temp_entity : str | None ) -> Any :
167182 """Create the config entry with options."""
@@ -186,6 +201,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow):
186201
187202 def __init__ (self , config_entry : config_entries .ConfigEntry ) -> None :
188203 """Initialize options flow."""
204+ super ().__init__ ()
189205 self ._config_entry = config_entry
190206 self ._connection_data : dict [str , Any ] = {}
191207 self ._experimental_features : bool = False
@@ -266,21 +282,11 @@ async def async_step_experimental(self, user_input: dict[str, Any] | None = None
266282
267283 current_external_temp_entity = self .config_entry .options .get (CONF_EXTERNAL_TEMP_ENTITY , "" )
268284
269- experimental_schema = vol .Schema (
270- {
271- vol .Optional (
272- CONF_EXTERNAL_TEMP_ENTITY ,
273- description = {"suggested_value" : current_external_temp_entity },
274- ): selector .EntitySelector (
275- selector .EntitySelectorConfig (
276- domain = ["sensor" , "input_number" , "number" ],
277- )
278- ),
279- }
285+ return self .async_show_form (
286+ step_id = "experimental" ,
287+ data_schema = _get_experimental_schema (current_external_temp_entity or None ),
280288 )
281289
282- return self .async_show_form (step_id = "experimental" , data_schema = experimental_schema )
283-
284290 async def _async_save_options (self , external_temp_entity : str | None ) -> Any :
285291 """Save connection data and options."""
286292 # Update the config entry data (connection settings)
0 commit comments