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);
|
rebootMJD
|
say('Внимание, перегружаюсь!', 2);
sleep(5);
safe_exec('d:\Programs\_majordomo\apps\nircmd\nircmd.exe script "d:\Programs\_majordomo\reboot_mjd.ncl"');
|
rebootSYS
|
say('Сохраняю копию базы', 2);
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = 'd:/Programs/_majordomo/server/mysql/bin/mysqldump.exe';
$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);
safe_exec('d:\Programs\_majordomo\apps\nircmd\nircmd.exe script "d:\Programs\_majordomo\reboot_sys.ncl"');
|
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);
|
systemMaintenance
|
require(ROOT.'scripts/startup_maintenance.php');
// optimize gps
set_time_limit(6000);
$records=SQLSelect("SELECT gpslog.ID, gpslog.DEVICEID, gpslog.LOCATION_ID, gpsdevices.ID as GPS_DEVICE_ID FROM gpslog LEFT JOIN gpsdevices ON gpslog.DEVICE_ID=gpsdevices.ID ORDER BY gpslog.DEVICEID, gpslog.ADDED DESC");
$total=count($records);
$to_delete=array();
for($i=1;$i<$total-1;$i++) {
if (!$records[$i]['GPS_DEVICE_ID']) {
SQLExec("DELETE FROM gpslog WHERE ID=".$records[$i]['ID']);
continue;
}
if (!$records[$i]['LOCATION_ID']) continue;
if ($records[$i]['LOCATION_ID']==$records[$i+1]['LOCATION_ID'] && $records[$i]['LOCATION_ID']==$records[$i-1]['LOCATION_ID']
&& $records[$i]['GPS_DEVICE_ID']==$records[$i+1]['GPS_DEVICE_ID'] && $records[$i]['GPS_DEVICE_ID']==$records[$i-1]['GPS_DEVICE_ID']) {
SQLExec("DELETE FROM gpslog WHERE ID=".$records[$i]['ID']);
}
}
SQLExec("OPTIMIZE TABLE `gpslog`");
// optimize phistory
sg('Nochnik.brightness',0);
getURL('http://localhost/scripts/optimize_history.php',0);
say("Оптимизация БД выполнена.");
|
OHW
|
//-----------------------Данные с ohm сценарий
$ch = curl_init('http://127.0.0.1:8085/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
//----------------------- Вытягиваем данные
$CpuLoad = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[2] ->{'Children'}[0] -> {'Value'};
$Core1Temp = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] ->{'Children'}[0] -> {'Value'};
$Core2Temp = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] ->{'Children'}[1] -> {'Value'};
$Core3Temp = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] ->{'Children'}[2] -> {'Value'};
$Core4Temp = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] ->{'Children'}[3] -> {'Value'};
$Memory = $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[0] ->{'Children'}[0] -> {'Value'};
$DiskD = $json -> {'Children'}[0] -> {'Children'}[3] -> {'Children'}[0] ->{'Children'}[0] -> {'Value'};
$DiskC = $json -> {'Children'}[0] -> {'Children'}[4] -> {'Children'}[0] ->{'Children'}[0] -> {'Value'};
/*----------------------- Просматриваем данные
echo "<br \>";
echo "Загрузка процессора";echo "  ";print_r("$CpuLoad");
echo "<br \>";
echo "температура процессора 1";echo "  ";print_r("$Core1Temp");
echo "<br \>";
echo "температура процессора 2";echo "  ";print_r("$Core2Temp");
echo "<br \>";
echo "температура процессора 3";echo "  ";print_r("$Core3Temp");
echo "<br \>";
echo "температура процессора 4";echo "  ";print_r("$Core4Temp");
echo "<br \>";
echo "Занято оперативки";echo "  ";print_r("$Memory");
echo "<br \>";
echo "Занято диск D";echo "  ";print_r("$DiskD");
echo "<br \>";
echo "Занято диск С";echo "  ";print_r("$DiskC");
----------------------- Присваеваем данные*/
setGlobal('ThisComputer.CpuLoad',intval($CpuLoad));
setGlobal('ThisComputer.CpuTemp1',intval($Core1Temp));
setGlobal('ThisComputer.CpuTemp2',intval($Core2Temp));
setGlobal('ThisComputer.CpuTemp3',intval($Core3Temp));
setGlobal('ThisComputer.CpuTemp4',intval($Core4Temp));
setGlobal('ThisComputer.Memory',intval($Memory));
setGlobal('ThisComputer.DiskD',intval($DiskD));
setGlobal('ThisComputer.DiskC',intval($DiskC));
|
timer_10s
|
//-----------------------Выполнение скрипта раз в 10 сек. (timer_10s)
clearTimeout("timer_10s_timeout");
runScript('OHW');
setTimeOut("timer_10s_timeout", "runScript('timer_10s');", 10);
|
Hourly
|
Выполняется каждый час
|
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');
}
|