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

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

Модератор: immortal

Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

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

Сообщение Alexander Znamensky » Пт апр 10, 2020 5:02 pm

Alexander Znamensky писал(а):
Пт апр 10, 2020 4:42 pm
Eraser писал(а):
Пт апр 10, 2020 8:36 am
Обновление

+добавлена функция sendDice (отправка emoji 🎲, цифра на кубике каждый раз разная)

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

include(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendDice($chat_id);
PS баловство конечно, но может кто что-то интересное придумает :)

PSS сделал мини игру на основе sendDice
Как повторитьПоказать
добавляем обработчик события "Текстовое сообщение" и отправляем боту 🎲

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

$dice = $data["message"]["dice"];
if ($dice)
{
 $res=$this->sendDice($chat_id);
 $diceRes = $res["result"]["dice"];
 if($dice["value"] == $diceRes["value"])
  $this->sendMessage($chat_id,"Ничья! Давай еще!");
 else if($dice["value"] > $diceRes["value"])
  $this->sendMessage($chat_id,"Ты выиграл!");
 else 
  $this->sendMessage($chat_id,"Ура! я выиграла!");
 $skip=true;
}
Попробовал добавить игрушку от нечего делать в режиме самоизоляции...... :) но что-то пошло не так.... - не отвечает мне бот. Хотя с ним это иногда бывает (то ли РКН что-то опять блокирует, то ли бот на меня за что-то обижается ))))
СпойлерПоказать
Screenshot 2020-04-10 16.34.37.pngScreenshot 2020-04-10 16.34.13.png
Подскажите, что-то не так делаю? Спасибо!!!
UPD - заработало ))))) все-таки Роскомнадзор, наверное )))))
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб апр 11, 2020 12:37 am

Eraser писал(а):
Пт апр 10, 2020 8:36 am
Обновление
...

PSS сделал мини игру на основе sendDice

...
Отлично! но у меня алиса сообщает результат игры ещё до того, как кубик остановится. так теряется интерес, кмк))
поставил слип 3 секунды перед ответом
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Ср апр 15, 2020 1:01 pm

