sayTodayAgenda
|
if (file_exists('./modules/app_calendar/app_calendar.class.php')) {
include_once('./modules/app_calendar/app_calendar.class.php');
$calendar=new app_calendar();
$calendar->usual($out);
$events=$out['EVENTS_TODAY'];
$say_phrase='';
if (is_array($events)) {
$total=count($events);
$tasks=array();
$cals=array();
for($i=0;$i<$total;$i++) {
if ($events[$i]['IS_TASK']=='1' && $events[$i]['IS_DONE']!='1') {
$tasks[]=$events[$i]['TITLE'];
} elseif ($events[$i]['IS_TASK']!='1') {
$cals[]=$events[$i]['TITLE'];
}
}
$total_tasks=count($tasks);
if ($total_tasks) {
$say_phrase.="У вас на сегодня запланированы задачи.";
for($i=0;$i<$total_tasks;$i++) {
$say_phrase.=($i+1).". ".$tasks[$i].". ";
}
}
$total_cals=count($cals);
if ($total_cals) {
$say_phrase.=("Сегодняшние события. ");
for($i=0;$i<$total_cals;$i++) {
$say_phrase.=$cals[$i].'. ';
}
}
} else {
say(" на сегодня Никаких дел и событий не запланировано.",2);
}
$events=$out['EVENTS_PAST'];
if ($events[0]['TITLE']) {
$say_phrase.=" Так же напоминаю о пропущенных задачах. ";
$total_tasks=count($events);
for($i=0;$i<$total_tasks;$i++) {
$say_phrase.=($i+1).". ".$events[$i]['TITLE'].". ";
}
}
}
if ($say_phrase) {
say($say_phrase,2);
}
|
Delete SMS
|
// не забыть что номер аббонента 8073 319 01 19-- 11 знаков
return;
include "PhpSerial.php";
// Let's start the class
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(230400);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
//$serial->sendMessage("AT+CFUN=1\n\r");//Включить модем
//sleep(2);
$serial->sendMessage("AT+CMGL=\"ALL\"\n\r");
sleep(10);
$serial->deviceClose();
|
getPrivat
|
//$answer=shell_exec('curl http://api.openweathermap.org/data/2.5/forecast/daily?id=690773&units=metric&appid=83534ff0506a05fcfd07b1ee562bebdb&lang=ua');
$answer=shell_exec('curl "https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5"');
//$answer='[{"ccy":"EUR","base_ccy":"UAH","buy":"31.70000","sale":"32.15000"},{"ccy":"RUR","base_ccy":"UAH","buy":"0.45000","sale":"0.47000"},{"ccy":"USD","base_ccy":"UAH","buy":"26.70000","sale":"26.95000"},{"ccy":"BTC","base_ccy":"USD","buy":"9217.6220","sale":"10187.8980"}]';
//[{"ccy":"USD","base_ccy":"UAH","buy":"26.80000","sale":"27.10000"},{"ccy":"EUR","base_ccy":"UAH","buy":"33.00000","sale":"33.40000"},{"ccy":"RUR","base_ccy":"UAH","buy":"0.46000","sale":"0.49000"},{"ccy":"BTC","base_ccy":"USD","buy":"9294.2692","sale":"10272.6134"}]
$pothition=0;
$dlinna=0;
$end = strpos($answer, "}",$dlina);
If ($end==false){
return;
}
//$pothition=$end+10;
$end = strpos($answer, "EUR",$pothition);
$pothition=$end;
$ccy = substr($answer, $end, 3);
echo $ccy." ";
$end = strpos($answer, "buy",$pothition);
$buy = substr($answer, $end+6, 8);
$pothition=$end;
$end = strpos($answer, "sale",$pothition);
$sale = substr($answer, $end+7, 8);
$data=(float) round($buy,2)." / ".(float) round($sale,2);
sg("ThisComputer.EUR",$data);
echo " sale=".(float) round($sale,3). " buy=".(float) round($buy,3)." ";
$pothition=0;
$end = strpos($answer, "RUR",$pothition);
$pothition=$end;
$ccy = substr($answer, $end, 3);
echo $ccy." ";
$end = strpos($answer, "buy",$pothition);
$buy = substr($answer, $end+6, 8);
$pothition=$end;
$end = strpos($answer, "sale",$pothition);
$sale = substr($answer, $end+7, 8);
$data=(float) round($buy,2)." / ".(float) round($sale,2);
sg("ThisComputer.RUR",$data);
echo " sale=".(float) round($sale,3). " buy=".(float) round($buy,3)." ";
$pothition=0;
$end = strpos($answer, "USD",$pothition);
$pothition=$end;
$ccy = substr($answer, $end, 3);
echo $ccy." ";
$end = strpos($answer, "buy",$pothition);
$buy = substr($answer, $end+6, 8);
$pothition=$end;
$end = strpos($answer, "sale",$pothition);
$sale = substr($answer, $end+7, 8);
$data=(float) round($buy,2)." / ".(float) round($sale,2);
sg("ThisComputer.USD",$data);
echo " sale=".(float) round($sale,3). " buy=".(float) round($buy,3);
|
getUPS
|
$answer="";
$answer=shell_exec('sudo apcaccess');
//echo $answer;
$pothition=0;
$begin = strpos($answer, "BCHARGE",0);
//echo "begin=".$begin;
If ($begin==false){
// return;
}
$pothition=$begin;
$end = strpos($answer, "Percent",$pothition);
//echo "end=".$end;
$length=$end-$pothition;
$Percent = substr($answer, $end-7, 6);
sg("ThisComputer.ups_charge",(int)$Percent);
echo "\n\r ONLINE BCHARGE:".$Percent." Percent \n\r\n\r ";
//$charge=(int)$Percent;
$charge=80;
$icon='000';
if($charge<=100 && $charge>80){
$icon='100';
}elseif($charge<=80 && $charge>60){
$icon='080';
}elseif($charge<=60 && $charge>40){
$icon='060';
}elseif($charge<=40 && $charge>20){
$icon='040';
}elseif($charge<=20 && $charge>10){
$icon='020';
}elseif($charge<=10 && $charge>0){
$icon='000';
}
sg("ThisComputer.ups_icon",'/img/icons/status/if-ups-'.$icon.'-charging.png');
$begin = strpos($answer, "TIMELEFT",0);
$end = strpos($answer, "Minutes",$begin);
//echo "end=".$end;Minutes
$Minutes = substr($answer, $end-6, 6);
sg("ThisComputer.ups_time",$Minutes);
echo "\n\r TIMELEFT:".$Minutes." Minutes\n\r ";
//$data=(float) round($buy,2)." / ".(float) round($sale,2);
//sg("ThisComputer.EUR",$data);
//echo " sale=".(float) round($sale,3). " buy=".(float) round($buy,3);
|
globall IP
|
//return;
$answer=shell_exec('sudo hostname -I');
echo $answer;
$ip="";
$start = strpos($answer, " 100.",0);
If ($start==false){
$start = strpos($answer, "192.",0);
$start--;
//sg("ThisComputer.ip","Нет модема!");
// say("Not connect!");
//return;
}
$length=strlen($answer);
$ip = substr($answer, $start+1, $length);
$ip_say=str_replace ( "." , "точка" , $ip );
$old_ip=gg('ThisComputer.ip');
if (strcasecmp(trim($old_ip),trim($ip))<>0){
sg("ThisComputer.ip",$ip);
say("Внимание! Изменился ай пи адресc",2);
sleep(2);
say("Ваш новый айпи адресс",2);
sleep(2);
say($ip_say,2);
sg('ThisComputer.body_mess',"Your new ip:".$ip);
runScript("gammu_send_SMS");
}
echo $ip;
|
morningGreeting
|
//$d=getGlobal('ThisComputer.Day');
$d = date( "d", time());
//$d = date("j");
$m = date("m");
$y = date("Y");
$dow = date("N");
$d = str_replace(
array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"),
array("первое", "второе", "третье", "четвертое", "пятое", "шестое", "седьмое", "восьмое", "девятое", "дес+ятое", "одиннадцатое", "двенадцатое", "тринадцатое", "четырнадцатое", "пятнадцатое", "шестнадцатое", "семьнадцатое", "восемнадцатое", "девятнадцатое", "двадцатое", "двадцать первое", "двадцать второе", "двадцать третье", "двадцать четвертое", "двадцать пятое", "двадцать шестое", "двадцать седьмое", "двадцать восьмое", "двадцать девятое", "тридцатое", "тридцать первое"),
$d
);
$m = str_replace(
array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"),
array(" января ", " февраля ", " марта ", " апреля ", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"),
$m
);
$dow = str_replace(
array("1", "2", "3", "4", "5", "6", "7"),
array("понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье"),
$dow
);
$y = str_replace(
array("2017", "2018", "2019", "2020", "2021"),
array("две тысячи семнадцатого", "две тысячи восемьнадцатого", "две тысячи девятьнадцатого", "две тысячи двадцатого", "две тысячи двадцать первого"),
$y
);
$str = "Сегодня ".$dow." ". $d." ".$m." ".$y." года.";
if (timeBetween('7:00', '12:00') && ((time()-$last_register)>2*60*60)) {
Say("Доброе утро!",2);
}
if (timeBetween('12:00', '18:00') && ((time()-$last_register)>2*60*60)) {
Say("Добрый день!",2);
}
if (timeBetween('18:00', '24:00') && ((time()-$last_register)>2*60*60)) {
Say("Добрый вечер!",2);
}
if (timeBetween('24:00', '7:00') && ((time()-$last_register)>2*60*60)) {
Say("Добрый ночи!",2);
}
say($str,2);
say("Сейчас ".timeNow(),2);
runScript('SayWeather');
//runScript('Setting light');
//runScript('sayTodayAgenda');
say("Доброго вам дня, Всегда Ваша, Алиса!",2);
|
nobodyHome
|
say("По-моему никого нет дома...");
setGlobal('somebodyHome',0); // ставим глобальный флаг на то что никого нет дома
setGlobal('somebodyHomeText','Никого нет дома');
if (timeBetween('00:00', '7:00')) {
say("Хотя скорее всего все спят :) Ночь ведь!");
}
|
parse Arduino sensors
|
$text=gg("ThisComputer.arduino_sensors");
//"{M0:1;M1:1;M2:1;D0:1;D1:0;D2:0;}";
$pothition=0;
$dlinna=0;
$start = strpos($text, "}",$dlina);
If ($start==false){
return;
}
//$pothition=$end+10;
$start = strpos($text, "M0:",$pothition);
$pothition=$start+3;
(int)$M0 = substr($text, $pothition,1);
//echo " M0:".$M0;
$start = strpos($text, "M1:",$pothition);
$pothition=$start+3;
(int)$M1 = substr($text, $pothition,1);
//echo " M1:".$M1;
$start = strpos($text, "M2:",$pothition);
$pothition=$start+3;
(int)$M2 = substr($text, $pothition,1);
//echo " M2:".$M2;
$start = strpos($text, "D0:",$pothition);
$pothition=$start+3;
(int)$D0 = substr($text, $pothition,1);
//echo " D0:".$D0;
if (!$D0){
sg('Door_veranda.status',0);
}else{
sg('Door_veranda.status',1);
}
$start = strpos($text, "D1:",$pothition);
$pothition=$start+3;
(int)$D1 = substr($text, $pothition,1);
//echo " D1:".$D1;
if (!$D1){
sg('Door_2Floor.status',0);
}else{
sg('Door_2Floor.status',1);
}
$start = strpos($text, "D2:",$pothition);
$pothition=$start+3;
(int)$D2 = substr($text, $pothition,1);
//echo " D2:".$D2;
|
pi2_temp
|
$answer=shell_exec('vcgencmd measure_temp');
$len = strlen($answer);
$temp=(float)substr( $answer,-7,-3);
echo $temp;
sg('ThisComputer.temp_CPU',$temp);
|
receive sms php
|
include "ucs2cp1251.class.php";
include "PhpSerial.php";
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(115000);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
echo shell_exec("stty -F /dev/ttyUSB2 -echo");
$serial->sendMessage("ATZ0\r");
sleep(5);
$serial->sendMessage("ATE0\r");
sleep(1);
$serial->sendMessage("AT+CNMI=1,2,2,0,1\r");
sleep(1);
$serial->sendMessage("AT+CFUN=1\n");//Включить модем
sleep(1);
$serial->sendMessage("AT+CMGF=0\n");
sleep(1);//Цифровой режим
$serial->sendMessage("AT+CPMS=\"ME\",\"SM\",\"MT\"");// От куда читаем смс
sleep(1);
$serial->sendMessage("AT+CLIP=1\n");//Включение АОН
sleep(1);
$serial->sendMessage("AT+CMGL=4\n\r"); // читаем все смс
sleep(1);
$read = $serial->readPort();
if ($read)
{
if(strpos($read, "+CMGL")){
// Ищем в принятой строке команду +CMGL означающую что последующий
// текст это СМС.
$colstr = substr_count($read,"+CMGL");
//echo "KOL: ".$colstr."\n\r";
$lensrt = strlen($read);
//echo "LEN: ".$lensrt."\n\r";
$dlina =0;
$num = 0;
$dlinacode=0;
while ($num <$colstr) {
//echo "NUM: ".$num."; ";
$begin = strpos($read, "+CMGL",$dlina);
$end = strpos($read, "0791",$dlina);
$dlina=$end+5;
$string = substr($read, $begin+7, ($end-$begin-7));
$ends = strrpos($string, ",");
$colsimcod = floatval(substr($string, $ends+1, ($ends+ $end-1)))*2+16;
//echo "Colsimcod: ".$colsimcod."; ";
$begincode = strpos($read, "0791",$dlinacode);
$dlinacode=$begincode+$colsimcod;
$codepdu = substr($read, $begincode, $colsimcod );
//echo "CODE: ".$codepdu."; \r";
//Перекодируем полученное сообщение из PDU в читабельный вид
// функции sms_decode() из библиотеки ucs2cp1251.class.php
list ($telnumber, $smsdec) = sms_decode($codepdu);
//Перекодируем полученное сообщение из CP1251 в UTF8 с помощью
// функции CP1251toUTF8() из библиотеки ucs2cp1251.class.php
//(если у вас текст и так в UTF8 этого делать не нужно)
$smsdec=CP1251toUTF8($smsdec);
//Выводим номер абонента и СМС сообщение на экран.
echo " -> Telephone: ".$telnumber." SMS: ".$smsdec;
//далее удаляем про читаное сообщение
//$serial->sendMessage("AT+CMGD=".$num."\n");
$num++;
sleep(0.5);
}
}else{
echo "no fresh SMS";
}
}else{
echo "no read";
}
|
restart Full System
|
//echo shell_exec( 'sudo /var/www/restart_system.sh');
echo shell_exec( 'sudo reboot');
|
restart_md
|
//shell_exec ('sudo service mysql restart');
//sleep(5);
shell_exec ('sudo service majordomo restart');
//echo shell_exec( 'sudo /var/www/restart.sh' );
|
sanset
|
//$curEpoch=gg('ow_day0.sunset');
//long $curEpoch = $localEpoc + ((millis() - localMillisAtUpdate) / 1000);
// $epoch = round($curEpoch + 86400) % 86400;
// $hour = (($epoch % 86400) / 3600) % 24;
//$minute = ($epoch % 3600) / 60;
// $second = epoch % 60;
//echo ($hour.":".$minute);
sg("ThisComputer.SunSetTime",date('H:i',gg('ow_day0.sunset')));
sg("ThisComputer.SunRiseTime",date('H:i',gg('ow_day0.sunrise')));
//echo(date('H:i',$curEpoch) );
|
security_on
|
setGlobal('Kitchen_move.statusText',"Охрана");
setGlobal('Garage_move.statusText',"Охрана");
setGlobal('Bathroom_move.statusText',"Охрана");
setGlobal('Massandra_move.statusText',"Охрана");
Say("Activated");
|
send sms PHP_eng
|
include "ucs2cp1251.class.php";
include "PhpSerial.php";
$status="Status Doors:\r";
if(gg('Door_garage.status')){
$gar=" is open";
}else{
$gar=" is close";
}
// Let's start the class
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(115000);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
$serial->sendMessage("AT+CMGF=1\n\r");
sleep(5);
$serial->sendMessage("ATE0\n\r");
sleep(5);
//$status = utf8_to_win($status);// перекодировка
// Wait and read from the port
//$read = $serial -> readPort();
$serial->sendMessage("AT+CMGS=\"80733190137\"\n\r");
$serial->sendMessage($status."Garage".$gar."\n\r");
$serial->sendMessage("\x1a");
sleep(5);
$read=$read . $serial->readPort();
sleep(7);
echo $read;
$serial->deviceClose();
|
send sms PHP_russ
|
// не забыть что номер аббонента 8073 319 01 19-- 11 знаков
include "ucs2cp1251.class.php";
include "PhpSerial.php";
$status="";
//$status.="Двери:";
if(gg('Door_garage.status')){
$gar=" открыт";
}else{
$gar=" закрыт";
}
$status.="Гараж ".$gar.". ";
if(!gg('Door_massamdra.status')){
$mas=" открыта";
}else{
$mas=" закрыта";
}
$status.="Массандра ".$mas.". ";
if(!gg('Door_kitchen.status')){
$kit=" открыта";
}else{
$kit=" закрыта";
}
$status.="Кухня ".$kit.". ";
if(!gg('Gate.status')){
$gate=" открыты";
}else{
$gate=" закрыты";
}
$status.="Ворота ".$gate.". ";
echo $status;
// Let's start the class
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(115000);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
// отключаем режим эхо на ком порте
exec("stty -F /dev/".$nametty.($numport-1)." -echo");
// отключаем режим эхо на ком порте
$serial->sendMessage("AT+CFUN=1\n"); //Включить модем
$serial->sendMessage("AT+CMGF=0\n"); //Цифровой режим
$serial->sendMessage("AT+CPMS=\"ME\",\"SM\",\"MT\""); // от куда читаем смс
$serial->sendMessage("AT+CLIP=1\n"); //Включение АОН
$numb_in="80733190137"; //номер телефона
//$status="*121#";
$dat_in=$status; // текст сообщения
// перекодируем текст из UTF8 в CP1251
// функции utf8_to_win() из библиотеки ucs2cp1251.class.php
//(если у вас текст и так в CP1251 этого делать не нужно)
$textsms = utf8_to_win($dat_in);
//Определяем длин СМС сообщения
// функции ATSMS() из библиотеки ucs2cp1251.class.php
$lengthsms = ATSMS($numb_in, $textsms);
$textsms = utf8_to_win($dat_in);
$lengthsms = ATSMS($numb_in, $textsms);
$encodesms = sendSMS($smsc_numb, $numb_in, $textsms);
$serial->sendMessage("AT+CMGS=".$lengthsms."\n");
$serial->sendMessage($encodesms);
$serial->sendMessage(chr(26));
sleep(5);
// $read=$read . $serial->readPort();
// sleep(7);
//$read = $serial->readPort();
//if ($read)
// {
//echo $read;
//}
// $read=$read . $serial->readPort();
$serial->deviceClose();
|
send_sms_new_ip
|
// не забыть что номер аббонента 8073 319 01 19-- 11 знаков
include "PhpSerial.php";
$status="";
$status.="new IP address\r ";
$status.=gg('ThisComputer.ip');
// Let's start the class
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(230400);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
//$serial->sendMessage("AT+CFUN=1\n\r");//Включить модем
//sleep(2);
$serial->sendMessage("AT&F\r");
sleep(2);
$serial->sendMessage("ATQ1\r");//ATE0
sleep(2);
$serial->sendMessage("AT^U2DIAG=0\n\r");
sleep(2);
$serial->sendMessage("AT+CSCS=\"GSM\"\n\r");
sleep(2);
$serial->sendMessage("AT+CMGF=1\n\r");
sleep(2);
$serial->sendMessage("AT+CMGS=\"80733190137\"\r");
sleep(1);
$serial->sendMessage(trim($status));
sleep(1);
//"(char)26" //"\x1a"
$serial->sendMessage("\x1a");
sleep(5);
$read = $serial->readPort();
echo $read;
$end1 = strpos($read, "+CMS ERROR:",0);
$end2 = strpos($read, "+CMGS:",0);
If ($end1==false && $end2==false){
echo "error answer for modem!";
$serial->sendMessage("AT^U2DIAG=0\n\r");//268
sleep(1);
$serial->deviceClose();
return;
}else{
If ($end1<>false) {
echo "send CMS ERROR!";
}
If ($end2<>false){
echo "send OK!";
}
}
$serial->sendMessage("AT^U2DIAG=0\n\r");//268
sleep(1);
$serial->deviceClose();
|
Setting light
|
say(LANG_GENERAL_SETTING_UP_LIGHTS,2);
// to-do
|
Shell ussd balans
|
$answer=shell_exec('sudo /usr/bin/php -f /var/www/ussd.php *111#');
sg("ThisComputer.balans",$answer);
|
Shell ussd info
|
$answer=shell_exec('sudo /usr/bin/php -f /var/www/ussd.php *121#');
sg("ThisComputer.balans_SIM",$answer);
echo $answer;
|
shutdown System
|
shell_exec( 'sudo shutdown -h now' );
//echo shell_exec( 'sudo /var/www/shutdown.sh' );
|
ups_status
|
$charge=(int)gg('ThisComputer.eaton_charge');
sg("ThisComputer.ups_charge",$charge);
$runtime=(int)gg('ThisComputer.eaton_rantime');
$out_volts=(int)gg('ThisComputer.eaton_voltage');
echo $charge."% ";
echo $runtime."sec ";
echo $out_volts."V ";
$state=gg('ThisComputer.eaton_state');
sg('ThisComputer.ups_state',"charge: ".$charge."%\r\nStatus: ".$state."\r\nOut volts: ".trim($out_volts)."V\r\nRuntime: ".$runtime." sec");
if($state=="OL" && $charge==100 ){ //если от сети и батарея заряжена
echo "status OL";
sg("ThisComputer.mess80",1);//разрешаем отсылку смс
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg("ThisComputer.messRest",1);
sg("ThisComputer.messFall",1);
// sg("ThisComputer.eaton_test_ups",0);
}
// отправляем СМС о полном заряде аккумулятора
$mess100 = getGlobal('ThisComputer.mess100');
if ($state=="OL" && $charge==100 && $mess100){ // когда есть сеть и полный заряд и не тест ups и смс не отправлено
sg("ThisComputer.mess100",0);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
$charge_test=gg('ThisComputer.eaton_test_ups');
if (!$charge_test){ // не тест ups
say("Работа от се=ти",2);
sg('ThisComputer.body_mess',"Battery full charge");
sg("ThisComputer.eaton_test_ups",0);
runScript("gammu_send_SMS");
}
}
if($state=="OL CHRG"){ // если от сети но батарея заряжается
echo "status OL CHRG";
setGlobal("ThisComputer.mode_ol",1);
setGlobal("ThisComputer.mode_ob",0);
sg("ThisComputer.mess100",1); //разрешаем смс о полном заряде
}
if($state=="OB DISCHRG"){
echo "status OB DISCHRG";
sg("ThisComputer.messRest",1);//разрешем смс о восстановлеии сети
}
// отправляем СМС о восстановлении сети
$messRest=getGlobal('ThisComputer.messRest');
if($state=="OL CHRG" && $messRest) { // если от сети и не отослано смс
echo "Power restored charge battery";
sg("ThisComputer.messRest",0);
sg("ThisComputer.messFall",1);
$charge_test=gg('ThisComputer.eaton_test_ups');
if ($charge<90){
// if (!$charge_test){
sg("ThisComputer.eaton_test_ups",0);
sg('ThisComputer.body_mess',"Power restored\r\nUPS on Line\r\ncharge battery:".$charge."%");
say("Сеть восстановлена заряд ".$charge."%",2);
runScript("gammu_send_SMS");
}else{
sg("ThisComputer.eaton_test_ups",1);
}
}
// отправляем СМС о потере сети
$messFall=getGlobal('ThisComputer.messFall');
if($state=="OB DISCHRG" && $messFall ){
sg("ThisComputer.messRest",1);
sg("ThisComputer.messFall",0);
if ($charge<90){ // если упала сеть и заряд меньше 90%
sg('ThisComputer.body_mess',"Power fall\r\nUPS on Battery\r\n".$charge."%\r\nRuntime: ".$runtime." sec");
sg("ThisComputer.eaton_test_ups",0);// признак не теста UPS падения заряда менее 90%
say("Сбой сети. Заряд ".$charge."%",2);
runScript("gammu_send_SMS"); // отсылаем смс о падении эл. сети
}else{
sg("ThisComputer.eaton_test_ups",1);// признак теста UPS падения заряда более 90%
}
}
// отправляем СМС о разряде аккумулятора более 80%
if ($state=="OB DISCHRG"){
$mess80 = getGlobal('ThisComputer.mess80');
if ($charge<=80 && $charge>70 && $mess80 ){
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",0);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 80%";
}
// отправляем СМС о разряде аккумулятора более 70%
$mess60 = getGlobal('ThisComputer.mess60');
if ($charge<=70 && $charge>60 && $mess60){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",0);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 60%";
}
// отправляем СМС о разряде аккумулятора более 60%
$mess40 = getGlobal('ThisComputer.mess40');
if ($charge<=60 && $charge>50 && $mess40 ){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",0);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 40%";
}
// отправляем СМС о разряде аккумулятора более 50%
$mess20 = getGlobal('ThisComputer.mess20');
if ($charge<=50 && $charge>40 && $mess20){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",0);
sg("ThisComputer.mess10",1);
say("Работа от батареи заряд ".$charge."%",2);
echo "Battery discharged more 20%";
}
// отправляем СМС о разряде аккумулятора более 35% и отключаем питания
if ($charge<=35){
sg('ThisComputer.body_mess',"Power shutdown");
runScript("gammu_send_SMS");
sleep(20);
say("Отключаю питание системы",2);
sleep(20);
shell_exec('sudo shutdown -h now');
}
}
// отображение иконки заряда аккумулятора
// icons duty
if (100>=$charge && $charge>80){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-100.png");
}
if (80>=$charge && $charge>60){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-080-charging.png");
}
if (60>=$charge && $charge>40){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-060-charging.png");
}
if (40>=$charge && $charge>20){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-040-charging.png");
}
if ($charge<=20){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-020-charging.png");
}
if ($charge<=15){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-000-charging.png");
}
|
ups_status_old
|
$answer=shell_exec('upsc eaton@localhost');// upsc eaton@localhost
//echo $answer;
$pos1=strpos($answer,"battery.charge:",0);
$pos2=strpos($answer,"battery.runtime:",0);
$pos3=strpos($answer,"output.voltage:",0);
(int)$charge=(int)substr( $answer, $pos1+15, 4);
//$charge_test=false;
sg("ThisComputer.ups_charge",(int)$charge);
$runtime=(int)substr( $answer, $pos2+16, 4);
$out_volts=substr( $answer, $pos3+15, 6);
echo $charge."% ";
echo $runtime."sec ";
echo $out_volts."V ";
$start=strpos($answer,"OL",0);
$on_line_ol=strpos($answer,"OL",0);
if($on_line_ol && $charge==100 ){ //если от сети и батарея заряжена
$status="OL";
echo "status OL";
sg("ThisComputer.mode_ol",1);
sg("ThisComputer.mode_ob",0);
sg("ThisComputer.mess80",1);//разрешаем отсылку смс
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg("ThisComputer.messRest",1);
sg("ThisComputer.messFall",1);
sg("ThisComputer.eaton_test_ups",0);
}
$on_line_ch=strpos($answer,"OL CHRG",0);
if($on_line_ch){ // если от сети но батарея заряжается
$status="OL CHRG";
echo "status OL CHRG";
setGlobal("ThisComputer.mode_ol",1);
setGlobal("ThisComputer.mode_ob",0);
sg("ThisComputer.mess100",1); //разрешаем смс о полном заряде
}
$on_battery=strpos($answer,"OB DISCHRG",0);
if($on_battery){
$status="OB DISCHRG"; // работа от батареи
echo "status OB DISCHRG";
setGlobal("ThisComputer.mode_ol",0);
setGlobal("ThisComputer.mode_ob",1);
// sg("ThisComputer.mess100",1);
sg("ThisComputer.messRest",1);//разрешем смс о восстановлеии сети
}
//$charge=100;
//$on_battery=0;
//$on_line_ch=1;
//echo $status;
$mode_OL = getGlobal('ThisComputer.mode_ol');
$mode_OB = getGlobal('ThisComputer.mode_ob');
$messRest=getGlobal('ThisComputer.messRest');
if($on_line_ch && !$mode_OB && $messRest) { // если от сети и не отослано смс
echo "Power restored charge";
sg("ThisComputer.messRest",0);
sg("ThisComputer.messFall",1);
$charge_test=gg('ThisComputer.eaton_test_ups');
if (!$charge_test){
sg('ThisComputer.body_mess',"Power restored\r\nUPS on Line\r\ncharge battery:".$charge."%");
say("Сеть восстановлена заряд ".$charge."%",2);
runScript("gammu_send_SMS");
}
}
$messFall=getGlobal('ThisComputer.messFall');
if($on_battery && !$mode_OL && !$on_line_ch && $messFall ){
//echo "Power fall";
sg("ThisComputer.messRest",1);
sg("ThisComputer.messFall",0);
if ($charge<90){ // если упала сеть при заряде более 90%
sg('ThisComputer.body_mess',"Power fall\r\nUPS on Battery\r\n".$charge."%\r\nRuntime: ".$runtime." sec");
sg("ThisComputer.eaton_test_ups",0);// признак не теста UPS падения заряда до 95%
// say("Работа от батарей. Заряд ".$charge."%",2);
runScript("gammu_send_SMS"); // отсылаем смс о падении эл. сети
//echo "Power fall";
}else{
sg("ThisComputer.eaton_test_ups",1);// признак теста UPS падения заряда более 90%
}
}
$mess100 = getGlobal('ThisComputer.mess100');
if ($mode_OL && $charge==100 && $mess100){ // когда есть сеть и полный заряд и не тест ups и смс не отправлено
sg("ThisComputer.mess100",0); // запрещаем повторное смс
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
say("Работа от се=ти",2);
$charge_test=gg('ThisComputer.eaton_test_ups');
if (!$charge_test){
sg('ThisComputer.body_mess',"Battery full charge");
runScript("gammu_send_SMS");
//echo "Battery full charge";
}
}
$mess80 = getGlobal('ThisComputer.mess80');
if ($charge<=80 && $charge>70 && $on_battery && $mess80 ){
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",0);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 80%";
}
$mess60 = getGlobal('ThisComputer.mess60');
if ($charge<=70 && $charge>60 && $on_battery && $mess60){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",0);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 60%";
}//&& $on_battery && $mess40
$mess40 = getGlobal('ThisComputer.mess40');
if ($charge<=60 && $charge>50 && $on_battery && $mess40 ){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
//sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-040-charging.png");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",0);
sg("ThisComputer.mess20",1);
sg("ThisComputer.mess10",1);
sg('ThisComputer.body_mess',"On Battery charge ".$charge."%");
say("Работа от батареи заряд ".$charge."%",2);
runScript("gammu_send_SMS");
echo "Battery discharged more 40%";
}
$mess20 = getGlobal('ThisComputer.mess20');
if ($charge<=50 && $charge>40 && $on_battery && $mess20){
sg('ThisComputer.body_mess',"Battery carhge ".$charge."%");
//sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-020-charging.png");
sg("ThisComputer.mess100",1);
sg("ThisComputer.mess80",1);
sg("ThisComputer.mess60",1);
sg("ThisComputer.mess40",1);
sg("ThisComputer.mess20",0);
sg("ThisComputer.mess10",1);
say("Работа от батареи заряд ".$charge."%",2);
echo "Battery discharged more 20%";
}
if ($charge<=35 && $on_battery){
sg('ThisComputer.body_mess',"Power shutdown");
runScript("gammu_send_SMS");
sleep(20);
say("Отключаю питание системы",2);
sleep(20);
shell_exec('sudo shutdown -h now');
}
// sg('ThisComputer.ups_output_voltage',$out_volts);
// sg('ThisComputer.ups_time',$runtime);
sg('ThisComputer.ups_charge',$charge);
// sg('ThisComputer.ups_status',$status);
sg('ThisComputer.ups_state',"charge: ".$charge."%\r\nStatus: ".$status."\r\nOut volts: ".trim($out_volts)."V\r\nRuntime: ".$runtime." sec");
// icons duty
//$charge;
if (100>=$charge && $charge>80){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-100.png");
}
if (80>=$charge && $charge>60){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-080-charging.png");
}
if (60>=$charge && $charge>40){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-060-charging.png");
}
if (40>=$charge && $charge>20){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-040-charging.png");
}
if ($charge<=20){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-020-charging.png");
}
if ($charge<=15){
sg('ThisComputer.ups_icon',"/img/icons/status/if-ups-000-charging.png");
}
|
USSD balans
|
include "PhpSerial.php";
function pdu2str($pdu) {
// chop and store bytes
$number = 0;
$bitcount = 0;
$output = '';
while (strlen($pdu)>1) {
$byte = ord(hex2bin(substr($pdu,0,2)));
$pdu=substr($pdu, 2);
$number += ($byte << $bitcount);
$bitcount++ ;
$output .= chr($number & 0x7F);
$number >>= 7;
if (7 == $bitcount) {
// save extra char
$output .= chr($number);
$bitcount = $number = 0;
}
}
return $output;
}
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(115000);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
$serial->sendMessage("AT^U2DIAG=0\n\r");
sleep(1);
$serial->sendMessage("AT+CMGF=1\n\r");
sleep(1);
$serial->sendMessage("AT+CUSD=1,AA582C3602,15\r");// запрос баланса счета
sleep(15);
$read = $serial->readPort();
$balans = '';
if ($read)
{
if(strpos($read, "+CUSD:")){
$dlina =0;
$start = strpos($read, "+CUSD:",$dlina);
$begin = strpos($read, "C2",$start); // начало ответа на *111#
$end = strpos($read, ",15",$begin);
$dlina=$end-$begin-1;
$string = substr($read, $begin, $dlina);
//$string="+CUSD: 1,\"C2303BEC9E836AAE190D2D77B340E2B7BB3E07C15C30185AEE7629542A9522FBAC52ABC222C81D0691CBEE13A805B2CF4FEFF31BA40F836EA0B3DCFDAAC1604D71083485B3C363743D4F2F83E869F6699D07ADDFEC3C68FD96E7E7F47ABE4C2FCF4F2145CC450DAF15\",15 ";
//Перекодируем полученное сообщение из PDU в читабельный вид
$balans = pdu2str($string);
echo $balans;
}
}
$serial->sendMessage("AT^U2DIAG=0\n\r");//268
sleep(1);
$serial->deviceClose();
sg("ThisComputer.balans_3g",$balans);
|
USSD info
|
include "PhpSerial.php";
function pdu2str($pdu) {
// chop and store bytes
$number = 0;
$bitcount = 0;
$output = '';
while (strlen($pdu)>1) {
$byte = ord(hex2bin(substr($pdu,0,2)));
$pdu=substr($pdu, 2);
$number += ($byte << $bitcount);
$bitcount++ ;
$output .= chr($number & 0x7F);
$number >>= 7;
if (7 == $bitcount) {
// save extra char
$output .= chr($number);
$bitcount = $number = 0;
}
}
return $output;
}
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyUSB2");
$serial->confBaudRate(115000);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
$serial->sendMessage("AT^U2DIAG=0\n\r");
sleep(1);
$serial->sendMessage("AT+CMGF=0\n\r");
sleep(1);
$serial->sendMessage("AT+CUSD=1,AA982C3602,15\r");// запрос info AA582C3602=*111# AA982C3602=*121#
//$serial->sendMessage("AT+CUSD=1,AA582C3602,15\r");// запрос баланса счета
sleep(15);
$read = $serial->readPort();
$info = '';
if ($read)
{
if(strpos($read, "+CUSD:")){
$dlina =0; //http://trucktrial.ru/index.php
$start = strpos($read, "+CUSD:",$dlina);
$begin = strpos($read, "B2",$start);
// $begin = strpos($read, "C2",$start);
$end = strpos($read, ",15",$begin);
$dlina=$end-$begin-1;
$string = substr($read, $begin, $dlina);
echo $string;
//$string="B2303BEC9E836AAE190D2D77B340E2B7BB3E07C15C30185AEE7629542A9522FBAC52ABC222C81D0691CBEE13A805B2CF4FEFF31BA40F836EA0B3DCFDAAC1604D71083485B3C363743D4F2F83E869F6699D07ADDFEC3C68FD96E7E7F47ABE4C2FCF4F2145CC450DAF15";
//Перекодируем полученное сообщение из PDU в читабельный вид
$info = pdu2str($string);
echo $info;
}
}
$serial->sendMessage("AT^U2DIAG=0\n\r");//268
sleep(1);
$serial->deviceClose();
sg("ThisComputer.info_3g",$info);
|
новости дня
|
Say($params['TITLE'],2);
//say(strip_tags($params['TITLE']),2);
|
Подьем
|
Say("Ну наконецто! Хоть кто то проснулся! Урааа!",2);
Say("Риточка, рада тебя видеть!",2);
Say("Как ты? Как спала?",2);
Say("Пока ты будешь готовить чай, я Расскажу тебе важное!",2);
RunScript("morningGreeting");
sleep(3);
Say("Ну а теперь иди будить своего Сережечку!",2);
Say("Пейте чай, приятного аппетита",2);
|