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

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

Модераторы: Bagir, Ivan, Vit, immortal, PAV

Аватара пользователя
xor
Сообщения: 765
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 48 раз
Поблагодарили: 192 раза

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

Сообщение xor » Ср дек 05, 2018 3:33 pm

Mikik писал(а):После последнего обновления и кардинальной переделке Say, SayTo и т.д. стали твориться странные вещи в модуле. Вывод сообщений идёт в произвольном порядке, а не в том, как записано в коде. Иногда проглатываются целые строки.
Это не из-за телеграма, КМК, а из-за повального кэширования ТТС-сообщений. Попробуйте проиграться с приоритетами хуков на события say и тд

Отправлено с моего Redmi 4X через Tapatalk

За это сообщение автора xor поблагодарил:
Mikik (Ср дек 05, 2018 4:54 pm)
Рейтинг: 1.37%
NightShock
Сообщения: 27
Зарегистрирован: Пт авг 24, 2018 6:09 pm
Благодарил (а): 0
Поблагодарили: 11 раз

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

Сообщение NightShock » Вт дек 11, 2018 7:17 pm

Всем привет. Зарегистрировал бота. Нашел, нажал Старт (/start). Ответа не последовало. Вставил токен бота в маджердома. Нажал обновить - написанно цикл остановлен. Это из-за блокировок такая хрень или я криворукий?
Аватара пользователя
Eraser
Сообщения: 659
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 13 раз
Поблагодарили: 461 раз
Контактная информация:

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

Сообщение Eraser » Вт дек 11, 2018 9:56 pm

NightShock писал(а):
Вт дек 11, 2018 7:17 pm
Всем привет. Зарегистрировал бота. Нашел, нажал Старт (/start). Ответа не последовало. Вставил токен бота в маджердома. Нажал обновить - написанно цикл остановлен. Это из-за блокировок такая хрень или я криворукий?
надо запустить цикл телеграм, и проверить чтобы в логе телеграм не было ошибок
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
viktor6
Сообщения: 94
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 49 раз
Поблагодарили: 4 раза

Re: Модуль "Telegram"

Сообщение viktor6 » Ср дек 12, 2018 11:49 pm

immortal писал(а):
Сб дек 02, 2017 8:23 pm
Вариант меню:
В командах делаем 2 записи:
меню - пустое
Назад - скрытое с кодом

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

return "Выберите действие:";
СпойлерПоказать
Выделение_065.png
В события создаем событие
messageHook
СпойлерПоказать
Выделение_066.png
со следующим кодом
messageHookПоказать

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

//коды смайлов в кодировке utf-8  
$off = hex2bin('F09F8C91');
$on  = hex2bin('F09F8C95');
$cam = hex2bin('F09F8EA5');    
$pog = hex2bin('E29B85');
$sta = hex2bin('F09F92AC');
$st1 = $off;
$st2 = $off;
if(gg("security")){$st1=$on;}
if(gg("Econom")){$st2=$on;}
//меню камер
$option1 = array(array($cam."Камеры", $pog."Погода", $sta."Статус"),array($st1."Охрана", $st2."Эконом"),array("Назад"));
//основное меню
$option2 = array(array($cam."Камера1", $cam."Камера2", $cam."Камера3", $cam."Камера4"),array($cam."Камера5", $cam."Камера6", $cam."Камера7"),array("меню"));
//режим экономии
$pos = strripos($text , "Эконом");
if ($pos > -1) {
     if (gg("Econom")){
     sg("Econom",0);
    $status="отключен";
    $st2=$off;
    }else{
     sg("Econom",1);
    $status="включен";
    $st2=$on;
    }
     $option1 = array(array($cam."Камеры", $pog."Погода", $sta."Статус"),array($st1."Охрана", $st2."Эконом"),array("Назад"));
     $this->sendMessageToUser($chat_id,"Режим экономии ".$status,$option1);
       $skip = true;
}
//режим охраны
$pos = strripos($text , "Охрана");
if ($pos > -1) {
     if (gg("security")){
     sg("security",0);
    $status="выключена";
    $st1=$off;
    }else{
     sg("security",1);
    $status="включена";
    $st1=$on;
    }
     $option1 = array(array($cam."Камеры", $pog."Погода", $sta."Статус"),array($st1."Охрана", $st2."Эконом"),array("Назад"));
     $this->sendMessageToUser($chat_id,"Охрана ".$status,$option1);
       $skip = true;
}


