Telegram-бот - это очень удобный канал взаимодействия с вашим Умным домом на MajorDoMo.
Давайте разберем как создать такого бота.
1. Первым делом идем в Панель управления - Система - Маркет дополнений.
На вкладке Взаимодействие находим модуль Telegram bot (by Eraser) и жмем кнопочку добавить.
2. Модуль установился и теперь мы его видим в Панели управления на вкладке приложения, смело давим мышкой.
И наблюдаем такую картину.
3. Пусто, скучно. Начинаем учить MD общаться. Жмем кнопочку настроить и ...
4. Видим мудреные слова, про токены, ботов и прочие страсти.
У нас не только токена, а и бота то нет. Что же делать? Самое время создать армию ботов одного бота.
Для это нужна помощь Отца ботов, идем в свою Телегу (Telegram то есть) и добавляем пользователя @BotFather
5. Придумываем своему боту уникальное имя - MD4PDAbot.
И пишем Отцу ботов - /newbot
6. На нашу просьбу создать воина тьмы света, Отец просит придумать имя, оно у нас уже есть.
Смело отправляем MD4PDAbot и ... нас просят придумать фамилию новорожденному, что же, не долго думая говорим - MD4PDAbot (главное условие - username должно оканчиваться на bot) и получаем свидетельство о рождении. В котором есть так необходимый нам токен. А так же ссылка на добавление нашего бота себе в список контактов. You will find it at t.me/MD4PDAbot.
7. Копируем токен и вставляем его в MD, жмем кнопку обновить.
И снова ничего интересного не видим. Следующим этапом нужно будет скормить пользователей добавит тех телеграмщиков, кто будет иметь право общаться с MD. Для этого каждый обладатель учетной записи Телеги должен добавить нашего бота себе в контакты и нажать кнопочку СТАРТ а потом уныло ждать пока не придет сообщение в ответ такого вида:
8. Сразу скажу, ответа ждать возможно придется не один час. У меня ответ пришел на утро следующего дня.
Пока ответ не получен, можно не дергаться и покорно ждать. Часто помогает перезапуск MD.
Спустя 3 часа при очередном пере запуске MD в Телегу прилетела заветная месага, вернее вагон.
Так как от нечего делать, команду /start боту я отправил раз 10 🙂
9. Теперь в MD у нас появился бесправный пользователь.
10. Жмем справа карандашик для редактирования этого пользователя, в моем случае этот пользователь является админом MD и дадим ему все права. Вторая вкладка - Пользователь, привязывает телеграмщика к пользователю MD (Телеграмщиков, как и Пользователей может быть много) Чек бокс История дает доступ к сообщениям Алисы, а Приоритет истории указывает какого уровня сообщения из истории слать в Телегу этому пользователю. Ноль означает все без исключения в том числе и системные. Проставив везде галочки жмем сохранить.
11. И возвращаемся Назад. Картина изменилась.
12. Теперь все что вы напишите в Телеге.
13. Появится здесь.
Собственно вы можете уже управлять MD из Телеги. И получать ответы и сообщения от Алисы.
Как создавать кнопочки с командами в Телеге.
К кнопочкам можно привязать просто код PHP или сценарии. Нажав такую кнопочку, вы можете заставить MD выполнить все что привязано к ней, одним касанием пальца.
Пример кнопочек.
При нажатии левой кнопочки, MD мне присылает данные по температуре, при нажатии правой, адрес местоположения всех пользователей MD.
Кнопочки, это графическое отображение наших команд в Телеге.
Нам необходимо сначала создать команды, а кнопочки добавятся сами при настройке отображения команды.
Итак, очередность действий:
1. Идем во вкладку команды.
2. У вас там кроме пинг понга ничего нет. Что же, исправим этот недочет.
Жмем "добавить новую запись" и видим окно
3. Здесь все банально, название, описание, приоритет.
Нам интереснее "контроль доступа" - ставим для всех и "отображение команды" - показать.
Ну и самое главное для чего все затевали - это Код.
Тут уже все зависит от ваших фантазий, конфигурации дома и часто используемых команд.
Рассмотрим пример на моем запросе с А1 и RM Pro данных о температуре и выводе ее в телегу
$parameter1 = getGlobal("Sensor_temp01.value"); // присваиваем переменной $parameter1 значение датчика темп из простых устройств - у меня это RM Pro и означает Температура в Зале
$parameter2 = getGlobal("Sensor_temp02.value");// присваиваем переменной $parameter2 значение датчика темп из простых устройств - у меня это А1 и означает Температура на балконе
return "Температура на балконе:" .$parameter2. "°C, " . "Температура в комнате:" .$parameter1. "°C, "; //Отправляем данные переменных в Телегу, снабдив их обвязкой из текста ("Температура на балконе:" "°C, " "Температура в комнате:" "°C, " ) что бы нам было понятно, какая цифра к чему относится. Так же обращаю внимание на команду return - , в отличии от say, она возвращает ответ с данными именно тому пользователю Телеги, который и отправил запрос, а не всем пользователям.
Вот собственно и все, пишите кодов больших и маленьких на радость себе окружающим.
2 thoughts on - Как настроить модуль Telegram в MajorDoMo
Как сейчас работает это дополнение? Я имею в виду блокировка повлияла на работу?
Повлияла. Нужно использовать хороший зарубежный SOCKS-прокси. В идеал свой на собственной VPS-ке. Через проксю модуль работает, как обычно. Обсуждать лучше тут http://majordomo.smartliving.ru/forum/viewtopic.php?f=5&t=2768