Управляем Умным домом через Telegram 50/50
Очень приятно, знаете ли, пользуясь мессенджером, сразу отправлять команды и получать данные от своего Умного дома.
Расскажу ка я вам про Модуль Telegram в системе MajorDoMo и его настройку.
На данном этапе модуль может:
- добавлять и удалять пользователей
- отправлять сообщения системы ( разграничено по уровням важности и пользователям подписанным на него)
- принимать и сортировать команды
- создавать в мессенджере Telegram клавиатуру с командами
- принимать файлы
- обрабатывать определенные события
- проигрывать голосовые сообщения от пользователей
- экспортировать и импортировать команды и события
Интересно? Тогда давайте начнем.
Регистрация бота
Для начала нужно зарегистрировать нашего робота у отца всех ботов @BotFather и получить наш уникальный ID пользователя, который одновременно будет Токеном.
- Пишем @BotFather команду /start и получаем от него список всех доступных команд.
- Нам нужна команда /newbot, ПапкаБот просит уникальное имя нашему новому боту, главное чтобы оно не оканчивалось на "bot".
- Если все сделано правильно @BotFather дает нам ссылку на нашего робота и Токен.
- В настройки модуля в MajorDoMo мы и вносим этот токен вида "48914452334:AAHeВ7UcDWvEovvcFRMfUrUVPupNORHWD_z"
Добавление пользователя
Регистрация
При первом добавлении робота в список контактов, для регистрации нужно отправить команду /start.
Бота даст ответ "Вы зарегистрированы! Обратитесь к администратору для получения доступа к функциям."Настройка
Для корректной работы модуля нужно привязать пользователя Telegram к пользователю системы и создать дополнительных пользователей в MajorDoMo если ботом будет пользоваться несколько человек. Это нужно для разграничения прав на команды и события и их выполнение в системе, а так же уровень важности сообщений может быть разным для разных пользователей.
Бот и пользователи имеющие доступ к нему добавлены, осталось создать команды. Не буду грузить вас теорией, напишу лишь, что:
- Команды нужны для построения клавиатуры в мессенджере, нажатием кнопок на которой буду улетать команды нашему роботу
- У команд есть разграничение доступа (Вася может спросить за погоду, Петя не может)
- Если поле код пустует, то команда идет дальше на обработку сценария
- Если поле код не пустует, то выполняется тот код который задан в настроке модуля "Команды", чтобы отправить ответ на команду в конце кода должен стоять return с текстовым сообщением.
- Текст сообщения может содержать HTML
Сделаю пример:
Мы хотим спросить про погоду за окном от наших датчиков подключенных к серверу Умного дома.
Создаем команду с именем Temp
Устанавливаем контроль доступа(Всем или определенным пользователям)
В поле код пишем следующее
$temp = getGlobal("Sensor_temp03.value");
$hum = getGlobal("ow_fact.humidity");
$bar = getGlobal("Sensor_pressure01.value");
return (' Температура: ' . $temp . ' °C '.
' Влажность: '. $hum . ' % '.
' Давление: '. $bar . ' mmHg');
В переменные $temp $hum $bar получаем значения датчиков, return возвращает Текстовое сообщение с показаниями.
Кроме команд на робота можно навесить События, например при получении Аудиофайла, проиграть его на центральном модуле, при получении Фото, сохранить его в определенный каталог. Ограничено только вашей фантазией и умением писать код.
Так же можно вызывать код отправки сообщений пользователю в своих Сценариях и Методах. Например отправить сообщение, когда в доме появилось Движение и другие события.
Я недавно освоил этот модуль и еще сам не до конца разобрался во всех его премудростях,на данный момент мной реализовано:
- Определение моего местоположения с пометкой на карте
- Запрос сегодняшних задач из общего семейного списка задач Wunderlist
- Запрос погоды с уличных датчиков
- Пинг (проверка ответа бота)
- Запрос снапшота с уличной камеры
- Запрос внешнего IP-адреса для доступа не из внутренней сети, после его смены не всегда быстро отрабатывает DDNS.
- Запрос снапшота с экрана Телевизора и его громкость.
- Запрос Кто дома, возвращает тех пользователей, кто присутствует и отсутствует дома.
В основной ветке формума о MajorDoMo можно найти массу примеров и вариантов применений Telegram бота для управления Умным домом, основные из них которые тоже вскоре реализую:
- Управление модулем онлайн радио для переключения станций на гланом модуле
- Управление освещением с меню по комнатам и осветительным приборам
- Добавление трека в плейлист и его проигрывание поле отправки боту
Вот ссылка на тему форума Модуль Telegram
Спасибо тем кто дочитал до конца и тем кто просто поставил апвот. На сегодня у меня все, для вопросов и предложений я всегда открыт в комментариях.
МОИ ПРОШЛЫЕ ПОСТЫ об Умном Доме:
- Умный дом. Моя программная и аппаратная часть. 50\50
- Умный дом. Универсальный пульт управления и выключатели 50/50
- Умный дом. Умные розетки. 50\50
- Умный дом. Сенсорные выключатели. 50\50
- Кроха, которая может многое или ESP8266 50\50
- Умный дом. Сервис Народный мониторинг. 50\50
- Умный дом. Инфракрасный датчик движения. 50\50
- Метеостанция за 10$ своими руками. Часть 1
- Метеостанция за 10$ своими руками. Часть 2
- Метеостанция за 10$ своими руками. Часть 3
Выплата за этот пост распределяется по принципу 50/50.