From 4512ccf8a41f9ac10bc6f58405f09d5216888a19 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Mon, 3 Oct 2022 17:49:56 -0400 Subject: [PATCH] Allow configuring endpoint 1 selection behavior (#181) * Allow configuring endpoint 1 selection behavior * Use the correct config property --- zigpy_znp/config.py | 2 ++ zigpy_znp/zigbee/application.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/zigpy_znp/config.py b/zigpy_znp/config.py index e0ecb9ce..f2e668bb 100644 --- a/zigpy_znp/config.py +++ b/zigpy_znp/config.py @@ -94,6 +94,7 @@ def validator(value: typing.Any) -> None: CONF_SKIP_BOOTLOADER = "skip_bootloader" CONF_SREQ_TIMEOUT = "sync_request_timeout" CONF_ARSP_TIMEOUT = "async_response_timeout" +CONF_PREFER_ENDPOINT_1 = "prefer_endpoint_1" CONF_AUTO_RECONNECT_RETRY_DELAY = "auto_reconnect_retry_delay" CONF_CONNECT_RTS_STATES = "connect_rts_pin_states" CONF_CONNECT_DTR_STATES = "connect_dtr_pin_states" @@ -113,6 +114,7 @@ def validator(value: typing.Any) -> None: CONF_AUTO_RECONNECT_RETRY_DELAY, default=5 ): VolPositiveNumber, vol.Optional(CONF_SKIP_BOOTLOADER, default=True): cv_boolean, + vol.Optional(CONF_PREFER_ENDPOINT_1, default=True): cv_boolean, vol.Optional(CONF_LED_MODE, default=LEDMode.OFF): vol.Any( None, EnumValue(LEDMode, transformer=bool_to_upper_str) ), diff --git a/zigpy_znp/zigbee/application.py b/zigpy_znp/zigbee/application.py index e6ff2f4d..2b5d09fd 100644 --- a/zigpy_znp/zigbee/application.py +++ b/zigpy_znp/zigbee/application.py @@ -759,7 +759,10 @@ def _find_endpoint(self, dst_ep: int, profile: int, cluster: int) -> int: return ZDO_ENDPOINT # Newer Z-Stack releases ignore profiles and will work properly with endpoint 1 - if self._zstack_build_id >= 20210708: + if ( + self._zstack_build_id >= 20210708 + and self.znp_config[conf.CONF_PREFER_ENDPOINT_1] + ): return ZHA_ENDPOINT # Always fall back to endpoint 1