Телеграм бот для домофонов и ворот
Мне всегда было интересно как устроены системы открывания ворот и дверей. Но каждый раз при использовании у меня был вопрос "Почему нет единой системы, которая бы позволила управлять всеми доступами в одном месте?". Было бы очень удобно, если бы не нужно было таскать с собой пульты от ворот и ключи от домофонов. Все двери можно было бы открыть просто с телефона.
Поэтому я решил объединить все свои устройства в одну систему. Настроил работу устройств через MQTT сервер и написал телеграм бота, который с ним работает. Чуть позже добавил обратную связь, хранение статусов устройств и интеграцию с Алисой. Теперь я могу сказать "Алиса, открой домофон"!
Еще 2020 году во время первой волны ковида я стал разбираться с системами управления доступом. Несколько раз принимал участие в настройке ворот, шлагбаумов, цифровых панелей доступа. Мне было интересно как они работают и как можно добавить к ним какое-то удобное удаленное управление.


Когда на въезде во двор появились ворота, я решил написать телеграм бота, который бы позволял открывать ворота удаленно. Чтобы приехавшие в гости друзья могли сами открыть ворота.
Версия 1.0
В качестве эксперимента я собрал первую версию бота на Python. Бот крутился на домашнем сервере умного дома, к нему было подключено wi-fi реле, которое нажимало кнопку на пульте. Ретранслятор пультов передавал усиленный сигнал на ворота:

За год работы оказалось, что система с пультом не очень надежна, т.к. частенько из-за помех ворота не открывались. Зато я выяснил, что Telegram бот - это очень удобно. Он всегда под рукой!
В этой версии бота все настройки, устройства и пользователи были прописаны в коде и любое изменение конфигурации или настроек могло уронить систему, поэтому я решил переписать систему.
Версия 2.0
Обдумав структуру, я написал новую систему на JS. Она уже не была завязана на мой локальный умный дом, а работала через отдельный web-сервер. Теперь схема выглядела так:

Добавил базу данных с удобным интерфейсом. В это базе данных хранятся устройства, пользователи и права доступа. Когда пользователь открывает бота - ему показывается список доступных устройств. Пользователь отправляет команду открыть устройство. По базе данных бот проверяет, есть ли у пользователя права на это устройство. Если права есть, тогда бот отправляет команду открытия по протоколу MQTT. Wi-Fi модуль на воротах получает команду и открывает ворота.
Позже добавил обратную связь: на ворота можно поставить датчик, который будет определять, открыты ворота или нет. По такому же принципу можно добавить, например, датчик температуры или собирать данные со счетчиков воды/электричества. Эти данные в один клик можно посмотреть в боте.


Для управления девайсами не надо ставить дополнительные приложения, заходить в какие-то сервисы. Просто зашел чатик в Телеге и открыл нужные ворота. Кнопка “Статусы устройств” нужна, чтобы получить список всех доступных пользователю устройств и их статусы. Также подключил к системе несколько разных домофонов.
Система работает надежно и готова к масштабированию!


Другие статьи


