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

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

Модератор: immortal

Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Модуль "Telegram"

Сообщение dioxin » Ср авг 22, 2018 5:44 pm

Я скачал образ с гитхаба и тупо с заменой файлов накатил на старую систему и все заработало
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
alex.frost
Сообщения: 20
Зарегистрирован: Пн июл 30, 2018 8:45 am
Благодарил (а): 29 раз
Поблагодарили: 0

Re: Модуль "Telegram"

Сообщение alex.frost » Пн авг 27, 2018 7:49 pm

Друзья, подскажите, почему команды из telegram в mjd не проходят?
Вроде бы разобрался с меню бота, остановился на таком варианте:
СпойлерПоказать

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

$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('"'.'\u2694'.'"');
$em_g = json_decode('"'.'\ud83c\udf21'.'"');
$em_p = json_decode('"'.'\ud83c\udf24'.'"');
$em_o = json_decode('"'.'\ud83d\udce1'.'"');
$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." GPS", $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." GPS", $em_s." Охрана"));
    $this->sendMessageToUser($chat_id, "Сейчас в Красногорске ".gg("krasnogorsk.temp"). " С. По ощущениям " .gg("krasnogorsk.soil_temp")." С. Ветер " .gg("krasnogorsk.wind_speed") . " М/c. ", $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." GPS", $em_s." Охрана"));
    $climat = "Температура ".gg('XiSensor_temp02.Value')." С. Относительная влажность ".gg('XiSensor_humidity02.Value')." %. Атмосферное давление ".gg('XiSensor_pressure01.Value')." мм.рт.ст.";
     $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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
    if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Коридор");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("Relay2MegaD2.switch");
   

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Ванная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.switch");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Подсветка в спальне");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     cm("miioRelay04.switch");
     

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $off; else $ds = $on;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Гостиная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Кухня (общий)");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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) {
     if (gg("SecurityArmedMode.active")){
     sg("SecurityArmedMode.active",0);
    $status="выключена";
    $st1=$off;
    }else{
     sg("SecurityArmedMode.active",1);
    $status="включена";
    $st1=$on;
    }
  
     $this->sendMessageToUser($chat_id,"Охрана ".$status,$option1);
       $skip = true;

}

$pos = strripos($text , "GPS");
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$menu=array();
$objects = getObjectsByClass("Users");
foreach ($objects as $obj) {     
 $ar2[] = $obj['TITLE'];
 $menu[]=$telegram_module->buildInlineKeyboardButton($text=$obj['TITLE'],"","gde_".$obj['TITLE'],"")  ;
$skip = true;
}

if ($pos > -1) { 
 $option = array($menu) ;
$keyb = $telegram_module->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Получение координат", 'reply_markup' => $keyb);
$telegram_module->sendContent($content); 
$skip = true;
}

//Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
//$skip = true;

/*
    // \ud83d\udca1 лампочка
    // \ud83d\udcac комментарий
    // \u21a9\ufe0f    назад
    // \ud83d\udcf8    камера
    // \ud83d\udee0    инструменты
    // \u2699        шестеренка
    // \ud83c\udf21    градусник
    // \ud83c\udf24    погода
    // \ud83d\udcdd    отчеты
    // \ud83d\udc47 рука вниз
    // \ud83c\udf24 камера
    // \u041f\u043e\u0433 диван
    // \u043e\u0434\u0430 тарелка-ложки
*/


Но все старые команды которые шли через api.ai или простые устройства больше не проходят.
Подскажите, как все поправить, что бы команды проходили дальше?
Спасибо!
Raspberry Pi3B+ 3_3.4
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Модуль "Telegram"

Сообщение xor » Вт авг 28, 2018 1:22 am

alex.frost писал(а):
Пн авг 27, 2018 7:49 pm
Друзья, подскажите, почему команды из telegram в mjd не проходят?
Вроде бы разобрался с меню бота, остановился на таком варианте:
СпойлерПоказать

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

$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('"'.'\u2694'.'"');
$em_g = json_decode('"'.'\ud83c\udf21'.'"');
$em_p = json_decode('"'.'\ud83c\udf24'.'"');
$em_o = json_decode('"'.'\ud83d\udce1'.'"');
$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." GPS", $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." GPS", $em_s." Охрана"));
    $this->sendMessageToUser($chat_id, "Сейчас в Красногорске ".gg("krasnogorsk.temp"). " С. По ощущениям " .gg("krasnogorsk.soil_temp")." С. Ветер " .gg("krasnogorsk.wind_speed") . " М/c. ", $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." GPS", $em_s." Охрана"));
    $climat = "Температура ".gg('XiSensor_temp02.Value')." С. Относительная влажность ".gg('XiSensor_humidity02.Value')." %. Атмосферное давление ".gg('XiSensor_pressure01.Value')." мм.рт.ст.";
     $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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
    if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Коридор");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("Relay2MegaD2.switch");
   

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Ванная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.switch");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Подсветка в спальне");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     cm("miioRelay04.switch");
     

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $off; else $ds = $on;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Гостиная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Кухня (общий)");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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) {
     if (gg("SecurityArmedMode.active")){
     sg("SecurityArmedMode.active",0);
    $status="выключена";
    $st1=$off;
    }else{
     sg("SecurityArmedMode.active",1);
    $status="включена";
    $st1=$on;
    }
  
     $this->sendMessageToUser($chat_id,"Охрана ".$status,$option1);
       $skip = true;

}

