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

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

Модератор: immortal

Михаил1990
Сообщения: 19
Зарегистрирован: Ср янв 17, 2018 8:24 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Проблема в работе модуля Telegram. Прошу помочь

Сообщение Михаил1990 » Чт фев 22, 2018 8:55 pm

Приоритет стоит - "0".
Михаил1990
Сообщения: 19
Зарегистрирован: Ср янв 17, 2018 8:24 pm
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Проблема в работе модуля Telegram. Прошу помочь

Сообщение Михаил1990 » Чт фев 22, 2018 9:07 pm

Возможно я чего то не понимаю, но я попробовал создать сценарий с кодом:
say("Привет!");
И запустил его по ссылке в MajorDoMo появилось сообщение и в telegram тоже, но я не пойму почему, если выставлен приоритет в настройках - "0" MajorDoMo должен отправлять в telegram все что приходит, а по факту в telegrame пусто.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 » Сб фев 24, 2018 6:06 am

directman66 писал(а):
Eraser писал(а):
directman66 писал(а):Как понять, почему надает цикл телеграм? В логах только такая инфа

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

./scripts/cycle_telegram.php
11111111111THREAD CLOSED: [exec php -q ./scripts/cycle_telegram.php --params "a:0:{}">>/var/www/debmes/log_2018-02-21-cycle_telegram.php.txt]
11111111111111
Backtrace:
#0 /var/www/cycle.php(347): registerError('cycle_stop', './scripts/cycle...')
#1 {main}       
В самом логе ничего интреесного
СпойлерПоказать
СпойлерПоказать

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

 Pause  

09:46:41 Init module 
09:46:40 Running cycle_telegram.php
04:05:24 Init module 
04:05:24 Running cycle_telegram.php
03:02:49 Init module 
03:02:49 Running cycle_telegram.php
изначально работало?
надо скорее всего смотреть откуда в логе 11111111111111
Работало раньше. Давно ничего не правил. Откуда берутся единицы?

Отправлено с моего Redmi Note 3 через Tapatalk
Может быть есть скрипт проверки запущенного цикла и его перезапуска? Поделитесь )

Отправлено с моего Redmi Note 3 через Tapatalk
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
burano
Сообщения: 13
Зарегистрирован: Вс июн 25, 2017 11:05 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Модуль "Telegram"

Сообщение burano » Сб фев 24, 2018 11:19 am

Eraser писал(а):Залил исправление
в командах на отправку (sendMessageToUser, sendMessageToAdmin, sendMessageToAll) длинное сообщение разбивается на короткие
У меня после этого исправления стал корректно работать модуль, дублируются сообщения из чата Алисы в соответствии с приоритетом, хотя ранее не приходили.
Raspberry Pi3+ Arduino Mega (AMS) + Arduino Nano
artemon25
Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а): 15 раз
Поблагодарили: 6 раз

Re: Модуль "Telegram"

Сообщение artemon25 » Чт мар 08, 2018 1:08 pm

подскажите у меня есть бот в телефоне и он работает но как можно добавить ещё одного пользователя в телеграмм я так понимаю надо знать его user id из телеграмма но как его узнать пробовал через разные боты ув телеграмм не получается кто может подсказать как это сделать
artemon25
Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а): 15 раз
Поблагодарили: 6 раз

Re: Модуль "Telegram"

Сообщение artemon25 » Чт мар 08, 2018 2:21 pm

извиняюсь разобрался сам узнать id получилось только через бота @ShowJsonBot введя ID а узнав его уже легко
mdsaw
Сообщения: 3
Зарегистрирован: Чт авг 03, 2017 10:58 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Модуль "Telegram"

Сообщение mdsaw » Пт мар 09, 2018 2:50 pm

https://majordomo.smartliving.ru/forum/ ... =40#p57109

даже 5( или сколько нужно ) секундные ролики отправляет,есть еще API от DAHUA ток чет там с авторизацией засада
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение immortal » Сб мар 17, 2018 7:06 pm

скрины с онлайн трансляций youtube и других ресурсов онлайн ррансляций.

для работы нам надо установить youtube-dl, как это сделать тут

создаем в папке www каталог cam
создаем баш скрипт с именем 1 следующего содержания:

с логотипом в верхнем левом углу:

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

#!/bin/bash
sudo rm /var/www/cam/$2.mp4.part
youtube-dl -f $3 $1 -o /var/www/cam/$2.mp4
sudo rm /var/www/cam/$2.jpg
ffmpeg -i /var/www/cam/$2.mp4.part -vf 'movie=/var/www/cam/logo.png [img]; [in] [img] overlay=0:0 [out]'  /var/www/cam/$2.jpg
или без логотипа

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

#!/bin/bash
sudo rm /var/www/cam/$2.mp4.part
youtube-dl -f $3 $1 -o /var/www/cam/$2.mp4
sudo rm /var/www/cam/$2.jpg
ffmpeg -i /var/www/cam/$2.mp4.part  /var/www/cam/$2.jpg
ищем онлайн трансляцию и в консоли для неё узнаем параметры видео запустив youtube-dl с флагом -F

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

