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

Re: Модуль "Telegram"

Добавлено: Ср авг 22, 2018 5:44 pm
dioxin
Я скачал образ с гитхаба и тупо с заменой файлов накатил на старую систему и все заработало

Re: Модуль "Telegram"

Добавлено: Пн авг 27, 2018 7:49 pm
alex.frost
Друзья, подскажите, почему команды из 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 или простые устройства больше не проходят.
Подскажите, как все поправить, что бы команды проходили дальше?
Спасибо!

Re: Модуль "Telegram"

Добавлено: Вт авг 28, 2018 1:22 am
xor
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 экранов со своими объектами, которых нет больше ни у кого, с мусором закомменченным, у меня что-то не работает! Разберитесь!

Я думаю, никто копаться не будет(

Re: Модуль "Telegram"

Добавлено: Вт авг 28, 2018 6:56 am
Eraser
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; прекращает дальнейшую обработку, те команда не будет передаватся дальше

Re: Модуль "Telegram"

Добавлено: Ср авг 29, 2018 3:17 pm
zztop1967
Кхм... Что то не нашел как принять файл...
Ткните пожалуйста носом.

Re: Модуль "Telegram"

Добавлено: Чт авг 30, 2018 12:15 am
Eraser
zztop1967 писал(а):
Ср авг 29, 2018 3:17 pm
Кхм... Что то не нашел как принять файл...
Ткните пожалуйста носом.
в настройках указать путь куда файлы сохранять, и для пользователя в модуле дать разрешение "Загрузка"

Re: Модуль "Telegram"

Добавлено: Пт авг 31, 2018 4:03 pm
AeroS
Привет, спасибо за модуль, пользуюсь давно по примерам из первого поста!
Решил сейчас прикрутить радио, работает но нету управления громкостью. Поиском пользовался - не нашел.
Подскажите как к этому примеру добавить например cm('RadioSetting.Control','vol30');
Кнопку RadioSetting_Control в меню добавил.

Re: Модуль "Telegram"

Добавлено: Вт сен 04, 2018 4:35 pm
lyova22
Привет, постоянно в логе во такое

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

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

Re: Модуль "Telegram"

Добавлено: Пт сен 21, 2018 4:34 pm
Alexandro Rossy
Доброго времени!
Помогите пожалуйста разобраться: пытаюсь настроить отправку графиков из 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] => 
(
Буду признателен за ликбез.
С уважением, Александр

Re: Модуль "Telegram"

Добавлено: Пт сен 21, 2018 4:50 pm
dioxin
А каким макаром тут (/var/www/files/chart.jpg) файлик создается?