Умный дом в котором я живу. Использование скриптов Python в автоматизациях Home Assitant
Зональная уборка роботом пылесосом - v2
Когда я писал прошлый пост Умный дом в котором я живу. Зональная уборка роботом пылесосом у меня возникла идея заменить при выборе комнат для уборки выпадающий список
Писать полный перебор всех вариантов комбинация комнат - так себе идея. Их будет свыше 60 и выпадающий список будет огромный. Поэтому возникла идея заменить на пачку селекторов, где я выбираю комнаты в произвольной комбинации.
Но встал вопрос как передавать параметры уборки роботу.
Т.е. из отдельных блоков комнат [х1,у1,х2,y2,count] мы должны собрать строку
params: [[х1,у1,х2,y2,count],[х1,у1,х2,y2,count],[х1,у1,х2,y2,count]]
Пока я искал как это написать, нашел статью https://sprut.ai/client/article/2555, где решается практически моя задача.
При переделке кода под себя, вылезли некоторые косяки, которые и побудили меня написать целый пост.
Итак, собственных возможностей HA не хватает, чтобы написать перебор всех возможных вариантов уборки. Поэтому, можно задействовать скрипты на Питоне, что существенно расширяет возможности автоматизации. В configuration.yaml прописываем
python_script:
Как это работает. Мы должны передать пылесосу массив состоящий из параметров комнат, которые мы будем убирать.
Скрипт принимает на вход состояния выключателей input_boolean и рассовывает их по переменным. затем он на основе значений переменных или добавляет параметры комнаты или нет.
Закомментированная строчка выплевывает передаваемый роботу массив в лог HA, что удобно для отладки.
А теперь обвязка.
Cоздаем сами выключатели
В input_boolean: !include input_boolean.yaml
Создаем карточку:
Скрипт автоматизации
Ручное прерывание уборки:
И сброс кнопок при возврате на базу
Ну и на случай внешней установки мощности всасывания (скажем из веб морды) в HA надо установить селекбокс.
для этого лепим сенсор
И автоматизацию, устанавливающую в правильное положение селект бокс
Лепим сенсоры замены расходников:
И кнопки для сброса и кнопку скрытия их
В итоге карточка робота выглядит вот так
Все конфиги можно дернуть здесь: https://drive.google.com/file/d/1GPZ92SDrBzFjQEVsfsA5EYbz8sH...