Добавлена настройка пределов и шага температуры в интерфейсе, вместе с проверкой.
This commit is contained in:
@@ -24,6 +24,11 @@ AUTO_LOAD = ["climate"]
|
||||
CODEOWNERS = ["@I-am-nightingale"]
|
||||
DEPENDENCIES = ["climate", "uart"]
|
||||
|
||||
TCLAC_MIN_TEMPERATURE = 16.0
|
||||
TCLAC_MAX_TEMPERATURE = 31.0
|
||||
TCLAC_TARGET_TEMPERATURE_STEP = 1.0
|
||||
TCLAC_CURRENT_TEMPERATURE_STEP = 1.0
|
||||
|
||||
CONF_RX_LED = "rx_led"
|
||||
CONF_TX_LED = "tx_led"
|
||||
CONF_DISPLAY = "show_display"
|
||||
@@ -99,6 +104,31 @@ AIRFLOW_HORIZONTAL_DIRECTION_OPTIONS = {
|
||||
"MAX_RIGHT": AirflowHorizontalDirection.MAX_RIGHT,
|
||||
}
|
||||
|
||||
def validate_visual(config):
|
||||
if CONF_VISUAL in config:
|
||||
visual_config = config[CONF_VISUAL]
|
||||
if CONF_MIN_TEMPERATURE in visual_config:
|
||||
min_temp = visual_config[CONF_MIN_TEMPERATURE]
|
||||
if min_temp < TCLAC_MIN_TEMPERATURE:
|
||||
raise cv.Invalid(f"Указанная интерфейсная минимальная температура в {min_temp} ниже допустимой {TCLAC_MIN_TEMPERATURE} для кондиционера")
|
||||
else:
|
||||
config[CONF_VISUAL][CONF_MIN_TEMPERATURE] = TCLAC_MIN_TEMPERATURE
|
||||
if CONF_MAX_TEMPERATURE in visual_config:
|
||||
max_temp = visual_config[CONF_MAX_TEMPERATURE]
|
||||
if max_temp > TCLAC_MAX_TEMPERATURE:
|
||||
raise cv.Invalid(f"Указанная интерфейсная максимальная температура в {max_temp} выше допустимой {TCLAC_MAX_TEMPERATURE} для кондиционера")
|
||||
else:
|
||||
config[CONF_VISUAL][CONF_MAX_TEMPERATURE] = TCLAC_MAX_TEMPERATURE
|
||||
if CONF_TEMPERATURE_STEP in visual_config:
|
||||
temp_step = config[CONF_VISUAL][CONF_TEMPERATURE_STEP][CONF_TARGET_TEMPERATURE]
|
||||
if ((int)(temp_step * 2)) / 2 != temp_step:
|
||||
raise cv.Invalid(f"Указанный шаг температуры {temp_step} не корректен, должен быть кратен 1")
|
||||
else:
|
||||
config[CONF_VISUAL][CONF_TEMPERATURE_STEP] = {CONF_TARGET_TEMPERATURE: TCLAC_TARGET_TEMPERATURE_STEP,CONF_CURRENT_TEMPERATURE: TCLAC_CURRENT_TEMPERATURE_STEP,}
|
||||
else:
|
||||
config[CONF_VISUAL] = {CONF_MIN_TEMPERATURE: TCLAC_MIN_TEMPERATURE,CONF_MAX_TEMPERATURE: TCLAC_MAX_TEMPERATURE,CONF_TEMPERATURE_STEP: {CONF_TARGET_TEMPERATURE: TCLAC_TARGET_TEMPERATURE_STEP,CONF_CURRENT_TEMPERATURE: TCLAC_CURRENT_TEMPERATURE_STEP,},}
|
||||
return config
|
||||
|
||||
# Проверка данных конфигурации и принятие значений по умолчанию
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
climate.CLIMATE_SCHEMA.extend(
|
||||
|
||||
Reference in New Issue
Block a user