mirror of
https://github.com/esphome/esphome.git
synced 2024-12-25 15:04:54 +01:00
python formatting
This commit is contained in:
parent
14cf0b0fcb
commit
706c61bb6e
5 changed files with 336 additions and 300 deletions
|
@ -5,9 +5,6 @@ from esphome.components import i2c, sensor, binary_sensor, text_sensor
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_ID,
|
CONF_ID,
|
||||||
CONF_FREQUENCY,
|
CONF_FREQUENCY,
|
||||||
UNIT_DECIBEL,
|
|
||||||
UNIT_EMPTY,
|
|
||||||
DEVICE_CLASS_VOLTAGE,
|
|
||||||
STATE_CLASS_MEASUREMENT,
|
STATE_CLASS_MEASUREMENT,
|
||||||
ICON_CHIP,
|
ICON_CHIP,
|
||||||
ENTITY_CATEGORY_DIAGNOSTIC,
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
@ -59,7 +56,7 @@ CONF_MUTE = "mute"
|
||||||
CONF_MONO = "mono"
|
CONF_MONO = "mono"
|
||||||
CONF_PRE_EMPHASIS = "pre_emphasis"
|
CONF_PRE_EMPHASIS = "pre_emphasis"
|
||||||
# tuner
|
# tuner
|
||||||
CONF_FREQUENCY = "frequency"
|
# CONF_FREQUENCY = "frequency"
|
||||||
CONF_DEVIATION = "deviation"
|
CONF_DEVIATION = "deviation"
|
||||||
CONF_POWER = "power"
|
CONF_POWER = "power"
|
||||||
CONF_ANTCAP = "antcap"
|
CONF_ANTCAP = "antcap"
|
||||||
|
@ -74,10 +71,10 @@ CONF_MODE = "mode"
|
||||||
CONF_CLOCK_EDGE = "clock_edge"
|
CONF_CLOCK_EDGE = "clock_edge"
|
||||||
# pilot
|
# pilot
|
||||||
CONF_ENABLE = "enable"
|
CONF_ENABLE = "enable"
|
||||||
CONF_FREQUENCY = "frequency"
|
# CONF_FREQUENCY = "frequency"
|
||||||
CONF_DEVIATION = "deviation"
|
CONF_DEVIATION = "deviation"
|
||||||
# refclk
|
# refclk
|
||||||
CONF_FREQUENCY = "frequency"
|
# CONF_FREQUENCY = "frequency"
|
||||||
CONF_SOURCE = "source"
|
CONF_SOURCE = "source"
|
||||||
CONF_PRESCALER = "prescaler"
|
CONF_PRESCALER = "prescaler"
|
||||||
# compressor
|
# compressor
|
||||||
|
@ -104,9 +101,9 @@ CONF_DEVIATION = "deviation"
|
||||||
CONF_STATION = "station"
|
CONF_STATION = "station"
|
||||||
CONF_TEXT = "text"
|
CONF_TEXT = "text"
|
||||||
# output
|
# output
|
||||||
CONF_GPIO1="gpio1"
|
CONF_GPIO1 = "gpio1"
|
||||||
CONF_GPIO2="gpio2"
|
CONF_GPIO2 = "gpio2"
|
||||||
CONF_GPIO3="gpio3"
|
CONF_GPIO3 = "gpio3"
|
||||||
# sensor
|
# sensor
|
||||||
CONF_CHIP_ID = "chip_id"
|
CONF_CHIP_ID = "chip_id"
|
||||||
CONF_READ_FREQUENCY = "frequency"
|
CONF_READ_FREQUENCY = "frequency"
|
||||||
|
@ -141,10 +138,10 @@ PRE_EMPHASIS = {
|
||||||
|
|
||||||
LineAttenuation = si4713_ns.enum("LineAttenuation", True)
|
LineAttenuation = si4713_ns.enum("LineAttenuation", True)
|
||||||
LINE_ATTENUATION = {
|
LINE_ATTENUATION = {
|
||||||
"396kOhm": LineAttenuation.LIATTEN_396KOHM,
|
"396kOhm": LineAttenuation.LIATTEN_396KOHM,
|
||||||
"100kOhm": LineAttenuation.LIATTEN_100KOHM,
|
"100kOhm": LineAttenuation.LIATTEN_100KOHM,
|
||||||
"74kOhm": LineAttenuation.LIATTEN_74KOHM,
|
"74kOhm": LineAttenuation.LIATTEN_74KOHM,
|
||||||
"60kOhm": LineAttenuation.LIATTEN_60KOHM,
|
"60kOhm": LineAttenuation.LIATTEN_60KOHM,
|
||||||
}
|
}
|
||||||
|
|
||||||
SampleBits = si4713_ns.enum("SampleBits", True)
|
SampleBits = si4713_ns.enum("SampleBits", True)
|
||||||
|
@ -212,6 +209,139 @@ ACOMP_PRESET = {
|
||||||
"Custom": AcompPreset.ACOMP_CUSTOM,
|
"Custom": AcompPreset.ACOMP_CUSTOM,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TUNER_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_FREQUENCY, default=87.50): cv.float_range(76, 108), # MHz
|
||||||
|
cv.Optional(CONF_DEVIATION, default=68.25): cv.float_range(0, 90), # kHz
|
||||||
|
cv.Optional(CONF_POWER, default=115): cv.int_range(88, 115),
|
||||||
|
cv.Optional(CONF_ANTCAP, default=0): cv.int_range(0, 191),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
ANALOG_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_LEVEL, default=636): cv.int_range(0, 1023),
|
||||||
|
cv.Optional(CONF_ATTENUATION, default=636): cv.enum(LINE_ATTENUATION),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
DIGITAL_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_SAMPLE_RATE, default=44100): cv.int_range(32000, 48000), # Hz
|
||||||
|
cv.Optional(CONF_SAMPLE_BITS, default="16"): cv.enum(SAMPLE_BITS),
|
||||||
|
cv.Optional(CONF_CHANNELS, default="Stereo"): cv.enum(SAMPLE_CHANNELS),
|
||||||
|
cv.Optional(CONF_MODE, default="Default"): cv.enum(DIGITAL_MODE),
|
||||||
|
cv.Optional(CONF_CLOCK_EDGE, default="Rising"): cv.enum(DIGITAL_CLOCK_EDGE),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
PILOT_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE, default="True"): cv.boolean,
|
||||||
|
cv.Optional(CONF_FREQUENCY, default=19): cv.float_range(0, 19), # kHz
|
||||||
|
cv.Optional(CONF_DEVIATION, default=6.75): cv.float_range(0, 90), # kHz
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
REFCLK_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_FREQUENCY, default=32768): cv.int_range(31130, 34406), # Hz
|
||||||
|
cv.Optional(CONF_SOURCE, default="RCLK"): cv.enum(REFCLK_SOURCE),
|
||||||
|
cv.Optional(CONF_PRESCALER, default=1): cv.int_range(0, 4095),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
COMPRESSOR_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE, default="False"): cv.boolean,
|
||||||
|
cv.Optional(CONF_THRESHOLD, default=-40): cv.int_range(-40, 0),
|
||||||
|
cv.Optional(CONF_ATTACK, default="0.5"): cv.enum(ACOMP_ATTACK),
|
||||||
|
cv.Optional(CONF_RELEASE, default="1000"): cv.enum(ACOMP_RELEASE),
|
||||||
|
cv.Optional(CONF_GAIN, default=15): cv.int_range(0, 20),
|
||||||
|
cv.Optional(CONF_PRESET, default="Custom"): cv.enum(ACOMP_PRESET),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
LIMITER_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE, default="True"): cv.boolean,
|
||||||
|
cv.Optional(CONF_RELEASE_TIME, default=5): cv.float_range(0.25, 102.4),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
ASQ_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_IALL, default="False"): cv.boolean,
|
||||||
|
cv.Optional(CONF_IALH, default="False"): cv.boolean,
|
||||||
|
cv.Optional(CONF_OVERMOD, default="False"): cv.boolean,
|
||||||
|
cv.Optional(CONF_LEVEL_LOW, default=-50): cv.float_range(-70, 0),
|
||||||
|
cv.Optional(CONF_DURATION_LOW, default=10000): cv.int_range(0, 65535),
|
||||||
|
cv.Optional(CONF_LEVEL_HIGH, default=-20): cv.float_range(-70, 0),
|
||||||
|
cv.Optional(CONF_DURATION_HIGH, default=5000): cv.int_range(0, 65535),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
RDS_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE, default=False): cv.boolean,
|
||||||
|
cv.Optional(CONF_DEVIATION, default=2.0): cv.float_range(0, 7.5), # kHz
|
||||||
|
cv.Optional(CONF_STATION): cv.string,
|
||||||
|
cv.Optional(CONF_TEXT): cv.string,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
SENSOR_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_CHIP_ID): text_sensor.text_sensor_schema(
|
||||||
|
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
icon=ICON_CHIP,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_READ_FREQUENCY): sensor.sensor_schema(
|
||||||
|
unit_of_measurement=UNIT_MEGA_HERTZ,
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
accuracy_decimals=2,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_READ_POWER): sensor.sensor_schema(
|
||||||
|
unit_of_measurement=UNIT_DECIBEL_MICRO_VOLT,
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_READ_ANTCAP): sensor.sensor_schema(
|
||||||
|
unit_of_measurement=UNIT_PICO_FARAD,
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_READ_NOISE_LEVEL): sensor.sensor_schema(
|
||||||
|
unit_of_measurement=UNIT_DECIBEL_MICRO_VOLT,
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
# state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_IALL): binary_sensor.binary_sensor_schema(
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_IALH): binary_sensor.binary_sensor_schema(
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_OVERMOD): binary_sensor.binary_sensor_schema(
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_INLEVEL): sensor.sensor_schema(
|
||||||
|
unit_of_measurement=UNIT_DECIBEL_FS,
|
||||||
|
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
CONFIG_SCHEMA = (
|
CONFIG_SCHEMA = (
|
||||||
cv.Schema(
|
cv.Schema(
|
||||||
{
|
{
|
||||||
|
@ -221,130 +351,16 @@ CONFIG_SCHEMA = (
|
||||||
cv.Optional(CONF_MUTE, default=False): cv.boolean,
|
cv.Optional(CONF_MUTE, default=False): cv.boolean,
|
||||||
cv.Optional(CONF_MONO, 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_PRE_EMPHASIS, default="75us"): cv.enum(PRE_EMPHASIS),
|
||||||
cv.Optional(CONF_SECTION_TUNER): cv.Schema(
|
cv.Optional(CONF_SECTION_TUNER): TUNER_SCHEMA,
|
||||||
{
|
cv.Optional(CONF_SECTION_ANALOG): ANALOG_SCHEMA,
|
||||||
cv.Optional(CONF_FREQUENCY, default=87.50): cv.float_range(76, 108), # MHz
|
cv.Optional(CONF_SECTION_DIGITAL): DIGITAL_SCHEMA,
|
||||||
cv.Optional(CONF_DEVIATION, default=68.25): cv.float_range(0, 90), # kHz
|
cv.Optional(CONF_SECTION_PILOT): PILOT_SCHEMA,
|
||||||
cv.Optional(CONF_POWER, default=115): cv.int_range(88, 115),
|
cv.Optional(CONF_SECTION_REFCLK): REFCLK_SCHEMA,
|
||||||
cv.Optional(CONF_ANTCAP, default=0): cv.int_range(0, 191),
|
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_ANALOG): cv.Schema(
|
cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA,
|
||||||
{
|
cv.Optional(CONF_SECTION_SENSOR): SENSOR_SCHEMA,
|
||||||
cv.Optional(CONF_LEVEL, default=636): cv.int_range(0, 1023),
|
|
||||||
cv.Optional(CONF_ATTENUATION, default=636): cv.enum(LINE_ATTENUATION),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_DIGITAL): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_SAMPLE_RATE, default=44100): cv.int_range(32000, 48000), # Hz
|
|
||||||
cv.Optional(CONF_SAMPLE_BITS, default="16"): cv.enum(SAMPLE_BITS),
|
|
||||||
cv.Optional(CONF_CHANNELS, default="Stereo"): cv.enum(SAMPLE_CHANNELS),
|
|
||||||
cv.Optional(CONF_MODE, default="Default"): cv.enum(DIGITAL_MODE),
|
|
||||||
cv.Optional(CONF_CLOCK_EDGE, default="Rising"): cv.enum(DIGITAL_CLOCK_EDGE),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_PILOT): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE, default="True"): cv.boolean,
|
|
||||||
cv.Optional(CONF_FREQUENCY, default=19): cv.float_range(0, 19), # kHz
|
|
||||||
cv.Optional(CONF_DEVIATION, default=6.75): cv.float_range(0, 90), # kHz
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_REFCLK): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_FREQUENCY, default=32768): cv.int_range(31130, 34406), # Hz
|
|
||||||
cv.Optional(CONF_SOURCE, default="RCLK"): cv.enum(REFCLK_SOURCE),
|
|
||||||
cv.Optional(CONF_PRESCALER, default=1): cv.int_range(0, 4095),
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_COMPRESSOR): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE, default="False"): cv.boolean,
|
|
||||||
cv.Optional(CONF_THRESHOLD, default=-40): cv.int_range(-40, 0),
|
|
||||||
cv.Optional(CONF_ATTACK, default='0.5'): cv.enum(ACOMP_ATTACK),
|
|
||||||
cv.Optional(CONF_RELEASE, default="1000"): cv.enum(ACOMP_RELEASE),
|
|
||||||
cv.Optional(CONF_GAIN, default=15): cv.int_range(0, 20),
|
|
||||||
cv.Optional(CONF_PRESET, default="Custom"): cv.enum(ACOMP_PRESET),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_LIMITER): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE, default="True"): cv.boolean,
|
|
||||||
cv.Optional(CONF_RELEASE_TIME, default=5): cv.float_range(0.25, 102.4),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_ASQ): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_IALL, default="False"): cv.boolean,
|
|
||||||
cv.Optional(CONF_IALH, default="False"): cv.boolean,
|
|
||||||
cv.Optional(CONF_OVERMOD, default="False"): cv.boolean,
|
|
||||||
cv.Optional(CONF_LEVEL_LOW, default=-50): cv.float_range(-70, 0),
|
|
||||||
cv.Optional(CONF_DURATION_LOW, default=10000): cv.int_range(0, 65535),
|
|
||||||
cv.Optional(CONF_LEVEL_HIGH, default=-20): cv.float_range(-70, 0),
|
|
||||||
cv.Optional(CONF_DURATION_HIGH, default=5000): cv.int_range(0, 65535),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_RDS): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE, default=False): cv.boolean,
|
|
||||||
cv.Optional(CONF_DEVIATION, default=2.0): cv.float_range(0, 7.5), # kHz
|
|
||||||
cv.Optional(CONF_STATION): cv.string,
|
|
||||||
cv.Optional(CONF_TEXT): cv.string,
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_SENSOR): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_CHIP_ID): text_sensor.text_sensor_schema(
|
|
||||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
icon=ICON_CHIP,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_READ_FREQUENCY): sensor.sensor_schema(
|
|
||||||
unit_of_measurement=UNIT_MEGA_HERTZ,
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
accuracy_decimals=2,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_READ_POWER): sensor.sensor_schema(
|
|
||||||
unit_of_measurement=UNIT_DECIBEL_MICRO_VOLT,
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_READ_ANTCAP): sensor.sensor_schema(
|
|
||||||
unit_of_measurement=UNIT_PICO_FARAD,
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_READ_NOISE_LEVEL): sensor.sensor_schema(
|
|
||||||
unit_of_measurement=UNIT_DECIBEL_MICRO_VOLT,
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
# state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_IALL): binary_sensor.binary_sensor_schema(
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_IALH): binary_sensor.binary_sensor_schema(
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_OVERMOD): binary_sensor.binary_sensor_schema(
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_INLEVEL): sensor.sensor_schema(
|
|
||||||
unit_of_measurement=UNIT_DECIBEL_FS,
|
|
||||||
# entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.extend(cv.polling_component_schema("60s"))
|
.extend(cv.polling_component_schema("60s"))
|
||||||
|
@ -355,13 +371,17 @@ CONFIG_SCHEMA = (
|
||||||
FREQUENCY_SCHEMA = automation.maybe_simple_id(
|
FREQUENCY_SCHEMA = automation.maybe_simple_id(
|
||||||
{
|
{
|
||||||
cv.GenerateID(): cv.use_id(Si4713Component),
|
cv.GenerateID(): cv.use_id(Si4713Component),
|
||||||
cv.Required(CONF_FREQUENCY): cv.templatable(cv.float_range(min = 76, max = 108)),
|
cv.Required(CONF_FREQUENCY): cv.templatable(cv.float_range(min=76, max=108)),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@automation.register_action("si4713.set_frequency", SetFrequencyAction, FREQUENCY_SCHEMA)
|
@automation.register_action(
|
||||||
@automation.register_action("si4713.measure_frequency", MeasureFrequencyAction, FREQUENCY_SCHEMA)
|
"si4713.set_frequency", SetFrequencyAction, FREQUENCY_SCHEMA
|
||||||
|
)
|
||||||
|
@automation.register_action(
|
||||||
|
"si4713.measure_frequency", MeasureFrequencyAction, FREQUENCY_SCHEMA
|
||||||
|
)
|
||||||
async def tune_frequency_action_to_code(config, action_id, template_arg, args):
|
async def tune_frequency_action_to_code(config, action_id, template_arg, args):
|
||||||
var = cg.new_Pvariable(action_id, template_arg)
|
var = cg.new_Pvariable(action_id, template_arg)
|
||||||
await cg.register_parented(var, config[CONF_ID])
|
await cg.register_parented(var, config[CONF_ID])
|
||||||
|
@ -451,11 +471,17 @@ async def to_code(config):
|
||||||
await set_var(rds_config, CONF_TEXT, var.set_rds_text)
|
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_SECTION_SENSOR):
|
||||||
await new_text_sensor(sensor_config, CONF_CHIP_ID, var.set_chip_id_text_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)
|
await new_sensor(
|
||||||
|
sensor_config, CONF_READ_FREQUENCY, var.set_read_frequency_sensor
|
||||||
|
)
|
||||||
await new_sensor(sensor_config, CONF_READ_POWER, var.set_read_power_sensor)
|
await new_sensor(sensor_config, CONF_READ_POWER, var.set_read_power_sensor)
|
||||||
await new_sensor(sensor_config, CONF_READ_ANTCAP, var.set_read_antcap_sensor)
|
await new_sensor(sensor_config, CONF_READ_ANTCAP, var.set_read_antcap_sensor)
|
||||||
await new_sensor(sensor_config, CONF_READ_NOISE_LEVEL, var.set_read_noise_level_sensor)
|
await new_sensor(
|
||||||
|
sensor_config, CONF_READ_NOISE_LEVEL, var.set_read_noise_level_sensor
|
||||||
|
)
|
||||||
await new_binary_sensor(sensor_config, CONF_IALL, var.set_iall_binary_sensor)
|
await new_binary_sensor(sensor_config, CONF_IALL, var.set_iall_binary_sensor)
|
||||||
await new_binary_sensor(sensor_config, CONF_IALH, var.set_ialh_binary_sensor)
|
await new_binary_sensor(sensor_config, CONF_IALH, var.set_ialh_binary_sensor)
|
||||||
await new_binary_sensor(sensor_config, CONF_OVERMOD, var.set_overmod_binary_sensor)
|
await new_binary_sensor(
|
||||||
|
sensor_config, CONF_OVERMOD, var.set_overmod_binary_sensor
|
||||||
|
)
|
||||||
await new_sensor(sensor_config, CONF_INLEVEL, var.set_inlevel_sensor)
|
await new_sensor(sensor_config, CONF_INLEVEL, var.set_inlevel_sensor)
|
||||||
|
|
|
@ -219,7 +219,7 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def new_number(parent, config, id, setter, min_value, max_value, step, *args, **kwargs):
|
async def new_number(p, config, id, setter, min_value, max_value, step, *args, **kwargs):
|
||||||
if c := config.get(id):
|
if c := config.get(id):
|
||||||
if CONF_MODE in kwargs:
|
if CONF_MODE in kwargs:
|
||||||
if CONF_MODE not in c or c[CONF_MODE] == number.NumberMode.NUMBER_MODE_AUTO:
|
if CONF_MODE not in c or c[CONF_MODE] == number.NumberMode.NUMBER_MODE_AUTO:
|
||||||
|
@ -227,37 +227,37 @@ async def new_number(parent, config, id, setter, min_value, max_value, step, *ar
|
||||||
n = await number.new_number(
|
n = await number.new_number(
|
||||||
c, *args, min_value=min_value, max_value=max_value, step=step
|
c, *args, min_value=min_value, max_value=max_value, step=step
|
||||||
)
|
)
|
||||||
await cg.register_parented(n, parent)
|
await cg.register_parented(n, p)
|
||||||
cg.add(setter(n))
|
cg.add(setter(n))
|
||||||
return n
|
return n
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_SI4713_ID])
|
p = await cg.get_variable(config[CONF_SI4713_ID])
|
||||||
if tuner_config := config.get(CONF_SECTION_TUNER):
|
if tuner_config := config.get(CONF_SECTION_TUNER):
|
||||||
await new_number(parent, tuner_config, CONF_FREQUENCY, parent.set_frequency_number, 76, 108, 0.05)
|
await new_number(p, tuner_config, CONF_FREQUENCY, p.set_frequency_number, 76, 108, 0.05)
|
||||||
await new_number(parent, tuner_config, CONF_DEVIATION, parent.set_audio_deviation_number, 0, 90, 0.01)
|
await new_number(p, tuner_config, CONF_DEVIATION, p.set_audio_deviation_number, 0, 90, 0.01)
|
||||||
await new_number(parent, tuner_config, CONF_POWER, parent.set_power_number, 88, 120, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER)
|
await new_number(p, tuner_config, CONF_POWER, p.set_power_number, 88, 120, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER)
|
||||||
await new_number(parent, tuner_config, CONF_ANTCAP, parent.set_antcap_number, 0, 191, 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_SECTION_ANALOG):
|
||||||
await new_number(parent, analog_config, CONF_LEVEL, parent.set_analog_level_number, 0, 1023, 1, mode = number.NumberMode.NUMBER_MODE_SLIDER)
|
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_SECTION_DIGITAL):
|
||||||
await new_number(parent, digital_config, CONF_SAMPLE_RATE, parent.set_digital_sample_rate_number, 32000, 48000, 1)
|
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_SECTION_PILOT):
|
||||||
await new_number(parent, pilot_config, CONF_FREQUENCY, parent.set_pilot_frequency_number, 0, 19, 0.001)
|
await new_number(p, pilot_config, CONF_FREQUENCY, p.set_pilot_frequency_number, 0, 19, 0.001)
|
||||||
await new_number(parent, pilot_config, CONF_DEVIATION, parent.set_pilot_deviation_number, 0, 90, 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_SECTION_REFCLK):
|
||||||
await new_number(parent, refclk_config, CONF_FREQUENCY, parent.set_refclk_frequency_number, 31130, 34406, 1)
|
await new_number(p, refclk_config, CONF_FREQUENCY, p.set_refclk_frequency_number, 31130, 34406, 1)
|
||||||
await new_number(parent, refclk_config, CONF_PRESCALER, parent.set_refclk_prescaler_number, 0, 4095, 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_SECTION_COMPRESSOR):
|
||||||
await new_number(parent, compressor_config, CONF_THRESHOLD, parent.set_acomp_threshold_number, -40, 0, 1)
|
await new_number(p, compressor_config, CONF_THRESHOLD, p.set_acomp_threshold_number, -40, 0, 1)
|
||||||
await new_number(parent, compressor_config, CONF_GAIN, parent.set_acomp_gain_number, 0, 20, 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_SECTION_LIMITER):
|
||||||
await new_number(parent, limiter_config, CONF_RELEASE_TIME, parent.set_limiter_release_time_number, 0.25, 102.4, 0.01, mode = number.NumberMode.NUMBER_MODE_SLIDER)
|
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_SECTION_ASQ):
|
||||||
await new_number(parent, asq_config, CONF_LEVEL_LOW, parent.set_asq_level_low_number, -70, 0, 1)
|
await new_number(p, asq_config, CONF_LEVEL_LOW, p.set_asq_level_low_number, -70, 0, 1)
|
||||||
await new_number(parent, asq_config, CONF_DURATION_LOW, parent.set_asq_duration_low_number, 0, 65535, 1)
|
await new_number(p, asq_config, CONF_DURATION_LOW, p.set_asq_duration_low_number, 0, 65535, 1)
|
||||||
await new_number(parent, asq_config, CONF_LEVEL_HIGH, parent.set_asq_level_high_number, -70, 0, 1)
|
await new_number(p, asq_config, CONF_LEVEL_HIGH, p.set_asq_level_high_number, -70, 0, 1)
|
||||||
await new_number(parent, asq_config, CONF_DURATION_HIGH, parent.set_asq_duration_high_number, 0, 65535, 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_SECTION_RDS):
|
||||||
await new_number(parent, rds_config, CONF_DEVIATION, parent.set_rds_deviation_number, 0, 7.5, 0.01)
|
await new_number(p, rds_config, CONF_DEVIATION, p.set_rds_deviation_number, 0, 7.5, 0.01)
|
||||||
|
|
|
@ -122,27 +122,27 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def new_select(parent, config, id, setter, options):
|
async def new_select(p, config, id, setter, options):
|
||||||
if c := config.get(id):
|
if c := config.get(id):
|
||||||
s = await select.new_select(c, options=list(options.keys()))
|
s = await select.new_select(c, options=list(options.keys()))
|
||||||
await cg.register_parented(s, parent)
|
await cg.register_parented(s, p)
|
||||||
cg.add(setter(s))
|
cg.add(setter(s))
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_SI4713_ID])
|
p = await cg.get_variable(config[CONF_SI4713_ID])
|
||||||
await new_select(parent, config, CONF_PRE_EMPHASIS, parent.set_pre_emphasis_select, PRE_EMPHASIS)
|
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_SECTION_ANALOG):
|
||||||
await new_select(parent, analog_config, CONF_ATTENUATION, parent.set_analog_attenuation_select, LINE_ATTENUATION)
|
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_SECTION_DIGITAL):
|
||||||
await new_select(parent, digital_config, CONF_SAMPLE_BITS, parent.set_digital_sample_bits_select, SAMPLE_BITS)
|
await new_select(p, digital_config, CONF_SAMPLE_BITS, p.set_digital_sample_bits_select, SAMPLE_BITS)
|
||||||
await new_select(parent, digital_config, CONF_CHANNELS, parent.set_digital_channels_select, SAMPLE_CHANNELS)
|
await new_select(p, digital_config, CONF_CHANNELS, p.set_digital_channels_select, SAMPLE_CHANNELS)
|
||||||
await new_select(parent, digital_config, CONF_MODE, parent.set_digital_mode_select, DIGITAL_MODE)
|
await new_select(p, digital_config, CONF_MODE, p.set_digital_mode_select, DIGITAL_MODE)
|
||||||
await new_select(parent, digital_config, CONF_CLOCK_EDGE, parent.set_digital_clock_edge_select, DIGITAL_CLOCK_EDGE)
|
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_SECTION_REFCLK):
|
||||||
await new_select(parent, refclk_config, CONF_SOURCE, parent.set_refclk_source_select, REFCLK_SOURCE)
|
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_SECTION_COMPRESSOR):
|
||||||
await new_select(parent, compressor_config, CONF_ATTACK, parent.set_acomp_attack_select, ACOMP_ATTACK)
|
await new_select(p, compressor_config, CONF_ATTACK, p.set_acomp_attack_select, ACOMP_ATTACK)
|
||||||
await new_select(parent, compressor_config, CONF_RELEASE, parent.set_acomp_release_select, ACOMP_RELEASE)
|
await new_select(p, compressor_config, CONF_RELEASE, p.set_acomp_release_select, ACOMP_RELEASE)
|
||||||
await new_select(parent, compressor_config, CONF_PRESET, parent.set_acomp_preset_select, ACOMP_PRESET)
|
await new_select(p, compressor_config, CONF_PRESET, p.set_acomp_preset_select, ACOMP_PRESET)
|
||||||
|
|
|
@ -43,6 +43,96 @@ RdsEnable = si4713_ns.class_("RdsEnable", switch.Switch)
|
||||||
RDSEnableSwitch = si4713_ns.class_("RDSEnableSwitch", switch.Switch)
|
RDSEnableSwitch = si4713_ns.class_("RDSEnableSwitch", switch.Switch)
|
||||||
GPIOSwitch = si4713_ns.class_("GPIOSwitch", switch.Switch)
|
GPIOSwitch = si4713_ns.class_("GPIOSwitch", switch.Switch)
|
||||||
|
|
||||||
|
PILOT_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
||||||
|
PilotEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
icon=ICON_SINE_WAVE,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
COMPRESSOR_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
||||||
|
AcompEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
icon=ICON_SINE_WAVE,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
LIMITER_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
||||||
|
LimiterEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
icon=ICON_SINE_WAVE,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
ASQ_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_OVERMOD): switch.switch_schema(
|
||||||
|
AsqOvermodEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_IALL): switch.switch_schema(
|
||||||
|
AsqIallEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_IALH): switch.switch_schema(
|
||||||
|
AsqIalhEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=ICON_,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
RDS_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
||||||
|
RDSEnableSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
icon=ICON_FORMAT_TEXT,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
OUTPUT_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.Optional(CONF_GPIO1): switch.switch_schema(
|
||||||
|
GPIOSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_GPIO2): switch.switch_schema(
|
||||||
|
GPIOSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_GPIO3): switch.switch_schema(
|
||||||
|
GPIOSwitch,
|
||||||
|
device_class=DEVICE_CLASS_SWITCH,
|
||||||
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
|
# icon=,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
)
|
||||||
CONFIG_SCHEMA = cv.Schema(
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
{
|
{
|
||||||
cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component),
|
cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component),
|
||||||
|
@ -58,122 +148,44 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
icon=ICON_EAR_HEARING,
|
icon=ICON_EAR_HEARING,
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_SECTION_PILOT): cv.Schema(
|
cv.Optional(CONF_SECTION_PILOT): PILOT_SCHEMA,
|
||||||
{
|
cv.Optional(CONF_SECTION_COMPRESSOR): COMPRESSOR_SCHEMA,
|
||||||
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
cv.Optional(CONF_SECTION_LIMITER): LIMITER_SCHEMA,
|
||||||
PilotEnableSwitch,
|
cv.Optional(CONF_SECTION_ASQ): ASQ_SCHEMA,
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA,
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
cv.Optional(CONF_SECTION_OUTPUT): OUTPUT_SCHEMA,
|
||||||
icon=ICON_SINE_WAVE,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_COMPRESSOR): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
|
||||||
AcompEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
icon=ICON_SINE_WAVE,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_LIMITER): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
|
||||||
LimiterEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
icon=ICON_SINE_WAVE,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_ASQ): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_OVERMOD): switch.switch_schema(
|
|
||||||
AsqOvermodEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_IALL): switch.switch_schema(
|
|
||||||
AsqIallEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_IALH): switch.switch_schema(
|
|
||||||
AsqIalhEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=ICON_,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_RDS): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_ENABLE): switch.switch_schema(
|
|
||||||
RDSEnableSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
icon=ICON_FORMAT_TEXT,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_SECTION_OUTPUT): cv.Schema(
|
|
||||||
{
|
|
||||||
cv.Optional(CONF_GPIO1): switch.switch_schema(
|
|
||||||
GPIOSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_GPIO2): switch.switch_schema(
|
|
||||||
GPIOSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=,
|
|
||||||
),
|
|
||||||
cv.Optional(CONF_GPIO3): switch.switch_schema(
|
|
||||||
GPIOSwitch,
|
|
||||||
device_class=DEVICE_CLASS_SWITCH,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
# icon=,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def new_switch(parent, config, id, setter):
|
async def new_switch(p, config, id, setter):
|
||||||
if c := config.get(id):
|
if c := config.get(id):
|
||||||
s = await switch.new_switch(c)
|
s = await switch.new_switch(c)
|
||||||
await cg.register_parented(s, parent)
|
await cg.register_parented(s, p)
|
||||||
cg.add(setter(s))
|
cg.add(setter(s))
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_SI4713_ID])
|
p = await cg.get_variable(config[CONF_SI4713_ID])
|
||||||
await new_switch(parent, config, CONF_MUTE, parent.set_mute_switch)
|
await new_switch(p, config, CONF_MUTE, p.set_mute_switch)
|
||||||
await new_switch(parent, config, CONF_MONO, parent.set_mono_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_SECTION_PILOT):
|
||||||
await new_switch(parent, pilot_config, CONF_ENABLE, parent.set_pilot_enable_switch)
|
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_SECTION_COMPRESSOR):
|
||||||
await new_switch(parent, compressor_config, CONF_ENABLE, parent.set_acomp_enable_switch)
|
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_SECTION_LIMITER):
|
||||||
await new_switch(parent, limiter_config, CONF_ENABLE, parent.set_limiter_enable_switch)
|
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_SECTION_ASQ):
|
||||||
await new_switch(parent, asq_config, CONF_IALL, parent.set_asq_iall_enable_switch)
|
await new_switch(p, asq_config, CONF_IALL, p.set_asq_iall_enable_switch)
|
||||||
await new_switch(parent, asq_config, CONF_IALH, parent.set_asq_ialh_enable_switch)
|
await new_switch(p, asq_config, CONF_IALH, p.set_asq_ialh_enable_switch)
|
||||||
await new_switch(parent, asq_config, CONF_OVERMOD, parent.set_asq_overmod_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_SECTION_RDS):
|
||||||
await new_switch(parent, rds_config, CONF_ENABLE, parent.set_rds_enable_switch)
|
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_SECTION_OUTPUT):
|
||||||
gpio1 = await new_switch(parent, output_config, CONF_GPIO1, parent.set_gpio1_switch)
|
gpio1 = await new_switch(p, output_config, CONF_GPIO1, p.set_gpio1_switch)
|
||||||
gpio2 = await new_switch(parent, output_config, CONF_GPIO2, parent.set_gpio2_switch)
|
gpio2 = await new_switch(p, output_config, CONF_GPIO2, p.set_gpio2_switch)
|
||||||
gpio3 = await new_switch(parent, output_config, CONF_GPIO3, parent.set_gpio3_switch)
|
gpio3 = await new_switch(p, output_config, CONF_GPIO3, p.set_gpio3_switch)
|
||||||
cg.add(gpio1.set_pin(1))
|
cg.add(gpio1.set_pin(1))
|
||||||
cg.add(gpio2.set_pin(2))
|
cg.add(gpio2.set_pin(2))
|
||||||
cg.add(gpio3.set_pin(3))
|
cg.add(gpio3.set_pin(3))
|
||||||
|
|
|
@ -121,41 +121,39 @@ async def new_text(
|
||||||
return var
|
return var
|
||||||
|
|
||||||
|
|
||||||
CONFIG_SCHEMA = cv.Schema(
|
RDS_SCHEMA = cv.Schema(
|
||||||
{
|
{
|
||||||
cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component),
|
cv.Optional(CONF_STATION): text_schema(
|
||||||
cv.Optional(CONF_SECTION_RDS): cv.Schema(
|
RDSStationText,
|
||||||
{
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
cv.Optional(CONF_STATION): text_schema(
|
icon=ICON_FORMAT_TEXT,
|
||||||
RDSStationText,
|
),
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
cv.Optional(CONF_TEXT): text_schema(
|
||||||
icon=ICON_FORMAT_TEXT,
|
RDSTextText,
|
||||||
),
|
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||||
cv.Optional(CONF_TEXT): text_schema(
|
icon=ICON_FORMAT_TEXT,
|
||||||
RDSTextText,
|
|
||||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
|
||||||
icon=ICON_FORMAT_TEXT,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = cv.Schema(
|
||||||
|
{
|
||||||
|
cv.GenerateID(CONF_SI4713_ID): cv.use_id(Si4713Component),
|
||||||
|
cv.Optional(CONF_SECTION_RDS): RDS_SCHEMA,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
async def new_text_simple(parent, config, id, setter, min_length, max_length, *args):
|
|
||||||
|
async def new_text_simple(p, config, id, setter, min_length, max_length, *args):
|
||||||
if c := config.get(id):
|
if c := config.get(id):
|
||||||
t = await new_text(c, *args, min_length=min_length, max_length=max_length)
|
t = await new_text(c, *args, min_length=min_length, max_length=max_length)
|
||||||
await cg.register_parented(t, parent)
|
await cg.register_parented(t, p)
|
||||||
cg.add(setter(t))
|
cg.add(setter(t))
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
|
||||||
async def to_code(config):
|
async def to_code(config):
|
||||||
parent = await cg.get_variable(config[CONF_SI4713_ID])
|
p = await cg.get_variable(config[CONF_SI4713_ID])
|
||||||
if rds_config := config.get(CONF_SECTION_RDS):
|
if rds_config := config.get(CONF_SECTION_RDS):
|
||||||
await new_text_simple(
|
await new_text_simple(p, rds_config, CONF_STATION, p.set_rds_station_text, 0, 8)
|
||||||
parent, rds_config, CONF_STATION, parent.set_rds_station_text, 0, si4713_ns.RDS_STATION_MAX
|
await new_text_simple(p, rds_config, CONF_TEXT, p.set_rds_text_text, 0, 64)
|
||||||
)
|
|
||||||
await new_text_simple(
|
|
||||||
parent, rds_config, CONF_TEXT, parent.set_rds_text_text, 0, si4713_ns.RDS_TEXT_MAX
|
|
||||||
)
|
|
||||||
|
|
Loading…
Reference in a new issue