Home Assistant input_select: полное руководство по выпадающим спискам

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?
Режимы дома (дома/нет/ночь)
Выбор сцен освещения
Переключение медиаплееров
Хранение произвольных статусов

Обратная схема тоже работает: автоматизация сама меняет значение списка, например при уходе всех из дома выставляет «Нет дома». Так input_select становится центральной переменной состояния всей логики умного дома.

Типичные ошибки и их решение

Чаще всего проблемы возникают не с самим помощником, а с тем, как к нему обращаются. Разберём основные сценарии.

Ошибка «Option not valid». Строка в option не совпадает ни с одной опцией списка. Проверьте регистр, лишние пробелы и кавычки. В YAML опцию лучше заключать в кавычки, особенно если она содержит двоеточие или начинается с цифры.

Значение сбрасывается после перезапуска. Обычно состояние помощников восстанавливается автоматически. Если этого не происходит, убедитесь, что у сущности не задан initial в YAML — этот параметр принудительно задаёт стартовое значение при каждой загрузке.

Автоматизация не срабатывает на изменение. Возможная причина — триггер state без указания to срабатывает и на смену атрибутов, а при перезагрузке состояние может кратковременно уходить в unavailable. Добавьте условия from и to или фильтруйте недоступные состояния в условиях.

☑️ Проверка input_select при проблемах

Выполнено: 0 / 5
⚠️ Внимание: не используйте 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 помощника и нужное значение. Это стандартный способ «включать» автоматизацию только в определённом режиме дома.