Input_select в Home Assistant перестаёт переключать значения чаще всего по двум причинам: выбранная опция не совпадает с регистром и пробелами из списка options, либо автоматизация обращается к несуществующему entity_id. Этот помощник (helper) представляет собой выпадающий список, значение которого можно менять из интерфейса, через сервисы и внутри автоматизаций, а его состояние использовать как триггер или условие.
В отличие от input_boolean или input_number, список хранит строку из заранее заданного набора вариантов. Это удобно для режимов дома («Дома», «Ночь», «Отпуск»), выбора сценария освещения или источника звука. Ниже разберём оба способа создания — через интерфейс и через YAML, типичные ошибки и готовые примеры автоматизаций.
Что такое input_select и когда он нужен
Input_select — это встроенный помощник Home Assistant, создающий сущность вида input_select.имя со списком допустимых строковых значений. Текущее значение отображается в интерфейсе как выпадающий список и сохраняется после перезапуска сервера.
Типичные сценарии применения:
- 🏠 переключение режимов дома: Home / Away / Night / Vacation;
- 💡 выбор сцены освещения, которую затем запускает автоматизация;
- 🎵 выбор активного медиаплеера или источника звука;
- 🌡️ задание климатического профиля для разных периодов дня.
Ключевое ограничение: список опций статичен. Добавить новый вариант «на лету» из автоматизации нельзя — только редактированием конфигурации помощника. Если набор значений должен меняться динамически, смотрите в сторону input_text или шаблонных сенсоров.
Создание input_select через интерфейс
Самый простой путь — раздел помощников в веб-интерфейсе. Откройте Настройки → Устройства и службы → Помощники, нажмите «Создать помощник» и выберите тип «Выпадающий список» (Dropdown). Затем задайте имя, при желании иконку и добавьте опции по одной.
Обратите внимание: порядок опций в списке можно менять перетаскиванием, а первая опция станет значением по умолчанию при восстановлении состояния, если предыдущее не сохранилось. После создания сущность получит идентификатор вроде input_select.rezhim_doma — его вы будете использовать в автоматизациях и скриптах.
Создание через configuration.yaml
Если вы ведёте конфигурацию в файлах, помощник объявляется в секции input_select. Минимальный пример:
input_select:
rezhim_doma:
name: Режим дома
options:
- Дома
- Ночь
- Нет дома
- Отпуск
icon: mdi:home-account
После правки файла нужно перезагрузить конфигурацию: Настройки → Система → Перезапустить, либо использовать пункт «Помощники ввода» в разделе проверки и перезагрузки конфигурации — он подхватывает изменения без полного рестарта, если ваша версия это поддерживает.
⚠️ Внимание: не объявляйте один и тот же помощник одновременно в YAML и через интерфейс с одинаковым именем — это приведёт к конфликту сущностей и дублированию объектов в системе.
Сервисы для управления списком
Изменять значение из автоматизаций и скриптов позволяют сервисы домена input_select. Основные из них:
| Сервис | Назначение | Обязательные параметры |
|---|---|---|
input_select.select_option | Установить конкретное значение | entity_id, option |
input_select.select_next | Перейти к следующей опции | entity_id |
input_select.select_previous | Перейти к предыдущей опции | entity_id |
input_select.select_first | Выбрать первую опцию | entity_id |
input_select.set_options | Заменить весь набор опций | entity_id, options |
Пример вызова сервиса в действии автоматизации:
action:
- service: input_select.select_option
target:
entity_id: input_select.rezhim_doma
data:
option: "Ночь"
Сервисы select_next и select_previous по умолчанию зацикливают список: после последней опции снова выбирается первая. Это удобно для кнопки, которая «пролистывает» режимы.
Пример автоматизации с input_select
Классическая задача — реагировать на смену режима. Триггером служит изменение состояния сущности, а конкретное значение проверяется в условии или через choose:
automation:
- alias: "Ночной режим"
triggers:
- trigger: state
entity_id: input_select.rezhim_doma
to: "Ночь"
actions:
- service: light.turn_off
target:
area_id: gostinaya
- service: climate.set_temperature
target:
entity_id: climate.spalnya
data:
temperature: 19
Обратная схема тоже работает: автоматизация сама меняет значение списка, например при уходе всех из дома выставляет «Нет дома». Так input_select становится центральной переменной состояния всей логики умного дома.
Типичные ошибки и их решение
Чаще всего проблемы возникают не с самим помощником, а с тем, как к нему обращаются. Разберём основные сценарии.
Ошибка «Option not valid». Строка в option не совпадает ни с одной опцией списка. Проверьте регистр, лишние пробелы и кавычки. В YAML опцию лучше заключать в кавычки, особенно если она содержит двоеточие или начинается с цифры.
Значение сбрасывается после перезапуска. Обычно состояние помощников восстанавливается автоматически. Если этого не происходит, убедитесь, что у сущности не задан initial в YAML — этот параметр принудительно задаёт стартовое значение при каждой загрузке.
Автоматизация не срабатывает на изменение. Возможная причина — триггер state без указания to срабатывает и на смену атрибутов, а при перезагрузке состояние может кратковременно уходить в unavailable. Добавьте условия from и to или фильтруйте недоступные состояния в условиях.
☑️ Проверка input_select при проблемах
⚠️ Внимание: не используйте input_select для хранения секретов или токенов — значения помощников видны в интерфейсе, в истории и в логбуке любому пользователю с доступом к системе.
Как посмотреть текущее значение и опции
Откройте «Инструменты разработчика → Состояния», найдите сущность input_select.* — в колонке «Состояние» будет текущее значение, а в атрибутах полный список options. Там же можно вручную установить состояние для теста автоматизаций.
Вывод на дашборд и в голосовых ассистентах
В Lovelace список добавляется стандартной карточкой «Сущности» — значение отображается как выпадающий список и переключается в один тап. Для компактного вида подойдёт карточка entities с указанием сущности, либо tile, если ваша версия интерфейса её поддерживает.
При пробросе в Google Home или Alexa через официальные интеграции поведение input_select зависит от настроек экспозиции и может отличаться между версиями. Надёжная альтернатива — создать скрипты на каждую опцию и пробросить их: голосовые ассистенты стабильно работают со скриптами и сценами.
Частые вопросы
Можно ли добавить опцию в input_select из автоматизации?
Да, через сервис input_select.set_options, который заменяет весь список целиком. Отдельного сервиса «добавить одну опцию» нет — нужно передать полный новый набор значений.
Сохраняется ли значение после перезапуска Home Assistant?
Да, помощники восстанавливают последнее состояние автоматически. Исключение — если в YAML задан параметр initial, тогда при каждой загрузке будет установлено именно это значение.
Чем input_select отличается от input_text?
input_select ограничивает значение фиксированным списком вариантов и отображается выпадающим списком, а input_text принимает любую строку. Для режимов и перечислений удобнее первый, для произвольных данных — второй.
Почему сервис select_option выдаёт ошибку?
Почти всегда причина в несовпадении строки: проверьте регистр букв, пробелы в начале и конце, а также то, что опция существует в списке. Точное написание видно в атрибутах сущности в инструментах разработчика.
Можно ли использовать input_select как условие в автоматизации?
Да, используйте условие state: проверяется entity_id помощника и нужное значение. Это стандартный способ «включать» автоматизацию только в определённом режиме дома.