Разработка дополнительных модулей, подключение различных приложений.
Модератор: immortal
-
xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
-
Благодарил (а):
284 раза
-
Поблагодарили:
629 раз
Сообщение
xor » Пн янв 15, 2018 11:02 pm
У меня под ВинХП всё работает
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$url = 'http://192.168.1.7/jpgraph/?p=kitchen.temperature&type=24h&width=700>ype=curve';
$path = './cached/chart.jpg';
file_put_contents($path, file_get_contents($url));
$telegram_module->sendImageToAll('c:/_majordomo/htdocs/cached/chart.jpg');
- За это сообщение автора xor поблагодарил:
- Amarok (Вт янв 16, 2018 7:36 am)
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Вт янв 16, 2018 7:49 am
Может надо библиотеку обновить, чтоб работала на php7?
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Ср янв 17, 2018 8:40 am
Появилась идея сделать файловый менеджер на основе этого модуля. Вроде ничего сложного ) Может уже кто-то сделал?
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Ср янв 17, 2018 3:51 pm
Коллеги, помогите разобраться. Делаю по примеру из этой темы
Вызываю динамическую клавиатуру:
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay11.status") == 1)
$prih = $on;
if (gg("Relay01.status") == 1)
$kor = $on;
$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")
) );
$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом:", 'reply_markup' => $keyb);
$this->sendContent($content);
И обработчик событий
Код: Выделить всё
$sw = false;
if ($callback == 'Callback_kitchen')
{
$sw = true;
cm("Relay07.switch");
}
if ($callback == 'Callback_prih')
{
$sw = true;
cm("Relay12.switch");
}
if ($sw)
{
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay12.status") == 1)
$kor = $on;
if (gg("Relay01.status") == 1)
$prih = $on;
$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")
) );
$keyb = $this->buildInlineKeyBoard($option);
$this->editMessage($chat_id,$message_id,"Управление светом:",$keyb);
}
Даже сделал тестовые обработчик событий
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$where;
$telegram_module->sendMessageToAll($texxt);
При нажатии на всплывающую кнопку с обозначением помещения, ничего не происходит. Нет дажу тестового вызова callback.
Заранее спасибо!
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Ср янв 17, 2018 6:20 pm
directman66 писал(а):Коллеги, помогите разобраться. Делаю по примеру из этой темы
Вызываю динамическую клавиатуру:
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay11.status") == 1)
$prih = $on;
if (gg("Relay01.status") == 1)
$kor = $on;
$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")
) );
$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом:", 'reply_markup' => $keyb);
$this->sendContent($content);
И обработчик событий
Код: Выделить всё
$sw = false;
if ($callback == 'Callback_kitchen')
{
$sw = true;
cm("Relay07.switch");
}
if ($callback == 'Callback_prih')
{
$sw = true;
cm("Relay12.switch");
}
if ($sw)
{
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay12.status") == 1)
$kor = $on;
if (gg("Relay01.status") == 1)
$prih = $on;
$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")
) );
$keyb = $this->buildInlineKeyBoard($option);
$this->editMessage($chat_id,$message_id,"Управление светом:",$keyb);
}
Даже сделал тестовые обработчик событий
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$where;
$telegram_module->sendMessageToAll($texxt);
При нажатии на всплывающую кнопку с обозначением помещения, ничего не происходит. Нет дажу тестового вызова callback.
Заранее спасибо!
включены ли обработчики (галка "Включить")?
что в логе пишет при этих действиях?
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Ср янв 17, 2018 7:19 pm
Галка включена.
- Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png (210.63 КБ) 5585 просмотров
- Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png (190.09 КБ) 5585 просмотров
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor
Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback
Код: Выделить всё
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt);
Результат
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Ср янв 17, 2018 10:17 pm
directman66 писал(а):Галка включена.
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor
Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback
Код: Выделить всё
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt);
Результат
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
тип у события какой?
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Ср янв 17, 2018 10:18 pm
Eraser писал(а):directman66 писал(а):Галка включена.
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor
Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback
Код: Выделить всё
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt);
Результат
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
тип у события какой?
У всех текстовый
Отправлено с моего Redmi Note 3 через Tapatalk
-
Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
-
Благодарил (а):
14 раз
-
Поблагодарили:
868 раз
-
Контактная информация:
Сообщение
Eraser » Ср янв 17, 2018 10:20 pm
directman66 писал(а):У всех текстовый
для обработки нажатий inline клавиатуры надо тип Callback
-
directman66
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
-
Благодарил (а):
380 раз
-
Поблагодарили:
693 раза
-
Контактная информация:
Сообщение
directman66 » Чт янв 18, 2018 6:53 am
Ура, делюсь запрашивалкой координат пользователей MD
Команда:
Код: Выделить всё
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'],"") ;
}
$option = array($menu) ;
$keyb = $telegram_module->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Получение координат", 'reply_markup' => $keyb);
$telegram_module->sendContent($content);
callback:
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
//$telegram_module->sendMessageToAll($callback);
//$telegram_module->sendMessageToAll(substr($callback,0,3));
//$telegram_module->sendMessageToAll(substr($callback,4));
if (substr($callback,0,3) == 'gde')
{
$coord=gg(substr($callback,4).'.Coordinates');
$adr=gg(substr($callback,4).'.address');
$sp=explode(",",$coord);
$telegram_module->sendMessageToAll($adr);
$telegram_module->sendLocationToAll($sp[0],$sp[1]);
}
- gde.png (50.22 КБ) 5510 просмотров
Надо для светильников также сделать динамическое меню.