Use new helper properties in rfxtrx options flow (#129784)
This commit is contained in:
parent
7ab8ff56b3
commit
595459bfda
1 changed files with 15 additions and 16 deletions
|
@ -87,9 +87,8 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
_device_registry: dr.DeviceRegistry
|
_device_registry: dr.DeviceRegistry
|
||||||
_device_entries: list[dr.DeviceEntry]
|
_device_entries: list[dr.DeviceEntry]
|
||||||
|
|
||||||
def __init__(self, config_entry: ConfigEntry) -> None:
|
def __init__(self) -> None:
|
||||||
"""Initialize rfxtrx options flow."""
|
"""Initialize rfxtrx options flow."""
|
||||||
self._config_entry = config_entry
|
|
||||||
self._global_options: dict[str, Any] = {}
|
self._global_options: dict[str, Any] = {}
|
||||||
self._selected_device: dict[str, Any] = {}
|
self._selected_device: dict[str, Any] = {}
|
||||||
self._selected_device_entry_id: str | None = None
|
self._selected_device_entry_id: str | None = None
|
||||||
|
@ -120,9 +119,7 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
event_code = device_data["event_code"]
|
event_code = device_data["event_code"]
|
||||||
assert event_code
|
assert event_code
|
||||||
self._selected_device_event_code = event_code
|
self._selected_device_event_code = event_code
|
||||||
self._selected_device = self._config_entry.data[CONF_DEVICES][
|
self._selected_device = self.config_entry.data[CONF_DEVICES][event_code]
|
||||||
event_code
|
|
||||||
]
|
|
||||||
self._selected_device_object = get_rfx_object(event_code)
|
self._selected_device_object = get_rfx_object(event_code)
|
||||||
return await self.async_step_set_device_options()
|
return await self.async_step_set_device_options()
|
||||||
if CONF_EVENT_CODE in user_input:
|
if CONF_EVENT_CODE in user_input:
|
||||||
|
@ -148,7 +145,7 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
|
|
||||||
device_registry = dr.async_get(self.hass)
|
device_registry = dr.async_get(self.hass)
|
||||||
device_entries = dr.async_entries_for_config_entry(
|
device_entries = dr.async_entries_for_config_entry(
|
||||||
device_registry, self._config_entry.entry_id
|
device_registry, self.config_entry.entry_id
|
||||||
)
|
)
|
||||||
self._device_registry = device_registry
|
self._device_registry = device_registry
|
||||||
self._device_entries = device_entries
|
self._device_entries = device_entries
|
||||||
|
@ -162,11 +159,11 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
options = {
|
options = {
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_AUTOMATIC_ADD,
|
CONF_AUTOMATIC_ADD,
|
||||||
default=self._config_entry.data[CONF_AUTOMATIC_ADD],
|
default=self.config_entry.data[CONF_AUTOMATIC_ADD],
|
||||||
): bool,
|
): bool,
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_PROTOCOLS,
|
CONF_PROTOCOLS,
|
||||||
default=self._config_entry.data.get(CONF_PROTOCOLS) or [],
|
default=self.config_entry.data.get(CONF_PROTOCOLS) or [],
|
||||||
): cv.multi_select(RECV_MODES),
|
): cv.multi_select(RECV_MODES),
|
||||||
vol.Optional(CONF_EVENT_CODE): str,
|
vol.Optional(CONF_EVENT_CODE): str,
|
||||||
vol.Optional(CONF_DEVICE): vol.In(configure_devices),
|
vol.Optional(CONF_DEVICE): vol.In(configure_devices),
|
||||||
|
@ -425,7 +422,7 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
def _can_add_device(self, new_rfx_obj: rfxtrxmod.RFXtrxEvent) -> bool:
|
def _can_add_device(self, new_rfx_obj: rfxtrxmod.RFXtrxEvent) -> bool:
|
||||||
"""Check if device does not already exist."""
|
"""Check if device does not already exist."""
|
||||||
new_device_id = get_device_id(new_rfx_obj.device)
|
new_device_id = get_device_id(new_rfx_obj.device)
|
||||||
for packet_id, entity_info in self._config_entry.data[CONF_DEVICES].items():
|
for packet_id, entity_info in self.config_entry.data[CONF_DEVICES].items():
|
||||||
rfx_obj = get_rfx_object(packet_id)
|
rfx_obj = get_rfx_object(packet_id)
|
||||||
assert rfx_obj
|
assert rfx_obj
|
||||||
|
|
||||||
|
@ -468,7 +465,7 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
assert entry
|
assert entry
|
||||||
device_id = get_device_tuple_from_identifiers(entry.identifiers)
|
device_id = get_device_tuple_from_identifiers(entry.identifiers)
|
||||||
assert device_id
|
assert device_id
|
||||||
for packet_id, entity_info in self._config_entry.data[CONF_DEVICES].items():
|
for packet_id, entity_info in self.config_entry.data[CONF_DEVICES].items():
|
||||||
if tuple(entity_info.get(CONF_DEVICE_ID)) == device_id:
|
if tuple(entity_info.get(CONF_DEVICE_ID)) == device_id:
|
||||||
event_code = cast(str, packet_id)
|
event_code = cast(str, packet_id)
|
||||||
break
|
break
|
||||||
|
@ -481,8 +478,8 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
devices: dict[str, Any] | None = None,
|
devices: dict[str, Any] | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Update data in ConfigEntry."""
|
"""Update data in ConfigEntry."""
|
||||||
entry_data = self._config_entry.data.copy()
|
entry_data = self.config_entry.data.copy()
|
||||||
entry_data[CONF_DEVICES] = copy.deepcopy(self._config_entry.data[CONF_DEVICES])
|
entry_data[CONF_DEVICES] = copy.deepcopy(self.config_entry.data[CONF_DEVICES])
|
||||||
if global_options:
|
if global_options:
|
||||||
entry_data.update(global_options)
|
entry_data.update(global_options)
|
||||||
if devices:
|
if devices:
|
||||||
|
@ -494,9 +491,9 @@ class RfxtrxOptionsFlow(OptionsFlow):
|
||||||
entry_data[CONF_DEVICES].pop(event_code, None)
|
entry_data[CONF_DEVICES].pop(event_code, None)
|
||||||
else:
|
else:
|
||||||
entry_data[CONF_DEVICES][event_code] = options
|
entry_data[CONF_DEVICES][event_code] = options
|
||||||
self.hass.config_entries.async_update_entry(self._config_entry, data=entry_data)
|
self.hass.config_entries.async_update_entry(self.config_entry, data=entry_data)
|
||||||
self.hass.async_create_task(
|
self.hass.async_create_task(
|
||||||
self.hass.config_entries.async_reload(self._config_entry.entry_id)
|
self.hass.config_entries.async_reload(self.config_entry.entry_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -637,9 +634,11 @@ class RfxtrxConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@callback
|
@callback
|
||||||
def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow:
|
def async_get_options_flow(
|
||||||
|
config_entry: ConfigEntry,
|
||||||
|
) -> RfxtrxOptionsFlow:
|
||||||
"""Get the options flow for this handler."""
|
"""Get the options flow for this handler."""
|
||||||
return RfxtrxOptionsFlow(config_entry)
|
return RfxtrxOptionsFlow()
|
||||||
|
|
||||||
|
|
||||||
def _test_transport(host: str | None, port: int | None, device: str | None) -> bool:
|
def _test_transport(host: str | None, port: int | None, device: str | None) -> bool:
|
||||||
|
|
Loading…
Add table
Reference in a new issue