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:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user