В рамках данной статьи рассматривается система получения сигналов о РО в УДЯ.

Принцип работы системы:
Сервис с заданной периодичностью считывает сообщения из Telegram-канала губернатора.
При появлении сообщения о РО, из текста извлекаются районы (регионы).
Из базы данных выбираются пользователи, подписанные на соответствующие районы.
Далее сервис отправляет HTTP-запросы в сторонний сервис WQTT с указанием пользователя и его устройства, которое необходимо перевести в состояние «Вкл.».
Для упрощения взаимодействия пользователя со сторонним сервисом был создан Telegram-бот. Хотя это и облегчает процесс, от пользователя всё равно требуются дополнительные действия.

Суть интеграции заключается в имитации "лампочки" в сервисе WQTT, которая отображает состояние ракетной опасности:
Включено — при поступлении сигнала о ракетной опасности;
Выключено — при сигнале отбоя.
Почему WQTT? Вопрос хороший, ответ простой: он уже встроен в экосистему УДЯ и предоставляет пробный период (1 месяц) для тестирования (Можно использовать другой сервис или написать свой).

Взаимодействие пользователя с системой осуществляется через telegram бота:
1. Пользователь отправляет команду /start.
2. Бот присылает инструкцию и ожидает от пользователя токен с сайта WQTT.
3. Пользователь отправляет полученный токен боту.
4. Бот отправляет запрос к сервису для проверки токена. Если токен неверный, то бот отправляет сообщение о не корректном токене и ожидает валидный токен.

После авторизации пользователь выбирает районы, на которые хочет подписаться. Если выбранный район ещё неактивен, то выполняются два действия:
1. На стороне WQTT создаётся новое устройство с именем соответствующего района.
2. В базу данных добавляется запись, связывающая пользователя, район и идентификатор созданного устройства.
После выбора районов, пользователь нажимает на кнопку "Завершить добавление" и бот присылает дальнейшую инструкцию.

Пользователь совершает действия в соответствии с присланной инструкцией. В результате у него в УДЯ появляются устройства и сценарии (созданные вручную).
Решение простое. Необходимо на сайте WQTT открыть настройки устройства и нажать кнопку "Сохранить". После этого "Лампочка" WQTT синхронизируется с "Лампочкой" в УДЯ.
Собственно, на этом этапе взаимодействие пользователя с системой завершается.
Далее процесс полностью автоматизирован.
Вторая часть системы полностью автоматизирована.
Сервис "Мониторинг" реализован на Python с использованием библиотеки Telethon.
Telegram Bot реализован на Python с использованием библиотеки aiogram 3.x.
P.S. Самый важный момент системы это скорость реагирования на сообщения о РО. Чем быстрее придет оповещение тем лучше. Из-за этого появляются несколько нюансов при масштабирование системы:
На сайте WQTT нет информации о предельном количество HTTP запросов в ед. времени.
Периодичность считывания сообщений из каналов в Telegram. Аналогично п.1. Аккаунт могут отправить в бан :-(
P.P.S. Данную схему можно использовать и для других целей, зависит от фантазии и необходимости.