1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-22 13:12:22 +01:00

[packet_transport] Refactor sensor/provider list handling to be idempotent (#10765)

This commit is contained in:
Subhash Chandra
2025-09-18 05:44:31 +05:30
committed by GitHub
parent b8cee477fe
commit 4e5339801b

View File

@@ -121,15 +121,11 @@ def transport_schema(cls):
return TRANSPORT_SCHEMA.extend({cv.GenerateID(): cv.declare_id(cls)}) return TRANSPORT_SCHEMA.extend({cv.GenerateID(): cv.declare_id(cls)})
# Build a list of sensors for this platform
CORE.data[DOMAIN] = {CONF_SENSORS: []}
def get_sensors(transport_id): def get_sensors(transport_id):
"""Return the list of sensors for this platform.""" """Return the list of sensors for this platform."""
return ( return (
sensor sensor
for sensor in CORE.data[DOMAIN][CONF_SENSORS] for sensor in CORE.data.setdefault(DOMAIN, {}).setdefault(CONF_SENSORS, [])
if sensor[CONF_TRANSPORT_ID] == transport_id if sensor[CONF_TRANSPORT_ID] == transport_id
) )
@@ -137,7 +133,8 @@ def get_sensors(transport_id):
def validate_packet_transport_sensor(config): def validate_packet_transport_sensor(config):
if CONF_NAME in config and CONF_INTERNAL not in config: if CONF_NAME in config and CONF_INTERNAL not in config:
raise cv.Invalid("Must provide internal: config when using name:") raise cv.Invalid("Must provide internal: config when using name:")
CORE.data[DOMAIN][CONF_SENSORS].append(config) conf_sensors = CORE.data.setdefault(DOMAIN, {}).setdefault(CONF_SENSORS, [])
conf_sensors.append(config)
return config return config