[sen5x] Rename voc/nox sensor keys to voc_index/nox_index (#17724)

This commit is contained in:
Brandon Harvey
2026-07-28 22:35:34 -04:00
committed by GitHub
parent 6ad804fbc5
commit a9df82fa0a
2 changed files with 15 additions and 12 deletions
+11 -8
View File
@@ -2,6 +2,7 @@ from esphome import automation
from esphome.automation import maybe_simple_id from esphome.automation import maybe_simple_id
import esphome.codegen as cg import esphome.codegen as cg
from esphome.components import i2c, sensirion_common, sensor from esphome.components import i2c, sensirion_common, sensor
from esphome.components.const import CONF_NOX_INDEX, CONF_VOC_INDEX
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.const import ( from esphome.const import (
CONF_ALGORITHM_TUNING, CONF_ALGORITHM_TUNING,
@@ -122,7 +123,9 @@ def float_previously_pct(value):
return value return value
CONFIG_SCHEMA = ( CONFIG_SCHEMA = cv.All(
cv.rename_key(CONF_VOC, CONF_VOC_INDEX, removed_in="2027.2.0", component="sen5x"),
cv.rename_key(CONF_NOX, CONF_NOX_INDEX, removed_in="2027.2.0", component="sen5x"),
cv.Schema( cv.Schema(
{ {
cv.GenerateID(): cv.declare_id(SEN5XComponent), cv.GenerateID(): cv.declare_id(SEN5XComponent),
@@ -154,7 +157,7 @@ CONFIG_SCHEMA = (
state_class=STATE_CLASS_MEASUREMENT, state_class=STATE_CLASS_MEASUREMENT,
), ),
cv.Optional(CONF_AUTO_CLEANING_INTERVAL): cv.update_interval, cv.Optional(CONF_AUTO_CLEANING_INTERVAL): cv.update_interval,
cv.Optional(CONF_VOC): _gas_sensor( cv.Optional(CONF_VOC_INDEX): _gas_sensor(
index_offset=100, index_offset=100,
learning_time_offset=12, learning_time_offset=12,
learning_time_gain=12, learning_time_gain=12,
@@ -162,7 +165,7 @@ CONFIG_SCHEMA = (
std_initial=50, std_initial=50,
gain_factor=230, gain_factor=230,
), ),
cv.Optional(CONF_NOX): _gas_sensor( cv.Optional(CONF_NOX_INDEX): _gas_sensor(
index_offset=1, index_offset=1,
learning_time_offset=12, learning_time_offset=12,
learning_time_gain=12, learning_time_gain=12,
@@ -199,7 +202,7 @@ CONFIG_SCHEMA = (
} }
) )
.extend(cv.polling_component_schema("60s")) .extend(cv.polling_component_schema("60s"))
.extend(i2c.i2c_device_schema(0x69)) .extend(i2c.i2c_device_schema(0x69)),
) )
SENSOR_MAP = { SENSOR_MAP = {
@@ -207,8 +210,8 @@ SENSOR_MAP = {
CONF_PM_2_5: "set_pm_2_5_sensor", CONF_PM_2_5: "set_pm_2_5_sensor",
CONF_PM_4_0: "set_pm_4_0_sensor", CONF_PM_4_0: "set_pm_4_0_sensor",
CONF_PM_10_0: "set_pm_10_0_sensor", CONF_PM_10_0: "set_pm_10_0_sensor",
CONF_VOC: "set_voc_sensor", CONF_VOC_INDEX: "set_voc_sensor",
CONF_NOX: "set_nox_sensor", CONF_NOX_INDEX: "set_nox_sensor",
CONF_TEMPERATURE: "set_temperature_sensor", CONF_TEMPERATURE: "set_temperature_sensor",
CONF_HUMIDITY: "set_humidity_sensor", CONF_HUMIDITY: "set_humidity_sensor",
} }
@@ -237,7 +240,7 @@ async def to_code(config: ConfigType) -> None:
sens = await sensor.new_sensor(cfg) sens = await sensor.new_sensor(cfg)
cg.add(getattr(var, funcName)(sens)) cg.add(getattr(var, funcName)(sens))
if cfg := config.get(CONF_VOC, {}).get(CONF_ALGORITHM_TUNING): if cfg := config.get(CONF_VOC_INDEX, {}).get(CONF_ALGORITHM_TUNING):
cg.add( cg.add(
var.set_voc_algorithm_tuning( var.set_voc_algorithm_tuning(
cfg[CONF_INDEX_OFFSET], cfg[CONF_INDEX_OFFSET],
@@ -248,7 +251,7 @@ async def to_code(config: ConfigType) -> None:
cfg[CONF_GAIN_FACTOR], cfg[CONF_GAIN_FACTOR],
) )
) )
if cfg := config.get(CONF_NOX, {}).get(CONF_ALGORITHM_TUNING): if cfg := config.get(CONF_NOX_INDEX, {}).get(CONF_ALGORITHM_TUNING):
cg.add( cg.add(
var.set_nox_algorithm_tuning( var.set_nox_algorithm_tuning(
cfg[CONF_INDEX_OFFSET], cfg[CONF_INDEX_OFFSET],
+4 -4
View File
@@ -24,10 +24,10 @@ sensor:
name: PM <10µm Weight concentration name: PM <10µm Weight concentration
id: pm_10_0 id: pm_10_0
accuracy_decimals: 1 accuracy_decimals: 1
nox: nox_index:
name: NOx name: NOx Index
voc: voc_index:
name: VOC name: VOC Index
algorithm_tuning: algorithm_tuning:
index_offset: 100 index_offset: 100
learning_time_offset_hours: 12 learning_time_offset_hours: 12