Страница 66 из 191

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 8:03 pm
directman66
после добавления боту прав админа в созданной группе, эта группа отобразилась в модуле!!!

Re: Модуль

Добавлено: Пн фев 05, 2018 8:16 pm
directman66
Eraser писал(а): надо настроить боту privacy mode через @BotFather
https://core.telegram.org/bots#privacy-mode
Это как раз прав не хватает? Itfff бот должен появиться в новых юзерах?
СпойлерПоказать
Изображение
и ничего не происходит

Re: Модуль

Добавлено: Пн фев 05, 2018 8:20 pm
Eraser
directman66 писал(а):
Eraser писал(а): надо настроить боту privacy mode через @BotFather
https://core.telegram.org/bots#privacy-mode
Это как раз прав не хватает? Itfff бот должен появиться в новых юзерах?
СпойлерПоказать
Изображение
и ничего не происходит
а в логе фиксируется что пришло сообщение от бота?
насколько я знаю боты не видят сообщения других ботов
https://core.telegram.org/bots/faq#why- ... other-bots

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 8:23 pm
directman66
в логе нет сообщений от бота
Вариантов взаимодействия больше нет?

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 10:20 pm
skysilver
Eraser писал(а):может у вас много обработчиков событий? сначала выполняется их обработка, а потом уже команд
Тоже так подумал. Отключил событие messageHook (у меня все в нем), в командах оставил только Пинг. Стало прилетать весьма быстро, практически мгновенно. ))
Только вот на командах не сделать многоуровневую клавиатуру с эмоджи на кнопках, как на обработчике событий.

Как только включаю обратно обработчик, так понг начинает с тормозами приходить, как и собственно реакция от кнопок клавиатуры. Хотя в логе модуля при этом все события одной секундой идут:

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

22:06:37 Send result to 1920хххх5. Command:Ping Result:Pong
22:06:37 Command:Ping Result:Pong
22:06:37 Execute user`s code command
22:06:37 Find command

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 10:22 pm
Eraser
skysilver писал(а):
Eraser писал(а):может у вас много обработчиков событий? сначала выполняется их обработка, а потом уже команд
Тоже так подумал. Отключил событие messageHook (у меня все в нем), в командах оставил только Пинг. Стало прилетать весьма быстро, практически мгновенно. ))
Только вот на командах не сделать многоуровневую клавиатуру с эмоджи на кнопках, как на обработчике событий.

Как только включаю обратно обработчик, так понг начинает с тормозами приходить, как и собственно реакция от кнопок клавиатуры. Хотя в логе модуля при этом все события одной секундой идут:

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

22:06:37 Send result to 1920хххх5. Command:Ping Result:Pong
22:06:37 Command:Ping Result:Pong
22:06:37 Execute user`s code command
22:06:37 Find command
может что в обработчике оптимизировать? можно код посмотреть?

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 10:41 pm
skysilver
Eraser писал(а):может что в обработчике оптимизировать? можно код посмотреть?
Вот простыня. Только не пугайся, я давно туда не лазил. )) Сделал давным-давно по примеру из этой ветки и особо не дорабатывал. Самые ходовые кнопки Свет, Погода, Климат.
СпойлерПоказать

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

if ( ($chat_id == '1920ххххх35') || ($chat_id == '214ххххх64') ) { //
    
 $this->sendAction($chat_id, "typing");

$em_l = json_decode('"'.'\ud83d\udca1'.'"');
$em_k = json_decode('"'.'\ud83d\udcac'.'"');
$em_n = json_decode('"'.'\u21a9\ufe0f'.'"');
$em_c = json_decode('"'.'\ud83d\udcf8'.'"');
$em_i = json_decode('"'.'\ud83d\udee0'.'"');
$em_s = json_decode('"'.'\u2699'.'"');
$em_g = json_decode('"'.'\ud83c\udf21'.'"');
$em_p = json_decode('"'.'\ud83c\udf24'.'"');
$em_o = json_decode('"'.'\ud83d\udcdd'.'"');
$off  = json_decode('"'.'\ud83c\udf11'.'"');
$on   = json_decode('"'.'\ud83c\udf15'.'"');
$em_rd = json_decode('"'.'\ud83d\udc47'.'"');
$em_cam = json_decode('"'.'\ud83c\udfa5'.'"');
$em_kuh = json_decode('"'.'\ud83c\udfa5 \ud83c\udf7d'.'"'); //\ud83c\udf7d
$em_kom = json_decode('"'.'\ud83c\udfa5 \ud83d\udecb'.'"'); //\ud83d\udecb

$pos = strripos($text , "Меню");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     $option = array( array($em_l." Свет", $em_c." Камеры"), array($em_p." Погода", $em_g." Климат"), array($em_o." Отчеты", $em_s." Служебное"));
     $this->sendMessageToUser($chat_id, $em_k." Выберите нужный пункт ".$em_rd, $option);
     $skip = true;
}

