directman

<<< Back

Отправка всех значений свойства объекта в телеграм

готовый сценарий отправляет все значения объекта и дату измения (или прошедшее время с даты измения). Для добавление новой кнопки просто добавьте в команды телеграмм.
Код:
$telegram_module->buildInlineKeyboardButton($text="имя объекта","", "Callback_sensor_имя объекта","")

Команда телеграм:


include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();

// $option[] = $telegram_module->buildInlineKeyboardButton($text=$state." ".$obj,"","Callback_fm_".$dir."/".$obj,"");

$option = array(
$telegram_module->buildInlineKeyboardButton($text="all_in_one","", "Callback_sensor_all_in_one",""),
$telegram_module->buildInlineKeyboardButton($text="current","", "Callback_sensor_current","")
) ;

$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $telegram_module->buildInlineKeyBoard($option);

$content = array('chat_id' => $chat_id, 'text' => "Датчики: ".$dir, 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
$telegram_module->sendContent($content);

callback:
Код:

//$telegram_module->sendMessageToAll($callback);
//$telegram_module->sendMessageToAll(substr($callback,9,6));
//$telegram_module->sendMessageToAll(substr($callback,16));

if (substr($callback,9,6) == 'sensor')
{
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram(); 
  rs('sensor2telega', array('zapros' =>substr($callback,16)));
}

сценарий:

function get_dt($prop)
{
$sql='SELECT max(h.added ) dt, unix_timestamp(h.added) unx  FROM `phistory` h WHERE h.value_ID = (SELECT `ID` FROM `pvalues` WHERE `PROPERTY_NAME` = "'.$prop.'")';
$rec = SQLSelect($sql); 
return $rec[0][dt];
}

function get_props($obj)
{
//$sql='SELECT title FROM `properties`  where object_id = (SELECT id FROM `objects`  where title="'.$obj.'")';
$sql='SELECT substring(PROPERTY_NAME, POSITION("." in PROPERTY_NAME)+1) title FROM `pvalues` where PROPERTY_NAME like "'.$obj.'%"';
$rec = SQLSelect($sql); 
foreach ($rec as $prop)
{
 //print_r($prop)[title];
$ar2[] = $prop[title];
}
return $ar2;
}

function get_unx($prop)
{
$sql='SELECT max(h.added ) dt, unix_timestamp(h.added) unx  FROM `phistory` h WHERE h.value_ID = (SELECT `ID` FROM `pvalues` WHERE `PROPERTY_NAME` = "'.$prop.'")';
$rec = SQLSelect($sql); 
return $rec[0][unx];
}

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();

$obj=$params['zapros'];
if ($obj==""){$obj="all_in_one";}

$text='';

//$obj="current";

//$objprops=getObjectsByProperty($obj,">","0");
$objprops=get_props($obj);
//print_r($objprops);
foreach ($objprops as $prop)
{
 if  (is_numeric (gg($obj.".".$prop ))) {$value=round(gg($obj.".".$prop),2);}
else {$value=gg($obj.".".$prop);}

 if (gmdate('i',trim(time()-get_unx($obj.".".$prop)))<120) 
 {$text.=$obj.".".$prop.":".$value." (".preg_replace("|\b[0]+([1-9][\d]*)|is", "\\1", (gmdate('i',trim(time()-get_unx($obj.".".$prop)))))." минут назад)\n";}
else  
{$text.=$obj.".".$prop.":".$value." ".preg_replace("|\b[0]+([1-9][\d]*)|is", "\\1", (gmdate('i',trim(time()-get_unx($obj.".".$prop)))))." минут назад (".get_dt($obj.'.'.$prop).")\n";}

}
$telegram_module->sendMessageToAll($text);
echo $text; 

Discuss (0) (0)

See also:
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения снапшотов китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66