$pos = strripos($text , "GPS");
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$menu=array();
$objects = getObjectsByClass("Users");
foreach ($objects as $obj) {     
 $ar2[] = $obj['TITLE'];
 $menu[]=$telegram_module->buildInlineKeyboardButton($text=$obj['TITLE'],"","gde_".$obj['TITLE'],"")  ;
$skip = true;
}

if ($pos > -1) { 
 $option = array($menu) ;
$keyb = $telegram_module->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Получение координат", 'reply_markup' => $keyb);
$telegram_module->sendContent($content); 
$skip = true;
}

//Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
//$skip = true;

/*
    // \ud83d\udca1 лампочка
    // \ud83d\udcac комментарий
    // \u21a9\ufe0f    назад
    // \ud83d\udcf8    камера
    // \ud83d\udee0    инструменты
    // \u2699        шестеренка
    // \ud83c\udf21    градусник
    // \ud83c\udf24    погода
    // \ud83d\udcdd    отчеты
    // \ud83d\udc47 рука вниз
    // \ud83c\udf24 камера
    // \u041f\u043e\u0433 диван
    // \u043e\u0434\u0430 тарелка-ложки
*/


Но все старые команды которые шли через api.ai или простые устройства больше не проходят.
Подскажите, как все поправить, что бы команды проходили дальше?
Спасибо!
Я написал кода на 6 экранов со своими объектами, которых нет больше ни у кого, с мусором закомменченным, у меня что-то не работает! Разберитесь!

Я думаю, никто копаться не будет(
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Вт авг 28, 2018 6:56 am

alex.frost писал(а):
Пн авг 27, 2018 7:49 pm
Друзья, подскажите, почему команды из telegram в mjd не проходят?
Вроде бы разобрался с меню бота, остановился на таком варианте:
СпойлерПоказать

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

$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('"'.'\u2694'.'"');
$em_g = json_decode('"'.'\ud83c\udf21'.'"');
$em_p = json_decode('"'.'\ud83c\udf24'.'"');
$em_o = json_decode('"'.'\ud83d\udce1'.'"');
$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." GPS", $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." GPS", $em_s." Охрана"));
    $this->sendMessageToUser($chat_id, "Сейчас в Красногорске ".gg("krasnogorsk.temp"). " С. По ощущениям " .gg("krasnogorsk.soil_temp")." С. Ветер " .gg("krasnogorsk.wind_speed") . " М/c. ", $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." GPS", $em_s." Охрана"));
    $climat = "Температура ".gg('XiSensor_temp02.Value')." С. Относительная влажность ".gg('XiSensor_humidity02.Value')." %. Атмосферное давление ".gg('XiSensor_pressure01.Value')." мм.рт.ст.";
     $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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
    if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Коридор");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("Relay2MegaD2.switch");
   

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Ванная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.switch");

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

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