Чет умотался :( всю ветку читаю с самого начала. Дайте пожалуйста простой пример, как получить числовое значение из объекта и его свойства?
Plug
Сообщения: 106
Зарегистрирован: Сб янв 20, 2018 12:33 am
Благодарил (а): 42 раза
Поблагодарили: 7 раз

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

Сообщение Plug » Ср апр 15, 2020 1:13 pm

iden писал(а):
Ср апр 15, 2020 1:01 pm
Чет умотался :( всю ветку читаю с самого начала. Дайте пожалуйста простой пример, как получить числовое значение из объекта и его свойства?
У меня вот так выводится температура:
СпойлерПоказать
//$counterCold = hex2bin('F09F94B5');
//$counterHot = hex2bin('F09F94B4');
$droplet = hex2bin('F09F92A7');
$thermometer = hex2bin('F09F8CA1');
$kPa = hex2bin('e38eaa');
$SensorTempOut = getGlobal("Sensor_temphum02.value"); //Улица
$SensorHumidityOut = getGlobal("Sensor_temphum02.valueHumidity"); //Улица
$SensorTempKuh = getGlobal("Sensor_temphum07.value"); //Кухня
$SensorHumidityKuh = getGlobal("Sensor_temphum07.valueHumidity"); //Кухня
$SensorPressureKuh = getGlobal("Sensor_pressure05.value"); //Кухня
$SensorTempKor = getGlobal("Sensor_temp04.value"); //Коридор
$SensorTempToi = getGlobal("Sensor_temp01.value"); //Туалет
$SensorTempBedroom = getGlobal("Sensor_temphum03.value"); //Спальня
$SensorHumidityBedroom = getGlobal("Sensor_temphum03.valueHumidity"); //Спальня
$SensorPressureBedroom = getGlobal("Sensor_pressure01.value"); //Спальня
$SensorTempLiv = getGlobal("Sensor_temphum04.value"); //Гостиная
$SensorHumidityLiv = getGlobal("Sensor_temphum04.valueHumidity"); //Гостиная
$SensorPressureLiv = getGlobal("Sensor_pressure02.value"); //Гостиная
$SensorTempChild = getGlobal("Sensor_temphum06.value"); //Детская
$SensorHumidityChild = getGlobal("Sensor_temphum06.valueHumidity"); //Детская
$SensorPressureChild = getGlobal("Sensor_pressure03.value"); //Детская
$SensorTempBath = getGlobal("Sensor_temphum05.value"); //Ванная
$SensorHumidityBath = getGlobal("Sensor_temphum05.valueHumidity"); //Ванная
$SensorPressureBath = getGlobal("Sensor_pressure04.value"); //Ванная
//$ColdWater = getGlobal("Counter02.value");
//$ColdWaterTemp = getGlobal("Sensor_temp03.value");
return "Температура и влажность на улице:".PHP_EOL
.$thermometer ."\x20\x20\x20" .$SensorTempOut ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20\x20" .$SensorHumidityOut ."\x20%" .PHP_EOL
."Температура и влажность дома:".PHP_EOL
."Гостиная:\x20".$thermometer ."\x20\x20" .$SensorTempLiv ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityLiv ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureLiv ."\x20".$kPa.PHP_EOL
."Спальня:\x20".$thermometer ."\x20\x20" .$SensorTempBedroom ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityBedroom ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureBedroom ."\x20".$kPa.PHP_EOL
."Детская:\x20".$thermometer ."\x20\x20" .$SensorTempChild ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityChild ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureChild ."\x20".$kPa.PHP_EOL
."Коридор:\x20".$thermometer ."\x20\x20" .$SensorTempKor ."\x20C°" .PHP_EOL
."Ванная:\x20".$thermometer ."\x20\x20" .$SensorTempBath ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityBath ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureBath ."\x20".$kPa.PHP_EOL
."Туалет:\x20".$thermometer ."\x20\x20" .$SensorTempToi ."\x20C°" .PHP_EOL
."Кухня:\x20".$thermometer ."\x20\x20" .$SensorTempKuh ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityKuh ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureKuh ."\x20".$kPa .PHP_EOL;
За это сообщение автора Plug поблагодарил:
iden (Ср апр 15, 2020 1:31 pm)
Рейтинг: 1.16%
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Ср апр 15, 2020 1:31 pm

Plug писал(а):
Ср апр 15, 2020 1:13 pm
iden писал(а):
Ср апр 15, 2020 1:01 pm
Чет умотался :( всю ветку читаю с самого начала. Дайте пожалуйста простой пример, как получить числовое значение из объекта и его свойства?
У меня вот так выводится температура:
СпойлерПоказать
//$counterCold = hex2bin('F09F94B5');
//$counterHot = hex2bin('F09F94B4');
$droplet = hex2bin('F09F92A7');
$thermometer = hex2bin('F09F8CA1');
$kPa = hex2bin('e38eaa');
$SensorTempOut = getGlobal("Sensor_temphum02.value"); //Улица
$SensorHumidityOut = getGlobal("Sensor_temphum02.valueHumidity"); //Улица
$SensorTempKuh = getGlobal("Sensor_temphum07.value"); //Кухня
$SensorHumidityKuh = getGlobal("Sensor_temphum07.valueHumidity"); //Кухня
$SensorPressureKuh = getGlobal("Sensor_pressure05.value"); //Кухня
$SensorTempKor = getGlobal("Sensor_temp04.value"); //Коридор
$SensorTempToi = getGlobal("Sensor_temp01.value"); //Туалет
$SensorTempBedroom = getGlobal("Sensor_temphum03.value"); //Спальня
$SensorHumidityBedroom = getGlobal("Sensor_temphum03.valueHumidity"); //Спальня
$SensorPressureBedroom = getGlobal("Sensor_pressure01.value"); //Спальня
$SensorTempLiv = getGlobal("Sensor_temphum04.value"); //Гостиная
$SensorHumidityLiv = getGlobal("Sensor_temphum04.valueHumidity"); //Гостиная
$SensorPressureLiv = getGlobal("Sensor_pressure02.value"); //Гостиная
$SensorTempChild = getGlobal("Sensor_temphum06.value"); //Детская
$SensorHumidityChild = getGlobal("Sensor_temphum06.valueHumidity"); //Детская
$SensorPressureChild = getGlobal("Sensor_pressure03.value"); //Детская
$SensorTempBath = getGlobal("Sensor_temphum05.value"); //Ванная
$SensorHumidityBath = getGlobal("Sensor_temphum05.valueHumidity"); //Ванная
$SensorPressureBath = getGlobal("Sensor_pressure04.value"); //Ванная
//$ColdWater = getGlobal("Counter02.value");
//$ColdWaterTemp = getGlobal("Sensor_temp03.value");
return "Температура и влажность на улице:".PHP_EOL
.$thermometer ."\x20\x20\x20" .$SensorTempOut ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20\x20" .$SensorHumidityOut ."\x20%" .PHP_EOL
."Температура и влажность дома:".PHP_EOL
."Гостиная:\x20".$thermometer ."\x20\x20" .$SensorTempLiv ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityLiv ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureLiv ."\x20".$kPa.PHP_EOL
."Спальня:\x20".$thermometer ."\x20\x20" .$SensorTempBedroom ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityBedroom ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureBedroom ."\x20".$kPa.PHP_EOL
."Детская:\x20".$thermometer ."\x20\x20" .$SensorTempChild ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityChild ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureChild ."\x20".$kPa.PHP_EOL
."Коридор:\x20".$thermometer ."\x20\x20" .$SensorTempKor ."\x20C°" .PHP_EOL
."Ванная:\x20".$thermometer ."\x20\x20" .$SensorTempBath ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityBath ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureBath ."\x20".$kPa.PHP_EOL
."Туалет:\x20".$thermometer ."\x20\x20" .$SensorTempToi ."\x20C°" .PHP_EOL
."Кухня:\x20".$thermometer ."\x20\x20" .$SensorTempKuh ."\x20C°\x20\x20\x20\x20" .$droplet ."\x20\x20" .$SensorHumidityKuh ."\x20%" ."\x20\x20\x20\x20" .$SensorPressureKuh ."\x20".$kPa .PHP_EOL;
Спасибо конечно) но это жесть для меня
Plug
Сообщения: 106
Зарегистрирован: Сб янв 20, 2018 12:33 am
Благодарил (а): 42 раза
Поблагодарили: 7 раз

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

Сообщение Plug » Ср апр 15, 2020 1:36 pm

Ну если до компа сегодня доберусь, то распишу подробнее :)
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Ср апр 15, 2020 1:41 pm

Plug писал(а):
Ср апр 15, 2020 1:36 pm
Ну если до компа сегодня доберусь, то распишу подробнее :)
Супер)

