Разработка дополнительных модулей, подключение различных приложений.
Модератор: immortal
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Пт дек 29, 2017 1:48 pm
oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Отправлено с моего MX_Base через Tapatalk
-
oasis
- Сообщения: 4
- Зарегистрирован: Вс окт 26, 2014 10:42 pm
-
Благодарил (а):
0
-
Поблагодарили:
0
Сообщение
oasis » Пт дек 29, 2017 6:07 pm
Eraser писал(а):oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
[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}
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Пт дек 29, 2017 7:45 pm
oasis писал(а):Eraser писал(а):oasis писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
[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
-
oasis
- Сообщения: 4
- Зарегистрирован: Вс окт 26, 2014 10:42 pm
-
Благодарил (а):
0
-
Поблагодарили:
0
Сообщение
oasis » Пт дек 29, 2017 8:59 pm
Eraser писал(а):oasis писал(а):Eraser писал(а):Добрый день, проблема: не приходят сообщения с телефона на мажордомо, вообще никакие. Хотя события от мажордомо все приходят. Пользователь telegram в списке присутсвует, права администратора. В чем может быть загвоздка?
Что в логе с включенным debug?
Совершено ничего нет, когда отправляю сообщение с телефона. Если отправляешь с мажордомо на телефон то все ок:
[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. А как проверить работает ли цикл?
У меня еще в истории событий выходит сообщение
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
-
Руслан
- Сообщения: 193
- Зарегистрирован: Чт дек 17, 2015 10:08 am
- Откуда: Уфа
-
Благодарил (а):
36 раз
-
Поблагодарили:
14 раз
Сообщение
Руслан » Пт дек 29, 2017 9:19 pm
oasis писал(а):
А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает
-
oasis
- Сообщения: 4
- Зарегистрирован: Вс окт 26, 2014 10:42 pm
-
Благодарил (а):
0
-
Поблагодарили:
0
Сообщение
oasis » Пт дек 29, 2017 9:37 pm
Руслан писал(а):oasis писал(а):
А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает
Цикл останавливается с ошибкой:
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
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Пт дек 29, 2017 10:01 pm
oasis писал(а):Руслан писал(а):oasis писал(а):
А как проверить работает ли цикл?
X-Ray----Services
если цикл синим, значит не работает
Цикл останавливается с ошибкой:
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
-
serge_wddm
- Сообщения: 9
- Зарегистрирован: Вс июн 26, 2016 9:58 am
-
Благодарил (а):
8 раз
-
Поблагодарили:
2 раза
Сообщение
serge_wddm » Чт янв 11, 2018 9:29 am
Подскажите, пожалуйста, про поддержку 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 тэги не поддерживаются и выводятся вместе с сообщением:
Код: Выделить всё
$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);
Код: Выделить всё
$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 выводится следующее:
- telegram.messenger.png (61.94 КБ) 6368 просмотров
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Чт янв 11, 2018 9:38 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 тэги не поддерживаются и выводятся вместе с сообщением:
Код: Выделить всё
$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);
Код: Выделить всё
$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 выводится следующее:
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 не включен, скоро залью исправление
- За это сообщение автора Eraser поблагодарили (всего 2):
- serge_wddm (Чт янв 11, 2018 10:30 am) • Samir77 (Ср фев 03, 2021 12:33 pm)
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Пн янв 15, 2018 9:39 pm
Поиском не нашел, можно ли график charts.html отправить в телегу? PChart есть, но графики не такие красивые.
Увидел вариант: <!--<img src="/jpgraph/?p=sensorMovementSUM.status&type=24h&width=700>ype=curve"><br> -->
то в ответ
- jpgraph.png (3.43 КБ) 6298 просмотров