Телеграмм бот для Home Assistant'a
Друзья, в какой-то момент посетила идея сделать универсального телеграмм бота для Home Assist, чтобы не прописывать и не хардкодить все внутри .yaml конфига, и чтобы все было написано на python. Поэтому хочу показать первую (вроде рабочую :) ) версию своего бота.
Чо бот использует:
1) Python версии 3.10 и выше (это важно, поэтому если будете устанавливать на Debian, будьте внимательны, обычно там 3.9)
2) Асинхронную библиотеку aiogram версии 3.0.7b
3) PostgreSQL + SQLalcemy + asyncpg драйвер (т.е. все запросы в БД так же идут асинхронно)
4) Homeassistant-api (В первой версии пока на синхронных запросах, в планах, конечно это переделать, знаю, что там не много нужно переделывать, и, изначально все было в асинхроне, но пока я отлавливал один баг, переделал все на синхронное взаимодействие, а обратно возвращать уже не было времени).
Что бот умеет:
1) В этой версии умеет работать не со всеми сущностями, а только 'binary_sensor', 'sensor', 'button', 'light', 'switch'.
2) Для вывода в сообщениях и на кнопках использует "friendly name" сущностей, которые настраиваются на самом сервере Home Assista.
3) По команде /edit входит в режим создания и редактирования комнат, где из имеющихся сущностей можно собрать некий дашборд. (Команда доступна только тем, кто вписан в .env файл как админ, user этой командой пользоваться не может). В планах добавить БД, чтобы можно было управлять пользователями прямо из бота.
4) По команде /start выводит созданные комнаты. В тексте сообщения выводит информацию с сенсоров, а инлайн-кнопки управляют переключающимися сущностями. Пока что, кнопки умеют только нажиматься, а выключатели переключаться, т.е. диммеры регулировать не удастся.
Ссылка на репозиторий:
ChronoDi/HomeAssistBot (github.com)
Вся инструкция по установке там имеется. Если будут какие-то вопросы, пишите, постараюсь оперативно ответить.
Инструкция как получить токен для HA:
Как получить токен для API Home Assistant (bessarabov.ru)
Не забудьте включить API своего HA, прописав в configuration.yaml
api:
Home Assistant API - Home Assistant (home-assistant.io)
Как это все выглядит:
1) При старте бота он показывает созданные комнаты (если до этого они не создавались, он предлагает пройти в режим создания комнат)
2) В режиме редактирования, по команде /edit он предлагает добавить, удалить или редактировать существующие комнаты.
3) В режиме редактирования комнат выводит уже добавленные сущности, и предлагает добавить сущности из доступных категорий:
4) При выборе готовой комнаты, после команды /start, комната отображается следующим образом (хочу напомнить, что все имена берутся с HA из поля "friendly name" сущности, это настраивается на самом HA):
Прошу не забывать, что это всего лишь альфа версия бота, идей для реализации еще очень много, но все интересные предложения будут рассмотрены и аккуратно записаны для реализации. Буду рад за тест этого бота, код открытый, пользуйтесь на здоровье, надеюсь вам понравится :) Занимаюсь ботом один в свободное время, поэтому прошу прощение, если будут задержки с развитием проекта.
P.S. Знаю, что было бы хорошо все убрать в докер, так как многие сидят на haOS, это есть в планах, но руки пока не дошли.
Home Assistant
33 поста1K подписчиков
Правила сообщества
Сообщество не имеет каких-либо строгих правил для размещения публикаций за исключением офтопа (не по теме сообщества) и публикаций нарушающих правила сайта Pikabu -https://pikabu.ru/information/rules .