Skip to content

Commit

Permalink
Ensure CONF_ADVANCED_CONFIG is optional (#709)
Browse files Browse the repository at this point in the history
* Ensure CONF_ADVANCED_CONFIG isoptional

* Update control_unit.py
  • Loading branch information
SukramJ authored Aug 24, 2024
1 parent de6c18f commit e32426c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
8 changes: 4 additions & 4 deletions custom_components/homematicip_local/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,26 +192,26 @@ def get_advanced_schema(data: ConfigType, all_un_ignore_parameters: list[str]) -
"""Return the advanced schema."""
existing_parameters: list[str] = [
p
for p in data[CONF_ADVANCED_CONFIG].get(CONF_UN_IGNORE, DEFAULT_UN_IGNORE)
for p in data.get(CONF_ADVANCED_CONFIG, {}).get(CONF_UN_IGNORE, DEFAULT_UN_IGNORE)
if p in all_un_ignore_parameters
]
return vol.Schema(
{
vol.Required(
CONF_SYSVAR_SCAN_ENABLED,
default=data[CONF_ADVANCED_CONFIG].get(
default=data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_SYSVAR_SCAN_ENABLED, DEFAULT_SYSVAR_SCAN_ENABLED
),
): BOOLEAN_SELECTOR,
vol.Required(
CONF_SYSVAR_SCAN_INTERVAL,
default=data[CONF_ADVANCED_CONFIG].get(
default=data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_SYSVAR_SCAN_INTERVAL, DEFAULT_SYSVAR_SCAN_INTERVAL
),
): SCAN_INTERVAL_SELECTOR,
vol.Required(
CONF_ENABLE_SYSTEM_NOTIFICATIONS,
default=data[CONF_ADVANCED_CONFIG].get(
default=data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_ENABLE_SYSTEM_NOTIFICATIONS, DEFAULT_ENABLE_SYSTEM_NOTIFICATIONS
),
): BOOLEAN_SELECTOR,
Expand Down
14 changes: 9 additions & 5 deletions custom_components/homematicip_local/control_unit.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@
DEFAULT_DEVICE_FIRMWARE_CHECK_INTERVAL,
DEFAULT_DEVICE_FIRMWARE_DELIVERING_CHECK_INTERVAL,
DEFAULT_DEVICE_FIRMWARE_UPDATING_CHECK_INTERVAL,
DEFAULT_ENABLE_SYSTEM_NOTIFICATIONS,
DEFAULT_SYSVAR_SCAN_ENABLED,
DEFAULT_SYSVAR_SCAN_INTERVAL,
DEFAULT_UN_IGNORE,
DOMAIN,
EVENT_DEVICE_ID,
EVENT_ERROR,
Expand Down Expand Up @@ -111,8 +113,8 @@ def __init__(self, control_config: ControlConfig) -> None:
self._default_callback_port = control_config.default_callback_port
self._start_direct = control_config.start_direct
self._instance_name = self._config_data[CONF_INSTANCE_NAME]
self._enable_system_notifications = self._config_data[CONF_ADVANCED_CONFIG].get(
CONF_ENABLE_SYSTEM_NOTIFICATIONS, True
self._enable_system_notifications = self._config_data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_ENABLE_SYSTEM_NOTIFICATIONS, DEFAULT_ENABLE_SYSTEM_NOTIFICATIONS
)
self._central: CentralUnit = self._create_central()
self._attr_device_info: DeviceInfo | None = None
Expand Down Expand Up @@ -201,7 +203,9 @@ def _create_central(self) -> CentralUnit:
default_callback_port=self._default_callback_port,
interface_configs=interface_configs,
start_direct=self._start_direct,
un_ignore_list=self._config_data[CONF_ADVANCED_CONFIG].get(CONF_UN_IGNORE),
un_ignore_list=self._config_data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_UN_IGNORE, DEFAULT_UN_IGNORE
),
load_all_paramset_descriptions=True,
).create_central()

Expand Down Expand Up @@ -569,10 +573,10 @@ def __init__(
device_firmware_updating_check_interval
)
self.master_scan_interval: Final = master_scan_interval
self.sysvar_scan_enabled: Final = data[CONF_ADVANCED_CONFIG].get(
self.sysvar_scan_enabled: Final = data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_SYSVAR_SCAN_ENABLED, DEFAULT_SYSVAR_SCAN_ENABLED
)
self.sysvar_scan_interval: Final = data[CONF_ADVANCED_CONFIG].get(
self.sysvar_scan_interval: Final = data.get(CONF_ADVANCED_CONFIG, {}).get(
CONF_SYSVAR_SCAN_INTERVAL, DEFAULT_SYSVAR_SCAN_INTERVAL
)

Expand Down

0 comments on commit e32426c

Please sign in to comment.