youtube-dl -F https://youtu.be/jKtjpJBM2x8
[youtube] jKtjpJBM2x8: Downloading webpage
[youtube] jKtjpJBM2x8: Downloading video info webpage
[youtube] jKtjpJBM2x8: Extracting video information
[youtube] jKtjpJBM2x8: Downloading m3u8 information
[youtube] jKtjpJBM2x8: Downloading MPD manifest
[info] Available formats for jKtjpJBM2x8:
format code  extension  resolution note
91           mp4        256x144    HLS  197k , avc1.42c00b, 30.0fps, mp4a.40.5@ 48k
92           mp4        426x240    HLS  338k , avc1.4d4015, 30.0fps, mp4a.40.5@ 48k
93           mp4        640x360    HLS  829k , avc1.4d401e, 30.0fps, mp4a.40.2@128k
94           mp4        854x480    HLS 1380k , avc1.4d401f, 30.0fps, mp4a.40.2@128k
95           mp4        1280x720   HLS 2593k , avc1.4d401f, 30.0fps, mp4a.40.2@256k
96           mp4        1920x1080  HLS 4715k , avc1.640028, 30.0fps, mp4a.40.2@256k (best)
root@orangepipc:/var/www/cam#    
для кода в МД нам надо адрес потока и значение разрешения, самое лучшее в данном случае 96
по какой то причине я не смог из событий телеграмма запустить баш скрипт, по этому будем это делать через костыль в виде сценария, создаем сценарий с именем cam со следующим кодом:

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

$n = $params['url'];
$m = $params['coun'];
$s = $params['vid'];
shell_exec("/var/www/cam/1 $n $m $s"); 
теперь идем в события телеграмм messageHook и добавляем следующий код для каждого потока:
код для кнопок:

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

$option2 = array(array($cam."Токио", $cam."NASA1", $cam."NASA2", $cam."Птички"),array($cam."Питер1", $cam."Питер2", $cam."Акв1", $cam."Акв2"),array("меню"));
 
и код для события:

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

$pos = strripos($text , "Токио");
if ($pos > -1) {
$par1 = "https://youtu.be/JYBpu1OyP0c"; //адрес потока
$par2 = "1"; // номер камеры
$par3 = "96"; // параметры потока из youtube-dl -F
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
 
такой код для каждого потока.
вот мои 8 скринов
СпойлерПоказать

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

//отправка изображения с камер

$pos = strripos($text , "Токио");
if ($pos > -1) {
$par1 = "https://youtu.be/JYBpu1OyP0c";
$par2 = "1";
$par3 = "96";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "NASA1");
if ($pos > -1) {
$par1 = "https://youtu.be/RtU_mdL2vBM";
$par2 = "2";
$par3 = "301";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "NASA2");
if ($pos > -1) {
$par1 = "https://youtu.be/ddFvjfvPnqk";
$par2 = "3";
$par3 = "95";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "Птички");
if ($pos > -1) {
$par1 = "https://youtu.be/jECodSsU8Ds";
$par2 = "4";
$par3 = "95";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "Питер1");
if ($pos > -1) {
$par1 = "https://youtu.be/OCfjCg4LeDA";
$par2 = "5";
$par3 = "94";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "Питер2");
if ($pos > -1) {
$par1 = "https://youtu.be/oioklYcidp0";
$par2 = "6";
$par3 = "95";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "Акв1");
if ($pos > -1) {
$par1 = "https://youtu.be/FEiOjdr9Nz4";
$par2 = "7";
$par3 = "95";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
}
$pos = strripos($text , "Акв2");
if ($pos > -1) {
$par1 = "https://youtu.be/jKtjpJBM2x8";
$par2 = "8";
$par3 = "96";
 runScript("cam",array("url"=>$par1,"coun"=>$par2,"vid"=>$par3));
 $jpg="/var/www/cam/$par2.jpg";
 $this->sendImageToUser($chat_id,$jpg,"Камера".$par2,$option2);
   $skip = true;
} 
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Denis_k
Сообщения: 587
Зарегистрирован: Сб мар 19, 2016 7:24 pm
Благодарил (а): 299 раз
Поблагодарили: 27 раз

Re: Модуль "Telegram"

Сообщение Denis_k » Вс мар 18, 2018 11:59 am

Добавил очередную команду в модуль
такого вида
СпойлерПоказать
if (gg('sp3.status') == 0) {
sayReply("Включаю ...",2);
cm('sp3.turnOn');
}
else {
sayReply("Выключаю ...",2);
cm('sp3.turnOff');
}
стабильно останавливается цикл при каждом использовании команды

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

./scripts/cycle_telegram.php
11111111111THREAD CLOSED: [exec php -q ./scripts/cycle_telegram.php --params "a:0:{}">>/var/www/debmes/log_2018-03-10-cycle_telegram.php.txt]
11
Backtrace:
#0 /var/www/cycle.php(347): registerError('cycle_stop', './scripts/cycle...')
#1 {main}  
MD на raspberry pi3
cabat
Сообщения: 216
Зарегистрирован: Ср май 28, 2014 12:42 pm
Откуда: Санкт-Петерург
Благодарил (а): 76 раз
Поблагодарили: 28 раз

Re: Модуль "Telegram"

Сообщение cabat » Пн мар 26, 2018 2:15 pm

Сегодня второй раз обнаружил, что цикл модуля остановлен.
Оказалось, что оба раза это происходило, когда некоторое время отсутствовало подключение к интернету.
Пока включил режим автоматического восстановления для цикла Телеграм в закладке "Services" модуля "X-Ray", буду наблюдать..
Ответить