$pos = strripos($text , "Подсветка в спальне");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");    
     
     cm("miioRelay04.switch");
     

     if (gg("Relay1MegaD1.status") == 1) $ks = $on; else $ks = $off;
    if (gg("Relay2MegaD2.status") == 1) $ps = $on; else $ps = $off;
     if (gg("XiRelay05.status") == 1) $rs = $on; else $rs = $off;
    if (gg("miioRelay04.status") == 1) $ds = $off; else $ds = $on;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Гостиная");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), array("Меню") );
     $this->sendMessageToUser($chat_id, $em_k." Можно включать и выключать свет:", $option);
     $skip = true;
}
$pos = strripos($text , "Кухня (общий)");
if ($pos > -1) {
    $this->sendAction($chat_id, "typing");
     
     cm("XiRelay05.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("XiRelay05.status") == 1) $rs = $off; else $rs = $on;
    if (gg("miioRelay04.status") == 1) $ds = $on; else $ds = $off;
     if (gg("Relay2.status") == 1) $mk = $on; else $mk = $off;
    if (gg("Relay204.status") == 1) $dk = $on; else $dk = $off;

     $option = array( array($mk." Гостиная", $dk." Кухня (общий)" , $ks." Кухня (стол)"),  array($ps."Коридор", $rs." Ванная",$ds."Подсветка в спальне" ), 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) {
     if (gg("SecurityArmedMode.active")){
     sg("SecurityArmedMode.active",0);
    $status="выключена";
    $st1=$off;
    }else{
     sg("SecurityArmedMode.active",1);
    $status="включена";
    $st1=$on;
    }
  
     $this->sendMessageToUser($chat_id,"Охрана ".$status,$option1);
       $skip = true;

}

$pos = strripos($text , "GPS");
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$menu=array();
$objects = getObjectsByClass("Users");
foreach ($objects as $obj) {     
 $ar2[] = $obj['TITLE'];
 $menu[]=$telegram_module->buildInlineKeyboardButton($text=$obj['TITLE'],"","gde_".$obj['TITLE'],"")  ;
$skip = true;
}

if ($pos > -1) { 
 $option = array($menu) ;
$keyb = $telegram_module->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Получение координат", 'reply_markup' => $keyb);
$telegram_module->sendContent($content); 
$skip = true;
}

//Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
//$skip = true;

/*
    // \ud83d\udca1 лампочка
    // \ud83d\udcac комментарий
    // \u21a9\ufe0f    назад
    // \ud83d\udcf8    камера
    // \ud83d\udee0    инструменты
    // \u2699        шестеренка
    // \ud83c\udf21    градусник
    // \ud83c\udf24    погода
    // \ud83d\udcdd    отчеты
    // \ud83d\udc47 рука вниз
    // \ud83c\udf24 камера
    // \u041f\u043e\u0433 диван
    // \u043e\u0434\u0430 тарелка-ложки
*/


Но все старые команды которые шли через api.ai или простые устройства больше не проходят.
Подскажите, как все поправить, что бы команды проходили дальше?
Спасибо!
для начала попробуйте выключить этот обработчик, если будет работать как раньше, ищите проблему в нем

ЗЫ $skip = true; прекращает дальнейшую обработку, те команда не будет передаватся дальше
За это сообщение автора Eraser поблагодарили (всего 2):
alex.frost (Вт авг 28, 2018 9:43 am) • consul (Пт окт 05, 2018 10:38 am)
Рейтинг: 2.33%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
zztop1967
Сообщения: 16
Зарегистрирован: Пт июн 29, 2018 8:07 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Модуль "Telegram"

Сообщение zztop1967 » Ср авг 29, 2018 3:17 pm

Кхм... Что то не нашел как принять файл...
Ткните пожалуйста носом.
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Чт авг 30, 2018 12:15 am

zztop1967 писал(а):
Ср авг 29, 2018 3:17 pm
Кхм... Что то не нашел как принять файл...
Ткните пожалуйста носом.
в настройках указать путь куда файлы сохранять, и для пользователя в модуле дать разрешение "Загрузка"
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
AeroS
Сообщения: 37
Зарегистрирован: Чт апр 13, 2017 9:27 am
Благодарил (а): 21 раз
Поблагодарили: 2 раза

Re: Модуль "Telegram"

Сообщение AeroS » Пт авг 31, 2018 4:03 pm

Привет, спасибо за модуль, пользуюсь давно по примерам из первого поста!
Решил сейчас прикрутить радио, работает но нету управления громкостью. Поиском пользовался - не нашел.
Подскажите как к этому примеру добавить например cm('RadioSetting.Control','vol30');
Кнопку RadioSetting_Control в меню добавил.
lyova22
Сообщения: 5
Зарегистрирован: Ср июл 11, 2018 12:34 pm
Откуда: Планета Земля
Благодарил (а): 4 раза
Поблагодарили: 1 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение lyova22 » Вт сен 04, 2018 4:35 pm

Привет, постоянно в логе во такое

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

PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/modules/telegram/Telegram.php on line 1713
PHP 7.2.8-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 25 2018 10:52:19) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.8-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Сервер и система MajorDoMo реализован на ноутбуке Fujitsu-Siemens Amilo Pa 1510 ось Ubuntu 18.04 LTS + всякие ништяки)
Если что, то мой CONNECT | Блог
Alexandro Rossy
Сообщения: 5
Зарегистрирован: Пт сен 21, 2018 4:22 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Модуль "Telegram"

Сообщение Alexandro Rossy » Пт сен 21, 2018 4:34 pm

Доброго времени!
Помогите пожалуйста разобраться: пытаюсь настроить отправку графиков из Charts в телеграмм...
код таков (нарыл в одном из ранних сообщений в теме):

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$url = 'http://192.168.1.100/module/charts.html?id=1&height=600';
$path = '/var/www/files/chart.jpg';
file_put_contents($path, file_get_contents($url));
$telegram_module->sendImageToUser($chat_id ,'/var/www/files/chart.jpg'); 
Результат нулевой - точнее JPG не создается (в чем видимо и состоит проблема), в случае отправки же отправки уже существующего файла с аналогичным именем все отправляется.
Лог

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

116:38:27 Skip next processing message
16:38:27 Skip next processing events message
)
[curl_error] => couldn't open file "/var/www/files/chart.jpg"
[curl_error_code] => 26
[ok] => 
(
Буду признателен за ликбез.
С уважением, Александр
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Модуль "Telegram"

Сообщение dioxin » Пт сен 21, 2018 4:50 pm

А каким макаром тут (/var/www/files/chart.jpg) файлик создается?
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ответить