[Модуль] Telegram (telegram)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Telegram (telegram)

Сообщение nick7zmail » Вт мар 10, 2020 12:03 pm

kostyaer писал(а):
Вт мар 10, 2020 10:29 am
У меня такая же проблема с кнопками по условию, видимо не успевает за одно сообщение обработать и подменить кнопки. Но такое решение не совсем правильное для выключателя.

Попробую переформулировать проблему:
Имеется устройство "Свет", у него свойство 1 или 0 (включено или выключено) в телеге создано 2 кнопки на одно устройство- "Свет вкл" и "Свет выкл", кнопки не постоянно показываются, а при условии ссылающимся на свойство света (штатная опция этого модуля)- Если Свет=0 то показывается кнопка "Свет вкл", если Свет=1 то показывается кнопка "Свет выкл" Кнопки должны меняться местами в зависимости от состояния объекта "Свет"
Работает, но не совсем корректно- при нажатии "Свет вкл" сразу не меняется на кнопку "Свет выкл", а просто пропадает. Появляется только со следующим обращением в телегу любой командой. Как мне кажется за одно сообщение в телегу не успевает поменяться свойство объекта "Свет", хотя почему тогда пропадает кнопка, а не остаётся..
У меня подобная схема через шаблоны поведения реализовывалась. Соответственно в шаблонах и было - ответить, и сформировать новую клавиатуру (через PHP). Работало всё ок.
Как у вас сделано - понятия не имею, по этому и просил подробности.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kostyaer
Сообщения: 84
Зарегистрирован: Пт окт 18, 2019 10:50 am
Откуда: Санкт-Петербург
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: [Модуль] Telegram (telegram)

Сообщение kostyaer » Вт мар 10, 2020 1:58 pm

Как у вас сделано - понятия не имею, по этому и просил подробности.
Изначально не я обращался с проблемой, по этому за него сказать не могу, но думаю точно так же как и у меня..

У меня реализовано из под самого модуля телеги, добавить команду "Свет вкл" => показ кнопки по условию "Свет=0", в коде вызов метода ВКЛЮЧИТЬ и ответ от бота, что выполнено. И соответственно вторая команда "Свет выкл" => показ кнопки по условию "Свет=1", в коде вызов метода ВЫКЛЮЧИТЬ и ответ бота, что выполнено. И, что интересно- нажал "Свет вкл" кнопка заменилась кнопкой "Свет выкл", но после нажатия "Свет выкл" кнопка исчезает, в общем на второй цикл вкл\выкл кнопка пропадает.
Intel Atom d510 на ubuntu server 16.04, ESP8266 на ESPEasyMega
kostyaer
Сообщения: 84
Зарегистрирован: Пт окт 18, 2019 10:50 am
Откуда: Санкт-Петербург
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: [Модуль] Telegram (telegram)

Сообщение kostyaer » Вт мар 10, 2020 2:36 pm

У меня подобная схема через шаблоны поведения реализовывалась. Соответственно в шаблонах и было - ответить, и сформировать новую клавиатуру (через PHP). Работало всё ок.
А я так ещё и не добрался до шаблонов, надо будет почитать, что да как.. и у меня там пусто..
Мне очень-очень хотелось побыстрее потестировать мажор, и по этому нашел в инете скрипт установки сразу всех необходимых пакетов, т.ч. не понятно, что за сборка была, но нет ничего временного чем постоянное, так и работает уже почти год =) Жду когда SSDшка накроется тогда и переделаю =D
Intel Atom d510 на ubuntu server 16.04, ESP8266 на ESPEasyMega
zeleneew
Сообщения: 20
Зарегистрирован: Ср сен 11, 2019 9:52 pm
Благодарил (а): 3 раза
Поблагодарили: 0

Re: [Модуль] Telegram (telegram)

Сообщение zeleneew » Чт мар 12, 2020 10:08 pm

kostyaer писал(а):
Вт мар 10, 2020 10:41 am
Что то типа такого: Если(Свет=1) то (Свет=0) Иначе(Свет=1) Вот только не помню, в телеге вроде не зацикливается такой код, а где-то было зациклилось и мажор через несколько секунд лег =)))
Такой вариант работает нормально, но к сожалению таким вариантом нельзя выставлять разные названия кнопок в зависимости от ситуации.
например:
название - "Вклчюить свет", если свет выключен, при нажатии включит свет
название - "Выклчюить свет", если свет включен, при нажатии выключит свет
kostyaer
Сообщения: 84
Зарегистрирован: Пт окт 18, 2019 10:50 am
Откуда: Санкт-Петербург
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: [Модуль] Telegram (telegram)

Сообщение kostyaer » Пт мар 13, 2020 2:12 pm