$pos = strripos($text , "Погода");
if ($pos > -1) {
     $this->sendAction($chat_id, "typing");
    $option = array( array($em_l." Свет", $em_c." Камеры"), array($em_p." Погода", $em_g." Климат"), array($em_o." Отчеты", $em_s." Служебное"));
    $this->sendMessageToUser($chat_id, gg('Kirov.Metcast'), $option);
     $skip = true;
}

$pos = strripos($text , "Климат");
if ($pos > -1) {
     $this->sendAction($chat_id, "typing");
    $option = array( array($em_l." Свет", $em_c." Камеры"), array($em_p." Погода", $em_g." Климат"), array($em_o." Отчеты", $em_s." Служебное"));
    $climat = "Температура ".gg('ThisComputer.RoomTemp')." С. Относительная влажность ".gg('ThisComputer.RoomHumidity')." %. Атмосферное давление ".gg('Kirov.Pressure')." мм.рт.ст.";
     $this->sendMessageToUser($chat_id, $climat, $option);
    $skip = true; 
}

$pos = strripos($text , "Свет");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
 
     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
     if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;
 
     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Кухня");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
 
     cm("Relay1MegaD1.switch");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
     if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;

     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Прихожая");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("Relay2MegaD2.switch");
     //$this->sendMessageToUser($chat_id, $em_l." Метод света в прихожей");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
     if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;

     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Комната");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("Relay1MegaD2.switch");
     //$this->sendMessageToUser($chat_id, $em_l." Метод света в комнате");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
     if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;

     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Подсветка");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     cm("SID701_Ch1.switch");
     //$this->sendMessageToUser($chat_id, $em_l." Метод подсветки в шкафу");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
    if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;
  
     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Гирлянда");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     cm("SID701_Ch2.switch");
     //$this->sendMessageToUser($chat_id, $em_l." Метод подсветки в шкафу");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
    if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;
  
     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Елка");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     //cm("Relay1ESP1.switch");
 
     if (gg('ws2812_status') == 1) {
        getUrl('http://192.168.2.124/off', 0);
         sg('ws2812_status', 0);
    } else if (gg('ws2812_status') == 0) {
         if (gg('ws2812_mode') != 'tv') {
             getUrl('http://192.168.2.124/all?r='.gg('ws2812_red').'&g='.gg('ws2812_green').'&b='.gg('ws2812_blue'), 0);
             usleep(500000);
             $url = 'http://192.168.2.124/set_mode?m='.gg('ws2812_mode').'&r='.gg('ws2812_red').'&g='.gg('ws2812_green').'&b='.gg('ws2812_blue');
        } else {
               $url = 'http://192.168.2.124/tv';
         }
         getUrl($url, 0);
         sg('ws2812_status', 1);
    }
  
     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("Relay1MegaD2.status") == 1) $rs = $on; else $rs = $off;
    if (gg("SID701_Ch1.status") == 1) $ds = $on; else $ds = $off;
    if (gg("SID701_Ch2.status") == 1) $gs = $on; else $gs = $off;
     if (gg("ws2812_status") == 1) $es = $on; else $es = $off;
  
     $option = array( array($ks." Кухня", $ps." Прихожая"), array($rs." Комната", $ds." Подсветка"), array($es." Елка", $gs." Гирлянда"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}

$pos = strripos($text , "Камеры");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
      $option = array( array($em_kuh." Web-cam 1", $em_kom." Web-cam 2"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_cam." Можно получить фото с камеры видеонаблюдения", $option);
     $skip = true;
}

$pos = strripos($text , "Web-cam 1");
if ($pos > -1) {
    $this->sendAction($chat_id, "upload_photo");
     if ( gg('webcam_1.status') != 1 ) {
         if ( gg('minMsgLevel') == 1 ) sg('minMsgLevel', '2');    
         cm('webcam_1.turnOn');
        setTimeOut('startSendPhotoScript', 'runScript("sendPhoto", array("chat_id"=>'.$chat_id.'));', 3); 
         DebMes('Get Photo from ID ' . $chat_id);
         setTimeOut('webCamOff', 'cm("webcam_1.turnOff");if ( gg("minMsgLevel") == 2 ) sg("minMsgLevel", "1");', 10);    
     } else {
         runScript('sendPhoto', array('chat_id'=>$chat_id));
    }
     $skip = true;
      //$option = array( array($em_kuh." Web-cam 1", $em_kom." Web-cam 2"), array("Меню") );
     //$this->sendMessageToUser($chat_id, $em_cam." Можно получить фото с камеры видеонаблюдения", $option);
}

$pos = strripos($text , "Web-cam 2");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     $option = array( array($em_kuh." Web-cam 1", $em_kom." Web-cam 2"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_cam." Камера в комнате не работает", $option);
     $skip = true;
}

$pos = strripos($text , "Служебное");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
      $option = array( array("IP", "Ping"), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_i." Служебные сведения", $option);
     $skip = true;
}
 
} 

