diff --git a/esphome/components/si4713_i2c/__init__.py b/esphome/components/si4713_i2c/__init__.py index 12efd5a2f3..f5bd5fce46 100644 --- a/esphome/components/si4713_i2c/__init__.py +++ b/esphome/components/si4713_i2c/__init__.py @@ -4,7 +4,19 @@ from esphome import automation, pins from esphome.components import i2c, sensor, binary_sensor, text_sensor from esphome.const import ( CONF_ID, + CONF_ANALOG, + CONF_SENSOR, CONF_FREQUENCY, + CONF_POWER, + CONF_LEVEL, + CONF_ATTENUATION, + CONF_CHANNELS, + CONF_MODE, + CONF_SOURCE, + CONF_THRESHOLD, + CONF_GAIN, + CONF_PRESET, + CONF_TEXT, STATE_CLASS_MEASUREMENT, ICON_CHIP, ENTITY_CATEGORY_DIAGNOSTIC, @@ -19,7 +31,7 @@ UNIT_MEGA_HERTZ = "MHz" UNIT_KILO_HERTZ = "kHz" UNIT_MILLI_VOLT = "mV" UNIT_MICRO_AMPERE = "mA" -UNIT_DECIBEL_MICRO_VOLT = "dBµV" +UNIT_DECIBEL_MICRO_VOLT = "dBuV" UNIT_PICO_FARAD = "pF" UNIT_KILO_OHM = "kOhm" UNIT_DECIBEL_FS = "dBfs" @@ -39,17 +51,14 @@ Si4713Component = si4713_ns.class_( CONF_SI4713_ID = "si4713_id" CONF_RESET_PIN = "reset_pin" -CONF_SECTION_TUNER = "tuner" -CONF_SECTION_ANALOG = "analog" -CONF_SECTION_DIGITAL = "digital" -CONF_SECTION_PILOT = "pilot" -CONF_SECTION_REFCLK = "refclk" -CONF_SECTION_COMPRESSOR = "compressor" -CONF_SECTION_LIMITER = "limiter" -CONF_SECTION_ASQ = "asq" -CONF_SECTION_RDS = "rds" -CONF_SECTION_OUTPUT = "output" -CONF_SECTION_SENSOR = "sensor" +CONF_TUNER = "tuner" +CONF_DIGITAL = "digital" +CONF_PILOT = "pilot" +CONF_REFCLK = "refclk" +CONF_COMPRESSOR = "compressor" +CONF_LIMITER = "limiter" +CONF_ASQ = "asq" +CONF_RDS = "rds" # general config CONF_OP_MODE = "op_mode" CONF_MUTE = "mute" @@ -58,16 +67,16 @@ CONF_PRE_EMPHASIS = "pre_emphasis" # tuner # CONF_FREQUENCY = "frequency" CONF_DEVIATION = "deviation" -CONF_POWER = "power" +# CONF_POWER = "power" CONF_ANTCAP = "antcap" # analog -CONF_LEVEL = "level" -CONF_ATTENUATION = "attenuation" +# CONF_LEVEL = "level" +# CONF_ATTENUATION = "attenuation" # digital CONF_SAMPLE_RATE = "sample_rate" CONF_SAMPLE_BITS = "sample_bits" -CONF_CHANNELS = "channels" -CONF_MODE = "mode" +# CONF_CHANNELS = "channels" +# CONF_MODE = "mode" CONF_CLOCK_EDGE = "clock_edge" # pilot CONF_ENABLE = "enable" @@ -75,15 +84,15 @@ CONF_ENABLE = "enable" CONF_DEVIATION = "deviation" # refclk # CONF_FREQUENCY = "frequency" -CONF_SOURCE = "source" +# CONF_SOURCE = "source" CONF_PRESCALER = "prescaler" # compressor CONF_ENABLE = "enable" -CONF_THRESHOLD = "threshold" +# CONF_THRESHOLD = "threshold" CONF_ATTACK = "attack" CONF_RELEASE = "release" -CONF_GAIN = "gain" -CONF_PRESET = "preset" +# CONF_GAIN = "gain" +# CONF_PRESET = "preset" # limiter CONF_ENABLE = "enable" CONF_RELEASE_TIME = "release_time" @@ -99,7 +108,7 @@ CONF_DURATION_HIGH = "duration_high" CONF_ENABLE = "enable" CONF_DEVIATION = "deviation" CONF_STATION = "station" -CONF_TEXT = "text" +# CONF_TEXT = "text" # output CONF_GPIO1 = "gpio1" CONF_GPIO2 = "gpio2" @@ -351,16 +360,16 @@ CONFIG_SCHEMA = ( cv.Optional(CONF_MUTE, default=False): cv.boolean, cv.Optional(CONF_MONO, default=False): cv.boolean, cv.Optional(CONF_PRE_EMPHASIS, default="75us"): cv.enum(PRE_EMPHASIS), - cv.Optional(CONF_SECTION_TUNER): TUNER_SCHEMA, - cv.Optional(CONF_SECTION_ANALOG): ANALOG_SCHEMA, - cv.Optional(CONF_SECTION_DIGITAL): DIGITAL_SCHEMA, - cv.Optional(CONF_SECTION_PILOT): PILOT_SCHEMA, - cv.Optional(CONF_SECTION_REFCLK): REFCLK_SCHEMA, - cv.Optional(CONF_SECTION_COMPRESSOR): COMPRESSOR_SCHEMA, - cv.Optional(CONF_SECTION_LIMITER): LIMITER_SCHEMA, - cv.Optional(CONF_SECTION_ASQ): ASQ_SCHEMA, - cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA, - cv.Optional(CONF_SECTION_SENSOR): SENSOR_SCHEMA, + cv.Optional(CONF_TUNER): TUNER_SCHEMA, + cv.Optional(CONF_ANALOG): ANALOG_SCHEMA, + cv.Optional(CONF_DIGITAL): DIGITAL_SCHEMA, + cv.Optional(CONF_PILOT): PILOT_SCHEMA, + cv.Optional(CONF_REFCLK): REFCLK_SCHEMA, + cv.Optional(CONF_COMPRESSOR): COMPRESSOR_SCHEMA, + cv.Optional(CONF_LIMITER): LIMITER_SCHEMA, + cv.Optional(CONF_ASQ): ASQ_SCHEMA, + cv.Optional(CONF_RDS): RDS_SCHEMA, + cv.Optional(CONF_SENSOR): SENSOR_SCHEMA, } ) .extend(cv.polling_component_schema("60s")) @@ -424,39 +433,39 @@ async def to_code(config): await set_var(config, CONF_MUTE, var.set_mute) await set_var(config, CONF_MONO, var.set_mono) await set_var(config, CONF_PRE_EMPHASIS, var.set_pre_emphasis) - if tuner_config := config.get(CONF_SECTION_TUNER): + if tuner_config := config.get(CONF_TUNER): await set_var(tuner_config, CONF_FREQUENCY, var.set_frequency) await set_var(tuner_config, CONF_DEVIATION, var.set_audio_deviation) await set_var(tuner_config, CONF_POWER, var.set_power) await set_var(tuner_config, CONF_ANTCAP, var.set_antcap) - if analog_config := config.get(CONF_SECTION_ANALOG): + if analog_config := config.get(CONF_ANALOG): await set_var(analog_config, CONF_LEVEL, var.set_analog_level) await set_var(analog_config, CONF_ATTENUATION, var.set_analog_attenuation) - if digital_config := config.get(CONF_SECTION_DIGITAL): + if digital_config := config.get(CONF_DIGITAL): await set_var(digital_config, CONF_SAMPLE_RATE, var.set_digital_sample_rate) await set_var(digital_config, CONF_SAMPLE_BITS, var.set_digital_sample_bits) await set_var(digital_config, CONF_CHANNELS, var.set_digital_channels) await set_var(digital_config, CONF_MODE, var.set_digital_mode) await set_var(digital_config, CONF_CLOCK_EDGE, var.set_digital_clock_edge) - if pilot_config := config.get(CONF_SECTION_PILOT): + if pilot_config := config.get(CONF_PILOT): await set_var(pilot_config, CONF_ENABLE, var.set_pilot_enable) await set_var(pilot_config, CONF_FREQUENCY, var.set_pilot_frequency) await set_var(pilot_config, CONF_DEVIATION, var.set_pilot_deviation) - if refclk_config := config.get(CONF_SECTION_REFCLK): + if refclk_config := config.get(CONF_REFCLK): await set_var(refclk_config, CONF_FREQUENCY, var.set_refclk_frequency) await set_var(refclk_config, CONF_SOURCE, var.set_refclk_source) await set_var(refclk_config, CONF_PRESCALER, var.set_refclk_prescaler) - if compressor_config := config.get(CONF_SECTION_COMPRESSOR): + if compressor_config := config.get(CONF_COMPRESSOR): await set_var(compressor_config, CONF_ENABLE, var.set_acomp_enable) await set_var(compressor_config, CONF_THRESHOLD, var.set_acomp_threshold) await set_var(compressor_config, CONF_ATTACK, var.set_acomp_attack) await set_var(compressor_config, CONF_RELEASE, var.set_acomp_release) await set_var(compressor_config, CONF_GAIN, var.set_acomp_gain) await set_var(compressor_config, CONF_PRESET, var.set_acomp_preset) - if limiter_config := config.get(CONF_SECTION_LIMITER): + if limiter_config := config.get(CONF_LIMITER): await set_var(limiter_config, CONF_ENABLE, var.set_limiter_enable) await set_var(limiter_config, CONF_RELEASE_TIME, var.set_limiter_release_time) - if asq_config := config.get(CONF_SECTION_ASQ): + if asq_config := config.get(CONF_ASQ): await set_var(asq_config, CONF_IALL, var.set_asq_iall_enable) await set_var(asq_config, CONF_IALH, var.set_asq_ialh_enable) await set_var(asq_config, CONF_OVERMOD, var.set_asq_overmod_enable) @@ -464,12 +473,12 @@ async def to_code(config): await set_var(asq_config, CONF_DURATION_LOW, var.set_asq_duration_low) await set_var(asq_config, CONF_LEVEL_HIGH, var.set_asq_level_high) await set_var(asq_config, CONF_DURATION_HIGH, var.set_asq_duration_high) - if rds_config := config.get(CONF_SECTION_RDS): + if rds_config := config.get(CONF_RDS): await set_var(rds_config, CONF_ENABLE, var.set_rds_enable) await set_var(rds_config, CONF_DEVIATION, var.set_rds_deviation) await set_var(rds_config, CONF_STATION, var.set_rds_station) await set_var(rds_config, CONF_TEXT, var.set_rds_text) - if sensor_config := config.get(CONF_SECTION_SENSOR): + if sensor_config := config.get(CONF_SENSOR): await new_text_sensor(sensor_config, CONF_CHIP_ID, var.set_chip_id_text_sensor) await new_sensor( sensor_config, CONF_READ_FREQUENCY, var.set_read_frequency_sensor diff --git a/esphome/components/si4713_i2c/number/__init__.py b/esphome/components/si4713_i2c/number/__init__.py index 16e8d523d9..c6ec70b9f7 100644 --- a/esphome/components/si4713_i2c/number/__init__.py +++ b/esphome/components/si4713_i2c/number/__init__.py @@ -4,6 +4,11 @@ import esphome.config_validation as cv from esphome.const import ( CONF_FREQUENCY, CONF_MODE, + CONF_ANALOG, + CONF_POWER, + CONF_LEVEL, + CONF_THRESHOLD, + CONF_GAIN, UNIT_HERTZ, UNIT_MILLISECOND, UNIT_DECIBEL, @@ -19,24 +24,18 @@ from .. import ( CONF_SI4713_ID, Si4713Component, si4713_ns, - CONF_SECTION_TUNER, - CONF_SECTION_ANALOG, - CONF_SECTION_DIGITAL, - CONF_SECTION_PILOT, - CONF_SECTION_REFCLK, - CONF_SECTION_COMPRESSOR, - CONF_SECTION_LIMITER, - CONF_SECTION_ASQ, - CONF_SECTION_RDS, - CONF_FREQUENCY, + CONF_TUNER, + CONF_DIGITAL, + CONF_PILOT, + CONF_REFCLK, + CONF_COMPRESSOR, + CONF_LIMITER, + CONF_ASQ, + CONF_RDS, CONF_DEVIATION, - CONF_POWER, CONF_ANTCAP, - CONF_LEVEL, CONF_SAMPLE_RATE, CONF_PRESCALER, - CONF_THRESHOLD, - CONF_GAIN, CONF_RELEASE_TIME, CONF_LEVEL_LOW, CONF_DURATION_LOW, @@ -71,7 +70,7 @@ RdsDeviationNumber = si4713_ns.class_("RdsDeviationNumber", number.Number) CONFIG_SCHEMA = cv.Schema( { cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component), - cv.Optional(CONF_SECTION_TUNER): cv.Schema( + cv.Optional(CONF_TUNER): cv.Schema( { cv.Optional(CONF_FREQUENCY): number.number_schema( FrequencyNumber, @@ -99,7 +98,7 @@ CONFIG_SCHEMA = cv.Schema( ), } ), - cv.Optional(CONF_SECTION_ANALOG): cv.Schema( + cv.Optional(CONF_ANALOG): cv.Schema( { cv.Optional(CONF_LEVEL): number.number_schema( AnalogLevelNumber, @@ -109,7 +108,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_DIGITAL): cv.Schema( + cv.Optional(CONF_DIGITAL): cv.Schema( { cv.Optional(CONF_SAMPLE_RATE): number.number_schema( DigitalSampleRateNumber, @@ -119,7 +118,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_PILOT): cv.Schema( + cv.Optional(CONF_PILOT): cv.Schema( { cv.Optional(CONF_FREQUENCY): number.number_schema( PilotFrequencyNumber, @@ -135,7 +134,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_REFCLK): cv.Schema( + cv.Optional(CONF_REFCLK): cv.Schema( { cv.Optional(CONF_FREQUENCY): number.number_schema( RefClkFrequencyNumber, @@ -151,7 +150,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_COMPRESSOR): cv.Schema( + cv.Optional(CONF_COMPRESSOR): cv.Schema( { cv.Optional(CONF_THRESHOLD): number.number_schema( AcompThresholdNumber, @@ -167,7 +166,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_LIMITER): cv.Schema( + cv.Optional(CONF_LIMITER): cv.Schema( { cv.Optional(CONF_RELEASE_TIME): number.number_schema( LimiterReleaseTimeNumber, @@ -177,7 +176,7 @@ CONFIG_SCHEMA = cv.Schema( ), }, ), - cv.Optional(CONF_SECTION_ASQ): cv.Schema( + cv.Optional(CONF_ASQ): cv.Schema( { cv.Optional(CONF_LEVEL_LOW): number.number_schema( AsqLevelLowNumber, @@ -205,7 +204,7 @@ CONFIG_SCHEMA = cv.Schema( ), } ), - cv.Optional(CONF_SECTION_RDS): cv.Schema( + cv.Optional(CONF_RDS): cv.Schema( { cv.Optional(CONF_DEVIATION): number.number_schema( RdsDeviationNumber, @@ -234,30 +233,30 @@ async def new_number(p, config, id, setter, min_value, max_value, step, *args, * async def to_code(config): p = await cg.get_variable(config[CONF_SI4713_ID]) - if tuner_config := config.get(CONF_SECTION_TUNER): + if tuner_config := config.get(CONF_TUNER): await new_number(p, tuner_config, CONF_FREQUENCY, p.set_frequency_number, 76, 108, 0.05) await new_number(p, tuner_config, CONF_DEVIATION, p.set_audio_deviation_number, 0, 90, 0.01) await new_number(p, tuner_config, CONF_POWER, p.set_power_number, 88, 120, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER) await new_number(p, tuner_config, CONF_ANTCAP, p.set_antcap_number, 0, 191, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER) - if analog_config := config.get(CONF_SECTION_ANALOG): + if analog_config := config.get(CONF_ANALOG): await new_number(p, analog_config, CONF_LEVEL, p.set_analog_level_number, 0, 1023, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER) - if digital_config := config.get(CONF_SECTION_DIGITAL): + if digital_config := config.get(CONF_DIGITAL): await new_number(p, digital_config, CONF_SAMPLE_RATE, p.set_digital_sample_rate_number, 32000, 48000, 1) - if pilot_config := config.get(CONF_SECTION_PILOT): + if pilot_config := config.get(CONF_PILOT): await new_number(p, pilot_config, CONF_FREQUENCY, p.set_pilot_frequency_number, 0, 19, 0.001) await new_number(p, pilot_config, CONF_DEVIATION, p.set_pilot_deviation_number, 0, 90, 0.001) - if refclk_config := config.get(CONF_SECTION_REFCLK): + if refclk_config := config.get(CONF_REFCLK): await new_number(p, refclk_config, CONF_FREQUENCY, p.set_refclk_frequency_number, 31130, 34406, 1) await new_number(p, refclk_config, CONF_PRESCALER, p.set_refclk_prescaler_number, 0, 4095, 1) - if compressor_config := config.get(CONF_SECTION_COMPRESSOR): + if compressor_config := config.get(CONF_COMPRESSOR): await new_number(p, compressor_config, CONF_THRESHOLD, p.set_acomp_threshold_number, -40, 0, 1) await new_number(p, compressor_config, CONF_GAIN, p.set_acomp_gain_number, 0, 20, 1) - if limiter_config := config.get(CONF_SECTION_LIMITER): + if limiter_config := config.get(CONF_LIMITER): await new_number(p, limiter_config, CONF_RELEASE_TIME, p.set_limiter_release_time_number, 0.25, 102.4, 0.01, mode = number.NumberMode.NUMBER_MODE_SLIDER) - if asq_config := config.get(CONF_SECTION_ASQ): + if asq_config := config.get(CONF_ASQ): await new_number(p, asq_config, CONF_LEVEL_LOW, p.set_asq_level_low_number, -70, 0, 1) await new_number(p, asq_config, CONF_DURATION_LOW, p.set_asq_duration_low_number, 0, 65535, 1) await new_number(p, asq_config, CONF_LEVEL_HIGH, p.set_asq_level_high_number, -70, 0, 1) await new_number(p, asq_config, CONF_DURATION_HIGH, p.set_asq_duration_high_number, 0, 65535, 1) - if rds_config := config.get(CONF_SECTION_RDS): + if rds_config := config.get(CONF_RDS): await new_number(p, rds_config, CONF_DEVIATION, p.set_rds_deviation_number, 0, 7.5, 0.01) diff --git a/esphome/components/si4713_i2c/select/__init__.py b/esphome/components/si4713_i2c/select/__init__.py index c5e204b009..636419af01 100644 --- a/esphome/components/si4713_i2c/select/__init__.py +++ b/esphome/components/si4713_i2c/select/__init__.py @@ -2,6 +2,12 @@ import esphome.codegen as cg from esphome.components import select import esphome.config_validation as cv from esphome.const import ( + CONF_ANALOG, + CONF_ATTENUATION, + CONF_CHANNELS, + CONF_MODE, + CONF_SOURCE, + CONF_PRESET, ENTITY_CATEGORY_CONFIG, ICON_PULSE, ) @@ -9,20 +15,14 @@ from .. import ( CONF_SI4713_ID, Si4713Component, si4713_ns, - CONF_SECTION_ANALOG, - CONF_SECTION_DIGITAL, - CONF_SECTION_REFCLK, - CONF_SECTION_COMPRESSOR, + CONF_DIGITAL, + CONF_REFCLK, + CONF_COMPRESSOR, CONF_PRE_EMPHASIS, - CONF_ATTENUATION, CONF_SAMPLE_BITS, - CONF_CHANNELS, - CONF_MODE, CONF_CLOCK_EDGE, - CONF_SOURCE, CONF_ATTACK, CONF_RELEASE, - CONF_PRESET, ICON_SINE_WAVE, ICON_RESISTOR, ICON_EAR_HEARING, @@ -57,7 +57,7 @@ CONFIG_SCHEMA = cv.Schema( entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_SINE_WAVE, ), - cv.Optional(CONF_SECTION_ANALOG): cv.Schema( + cv.Optional(CONF_ANALOG): cv.Schema( { cv.Optional(CONF_ATTENUATION): select.select_schema( AnalogAttenuationSelect, @@ -66,7 +66,7 @@ CONFIG_SCHEMA = cv.Schema( ), } ), - cv.Optional(CONF_SECTION_DIGITAL): cv.Schema( + cv.Optional(CONF_DIGITAL): cv.Schema( { cv.Optional(CONF_SAMPLE_BITS): select.select_schema( DigitalSampleBitsSelect, @@ -90,7 +90,7 @@ CONFIG_SCHEMA = cv.Schema( ), } ), - cv.Optional(CONF_SECTION_REFCLK): cv.Schema( + cv.Optional(CONF_REFCLK): cv.Schema( { cv.Optional(CONF_SOURCE): select.select_schema( RefClkSourceSelect, @@ -99,7 +99,7 @@ CONFIG_SCHEMA = cv.Schema( ), } ), - cv.Optional(CONF_SECTION_COMPRESSOR): cv.Schema( + cv.Optional(CONF_COMPRESSOR): cv.Schema( { cv.Optional(CONF_ATTACK): select.select_schema( AcompAttackSelect, @@ -133,16 +133,16 @@ async def new_select(p, config, id, setter, options): async def to_code(config): p = await cg.get_variable(config[CONF_SI4713_ID]) await new_select(p, config, CONF_PRE_EMPHASIS, p.set_pre_emphasis_select, PRE_EMPHASIS) - if analog_config := config.get(CONF_SECTION_ANALOG): + if analog_config := config.get(CONF_ANALOG): await new_select(p, analog_config, CONF_ATTENUATION, p.set_analog_attenuation_select, LINE_ATTENUATION) - if digital_config := config.get(CONF_SECTION_DIGITAL): + if digital_config := config.get(CONF_DIGITAL): await new_select(p, digital_config, CONF_SAMPLE_BITS, p.set_digital_sample_bits_select, SAMPLE_BITS) await new_select(p, digital_config, CONF_CHANNELS, p.set_digital_channels_select, SAMPLE_CHANNELS) await new_select(p, digital_config, CONF_MODE, p.set_digital_mode_select, DIGITAL_MODE) await new_select(p, digital_config, CONF_CLOCK_EDGE, p.set_digital_clock_edge_select, DIGITAL_CLOCK_EDGE) - if refclk_config := config.get(CONF_SECTION_REFCLK): + if refclk_config := config.get(CONF_REFCLK): await new_select(p, refclk_config, CONF_SOURCE, p.set_refclk_source_select, REFCLK_SOURCE) - if compressor_config := config.get(CONF_SECTION_COMPRESSOR): + if compressor_config := config.get(CONF_COMPRESSOR): await new_select(p, compressor_config, CONF_ATTACK, p.set_acomp_attack_select, ACOMP_ATTACK) await new_select(p, compressor_config, CONF_RELEASE, p.set_acomp_release_select, ACOMP_RELEASE) await new_select(p, compressor_config, CONF_PRESET, p.set_acomp_preset_select, ACOMP_PRESET) diff --git a/esphome/components/si4713_i2c/si4713.cpp b/esphome/components/si4713_i2c/si4713.cpp index 19001beebb..8bfbd4dde1 100644 --- a/esphome/components/si4713_i2c/si4713.cpp +++ b/esphome/components/si4713_i2c/si4713.cpp @@ -326,26 +326,26 @@ template T GET_ENUM_LAST(T value) { return T::LAST; } #define CHECK_ENUM(value) \ if (value >= GET_ENUM_LAST(value)) { \ - ESP_LOGE(TAG, "%s(%d) invalid", __func__, (int) value); \ + ESP_LOGE(TAG, "%s(%d) invalid", __func__, (int) (value)); \ return; \ } #define CHECK_FLOAT_RANGE(value, min_value, max_value) \ - if (!(min_value <= value && value <= max_value)) { \ + if (!((min_value) <= (value) && (value) <= (max_value))) { \ ESP_LOGE(TAG, "%s(%.2f) invalid (%.2f - %.2f)", __func__, value, min_value, max_value); \ return; \ } #define CHECK_INT_RANGE(value, min_value, max_value) \ - if (!(min_value <= value && value <= max_value)) { \ + if (!((min_value) <= (value) && (value) <= (max_value))) { \ ESP_LOGE(TAG, "%s(%d) invalid (%d - %d)", __func__, value, min_value, max_value); \ return; \ } #define CHECK_TEXT_RANGE(value, max_size) \ - if (value.size() > max_size) { \ - ESP_LOGW(TAG, "%s(%s) trimmed (max %d characters)", __func__, value.c_str(), max_size); \ - value.resize(max_size); \ + if ((value).size() > max_size) { \ + ESP_LOGW(TAG, "%s(%s) trimmed (max %d characters)", __func__, (value).c_str(), max_size); \ + (value).resize(max_size); \ } void Si4713Component::set_reset_pin(InternalGPIOPin *pin) { this->reset_pin_ = pin; } diff --git a/esphome/components/si4713_i2c/switch/__init__.py b/esphome/components/si4713_i2c/switch/__init__.py index 3f9b0fc18f..d1a36e4937 100644 --- a/esphome/components/si4713_i2c/switch/__init__.py +++ b/esphome/components/si4713_i2c/switch/__init__.py @@ -2,20 +2,19 @@ import esphome.codegen as cg from esphome.components import switch import esphome.config_validation as cv from esphome.const import ( + CONF_OUTPUT, DEVICE_CLASS_SWITCH, ENTITY_CATEGORY_CONFIG, - ICON_SECURITY, ) from .. import ( CONF_SI4713_ID, Si4713Component, si4713_ns, - CONF_SECTION_PILOT, - CONF_SECTION_COMPRESSOR, - CONF_SECTION_LIMITER, - CONF_SECTION_ASQ, - CONF_SECTION_RDS, - CONF_SECTION_OUTPUT, + CONF_PILOT, + CONF_COMPRESSOR, + CONF_LIMITER, + CONF_ASQ, + CONF_RDS, CONF_MUTE, CONF_MONO, CONF_ENABLE, @@ -148,12 +147,12 @@ CONFIG_SCHEMA = cv.Schema( entity_category=ENTITY_CATEGORY_CONFIG, icon=ICON_EAR_HEARING, ), - cv.Optional(CONF_SECTION_PILOT): PILOT_SCHEMA, - cv.Optional(CONF_SECTION_COMPRESSOR): COMPRESSOR_SCHEMA, - cv.Optional(CONF_SECTION_LIMITER): LIMITER_SCHEMA, - cv.Optional(CONF_SECTION_ASQ): ASQ_SCHEMA, - cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA, - cv.Optional(CONF_SECTION_OUTPUT): OUTPUT_SCHEMA, + cv.Optional(CONF_PILOT): PILOT_SCHEMA, + cv.Optional(CONF_COMPRESSOR): COMPRESSOR_SCHEMA, + cv.Optional(CONF_LIMITER): LIMITER_SCHEMA, + cv.Optional(CONF_ASQ): ASQ_SCHEMA, + cv.Optional(CONF_RDS): RDS_SCHEMA, + cv.Optional(CONF_OUTPUT): OUTPUT_SCHEMA, } ) @@ -170,19 +169,19 @@ async def to_code(config): p = await cg.get_variable(config[CONF_SI4713_ID]) await new_switch(p, config, CONF_MUTE, p.set_mute_switch) await new_switch(p, config, CONF_MONO, p.set_mono_switch) - if pilot_config := config.get(CONF_SECTION_PILOT): + if pilot_config := config.get(CONF_PILOT): await new_switch(p, pilot_config, CONF_ENABLE, p.set_pilot_enable_switch) - if compressor_config := config.get(CONF_SECTION_COMPRESSOR): + if compressor_config := config.get(CONF_COMPRESSOR): await new_switch(p, compressor_config, CONF_ENABLE, p.set_acomp_enable_switch) - if limiter_config := config.get(CONF_SECTION_LIMITER): + if limiter_config := config.get(CONF_LIMITER): await new_switch(p, limiter_config, CONF_ENABLE, p.set_limiter_enable_switch) - if asq_config := config.get(CONF_SECTION_ASQ): + if asq_config := config.get(CONF_ASQ): await new_switch(p, asq_config, CONF_IALL, p.set_asq_iall_enable_switch) await new_switch(p, asq_config, CONF_IALH, p.set_asq_ialh_enable_switch) await new_switch(p, asq_config, CONF_OVERMOD, p.set_asq_overmod_enable_switch) - if rds_config := config.get(CONF_SECTION_RDS): + if rds_config := config.get(CONF_RDS): await new_switch(p, rds_config, CONF_ENABLE, p.set_rds_enable_switch) - if output_config := config.get(CONF_SECTION_OUTPUT): + if output_config := config.get(CONF_OUTPUT): gpio1 = await new_switch(p, output_config, CONF_GPIO1, p.set_gpio1_switch) gpio2 = await new_switch(p, output_config, CONF_GPIO2, p.set_gpio2_switch) gpio3 = await new_switch(p, output_config, CONF_GPIO3, p.set_gpio3_switch) diff --git a/esphome/components/si4713_i2c/text/__init__.py b/esphome/components/si4713_i2c/text/__init__.py index f47347319e..157fa1575d 100644 --- a/esphome/components/si4713_i2c/text/__init__.py +++ b/esphome/components/si4713_i2c/text/__init__.py @@ -5,6 +5,7 @@ from esphome.components import mqtt, web_server import esphome.config_validation as cv from esphome.const import ( CONF_ID, + CONF_TEXT, CONF_ENTITY_CATEGORY, CONF_ICON, CONF_MQTT_ID, @@ -18,9 +19,8 @@ from .. import ( CONF_SI4713_ID, Si4713Component, si4713_ns, - CONF_SECTION_RDS, + CONF_RDS, CONF_STATION, - CONF_TEXT, ICON_FORMAT_TEXT, ) @@ -139,7 +139,7 @@ RDS_SCHEMA = cv.Schema( CONFIG_SCHEMA = cv.Schema( { cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component), - cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA, + cv.Optional(CONF_RDS): RDS_SCHEMA, } ) @@ -154,6 +154,6 @@ async def new_text_simple(p, config, id, setter, min_length, max_length, *args): async def to_code(config): p = await cg.get_variable(config[CONF_SI4713_ID]) - if rds_config := config.get(CONF_SECTION_RDS): + if rds_config := config.get(CONF_RDS): await new_text_simple(p, rds_config, CONF_STATION, p.set_rds_station_text, 0, 8) await new_text_simple(p, rds_config, CONF_TEXT, p.set_rds_text_text, 0, 64)