Как настроить модуль Telegram в MajorDoMo

Telegram 2 комментария

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