Re: Модуль "Telegram"

Добавлено: Пн фев 05, 2018 11:11 pm
Eraser
skysilver писал(а):
Eraser писал(а):может что в обработчике оптимизировать? можно код посмотреть?
Вот простыня. Только не пугайся, я давно туда не лазил. )) Сделал давным-давно по примеру из этой ветки и особо не дорабатывал. Самые ходовые кнопки Свет, Погода, Климат.
скопировал себе, стало тоже тормознее отвечать
даже и незнаю как ускорить данный код

Re: Модуль "Telegram"

Добавлено: Ср фев 07, 2018 5:01 pm
stalkerkz
Eraser писал(а):
stalkerkz писал(а):Можно как нибудь в модуле телеграм установить несколько ботов? Ну например, чтобы одни сообщения присылались в чат одного бота, а другие по условию допустим, в чат другого бота? Подскажите как сделать.
зачем заводить еще одного бота
можно сделать чтобы бот писал в отдельные каналы или группы
Я еще не сталкивался с программирование чат ботов, больше по ардуино и esp, поэтому чтобы не рыть долго у Вас позвольте спросить? Если это возможно конечно. Можно ли настроить телеграм бота, чтобы допустим только определенные сообщения он кидал в заданную группу, а все остальные шли обычным потоком.
Хотел на отдельную группу поставить сигнал тревоги такой реально длинный чтобы услышать, и чтобы туда сообщение приходили когда котел угольный начнет тухнуть, закипает (было и так когда заслонку клинила) и сенсоры движение во дворе засекут активность.

Re: Модуль "Telegram"

Добавлено: Ср фев 07, 2018 5:09 pm
stalkerkz
Eraser писал(а):
directman66 писал(а):Подскажите, у кого какая скорость реагирования на нажатия кнопок к телеге? У меня проходит примерно 3 секунды после нажатия любой кнопки на ARM процессоре. По поему это очень много.
без использования webhook опрос новых сообщений выполняется с периодичностью 3 секунды (добавил в настройки)
я использую webhook и у меня команда Ping выполняется практически моментально
В догонку еще вопрос, у меня серый ip адрес, зайти из внешки на мажордомо стандартными методами не возможно, настоил vpn туннели через vpnki.ру, но там тожн нестабильно работает, инет часто падает и openvrt не может переподключиться к туннелю, выдает типа пользователь уже авторизирован. Сейчас пытаюсь скрипт в виндосе написать, чтобы в такой ситуации модем (adsl) по телнет перезагружался и openvrt клиент также.

Вопрос такой, при такой картине webhook возможно настроить или он только с белыми адресами работает?