UPD:
Почитал тут, разобрался
iden
Сообщения: 84
Зарегистрирован: Вт мар 13, 2018 1:51 pm
Благодарил (а): 34 раза
Поблагодарили: 6 раз

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

Сообщение iden » Пт апр 17, 2020 3:46 pm

iden писал(а):
Ср апр 15, 2020 1:41 pm
Plug писал(а):
Ср апр 15, 2020 1:36 pm
Ну если до компа сегодня доберусь, то распишу подробнее :)
Супер)

UPD:
Почитал тут, разобрался
Мой простой пример, может кому пригодится:
СпойлерПоказать

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

$infected_day = getGlobal("covid19sens_infected_day.value"); // присваиваем переменной infected_day значение 
$infected = getGlobal("covid19sens_infected.value");
$recovered = getGlobal("covid19sens_recovered.value");
$died = getGlobal("covid19sens_died.value");

$report = "<b>☣️ COVID-2019 ☣️</b>\n\n";//

$report .= "<b>Новосибирская область:</b>\n"; // данные пойдут с новой строки
$report .= "Заражений всего: <b>" . $infected. "</b>\n";   
$report .= "Заражений за сутки: <b>" . $infected_day. "</b>\n";
$report .= "Выздоровело: <b>" . $recovered. "</b>\n";
$report .= "Смертей: <b>" . $died. "</b>\n";
$report .= "информация с ngs.ru <b> </b>\n";

return $report;
Прикольные значки спер у Ская, так же из его примера понял как данные выводить с новой строки.
yden
Сообщения: 141
Зарегистрирован: Пн авг 22, 2016 10:03 am
Благодарил (а): 28 раз
Поблагодарили: 5 раз

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

Сообщение yden » Пт апр 17, 2020 8:10 pm

Добрый.
Плиз подскажите. Хочу сделать в телеге текстовое меню по примеру как в BotFather.
Пример:
Блаблабла
/свет гостиная - включение света в гостиной верхний
/свет кухня - включение света на кухне основной

Пользователь в телеге видит этот текст. Если он щелкает по надписи "/свет гостиная" то соответственно загорается свет - с зажиганием и командой в модуле у меня проблем нет. Я не могу понять как вывести сам текст и чтобы он был кликабельным:
Блаблабла
/свет гостиная - включение света в гостиной верхний
/свет кухня - включение света на кухне основной

благодарю
Вложения
Снимок.JPG
Снимок.JPG (18.95 КБ) 3875 просмотров
solalex
Сообщения: 19
Зарегистрирован: Сб дек 21, 2019 9:36 pm
Благодарил (а): 4 раза
Поблагодарили: 3 раза

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

Сообщение solalex » Сб апр 18, 2020 11:57 am

yden писал(а):
Пт апр 17, 2020 8:10 pm
Добрый.
Плиз подскажите. Хочу сделать в телеге текстовое меню по примеру как в BotFather.
Пример:
Блаблабла
/свет гостиная - включение света в гостиной верхний
/свет кухня - включение света на кухне основной
Текстовое меню вывести не проблема, но ссылки в телеге работают только для английских слов
Но обнаружился еще один косяк с командами https://github.com/Anisan/majordomo-telegram/issues/14
Так что сначала ждем пока автор поправит, иначе это использовать нельзя.
Ответить