Add config to ZHA to allow disabling polling of mains powered devices when the network is started (#125473)

This commit is contained in:
David F. Mulcahey 2024-09-23 08:34:24 -04:00 committed by GitHub
parent 691b2879bd
commit e81a1f7acf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 0 deletions

View file

@ -49,6 +49,7 @@ CONF_GROUP_MEMBERS_ASSUME_STATE = "group_members_assume_state"
CONF_ENABLE_IDENTIFY_ON_JOIN = "enable_identify_on_join"
CONF_CONSIDER_UNAVAILABLE_MAINS = "consider_unavailable_mains"
CONF_CONSIDER_UNAVAILABLE_BATTERY = "consider_unavailable_battery"
CONF_ENABLE_MAINS_STARTUP_POLLING = "enable_mains_startup_polling"
CONF_ZIGPY = "zigpy_config"
CONF_DEVICE_CONFIG = "device_config"

View file

@ -150,6 +150,7 @@ from .const import (
CONF_ENABLE_ENHANCED_LIGHT_TRANSITION,
CONF_ENABLE_IDENTIFY_ON_JOIN,
CONF_ENABLE_LIGHT_TRANSITIONING_FLAG,
CONF_ENABLE_MAINS_STARTUP_POLLING,
CONF_ENABLE_QUIRKS,
CONF_FLOW_CONTROL,
CONF_GROUP_MEMBERS_ASSUME_STATE,
@ -1163,6 +1164,7 @@ CONF_ZHA_OPTIONS_SCHEMA = vol.Schema(
CONF_CONSIDER_UNAVAILABLE_BATTERY,
default=CONF_DEFAULT_CONSIDER_UNAVAILABLE_BATTERY,
): cv.positive_int,
vol.Required(CONF_ENABLE_MAINS_STARTUP_POLLING, default=True): cv.boolean,
},
extra=vol.REMOVE_EXTRA,
)
@ -1235,6 +1237,7 @@ def create_zha_config(hass: HomeAssistant, ha_zha_data: HAZHAData) -> ZHAData:
enable_identify_on_join=zha_options.get(CONF_ENABLE_IDENTIFY_ON_JOIN),
consider_unavailable_mains=zha_options.get(CONF_CONSIDER_UNAVAILABLE_MAINS),
consider_unavailable_battery=zha_options.get(CONF_CONSIDER_UNAVAILABLE_BATTERY),
enable_mains_startup_polling=zha_options.get(CONF_ENABLE_MAINS_STARTUP_POLLING),
)
acp_options: AlarmControlPanelOptions = AlarmControlPanelOptions(
master_code=ha_acp_options.get(CONF_ALARM_MASTER_CODE),

View file

@ -183,6 +183,7 @@
"enable_identify_on_join": "Enable identify effect when devices join the network",
"default_light_transition": "Default light transition time (seconds)",
"consider_unavailable_mains": "Consider mains powered devices unavailable after (seconds)",
"enable_mains_startup_polling": "Refresh state for mains powered devices on startup",
"consider_unavailable_battery": "Consider battery powered devices unavailable after (seconds)"
},
"zha_alarm_options": {

View file

@ -55,6 +55,12 @@ BASE_CUSTOM_CONFIGURATION = {
"optional": True,
"default": 21600,
},
{
"default": True,
"name": "enable_mains_startup_polling",
"required": True,
"type": "boolean",
},
]
},
"data": {
@ -65,6 +71,7 @@ BASE_CUSTOM_CONFIGURATION = {
"always_prefer_xy_color_mode": True,
"group_members_assume_state": False,
"enable_identify_on_join": True,
"enable_mains_startup_polling": True,
"consider_unavailable_mains": 7200,
"consider_unavailable_battery": 21600,
}
@ -126,6 +133,12 @@ CONFIG_WITH_ALARM_OPTIONS = {
"optional": True,
"default": 21600,
},
{
"default": True,
"name": "enable_mains_startup_polling",
"required": True,
"type": "boolean",
},
],
"zha_alarm_options": [
{
@ -157,6 +170,7 @@ CONFIG_WITH_ALARM_OPTIONS = {
"always_prefer_xy_color_mode": True,
"group_members_assume_state": False,
"enable_identify_on_join": True,
"enable_mains_startup_polling": True,
"consider_unavailable_mains": 7200,
"consider_unavailable_battery": 21600,
},