mirror of
https://github.com/esphome/esphome.git
synced 2025-09-12 16:22:22 +01:00
handle collisions
This commit is contained in:
@@ -517,7 +517,9 @@ async def to_code(config: ConfigType) -> None:
|
|||||||
|
|
||||||
# Process devices and areas
|
# Process devices and areas
|
||||||
devices: list[dict[str, str]]
|
devices: list[dict[str, str]]
|
||||||
if devices := config[CONF_DEVICES]:
|
if not (devices := config[CONF_DEVICES]):
|
||||||
|
return
|
||||||
|
|
||||||
# Reserve space for devices
|
# Reserve space for devices
|
||||||
cg.add(cg.RawStatement(f"App.reserve_device({len(devices)});"))
|
cg.add(cg.RawStatement(f"App.reserve_device({len(devices)});"))
|
||||||
cg.add_define("USE_DEVICES")
|
cg.add_define("USE_DEVICES")
|
||||||
@@ -541,9 +543,7 @@ async def to_code(config: ConfigType) -> None:
|
|||||||
device_id = dev_conf[CONF_ID]
|
device_id = dev_conf[CONF_ID]
|
||||||
device_id_hash = fnv1a_32bit_hash(device_id)
|
device_id_hash = fnv1a_32bit_hash(device_id)
|
||||||
device_name = dev_conf[CONF_NAME]
|
device_name = dev_conf[CONF_NAME]
|
||||||
_verify_no_collisions(
|
_verify_no_collisions(device_hashes, device_id, device_id_hash, CONF_DEVICES)
|
||||||
device_hashes, device_id, device_id_hash, CONF_DEVICES
|
|
||||||
)
|
|
||||||
dev = cg.new_Pvariable(device_id)
|
dev = cg.new_Pvariable(device_id)
|
||||||
cg.add(dev.set_device_id(device_id_hash))
|
cg.add(dev.set_device_id(device_id_hash))
|
||||||
cg.add(dev.set_name(device_name))
|
cg.add(dev.set_name(device_name))
|
||||||
|
Reference in New Issue
Block a user