[zigbee] add router for nrf52 (#16034)

This commit is contained in:
tomaszduda23
2026-04-27 05:02:09 +02:00
committed by GitHub
parent 2e096bb036
commit 112646a9c4
4 changed files with 19 additions and 5 deletions
+9 -4
View File
@@ -75,6 +75,13 @@ SENSOR_SCHEMA = cv.Schema({}).extend(zephyr_sensor)
SWITCH_SCHEMA = cv.Schema({}).extend(zephyr_switch)
NUMBER_SCHEMA = cv.Schema({}).extend(zephyr_number)
def _validate_router_sleepy(config: ConfigType) -> ConfigType:
if config.get(CONF_ROUTER) and config.get(CONF_SLEEPY):
raise cv.Invalid("router and sleepy are mutually exclusive")
return config
CONFIG_SCHEMA = cv.All(
cv.Schema(
{
@@ -82,10 +89,7 @@ CONFIG_SCHEMA = cv.All(
cv.Optional(CONF_MODEL, default=CORE.name): cv.All(
cv.string, cv.Length(max=31)
),
cv.OnlyWith(CONF_ROUTER, "esp32", default=False): cv.All(
cv.requires_component("esp32"),
cv.boolean,
),
cv.Optional(CONF_ROUTER, default=False): cv.boolean,
cv.Optional(CONF_ON_JOIN): cv.All(
cv.requires_component("nrf52"),
automation.validate_automation(single=True),
@@ -113,6 +117,7 @@ CONFIG_SCHEMA = cv.All(
),
}
).extend(cv.COMPONENT_SCHEMA),
_validate_router_sleepy,
zigbee_require_vfs_select,
zigbee_set_core_data,
cv.Any(
@@ -190,7 +190,9 @@ void ZigbeeComponent::setup() {
ESP_LOGE(TAG, "Cannot load settings, err: %d", err);
return;
}
#ifdef CONFIG_ZIGBEE_ROLE_END_DEVICE
zigbee_configure_sleepy_behavior(this->sleepy_);
#endif
zigbee_enable();
}
+5 -1
View File
@@ -52,6 +52,7 @@ from esphome.types import ConfigType
from .const import (
CONF_ON_JOIN,
CONF_POWER_SOURCE,
CONF_ROUTER,
CONF_WIPE_ON_BOOT,
KEY_ZIGBEE,
POWER_SOURCE,
@@ -160,7 +161,10 @@ zephyr_number = cv.Schema(
async def zephyr_to_code(config: ConfigType) -> None:
zephyr_add_prj_conf("ZIGBEE", True)
zephyr_add_prj_conf("ZIGBEE_APP_UTILS", True)
zephyr_add_prj_conf("ZIGBEE_ROLE_END_DEVICE", True)
if config[CONF_ROUTER]:
zephyr_add_prj_conf("ZIGBEE_ROLE_ROUTER", True)
else:
zephyr_add_prj_conf("ZIGBEE_ROLE_END_DEVICE", True)
zephyr_add_prj_conf("ZIGBEE_CHANNEL_SELECTION_MODE_MULTI", True)
@@ -1 +1,4 @@
<<: !include common_nrf52.yaml
zigbee:
router: true