//вызов меню камер
$pos = strripos($text , "Камеры");
if ($pos > -1) {
     $this->sendMessageToUser($chat_id,"Выберите камеру:",$option2);
       $skip = true;
}
//отправка изображения с камер
$pos = strripos($text , "Камера");
if ($pos > -1) {
     $channel=substr($text, -1);
    $url="rtsp://192.168.1.10:554/user=admin&password=&channel=".$channel."&stream=0.sdp?";  
    $jpg="/var/www/cached/snapshot.jpg";
    exec('ffmpeg -y -i "'.$url.'" -f image2 -vframes 1 '.$jpg);
    $this->sendImageToUser($chat_id,$jpg,"Камера ".$channel,$option2);
   $skip = true;
}
//показать погоду
$pos = strripos($text , "Погода");
if ($pos > -1) {
    $weather=     "Сейчас".hex2bin('F09F8CA1').gg('ow_fact.temperature')."°C,".gg('ow_fact.weather_type').",".hex2bin('F09F92A8').gg('ow_fact.wind_direction_my')." ".gg('ow_fact.wind_speed')."км/ч, ".hex2bin('F09F92A7').gg('ow_fact.humidity')."%, ".hex2bin('F09F92AA').round(gg('ow_fact.pressure_mmhg'),0);
    $weather.="\r\nЗавтра".hex2bin('F09F8CA1').gg('ow_day1.temperature')."°C,".gg('ow_day1.weather_type').",".hex2bin('F09F92A8').gg('ow_day1.wind_direction_my')." ".gg('ow_day1.wind_speed')."км/ч, ".hex2bin('F09F92A7').gg('ow_day1.humidity')."%, ".hex2bin('F09F92AA').gg('ow_day1.pressure_mmhg');
    $weather.="\r\n".substr(gg('ow_day2.date'),0,6).hex2bin('F09F8CA1').gg('ow_day2.temperature')."°C,".gg('ow_day2.weather_type').",".hex2bin('F09F92A8').gg('ow_day2.wind_direction_my')." ".gg('ow_day2.wind_speed')."км/ч, ".hex2bin('F09F92A7').gg('ow_day2.humidity')."%, ".hex2bin('F09F92AA').round(gg('ow_day2.pressure_mmhg'),0);
    $weather.="\r\n".substr(gg('ow_day3.date'),0,6).hex2bin('F09F8CA1').gg('ow_day3.temperature')."°C,".gg('ow_day3.weather_type').",".hex2bin('F09F92A8').gg('ow_day3.wind_direction_my')." ".gg('ow_day3.wind_speed')."км/ч, ".hex2bin('F09F92A7').gg('ow_day3.humidity')."%, ".hex2bin('F09F92AA').round(gg('ow_day3.pressure_mmhg'),0);
    $this->sendMessageToUser($chat_id, $weather, $option1);
    $skip = true;
}
//показать статус
$pos = strripos($text , "Статус");
if ($pos > -1) {
    $weather=         "1.Зал:".hex2bin('F09F8CA1').gg('tempD1.temp')."°C,".hex2bin('F09F92A6').gg('vlD1.temp')."%,".hex2bin('F09F948B').gg('bat1')/1000;
    $weather.="\r\n2.Комната:".hex2bin('F09F8CA1').gg('tempD2.temp')."°C,".hex2bin('F09F92A6').gg('vlD2.temp')."%,".hex2bin('F09F948B').gg('bat2')/1000;
    $weather.="\r\n3.Веранда:".hex2bin('F09F8CA1').gg('tempD3.temp')."°C,".hex2bin('F09F92A6').gg('vlD3.temp')."%,".hex2bin('F09F948B').gg('bat3')/1000;
    $weather.= "\r\n4.Туалет:".hex2bin('F09F8CA1').gg('tempD4.temp')."°C,".hex2bin('F09F92A6').gg('vlD4.temp')."%,".hex2bin('F09F948B').gg('bat4')/1000;
    $weather.=    "\r\n5.Душ:".hex2bin('F09F8CA1').gg('tempD5.temp')."°C,".hex2bin('F09F92A6').gg('vlD5.temp')."%,".hex2bin('F09F948B').gg('bat5')/1000;
    $weather.= "\r\n6.Парная:".hex2bin('F09F8CA1').gg('tempD6.temp')."°C,".hex2bin('F09F92A6').gg('vlD6.temp')."%";
    $this->sendMessageToUser($chat_id, $weather, $option1);
    $skip = true;
}
//показать меню
echo $text;
$pos = strripos($text , "меню");
if ($pos > -1) {
     $this->sendMessageToUser($chat_id,"Выберите действие:",$option1);
     $skip = true;
}
менюПоказать
menu1.jpg
menu2.jpg
почемуто не активируется режим Охрана и Эконом
Raspberry Pi3, с образа от Сергея 3.31
Ответить