camImagesProcess
|
Сортировка изображений с веб-камеры
$src='/var/www/media/webcam'; // откуда брать фотографии
clearTimeout('camImagesTimer');
$base_path='/var/www/dvr/unsorted';
$dst='/var/www/dvr/sorted';
safe_exec('chown pi:pi -Rf '.$base_path.'/*');
safe_exec('chmod 0777 -f '.$base_path.'/*');
setTimeout('camImagesTimer','runScript("camImagesProcess");',10*60);
if (is_dir($base_path)) {
if ($dir = @opendir($base_path)) {
while (($file = readdir($dir)) !== false) {
if ($file!='.' && $file!='..' && is_dir($base_path.'/'.$file)) {
$src=$base_path.'/'.$file;
echo $src.'<br/>';
processLine($src." -> ".$dst."/%Y/%m - %F/%d/".$file);
}
}
closedir($dir);
}
} else {
echo "Cannot open $base_path";
}
processLine("CLEAR ".$dst." 30 DAYS OLD");
|
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);
|
ifstart
|
каждый час устанавливает тест для недели и даты проверяя курсы валют дни рождения и погоду
$h=(int)date('G',time());
// раскидываем дату и время
$day[0]="воскресенье";
$day[1]="понедельник";
$day[2]="вторник";
$day[3]="среда";
$day[4]="четверг";
$day[5]="пятница";
$day[6]="суббота";
$month[1]="января";
$monthAlt[1]="Январь";
$month[2]="февраля";
$monthAlt[2]="Февраль";
$month[3]="марта";
$monthAlt[3]="Март";
$month[4]="апреля";
$monthAlt[4]="Апрель";
$month[5]="мая";
$monthAlt[5]="Май";
$month[6]="июня";
$monthAlt[6]="Июнь";
$month[7]="июля";
$monthAlt[7]="Июль";
$month[8]="августа";
$monthAlt[8]="Август";
$month[9]="сентября";
$monthAlt[9]="Сентябрь";
$month[10]="октября";
$monthAlt[10]="Октябрь";
$month[11]="ноября";
$monthAlt[11]="Ноябрь";
$month[12]="декабря";
$monthAlt[12]="Декабрь";
sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);
//дни рождения, проверять при условии разрешения в установках и в 11-00
if ((gg("Sets.checkBirthday"))&&($h=="11")) {
runScript("birthday");
}
if (isOnline("Internet")) {
// обновим прогноз погоды
setTimeOut('MinskSensor','callMethod("Minsk.sensors");',3);
// обновим курс валюты каждые 4 часа
if (!($h%4)) {callMethod("nbrb.update");}
} else {
say ("Проверить погоду и курсы валют пока не могу, так как нет доступа в интеренет. Попробую сделать это через один час. ",-1);
}
|
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("Подготовка к перезагрузке",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("Подготовка к выключению",2);
setTimeout("shutdownTimer","safe_exec('shutdown -h now');",15);
|
AlarmWater
|
Сработка датчика протечки
$message = 'Тревога! Тревога! Протечка на кухне';
say($message,5);
RunScript("AutoRemoteMessage",$message);
//$message = iconv("utf-8", "windows-1251", $message);
$to = gg('admin.EMail');
$from = gg('ThisComputer.EMail');
$subject = "Событие от Алисы: ТРЕВОГА!!!";
$message = '
Тревога! Тревога! Протечка на кухне
';
$headers = "Content-type: text/plain; charset=utf-8 \r\n";
$headers .= "From: Что желаете <$from>\r\n";
mail($to, $subject, $message, $headers);
|
eveningGreeting
|
??вечернее приветствие -- отрабатывает когда датчик засёк вечером первое движение после долгого отсутствия
say("Добро пожаловать домой!",2);
setTimeOut('canhelp','runScript("TabletAsk");',10);
|
Hourly
|
Выполняется каждый час
|
morningAlarm
|
Утренний будильник
clearTimeOut('AlarmTimer');
if (gg('ThisComputer.AlarmWaiting')) {
if (timeIs('11:00')) {
say('Видимо зря стараюсь...');
setGlobal('ThisComputer.AlarmWaiting',0);
}
say("Ну когда же вы проснётесь!");
} else {
say("Просыпайтесь, уже пора вставать!",2);
setGlobal('ThisComputer.AlarmWaiting',1);
//runScript('playFavoriteMusic');
runScript('morningRoutine');
}
setTimeOut('AlarmTimer','runScript("MorningAlarm");',10*60);
|
morningGreeting
|
утреннее приветствие
say("Доброе утро!",2);
runScript("sayTime");
clearTimeOut('AlarmTimer');
if (gg('ThisComputer.AlarmWaiting')) {
setGlobal('ThisComputer.AlarmWaiting',0);
}
if (gg('GuestsMode.active')) return;
runScript('morningRoutine');
runScript("sayTodayAgenda");
//runScript("playFavoriteMusic");
|
motionDetected
|
Сработал детектор движения на веб-камере
DebMes("Motion detected: ".serialize($params));
callMethod('MotionSensorCam.motionDetected');
setTimeOut('motionDetectedTimer','runScript("camImagesProcess");',10);
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
setTimeOut('stopWebCamDetection', " runScript('manageWebCamMotion', array('stop'=>'1'));", (int)('60'));
}
|
NobodyHome
|
Срабатывает, когда никого дома нет
say('Включаю режим экономии', 2);
callMethod('EconomMode'.'.'.'activate');
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
runScript('manageWebCamMotion', array('start'=>'1'));
}
|
SomebodyHome
|
Срабатывает в том случае, когда кто-то появился дома
callMethod('EconomMode'.'.'.'deactivate');
say('Здравствуйте!', 2);
runScript('reportStatus', array());
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
setTimeOut('stopWebCamDetection', " runScript('manageWebCamMotion', array('stop'=>'1'));", (int)('60'));
}
|
startUp
|
Система загружена
say('Система загружена', 2);
runScript('tellIPAddress', array());
|
turnOffEverything
|
Выключить все приборы
$objects=array('Switch1','Switch2','Switch3');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
cam1motion
|
вызываем метод датчика движения
cm("Motion01.motionDetected");
|
goingOut
|
Уходим из дома
$confirm=$params['confirm'];
$timeoutValue=5*60;
if (timeOutExists('goingOutTimer') && !$confirm) {
say("Отменяю сценарий ухода из дома.",2);
clearTimeout('goingOutTimer');
return;
} elseif (!$confirm) {
say("Через 5 минут я перейду в режим экономии. Всего хорошего!",2);
setTimeout('goingOutTimer','runScript("goingOut",array("confirm"=>1));',$timeoutValue);
return;
}
say("Перехожу в режим экономии",2);
callMethod('NobodyHomeMode.activate');
|
kitchen_switch
|
Запускаю сценарий включения света в коридоре
//say('Запускаю сценарий включения света в коридоре',2);
callMethod('Relay10.switch');
callMethod('Relay07.switch');
callMethod('Relay09.switch');
|
lightoff
|
Выключить свет везде
for($i=0;$i<2;$i++) {
callMethod('Relay01.turnOff');
callMethod('Relay02.turnOff');
callMethod('Relay03.turnOff');
callMethod('Relay04.turnOff');
callMethod('Relay05.turnOff');
callMethod('Relay06.turnOff');
callMethod('Relay07.turnOff');
callMethod('Relay08.turnOff');
callMethod('Relay09.turnOff');
callMethod('Relay10.turnOff');
callMethod('Relay11.turnOff');
callMethod('Relay12.turnOff');
callMethod('Relay13.turnOff');
}
|
light_on
|
Включить свет везде
for($i=0;$i<2;$i++) {
callMethod('Switch 1.turnOn');
}
|
Living room light on
|
Свет в гостиной вкл
brLinkCommand('Hall Light large');
|
Привет|Здравствуй
|
if(timeBetween("05:00", "11:00")){
say("Доброе утро!",1);
}elseif(timeBetween("11:00", "17:00")){
say("Добрый день!",1);
}elseif(timeBetween("17:00", "23:00")){
say("Добрый вечер!",1);
}elseif(timeBetween("23:00", "05:00")){
say("Доброй ночи!",1);
}else{ // Новое, неизвестное время суток.
say('Привет!',1);
}
|
проверка связи
|
say("Да слышу я. Слышу...",2);
|