[multiple] Add missing cv.COMPONENT_SCHEMA to CONFIG_SCHEMA (#15475)

This commit is contained in:
Jonathan Swoboda
2026-04-06 16:30:15 -04:00
committed by GitHub
parent a64f09a43f
commit 6044f41db5
15 changed files with 230 additions and 188 deletions
+9 -5
View File
@@ -12,11 +12,15 @@ CONF_ADS1118_ID = "ads1118_id"
ads1118_ns = cg.esphome_ns.namespace("ads1118") ads1118_ns = cg.esphome_ns.namespace("ads1118")
ADS1118 = ads1118_ns.class_("ADS1118", cg.Component, spi.SPIDevice) ADS1118 = ads1118_ns.class_("ADS1118", cg.Component, spi.SPIDevice)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(ADS1118), {
} cv.GenerateID(): cv.declare_id(ADS1118),
).extend(spi.spi_device_schema(cs_pin_required=True)) }
)
.extend(spi.spi_device_schema(cs_pin_required=True))
.extend(cv.COMPONENT_SCHEMA)
)
async def to_code(config): async def to_code(config):
+1 -1
View File
@@ -26,7 +26,7 @@ CONFIG_SCHEMA = cv.Schema(
accuracy_decimals=1, accuracy_decimals=1,
), ),
} }
).extend(cv.COMPONENT_SCHEMA) )
async def to_code(config): async def to_code(config):
+50 -46
View File
@@ -32,52 +32,56 @@ DEPENDENCIES = ["uart"]
cse7766_ns = cg.esphome_ns.namespace("cse7766") cse7766_ns = cg.esphome_ns.namespace("cse7766")
CSE7766Component = cse7766_ns.class_("CSE7766Component", cg.Component, uart.UARTDevice) CSE7766Component = cse7766_ns.class_("CSE7766Component", cg.Component, uart.UARTDevice)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(CSE7766Component), {
cv.Optional(CONF_VOLTAGE): sensor.sensor_schema( cv.GenerateID(): cv.declare_id(CSE7766Component),
unit_of_measurement=UNIT_VOLT, cv.Optional(CONF_VOLTAGE): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_VOLT,
device_class=DEVICE_CLASS_VOLTAGE, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_VOLTAGE,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_CURRENT): sensor.sensor_schema( ),
unit_of_measurement=UNIT_AMPERE, cv.Optional(CONF_CURRENT): sensor.sensor_schema(
accuracy_decimals=2, unit_of_measurement=UNIT_AMPERE,
device_class=DEVICE_CLASS_CURRENT, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_CURRENT,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_POWER): sensor.sensor_schema( ),
unit_of_measurement=UNIT_WATT, cv.Optional(CONF_POWER): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_WATT,
device_class=DEVICE_CLASS_POWER, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_POWER,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_ENERGY): sensor.sensor_schema( ),
unit_of_measurement=UNIT_WATT_HOURS, cv.Optional(CONF_ENERGY): sensor.sensor_schema(
accuracy_decimals=3, unit_of_measurement=UNIT_WATT_HOURS,
device_class=DEVICE_CLASS_ENERGY, accuracy_decimals=3,
state_class=STATE_CLASS_TOTAL_INCREASING, device_class=DEVICE_CLASS_ENERGY,
), state_class=STATE_CLASS_TOTAL_INCREASING,
cv.Optional(CONF_APPARENT_POWER): sensor.sensor_schema( ),
unit_of_measurement=UNIT_VOLT_AMPS, cv.Optional(CONF_APPARENT_POWER): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_VOLT_AMPS,
device_class=DEVICE_CLASS_APPARENT_POWER, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_APPARENT_POWER,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_REACTIVE_POWER): sensor.sensor_schema( ),
unit_of_measurement=UNIT_VOLT_AMPS_REACTIVE, cv.Optional(CONF_REACTIVE_POWER): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_VOLT_AMPS_REACTIVE,
device_class=DEVICE_CLASS_REACTIVE_POWER, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_REACTIVE_POWER,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_POWER_FACTOR): sensor.sensor_schema( ),
accuracy_decimals=2, cv.Optional(CONF_POWER_FACTOR): sensor.sensor_schema(
device_class=DEVICE_CLASS_POWER_FACTOR, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_POWER_FACTOR,
), state_class=STATE_CLASS_MEASUREMENT,
} ),
).extend(uart.UART_DEVICE_SCHEMA) }
)
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA)
)
FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema( FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema(
"cse7766", baud_rate=4800, parity="EVEN", require_rx=True "cse7766", baud_rate=4800, parity="EVEN", require_rx=True
) )
@@ -15,10 +15,14 @@ CST226Button = cst226_ns.class_(
cg.Parented.template(CST226Touchscreen), cg.Parented.template(CST226Touchscreen),
) )
CONFIG_SCHEMA = binary_sensor.binary_sensor_schema(CST226Button).extend( CONFIG_SCHEMA = (
{ binary_sensor.binary_sensor_schema(CST226Button)
cv.GenerateID(CONF_CST226_ID): cv.use_id(CST226Touchscreen), .extend(
} {
cv.GenerateID(CONF_CST226_ID): cv.use_id(CST226Touchscreen),
}
)
.extend(cv.COMPONENT_SCHEMA)
) )
+3 -1
View File
@@ -46,7 +46,9 @@ CONFIG_SCHEMA = cv.All(
CONF_RECEIVE_TIMEOUT, default="200ms" CONF_RECEIVE_TIMEOUT, default="200ms"
): cv.positive_time_period_milliseconds, ): cv.positive_time_period_milliseconds,
} }
).extend(uart.UART_DEVICE_SCHEMA), )
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA),
) )
+1 -1
View File
@@ -29,7 +29,7 @@ CONFIG_SCHEMA = cv.Schema(
cv.GenerateID(): cv.declare_id(E131Component), cv.GenerateID(): cv.declare_id(E131Component),
cv.Optional(CONF_METHOD, default="MULTICAST"): cv.one_of(*METHODS, upper=True), cv.Optional(CONF_METHOD, default="MULTICAST"): cv.one_of(*METHODS, upper=True),
} }
) ).extend(cv.COMPONENT_SCHEMA)
async def to_code(config): async def to_code(config):
+66 -62
View File
@@ -29,68 +29,72 @@ GCJA5Component = gcja5_ns.class_("GCJA5Component", cg.PollingComponent, uart.UAR
CONF_PMC_0_3 = "pmc_0_3" CONF_PMC_0_3 = "pmc_0_3"
CONF_PMC_5_0 = "pmc_5_0" CONF_PMC_5_0 = "pmc_5_0"
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(GCJA5Component), {
cv.Optional(CONF_PM_1_0): sensor.sensor_schema( cv.GenerateID(): cv.declare_id(GCJA5Component),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PM_1_0): sensor.sensor_schema(
icon=ICON_CHEMICAL_WEAPON, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=2, icon=ICON_CHEMICAL_WEAPON,
device_class=DEVICE_CLASS_PM1, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_PM1,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PM_2_5): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PM_2_5): sensor.sensor_schema(
icon=ICON_CHEMICAL_WEAPON, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=2, icon=ICON_CHEMICAL_WEAPON,
device_class=DEVICE_CLASS_PM25, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_PM25,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PM_10_0): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PM_10_0): sensor.sensor_schema(
icon=ICON_CHEMICAL_WEAPON, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=2, icon=ICON_CHEMICAL_WEAPON,
device_class=DEVICE_CLASS_PM10, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_PM10,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_0_3): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_0_3): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_0_5): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_0_5): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_1_0): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_1_0): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_2_5): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_2_5): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_5_0): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_5_0): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_PMC_10_0): sensor.sensor_schema( ),
unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER, cv.Optional(CONF_PMC_10_0): sensor.sensor_schema(
icon=ICON_COUNTER, unit_of_measurement=UNIT_MICROGRAMS_PER_CUBIC_METER,
accuracy_decimals=0, icon=ICON_COUNTER,
state_class=STATE_CLASS_MEASUREMENT, accuracy_decimals=0,
), state_class=STATE_CLASS_MEASUREMENT,
} ),
).extend(uart.UART_DEVICE_SCHEMA) }
)
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA)
)
FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema( FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema(
"gcja5", baud_rate=9600, require_rx=True, parity="EVEN" "gcja5", baud_rate=9600, require_rx=True, parity="EVEN"
) )
+40 -36
View File
@@ -27,42 +27,46 @@ DEPENDENCIES = ["uart"]
hlw8032_ns = cg.esphome_ns.namespace("hlw8032") hlw8032_ns = cg.esphome_ns.namespace("hlw8032")
HLW8032Component = hlw8032_ns.class_("HLW8032Component", cg.Component, uart.UARTDevice) HLW8032Component = hlw8032_ns.class_("HLW8032Component", cg.Component, uart.UARTDevice)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(HLW8032Component), {
cv.Optional(CONF_VOLTAGE): sensor.sensor_schema( cv.GenerateID(): cv.declare_id(HLW8032Component),
unit_of_measurement=UNIT_VOLT, cv.Optional(CONF_VOLTAGE): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_VOLT,
device_class=DEVICE_CLASS_VOLTAGE, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_VOLTAGE,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_CURRENT): sensor.sensor_schema( ),
unit_of_measurement=UNIT_AMPERE, cv.Optional(CONF_CURRENT): sensor.sensor_schema(
accuracy_decimals=2, unit_of_measurement=UNIT_AMPERE,
device_class=DEVICE_CLASS_CURRENT, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_CURRENT,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_POWER): sensor.sensor_schema( ),
unit_of_measurement=UNIT_WATT, cv.Optional(CONF_POWER): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_WATT,
device_class=DEVICE_CLASS_POWER, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_POWER,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_APPARENT_POWER): sensor.sensor_schema( ),
unit_of_measurement=UNIT_VOLT_AMPS, cv.Optional(CONF_APPARENT_POWER): sensor.sensor_schema(
accuracy_decimals=1, unit_of_measurement=UNIT_VOLT_AMPS,
device_class=DEVICE_CLASS_APPARENT_POWER, accuracy_decimals=1,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_APPARENT_POWER,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_POWER_FACTOR): sensor.sensor_schema( ),
accuracy_decimals=2, cv.Optional(CONF_POWER_FACTOR): sensor.sensor_schema(
device_class=DEVICE_CLASS_POWER_FACTOR, accuracy_decimals=2,
state_class=STATE_CLASS_MEASUREMENT, device_class=DEVICE_CLASS_POWER_FACTOR,
), state_class=STATE_CLASS_MEASUREMENT,
cv.Optional(CONF_CURRENT_RESISTOR, default=0.001): cv.resistance, ),
cv.Optional(CONF_VOLTAGE_DIVIDER, default=1.720): cv.positive_float, cv.Optional(CONF_CURRENT_RESISTOR, default=0.001): cv.resistance,
} cv.Optional(CONF_VOLTAGE_DIVIDER, default=1.720): cv.positive_float,
).extend(uart.UART_DEVICE_SCHEMA) }
)
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA)
)
FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema( FINAL_VALIDATE_SCHEMA = uart.final_validate_device_schema(
"hlw8032", baud_rate=4800, require_rx=True, data_bits=8, parity="EVEN" "hlw8032", baud_rate=4800, require_rx=True, data_bits=8, parity="EVEN"
+10 -6
View File
@@ -19,12 +19,16 @@ CONF_OBIS_CODE = "obis_code"
CONF_SERVER_ID = "server_id" CONF_SERVER_ID = "server_id"
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(Sml), {
cv.Optional(CONF_ON_DATA): automation.validate_automation({}), cv.GenerateID(): cv.declare_id(Sml),
} cv.Optional(CONF_ON_DATA): automation.validate_automation({}),
).extend(uart.UART_DEVICE_SCHEMA) }
)
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA)
)
async def to_code(config): async def to_code(config):
+11 -7
View File
@@ -10,13 +10,17 @@ AUTO_LOAD = ["sml"]
SmlSensor = sml_ns.class_("SmlSensor", sensor.Sensor, cg.Component) SmlSensor = sml_ns.class_("SmlSensor", sensor.Sensor, cg.Component)
CONFIG_SCHEMA = sensor.sensor_schema().extend( CONFIG_SCHEMA = (
{ sensor.sensor_schema()
cv.GenerateID(): cv.declare_id(SmlSensor), .extend(
cv.GenerateID(CONF_SML_ID): cv.use_id(Sml), {
cv.Required(CONF_OBIS_CODE): obis_code, cv.GenerateID(): cv.declare_id(SmlSensor),
cv.Optional(CONF_SERVER_ID, default=""): cv.string, cv.GenerateID(CONF_SML_ID): cv.use_id(Sml),
} cv.Required(CONF_OBIS_CODE): obis_code,
cv.Optional(CONF_SERVER_ID, default=""): cv.string,
}
)
.extend(cv.COMPONENT_SCHEMA)
) )
+11 -7
View File
@@ -19,13 +19,17 @@ SML_TYPES = {
SmlTextSensor = sml_ns.class_("SmlTextSensor", text_sensor.TextSensor, cg.Component) SmlTextSensor = sml_ns.class_("SmlTextSensor", text_sensor.TextSensor, cg.Component)
CONFIG_SCHEMA = text_sensor.text_sensor_schema(SmlTextSensor).extend( CONFIG_SCHEMA = (
{ text_sensor.text_sensor_schema(SmlTextSensor)
cv.GenerateID(CONF_SML_ID): cv.use_id(Sml), .extend(
cv.Required(CONF_OBIS_CODE): obis_code, {
cv.Optional(CONF_SERVER_ID, default=""): cv.string, cv.GenerateID(CONF_SML_ID): cv.use_id(Sml),
cv.Optional(CONF_FORMAT, default=""): cv.enum(SML_TYPES, lower=True), cv.Required(CONF_OBIS_CODE): obis_code,
} cv.Optional(CONF_SERVER_ID, default=""): cv.string,
cv.Optional(CONF_FORMAT, default=""): cv.enum(SML_TYPES, lower=True),
}
)
.extend(cv.COMPONENT_SCHEMA)
) )
+9 -5
View File
@@ -13,11 +13,15 @@ sun_gtil2_ns = cg.esphome_ns.namespace("sun_gtil2")
SunGTIL2Component = sun_gtil2_ns.class_("SunGTIL2", cg.Component, uart.UARTDevice) SunGTIL2Component = sun_gtil2_ns.class_("SunGTIL2", cg.Component, uart.UARTDevice)
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = (
{ cv.Schema(
cv.GenerateID(): cv.declare_id(SunGTIL2Component), {
} cv.GenerateID(): cv.declare_id(SunGTIL2Component),
).extend(uart.UART_DEVICE_SCHEMA) }
)
.extend(uart.UART_DEVICE_SCHEMA)
.extend(cv.COMPONENT_SCHEMA)
)
async def to_code(config): async def to_code(config):
+1 -1
View File
@@ -39,7 +39,7 @@ CONFIG_SCHEMA = cv.All(
cv.Required(CONF_CLK_PIN): pins.internal_gpio_output_pin_schema, cv.Required(CONF_CLK_PIN): pins.internal_gpio_output_pin_schema,
cv.Required(CONF_DIO_PIN): pins.internal_gpio_output_pin_schema, cv.Required(CONF_DIO_PIN): pins.internal_gpio_output_pin_schema,
} }
), ).extend(cv.COMPONENT_SCHEMA),
) )
@@ -16,11 +16,15 @@ TT21100Button = tt21100_ns.class_(
cg.Parented.template(TT21100Touchscreen), cg.Parented.template(TT21100Touchscreen),
) )
CONFIG_SCHEMA = binary_sensor.binary_sensor_schema(TT21100Button).extend( CONFIG_SCHEMA = (
{ binary_sensor.binary_sensor_schema(TT21100Button)
cv.GenerateID(CONF_TT21100_ID): cv.use_id(TT21100Touchscreen), .extend(
cv.Required(CONF_INDEX): cv.int_range(min=0, max=3), {
} cv.GenerateID(CONF_TT21100_ID): cv.use_id(TT21100Touchscreen),
cv.Required(CONF_INDEX): cv.int_range(min=0, max=3),
}
)
.extend(cv.COMPONENT_SCHEMA)
) )
+1 -1
View File
@@ -48,7 +48,7 @@ CONFIG_SCHEMA = cv.Schema(
} }
), ),
} }
) ).extend(cv.COMPONENT_SCHEMA)
async def to_code(config): async def to_code(config):