28

Телеграмм бот для 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

40 постов1K подписчиков

Правила сообщества

Сообщество не имеет каких-либо строгих правил для размещения публикаций за исключением офтопа (не по теме сообщества) и публикаций нарушающих правила сайта Pikabu - https://pikabu.ru/information/rules.

0
Автор поста оценил этот комментарий
При наличии плавающего инэта, действительно неплохое решение, одобрямс) кстати вариант mqtt не рассматривали? Например управление через телегу на mqtt и готовая поддержка mqtt на ХА? Написание своего блока тогда можно было избежать да и нативная поддержка более широкая
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Пока есть несколько идей по реализации дополнительно функционала, особенно, в первую очередь, хотелось бы реализовать опрос двоичных сенсоров на изменение статуса, чтобы оперативно получать информацию, если вдруг протечка или еще какое-то событие, пока этого нету. С mqtt  я пока даже не начинал разбираться, и честно говоря, пока не было в планах, но я учту это :)

показать ответы
0
Автор поста оценил этот комментарий
Не очень понял функцию бота, если речь об управлении из любой точки, мне кажется есть готовые варианты проще?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Изначально запрос друга был такой: у него на даче тоже есть HA, инет там не всегда ок, и приложение HA частенько хворает, вот и была идея создать бота, который располагался бы на сервере на даче, и делал бы только то, что принимал сообщения, управляя домом. Ну и в целом, сделать именно универсальное решение, потому что все что я находил до этого, это гайды по написанию ТГ бота на конфигах, что, как мне кажется, не очень удобно.

показать ответы
1
Автор поста оценил этот комментарий
У меня почему то при создании свитча с несколькими gpio показывается только имя и переключатель последнего в обзоре
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

К моему сожалению, я не смогу сейчас сказать из-за чего это происходит, потому что нужен рабочий HA, и открытый API к нему, чтобы посмотреть, какую HA дает инфу по нему. Бот писался на основе того HA, к которому я имел доступ, а там не было таких устройств. А в меню добавления новых сущностей видно только одно устройство?

1
Автор поста оценил этот комментарий

sudo -u postgres psql <user>


В итоге так зашел на нужного юзера. Но дальше столкнулся с проблемой, которую на гите описал

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, спасибо за отклик вам, я вам там же и ответил, простите что долго, я просто не заметил...

1
Автор поста оценил этот комментарий
Опечатка на гите
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо, я обязательно проверю!
0
о мото
Автор поста оценил этот комментарий
Хоть бы показали как оно выглядит в итоге
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я добавил скриншоты :)

0
о мото
Автор поста оценил этот комментарий
Хоть бы показали как оно выглядит в итоге
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я постараюсь как можно скорее приложить скрины готовой модели, просто у меня нет поднятого HA сервера, а тот на котором я вел разработку для меня пока не доступен. Как только я смогу попасть, я обязательно все выложу.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества