checkFreeSpace
|
$max_usage=90; //%
$output=array();
exec('df',$output);
//var_dump($output);
$problems=0;
$problems_details='';
foreach($output as $line) {
if (preg_match('/(\d+)% (\/.+)/',$line,$m))
$proc=$m[1];
$path=$m[2];
if ($proc>$max_usage) {
$problems++;
$problems_details.="$path: $proc; ";
}
//echo "$path: $proc%<br/>";
}
sg("ThisComputer.SpaceProblems",$problems);
sg("ThisComputer.SpaceProblems_Details",$problems_details);
setTimeOut('checkFreeSpace','runScript("checkFreeSpace");',5*60);
|
rebootSystem
|
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
say(LANG_GENERAL_STARTING_REBOOT,2);
setTimeout("shutdownTimer","safe_exec('shutdown -r now');",15);
|
shutDown
|
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
say(LANG_GENERAL_STARTING_SHUTDOWN,2);
setTimeout("shutdownTimer","safe_exec('shutdown -h now');",15);
|
Hourly
|
|
onNewMinute
|
$h=(int)date('G',time());
$m=date('i',time());
if (isWeekDay()) {
}
sg('ThisComputer.DayOfMonthNum',date('d'));
sg('ThisComputer.DayOfWeekTXT',date('l'));
sg('ThisComputer.MonthTXTalt',date('F'));
if (timeBetween(getGlobal('NightModeEnd'),getGlobal('NightModeStart')) && getGlobal('clockChimeEnabled')) {
if ($m=="00") {
say(timeNow(),1);
}
}
setGlobal('timeNow',date('H:i'));
setGlobal('timenowH',date('H'));
setGlobal('timenowM',date('i'));
$homeStatus=date('H:i');
if (getGlobal('NobodyHomeMode.active')) {
$homeStatus.=' '.LANG_DEVICES_ROOMS_NOBODYHOME;
} else {
$homeStatus.=' '.LANG_DEVICES_ROOMS_SOMEBODYHOME;
}
$homeStatus.=' '.getGlobal('Security.stateDetails');
$homeStatus.=' '.getGlobal('System.stateDetails');
$homeStatus.=' '.getGlobal('Communication.stateDetails');
setGlobal('HomeStatus',$homeStatus);
if(substr(date('i',time()), -1)==0) {
if (timeBetween(gg('ThisComputer.SunRiseTime'),gg('ThisComputer.SunSetTime'))
&& gg('DarknessMode.active')!="1") {
callMethod('DarknessMode.activate');
}
elseif (!timeBetween(gg('ThisComputer.SunRiseTime'),gg('ThisComputer.SunSetTime'))
&& gg('DarknessMode.active')=="1") {
callMethod('DarknessMode.deactivate');
}
}
/**
if(substr(date('i',time()), -1)==0) {
if(timeBetween(date('H:i', gg('ow_fact.sunset')), date('H:i', gg('ow_fact.sunrise'))) && gg('DarknessMode.active')!=1) {
callMethod('DarknessMode.activate');
} elseif(timeBetween(date('H:i', gg('ow_fact.sunrise')), date('H:i', gg('ow_fact.sunset'))) && gg('DarknessMode.active')==1) {
callMethod('DarknessMode.deactivate');
}
}
*/
if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) {
callMethod('EconomMode.activate');
}
if (timeIs(gg('NightModeStart'))) {
callMethod('NightMode.activate');
} elseif (timeIs(gg('NightModeEnd'))) {
callMethod('NightMode.deactivate');
}
rs("weatherReceived");
|
startUp
|
runScript('tellIPAddress', array());
|
Demo01
|
Привет. Меня зовут Алиса.
Я создана помогать жильцам этой квартиры.
Сейчас я расскажу о том, что я знаю и умею.
Я контролирую большинство электроприборов.
Знаю какая погода на улице и температура в доме.
set_time_limit(60);
say('Привет. Меня зовут Алиса.', 5);
say('Сейчас я расскажу о том, что я знаю и умею.', 5);
say('Я контролирую большинство электроприборов.', 5);
sleep(1);
//rs('Demo02');
|
Demo02
|
Знаю какая погода на улице и температура в доме.
Сейчас на улице ...°C, ...
Дома ...°C, влажность воздуха ....%.
На завтра обещают ...°C, ...
Я могу управлять освещением в зависимости от присутствия, восхода и заката солнца.
Восход завтра в ..., закат в ...
set_time_limit(60);
rs('DemoSay','Знаю какая погода на улице и температура в доме.');
rs('DemoSay','Сейчас на улице '. gg("ow_fact.temperature").' °C, '.gg("ow_fact.weather_type").'.');
rs('DemoSay','Дома '.gg("Livingroom.Temperature").' °C, влажность воздуха '.gg("Livingroom.Humidity").'%.');
rs('DemoSay','На завтра обещают '.gg("ow_day4.temperature").' °C, '.gg("ow_day4.weather_type").'.');
rs('DemoSay','Я могу управлять освещением в зависимости от присутствия, восхода и заката солнца.');
sleep(1);
//rs('Demo03');
|
Demo03
|
Пройдите в зал.
Сейчас я поиграю освещением.
Освещение включен Livingroom
Освещение выключен Livingroom
set_time_limit(60);
rs('DemoSay','Пройдите в зал.');
rs('DemoSay','Сейчас я поиграю освещением.');
//Освещение включен Kitchen
// sg('kitchen001.lstatus', '1'); sleep (1);
// sg('kitchen002.lstatus', '1'); sleep (1);
// sg('kitchen003.lstatus', '1'); sleep (1);
// sg('kitchen001.lstatus', '0'); sleep (1);
// sg('kitchen002.lstatus', '0'); sleep (1);
// sg('kitchen001.lstatus', '1'); sleep (1);
// sg('kitchen003.lstatus', '0'); sleep (1);
if (gg("DarknessMode.active")){
// sg('kitchen001.lstatus', '1'); sleep (1);
// sg('kitchen002.lstatus', '1'); sleep (1);
// sg('kitchen003.lstatus', '1'); sleep (1);
// sg('Kitchen.light1',1);
// sg('Kitchen.light2',1);
// sg('Kitchen.light3',1);
}else{
// sg('kitchen002.lstatus', '1'); sleep (1);
// sg('kitchen001.lstatus', '0'); sleep (1);
// sg('kitchen003.lstatus', '1'); sleep (1);
// sg('kitchen002.lstatus', '0'); sleep (1);
// sg('kitchen003.lstatus', '0'); sleep (1);
// sg('Kitchen.light1',0);
// sg('Kitchen.light2',0);
// sg('Kitchen.light3',0);
}
rs('Demo04');
|
Demo04
|
Кроме управления механизмами, я могу помочь и с развлечением.
Например, сейчас включу какую-нибудь музыку из вашей коллекции.
Или радио станцию
set_time_limit(60);
rs('DemoSay','Кроме управления механизмами, я могу помочь и с развлечением.');
rs('DemoSay','Например, сейчас включу какую-нибудь музыку из вашей коллекции.');
rs('Demo05');
|
Demo05
|
Сценарий проговаривает и демонстрирует возможности системы
set_time_limit(60);
rs('playFavoriteMusic');
sleep(15);
rs('playPause');
sleep(2);
rs('DemoSay','Или радио станцию');
include_once(DIR_MODULES.'app_radio/app_radio.class.php');
$app_radio=new app_radio();
$app_radio->control('play');
unset($app_radio);
sleep(10);
rs('playPause');
rs('Demo06');
|
Demo06
|
Сценарий проговаривает и демонстрирует возможности системы
rs('DemoSay','Могу управлять телевизорами.');
//rs('DemoSay','Знаю, что на фоторамке установленн будильник на '.getGlobal('Chumby.AlarmTimeWork').'.');
rs('DemoSay','У меня есть собственный будильник.');
rs('DemoSay','После пробуждения я могу озвучить список задач на день.');
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].". ";
}
} else {
rs('DemoSay','На сегодня никаких дел не запланировано.');
}
$total_cals=count($cals);
if ($total_cals) {
$say_phrase.=("Сегодняшние события. ");
for($i=0;$i<$total_cals;$i++) {
$say_phrase.=$cals[$i].'. ';
}
}
}
$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) {
rs('DemoSay',$say_phrase);
}
rs('DemoSay','Некоторые функции находятся в стадии разработки и временно недоступны.');
rs('DemoSay','Подробнее может рассказать мой создатель.');
|
DemoStart
|
setGlobal('DemoMode',1);
set_time_limit(180);
setTimeOut('DemoStart','runScript("Demo01");',1);
|
weatherHistoryControl
|
//Если минимальная температура за день меньше 7 градусов, то пора сливать воду из системы полива.
if (getHistoryMin("ow_fact.temperature", strtotime("-1 day")) < 7)
say("Пора сливать воду из системы полива");
//Если среднесуточная температура меньше 7 градусов, то пора менять колёса на зимние.
if (getHistoryAvg("ow_fact.temperature", strtotime("-1 day")) < 7)
say("Пора менять колёса на зимние");
//Самое интересное можно взять значение на определённом отрезке времени, даже если выборки
//попали между запросом (Берутся 2 точки до и после, из них делается интерполяция)
if (getHistoryValue("ow_fact.temperature", strtotime("03:00")) < 0)
say("Ночью была минусовая температура");
|
Спросим у Wiki
|
$zap=$params['zapros'];
if ($zap==""){$zap="путин";}
//say('Запрашиваю у Wikipedia информацию о '.$zap,2);
$zapurl=urlencode($zap);
//echo $zapurl;
//$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=json&inprop=url';
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
//echo $url;
$answ=file_get_contents($url);
//echo $answ;
//echo "-----------------------";
//$data=json_decode($content,true, JSON_UNESCAPED_UNICODE);
// $data=json_encode($answ, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
//$data=json_encode($answ, true);
//$objn=$data[0]['id'];
//$objn=$data[0]['code'];
//echo $data;
//echo $objn.'----------------';
//addClassObject('livegpstracks',$objn);
//$src=$data[2];
//sg( $objn.'.json',$content);
// sg( $objn.'.link','https://livegpstracks.com/dv_'.$objn.'.html');
//foreach ($src as $key=> $value ) {
//echo $key.':'.$value;
//}
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description;
$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2);
//sg('temp', $otvet);
//say(gg('temp'));
|