Страница 62 из 193

Re: Модуль "Telegram"

Добавлено: Пт дек 29, 2017 1:48 pm
Eraser
oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?

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

Re: Модуль

Добавлено: Пт дек 29, 2017 6:07 pm
oasis
Eraser писал(а):
oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
SPOILERSPOILER_SHOW
[text] => тест
[date] => 1514559844
)
[type] => private
[username] => oasis_bob
[last_name] => Mik
[first_name] => Bob
[id] => 103343974
(
[chat] => Array
)
[username] => Oasishomebot
[first_name] => Oasis.home
[is_bot] => 1
[id] => 525825753
(
[from] => Array
[message_id] => 69
(
[result] => Array
[ok] => 1
(
18:04:02 Array
18:04:02 {"keyboard":[],"one_time_keyboard":false,"resize_keyboard":true,"selective":true}

Re: Модуль "Telegram"

Добавлено: Пт дек 29, 2017 7:45 pm
Eraser
oasis писал(а):
Eraser писал(а):
oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
SPOILERSPOILER_SHOW
[text] => тест
[date] => 1514559844
)
[type] => private
[username] => oasis_bob
[last_name] => Mik
[first_name] => Bob
[id] => 103343974
(
[chat] => Array
)
[username] => Oasishomebot
[first_name] => Oasis.home
[is_bot] => 1
[id] => 525825753
(
[from] => Array
[message_id] => 69
(
[result] => Array
[ok] => 1
(
18:04:02 Array
18:04:02 {"keyboard":[],"one_time_keyboard":false,"resize_keyboard":true,"selective":true}
Либо цикл не работает, либо включен webhook и не настроен доступ извне

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

Re: Модуль

Добавлено: Пт дек 29, 2017 8:59 pm
oasis
Eraser писал(а):
oasis писал(а):
Eraser писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
SPOILERSPOILER_SHOW
[text] => тест
[date] => 1514559844
)
[type] => private
[username] => oasis_bob
[last_name] => Mik
[first_name] => Bob
[id] => 103343974
(
[chat] => Array
)
[username] => Oasishomebot
[first_name] => Oasis.home
[is_bot] => 1
[id] => 525825753
(
[from] => Array
[message_id] => 69
(
[result] => Array
[ok] => 1
(
18:04:02 Array
18:04:02 {"keyboard":[],"one_time_keyboard":false,"resize_keyboard":true,"selective":true}
Либо цикл не работает, либо включен webhook и не настроен доступ извне
webhook галка не стоит, при первоначальной настройке, прочитав мануал, сразу понял что пока буду без webhook. А как проверить работает ли цикл?
У меня еще в истории событий выходит сообщение
SPOILERSPOILER_SHOW
Warning: Cannot modify header information - headers already sent by (output started at C:\_majordomo\htdocs\languages\telegram_ru.php:1) in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 147

Warning: Cannot modify header information - headers already sent by (output started at C:\_majordomo\htdocs\languages\telegram_ru.php:1) in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 148

Re: Модуль "Telegram"

Добавлено: Пт дек 29, 2017 9:19 pm
Руслан
oasis писал(а): А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает

Re: Модуль "Telegram"

Добавлено: Пт дек 29, 2017 9:37 pm
oasis
Руслан писал(а):
oasis писал(а): А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает
Цикл останавливается с ошибкой:
SPOILERSPOILER_SHOW
21:31:33 Running cycle_telegram.php
21:31:33 Init module

Fatal error: Cannot redeclare class Bot in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 3
21:34:12 Running cycle_telegram.php
21:34:12 Init module

Fatal error: Cannot redeclare class Bot in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 3

Re: Модуль "Telegram"

Добавлено: Пт дек 29, 2017 10:01 pm
Eraser
oasis писал(а):
Руслан писал(а):
oasis писал(а): А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает
Цикл останавливается с ошибкой:
SPOILERSPOILER_SHOW
21:31:33 Running cycle_telegram.php
21:31:33 Init module

Fatal error: Cannot redeclare class Bot in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 3
21:34:12 Running cycle_telegram.php
21:34:12 Init module

Fatal error: Cannot redeclare class Bot in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 3
скорее всего в команде или в обработчике ошибка
возможно вместо require_once используется require

Re: Модуль "Telegram"

Добавлено: Чт янв 11, 2018 9:29 am
serge_wddm
Подскажите, пожалуйста, про поддержку HTML разметки в интерактивной клавиатуре.

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

<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="URL">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
 
У меня на сегодняшний день HTML разметка работает только при ответе на комманду:

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

...
return "<strong>Климат в квартире: </strong>" . PHP_EOL . "Температура <b>" . $temp . "</b> °С";
 
В случае интерактивной клавиатуры HTML тэги не поддерживаются и выводятся вместе с сообщением:
1) Команда:SPOILER_SHOW

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

 $on = hex2bin('F09F94B4');
 $off = hex2bin('E2AD95');

 $light = $off;
 $fan = $off;
 if (gg("BathroomController.light_status") == 1)
    $light = $on;
 if (gg("BathroomController.fan_status") == 1)
    $fan = $on;
 $option = array( array($this->buildInlineKeyboardButton($text=$light." Свет","","Callback_BathroomLight",""),
                       $this->buildInlineKeyboardButton($text=$fan." Вентилятор","","Callback_BathroomFan","") ) );
 
 $keyb = $this->buildInlineKeyBoard($option);

 // загружаем данные по температуре и влажности
 $temperature = gg("BathroomController.temperature");
 $hum = gg("BathroomController.humidity");

 $strMsg = "<strong>Ванная комната:</strong>" . PHP_EOL . "Температура " . $temperature . " °C" . PHP_EOL . "Влажность " . $hum . " %";

 $content = array('chat_id' => $chat_id, 'text' => $strMsg, 'reply_markup' => $keyb);
 $this->sendContent($content);
 
2) Callback событие:SPOILER_SHOW

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

$sw = false;
$light_status = 0;
$fan_status = 0;

// нажали кнопку СВЕТ
if ($callback == 'Callback_BathroomLight')
{
 $sw = true;
 cm("BathroomController.LightSwitch");
}

// нажали кнопку ВЕНТИЛЯТОР
if ($callback == 'Callback_BathroomFan')
{
 $sw = true;
 cm("BathroomController.VentilateBathroom");
}

// получаем эмоджи для индикаторов вкл/выкл
if ($sw == true)
{
 sleep(3);

 $on = hex2bin('F09F94B4');
 $off = hex2bin('E2AD95');

 // загружаем данные по температуре и влажности
$temperature = gg("BathroomController.temperature");
$hum = gg("BathroomController.humidity");
 
$light = $off;
$fan = $off;
if (gg("BathroomController.light_status") == 1)
    $light = $on;
if (gg("BathroomController.fan_status") == 1)
   $fan = $on;
 
// $this->deleteMessage($chat_id, $message_id);
 
// формируем кнопки
$option = array( array($this->buildInlineKeyboardButton($text=$light." Свет","","Callback_BathroomLight",""),
                       $this->buildInlineKeyboardButton($text=$fan." Вентилятор","","Callback_BathroomFan","") ) );
$keyb = $this->buildInlineKeyBoard($option);

$strMsg = "<strong>Ванная комната:</strong>" . PHP_EOL . "Температура " . $temperature . " °C" . PHP_EOL . "Влажность " . $hum . " %";
$this->editMessage($chat_id,$message_id,$strMsg,$keyb);

}
 
В Telegramm выводится следующее:
СкринSPOILER_SHOW
telegram.messenger.png
telegram.messenger.png (61.94 КБ) 7694 просмотра

Re: Модуль "Telegram"

Добавлено: Чт янв 11, 2018 9:38 am
Eraser
serge_wddm писал(а):Подскажите, пожалуйста, про поддержку HTML разметки в интерактивной клавиатуре.

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

<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="URL">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
 
У меня на сегодняшний день HTML разметка работает только при ответе на комманду:

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

...
return "<strong>Климат в квартире: </strong>" . PHP_EOL . "Температура <b>" . $temp . "</b> °С";
 
В случае интерактивной клавиатуры HTML тэги не поддерживаются и выводятся вместе с сообщением:
1) Команда:SPOILER_SHOW

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

 $on = hex2bin('F09F94B4');
 $off = hex2bin('E2AD95');

 $light = $off;
 $fan = $off;
 if (gg("BathroomController.light_status") == 1)
    $light = $on;
 if (gg("BathroomController.fan_status") == 1)
    $fan = $on;
 $option = array( array($this->buildInlineKeyboardButton($text=$light." Свет","","Callback_BathroomLight",""),
                       $this->buildInlineKeyboardButton($text=$fan." Вентилятор","","Callback_BathroomFan","") ) );
 
 $keyb = $this->buildInlineKeyBoard($option);

 // загружаем данные по температуре и влажности
 $temperature = gg("BathroomController.temperature");
 $hum = gg("BathroomController.humidity");

 $strMsg = "<strong>Ванная комната:</strong>" . PHP_EOL . "Температура " . $temperature . " °C" . PHP_EOL . "Влажность " . $hum . " %";

 $content = array('chat_id' => $chat_id, 'text' => $strMsg, 'reply_markup' => $keyb);
 $this->sendContent($content);
 
2) Callback событие:SPOILER_SHOW

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

$sw = false;
$light_status = 0;
$fan_status = 0;

// нажали кнопку СВЕТ
if ($callback == 'Callback_BathroomLight')
{
 $sw = true;
 cm("BathroomController.LightSwitch");
}

// нажали кнопку ВЕНТИЛЯТОР
if ($callback == 'Callback_BathroomFan')
{
 $sw = true;
 cm("BathroomController.VentilateBathroom");
}

// получаем эмоджи для индикаторов вкл/выкл
if ($sw == true)
{
 sleep(3);

 $on = hex2bin('F09F94B4');
 $off = hex2bin('E2AD95');

 // загружаем данные по температуре и влажности
$temperature = gg("BathroomController.temperature");
$hum = gg("BathroomController.humidity");
 
$light = $off;
$fan = $off;
if (gg("BathroomController.light_status") == 1)
    $light = $on;
if (gg("BathroomController.fan_status") == 1)
   $fan = $on;
 
// $this->deleteMessage($chat_id, $message_id);
 
// формируем кнопки
$option = array( array($this->buildInlineKeyboardButton($text=$light." Свет","","Callback_BathroomLight",""),
                       $this->buildInlineKeyboardButton($text=$fan." Вентилятор","","Callback_BathroomFan","") ) );
$keyb = $this->buildInlineKeyBoard($option);

$strMsg = "<strong>Ванная комната:</strong>" . PHP_EOL . "Температура " . $temperature . " °C" . PHP_EOL . "Влажность " . $hum . " %";
$this->editMessage($chat_id,$message_id,$strMsg,$keyb);

}
 
В Telegramm выводится следующее:
СкринSPOILER_SHOW
telegram.messenger.png
c новым сообщением все проще
 $strMsg = "<strong>Ванная комната:</strong>" . PHP_EOL . "Температура " . $temperature . " °C" . PHP_EOL . "Влажность " . $hum . " %";
 $content = array('chat_id' => $chat_id, 'text' => $strMsg, 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
 $this->sendContent($content);

а вот в редактировании parse_mode не включен, скоро залью исправление

Re: Модуль "Telegram"

Добавлено: Пн янв 15, 2018 9:39 pm
directman66
Поиском не нашел, можно ли график charts.html отправить в телегу? PChart есть, но графики не такие красивые.

Увидел вариант: <!--<img src="/jpgraph/?p=sensorMovementSUM.status&type=24h&width=700&gtype=curve"><br> -->

то в ответ
SPOILERSPOILER_SHOW
jpgraph.png
jpgraph.png (3.43 КБ) 7625 просмотров