mirror of
https://github.com/esphome/esphome.git
synced 2026-05-27 11:56:11 +08:00
[zigbee] Fix codegen ordering for basic/identify attribute lists (#14343)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -8,7 +8,7 @@ from esphome.components.zephyr import zephyr_add_pm_static, zephyr_data
|
|||||||
from esphome.components.zephyr.const import KEY_BOOTLOADER
|
from esphome.components.zephyr.const import KEY_BOOTLOADER
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.const import CONF_ID, CONF_INTERNAL, CONF_NAME
|
from esphome.const import CONF_ID, CONF_INTERNAL, CONF_NAME
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE, CoroPriority, coroutine_with_priority
|
||||||
from esphome.types import ConfigType
|
from esphome.types import ConfigType
|
||||||
|
|
||||||
from .const_zephyr import (
|
from .const_zephyr import (
|
||||||
@@ -96,6 +96,7 @@ FINAL_VALIDATE_SCHEMA = cv.All(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@coroutine_with_priority(CoroPriority.CORE)
|
||||||
async def to_code(config: ConfigType) -> None:
|
async def to_code(config: ConfigType) -> None:
|
||||||
cg.add_define("USE_ZIGBEE")
|
cg.add_define("USE_ZIGBEE")
|
||||||
if CORE.using_zephyr:
|
if CORE.using_zephyr:
|
||||||
|
|||||||
@@ -179,6 +179,13 @@ async def zephyr_to_code(config: ConfigType) -> None:
|
|||||||
"USE_ZIGBEE_WIPE_ON_BOOT_MAGIC", random.randint(0x000001, 0xFFFFFF)
|
"USE_ZIGBEE_WIPE_ON_BOOT_MAGIC", random.randint(0x000001, 0xFFFFFF)
|
||||||
)
|
)
|
||||||
cg.add_define("USE_ZIGBEE_WIPE_ON_BOOT")
|
cg.add_define("USE_ZIGBEE_WIPE_ON_BOOT")
|
||||||
|
|
||||||
|
# Generate attribute lists before any await that could yield (e.g., build_automation
|
||||||
|
# waiting for variables from other components). If the hub's priority decays while
|
||||||
|
# yielding, deferred entity jobs may add cluster list globals that reference these
|
||||||
|
# attribute lists before they're declared.
|
||||||
|
await _attr_to_code(config)
|
||||||
|
|
||||||
var = cg.new_Pvariable(config[CONF_ID])
|
var = cg.new_Pvariable(config[CONF_ID])
|
||||||
|
|
||||||
if on_join_config := config.get(CONF_ON_JOIN):
|
if on_join_config := config.get(CONF_ON_JOIN):
|
||||||
@@ -186,7 +193,6 @@ async def zephyr_to_code(config: ConfigType) -> None:
|
|||||||
|
|
||||||
await cg.register_component(var, config)
|
await cg.register_component(var, config)
|
||||||
|
|
||||||
await _attr_to_code(config)
|
|
||||||
CORE.add_job(_ctx_to_code, config)
|
CORE.add_job(_ctx_to_code, config)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user