Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
iot
7 лет назад

Управляем Умным домом через Telegram 50/50

Очень приятно, знаете ли, пользуясь мессенджером, сразу отправлять команды и получать данные от своего Умного дома.

Расскажу ка я вам про Модуль Telegram в системе MajorDoMo и его настройку.

На данном этапе модуль может:

  1. добавлять и удалять пользователей
  2. отправлять сообщения системы ( разграничено по уровням важности и пользователям подписанным на него)
  3. принимать и сортировать команды
  4. создавать в мессенджере Telegram клавиатуру с командами
  5. принимать файлы
  6. обрабатывать определенные события
  7. проигрывать голосовые сообщения от пользователей
  8. экспортировать и импортировать команды и события

Интересно? Тогда давайте начнем.

Регистрация бота

Для начала нужно зарегистрировать нашего робота у отца всех ботов @BotFather и получить наш уникальный ID пользователя, который одновременно будет Токеном.

  • Пишем @BotFather команду /start и получаем от него список всех доступных команд.
  • Нам нужна команда /newbot, ПапкаБот просит уникальное имя нашему новому боту, главное чтобы оно не оканчивалось на "bot".
  • Если все сделано правильно @BotFather дает нам ссылку на нашего робота и Токен.
  • В настройки модуля в MajorDoMo мы и вносим этот токен вида "48914452334:AAHeВ7UcDWvEovvcFRMfUrUVPupNORHWD_z"

Добавление пользователя

  1. Регистрация
    При первом добавлении робота в список контактов, для регистрации нужно отправить команду /start.
    Бота даст ответ "Вы зарегистрированы! Обратитесь к администратору для получения доступа к функциям."

  2. Настройка
    Для корректной работы модуля нужно привязать пользователя 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 возвращает Текстовое сообщение с показаниями.

Кроме команд на робота можно навесить События, например при получении Аудиофайла, проиграть его на центральном модуле, при получении Фото, сохранить его в определенный каталог. Ограничено только вашей фантазией и умением писать код.

Так же можно вызывать код отправки сообщений пользователю в своих Сценариях и Методах. Например отправить сообщение, когда в доме появилось Движение и другие события.

Я недавно освоил этот модуль и еще сам не до конца разобрался во всех его премудростях,на данный момент мной реализовано:

  1. Определение моего местоположения с пометкой на карте
  2. Запрос сегодняшних задач из общего семейного списка задач Wunderlist
  3. Запрос погоды с уличных датчиков
  4. Пинг (проверка ответа бота)
  5. Запрос снапшота с уличной камеры
  6. Запрос внешнего IP-адреса для доступа не из внутренней сети, после его смены не всегда быстро отрабатывает DDNS.
  7. Запрос снапшота с экрана Телевизора и его громкость.
  8. Запрос Кто дома, возвращает тех пользователей, кто присутствует и отсутствует дома.

В основной ветке формума о MajorDoMo можно найти массу примеров и вариантов применений Telegram бота для управления Умным домом, основные из них которые тоже вскоре реализую:

  • Управление модулем онлайн радио для переключения станций на гланом модуле
  • Управление освещением с меню по комнатам и осветительным приборам
  • Добавление трека в плейлист и его проигрывание поле отправки боту

Вот ссылка на тему форума Модуль Telegram

Спасибо тем кто дочитал до конца и тем кто просто поставил апвот. На сегодня у меня все, для вопросов и предложений я всегда открыт в комментариях.

МОИ ПРОШЛЫЕ ПОСТЫ об Умном Доме:

  1. Умный дом. Моя программная и аппаратная часть. 50\50
  2. Умный дом. Универсальный пульт управления и выключатели 50/50
  3. Умный дом. Умные розетки. 50\50
  4. Умный дом. Сенсорные выключатели. 50\50
  5. Кроха, которая может многое или ESP8266 50\50
  6. Умный дом. Сервис Народный мониторинг. 50\50
  7. Умный дом. Инфракрасный датчик движения. 50\50
  8. Метеостанция за 10$ своими руками. Часть 1
  9. Метеостанция за 10$ своими руками. Часть 2
  10. Метеостанция за 10$ своими руками. Часть 3

Выплата за этот пост распределяется по принципу 50/50.

229
131.513 GOLOS
На Golos с September 2017
Комментарии (9)
Сортировать по:
Сначала старые