zeleneew писал(а):
Чт мар 12, 2020 10:08 pm
kostyaer писал(а):
Вт мар 10, 2020 10:41 am
Что то типа такого: Если(Свет=1) то (Свет=0) Иначе(Свет=1) Вот только не помню, в телеге вроде не зацикливается такой код, а где-то было зациклилось и мажор через несколько секунд лег =)))
Такой вариант работает нормально, но к сожалению таким вариантом нельзя выставлять разные названия кнопок в зависимости от ситуации.
например:
название - "Вклчюить свет", если свет выключен, при нажатии включит свет
название - "Выклчюить свет", если свет включен, при нажатии выключит свет
В этом плане да. Но мне не доставляет неудобств.
У меня только осталась "Свет On\Свет Off" с подменой кнопок, "Свет стол", "Свет кухня" вполне устраивает одной кнопкой, в любом случае чтобы обновить состояние кнопок надо отправлять сообщение боту. например если с пульта или с выключателя состояние менялось, то оно никак не отобразиться в телеге. Что интересно- кнопка "-Громкость" \ "+Громкость" функционирует нормально, с каждым циклом +\- обновляется правильно, но и код у меня на ней другой совсем, полностью обработка команды в коде телеги, но точно не помню, вроде через виртуальный девайс..
Скриншот телеги
Intel Atom d510 на ubuntu server 16.04, ESP8266 на ESPEasyMega
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: [Модуль] Telegram (telegram)

Сообщение gagarin74 » Пн мар 16, 2020 10:30 am

Добрый день.
Не могли бы Вы объяснить на пальцах что такое "Callback". Хотел сделать интерактивные кнопки,но запутался.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Telegram (telegram)

Сообщение nick7zmail » Пн мар 16, 2020 11:37 am

Раздел на последней вкладке модуля - события. У события есть тип, один из которых Callback. Примеры описаны где то там viewtopic.php?f=5&t=2768&start=290#p38782.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: [Модуль] Telegram (telegram)

Сообщение gagarin74 » Пн мар 16, 2020 12:39 pm

nick7zmail писал(а):
Пн мар 16, 2020 11:37 am
Раздел на последней вкладке модуля - события. У события есть тип, один из которых Callback. Примеры описаны где то там viewtopic.php?f=5&t=2768&start=290#p38782.
Наверное я очень тупой или не внимательный.
ссылки я читал - вот после этого и спросил о помощи.

Мне нужно реализовать менюшки по принципу от модулей РЖУНЕМОГу или Яндекс погода.
Если не трудно можно подробно написать как это реализовать.
МЕНЮ->подменю1 (запуск скрипта 1) МЕНЮ->подменю2(запуск скрипта2)

СПАСИБО.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Telegram (telegram)

Сообщение nick7zmail » Пн мар 16, 2020 2:37 pm

Я бы сделал это на базе вот этих кнопок viewtopic.php?f=5&t=2768&start=280#p38752 viewtopic.php?f=5&t=2768&start=100#p31646 и шаблонов поведения. При нажатии кнопки - телега отправляет в чат имя нажатой кнопки, оно появляется в чате системы, система распознаёт шаблон поведения - и выполняет код, который там описан (формирует новые кнопки к примеру). Так минимум кода получится, плюс можно использовать такую фишку как контексты. У меня по такой схеме целый многопользовательский бот с интерактивными диалогами написан был когда-то))
За это сообщение автора nick7zmail поблагодарил:
xor (Вт мар 17, 2020 7:17 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: [Модуль] Telegram (telegram)

Сообщение gagarin74 » Вт мар 17, 2020 8:44 am

nick7zmail писал(а):
Пн мар 16, 2020 2:37 pm
Я бы сделал это на базе вот этих кнопок viewtopic.php?f=5&t=2768&start=280#p38752 viewtopic.php?f=5&t=2768&start=100#p31646 и шаблонов поведения. При нажатии кнопки - телега отправляет в чат имя нажатой кнопки, оно появляется в чате системы, система распознаёт шаблон поведения - и выполняет код, который там описан (формирует новые кнопки к примеру). Так минимум кода получится, плюс можно использовать такую фишку как контексты. У меня по такой схеме целый многопользовательский бот с интерактивными диалогами написан был когда-то))
Спасибо !!!!!!
Вроде даже что то зафурыкало. Единственное не подскажите как правильно в шаблонах формировать кнопки.
В самом модуле телеги прописал

Код: Выделить всё

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$option = array( array("A", "B","C"), array("D", "E") );
$telegram_module = new telegram();
$telegram_module->sendMessageToUser($chat_id,"Select option",$option);
В шаблонах создал -Шаблон А
и в нем прописал

Код: Выделить всё

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$option = array( array("F", "H","J"), array("I", "L") );
$telegram_module = new telegram();
$telegram_module->sendMessageToUser($chat_id,"Select option",$option);
Но при нажаьте кнопки А ни чего не происходит(должно по мысли выскакивать следующая клавиатура F,H,J,I,L).
Если в Шаблоне А прописать say ("Нажата кнопка А",3);
То при нажатие в Телеграмме кнопки А, Алиса это проговаривает и телеграмм нормально отрабатывает.

Вопрос.Как правильно добавить формирование дополнительного подменю в шаблонах
Ответить