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);
|
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);
|
обновление восхода и захода солнца
|
$sunRise = gg('ow_fact.sunrise');
$sunSet = gg('ow_fact.sunset');
$sunRiseData = date(('H:i'),$sunRise);
$sunSetData = date(('H:i'),$sunSet);
sg('ThisComputer.SunRiseTime', $sunRiseData);
sg('ThisComputer.SunSetTime', $sunSetData);
|
Прогноз погоды на завтра
|
//обновляем страницу на всякий случай
$homepage = file_get_contents('http://127.0.0.1/admin.php?pd=cGFuZWw6e2FjdGlvbj1hcHBfb3BlbndlYXRoZXJ9pz_&md=app_openweather&inst=adm&ow_subm=getWeather');
// Погода на завтра полная;
//Температура утром
$wu=round(gg("ow_day1.temp_morn "));
$tempwu=$wu;
if($tempwu >= 5 ){ $tempcelsu=" градусов "; }
elseif($tempwu == 1){ $tempcelsu= " градус "; }
elseif($tempwu >= 2 and $tempwu <= 4){ $tempcelsu= "градуса "; }
if($tempwu<= -5 ){ $tempcelsu=" градусов "; }
elseif($tempwu == -1){ $tempcelsu= " градус "; }
elseif($tempwu <= -2 and $tempwu >= 4){ $tempcelsu= "градуса "; }
//Температура днем
$wd=round(gg("ow_day1.temp_day "));
$tempwd=$wd;
if($tempwd >= 5 ){ $tempcelsd=" градусов "; }
elseif($tempwd == 1){ $tempcelsd= " градус "; }
elseif($tempwd >= 2 and $tempwd <= 4){ $tempcelsd= "градуса "; }
if($tempwd<= -5 ){ $tempcelsd=" градусов "; }
elseif($tempwd == -1){ $tempcelsd= " градус "; }
elseif($tempwd <= -2 and $tempwd >= 4){ $tempcelsd= "градуса "; }
//Температура вечером
$we=round(gg("ow_day1.eve "));
$tempwe=$we;
if($tempwe >= 5 ){ $tempcelse=" градусов "; }
elseif($tempwe == 1){ $tempcelse= " градус "; }
elseif($tempwe >= 2 and $tempwe <= 4){ $tempcelse= "градуса "; }
if($tempwe<= -5 ){ $tempcelse=" градусов "; }
elseif($tempwe == -1){ $tempcelse= " градус "; }
elseif($tempwe <= -2 and $tempwe >= 4){ $tempcelse= "градуса "; }
$pogoda="Завтра ".gg("ow_day1.date ").". На завтра прогноз погоды обещает " .gg("ow_day1.weather_type ").". Облачность составляет ".gg("ow_ day1.clouds ")."%. Температура утром составит ".$wu." ".$tempcelsu.". Днем ".$wd." ".$tempcelsd." цельсия."." Вечером ".$we." ".$tempcelse.".";
// определяем влажность
$h=round(gg("ow_ day1.humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels=" процентов "; }
if($tempw == 1){
$tempcels= процент ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= " процента "; }
}
$vlagnost=" Относительная влажность ".$h." ".$tempcels. ".";
// определяем давление
$pressure=(float)gg("ow_ day1_mmhg");
if ($pressure<738) {
$presue=' Атмосферное давление пониженное .';
} elseif ($pressure>768) {
$presue =' Атмосферное давление повышенное.';
} else {
$presue =' Атмосферное давление нормальное.';
}
// ветер
$WindSpeed=(float)gg("ow_ day1.wind_speed");
if ($WindSpeed<1) {
$svetra=' Ветра нет.';
} elseif ($WindSpeed<3) {
$svetra =' Ветер слабый.';
} elseif ($WindSpeed<6) {
$svetra =' Ветер сильный.';
} elseif ($WindSpeed<9) {
$svetra =' Ветер очень сильный.';
} else {
$svetra =' Ветер очень! Очень сильный.';
}
if (gg(' ow_ day1.wind_direction')> 45 and gg(' ow_ day1.wind_direction')< 135){
$WindDir='восточное';
} elseif(gg(' ow_ day1.wind_direction')>= 135 and gg(' ow_ day1.wind_direction')<= 225){
$WindDir='южное';
} elseif(gg(' ow_ day1.wind_direction')> 225 and gg(' ow_ day1.wind_direction')< 315){
$WindDir='западное';
} else{
$WindDir='северное';
}
$veter= $svetra.' Направление '.$WindDir.'.';
say($pogoda." ".$vlagnost." ".$presue." ".$veter,2);
|
Прогноз погоды на послезавтра
|
//обновляем страницу на всякий случай
$homepage = file_get_contents('http://127.0.0.1/admin.php?pd=cGFuZWw6e2FjdGlvbj1hcHBfb3BlbndlYXRoZXJ9pz_&md=app_openweather&inst=adm&ow_subm=getWeather');
// Погода на завтра полная;
//Температура утром
$wu=round(gg("ow_day2.temp_morn "));
$tempwu=$wu;
if($tempwu >= 5 ){ $tempcelsu=" градусов "; }
elseif($tempwu == 1){ $tempcelsu= " градус "; }
elseif($tempwu >= 2 and $tempwu <= 4){ $tempcelsu= "градуса "; }
if($tempwu<= -5 ){ $tempcelsu=" градусов "; }
elseif($tempwu == -1){ $tempcelsu= " градус "; }
elseif($tempwu <= -2 and $tempwu >= 4){ $tempcelsu= "градуса "; }
//Температура днем
$wd=round(gg("ow_day2.temp_day "));
$tempwd=$wd;
if($tempwd >= 5 ){ $tempcelsd=" градусов "; }
elseif($tempwd == 1){ $tempcelsd= " градус "; }
elseif($tempwd >= 2 and $tempwd <= 4){ $tempcelsd= "градуса "; }
if($tempwd<= -5 ){ $tempcelsd=" градусов "; }
elseif($tempwd == -1){ $tempcelsd= " градус "; }
elseif($tempwd <= -2 and $tempwd >= 4){ $tempcelsd= "градуса "; }
//Температура вечером
$we=round(gg("ow_day2.eve "));
$tempwe=$we;
if($tempwe >= 5 ){ $tempcelse=" градусов "; }
elseif($tempwe == 1){ $tempcelse= " градус "; }
elseif($tempwe >= 2 and $tempwe <= 4){ $tempcelse= "градуса "; }
if($tempwe<= -5 ){ $tempcelse=" градусов "; }
elseif($tempwe == -1){ $tempcelse= " градус "; }
elseif($tempwe <= -2 and $tempwe >= 4){ $tempcelse= "градуса "; }
$pogoda="Послезавтра ".gg("ow_day2.date ").". Прогноз погоды обещает " .gg("ow_day2.weather_type ").". Облачность составляет ".gg("ow_ day2.clouds ")."%. Температура утром составит ".$wu." ".$tempcelsu.". Днем ".$wd." ".$tempcelsd." цельсия."." Вечером ".$we." ".$tempcelse.".";
// определяем влажность
$h=round(gg("ow_ day2.humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels=" процентов "; }
if($tempw == 1){
$tempcels=" процент "; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= процента ; }
}
$vlagnost=" Относительная влажность ".$h." ".$tempcels. ".";
// определяем давление
$pressure=(float)gg("ow_ day2_mmhg");
if ($pressure<738) {
$presue=' Атмосферное давление пониженное .';
} elseif ($pressure>768) {
$presue =' Атмосферное давление повышенное.';
} else {
$presue =' Атмосферное давление нормальное.';
}
// ветер
$WindSpeed=(float)gg("ow_ day2.wind_speed");
if ($WindSpeed<1) {
$svetra=' Ветра нет.';
} elseif ($WindSpeed<3) {
$svetra =' Ветер слабый.';
} elseif ($WindSpeed<6) {
$svetra =' Ветер сильный.';
} elseif ($WindSpeed<9) {
$svetra =' Ветер очень сильный.';
} else {
$svetra =' Ветер очень! Очень сильный.';
}
if (gg(' ow_ day2.wind_direction')> 45 and gg(' ow_ day2.wind_direction')< 135){
$WindDir='восточное';
} elseif(gg(' ow_ day2.wind_direction')>= 135 and gg(' ow_ day2.wind_direction')<= 225){
$WindDir='южное';
} elseif(gg(' ow_ day2.wind_direction')> 225 and gg(' ow_ day2.wind_direction')< 315){
$WindDir='западное';
} else{
$WindDir='северное';
}
$veter= $svetra.' Направление '.$WindDir.'.';
say($pogoda." ".$vlagnost." ".$presue." ".$veter,2);
|
Прогноз погоды на сегодня
|
//обновляем страницу на всякий случай
$homepage = file_get_contents('http://127.0.0.1/admin.php?pd=cGFuZWw6e2FjdGlvbj1hcHBfb3BlbndlYXRoZXJ9pz_&md=app_openweather&inst=adm&ow_subm=getWeather');
// Погода на сегодня;
var_dump(parse_url($url));
$w=round(gg("ow_fact.temperature"));
$tempw=$w;
if($tempw >= 5 ){ $tempcels=" градусов "; }
elseif($tempw == 1){ $tempcels= " градус "; }
elseif($tempw >= 2 and $tempw <= 4){ $tempcels= "градуса "; }
if($tempw <= -5 ){ $tempcels=" градусов "; }
elseif($tempw == -1){ $tempcels= " градус "; }
elseif($tempw <= -2 and $tempw >= 4){ $tempcels= "градуса "; }
$segpogoda="Сегодня ".gg("ow_fact.weather_type").". Облачность составляет ".gg("ow_fact.clouds ")."%.".' Температура '.$w." ".$tempcels." цельсия";;
// определяем влажность
$h=round(gg("ow_fact.humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$tempcels= "процентов" ; }
if($tempw == 1){
$tempcels= "процент" ; }
if($tempw >= 2 and $tempw <= 4){
$tempcels= "процента" ; }
}
$vlagnost=" Относительная влажность ".$h." ".$tempcels. ".";
// определяем давление
$pressure=(float)gg("ow_fact.pressure_mmhg");
if ($pressure<738) {
$presue=' Атмосферное давление пониженное .';
} elseif ($pressure>768) {
$presue =' Атмосферное давление повышенное.';
} else {
$presue =' Атмосферное давление нормальное.';
}
// ветер
$WindSpeed=(float)gg("ow_fact.wind_speed");
if ($WindSpeed<1) {
$svetra=' Ветра нет.';
} elseif ($WindSpeed<3) {
$svetra =' Ветер слабый.';
} elseif ($WindSpeed<6) {
$svetra =' Ветер сильный.';
} elseif ($WindSpeed<9) {
$svetra =' Ветер очень сильный.';
} else {
$svetra =' Ветер очень! Очень сильный.';
}
if (gg('ow_fact.wind_direction')> 45 and gg('ow_fact.wind_direction')< 135){
$WindDir='восточное';
} elseif(gg('ow_fact.wind_direction')>= 135 and gg('ow_fact.wind_direction')<= 225){
$WindDir='южное';
} elseif(gg('ow_fact.wind_direction')> 225 and gg('ow_fact.wind_direction')< 315){
$WindDir='западное';
} else{
$WindDir='северное';
}
$veter= $svetra.' Направление '.$WindDir.'.';
// Прогноз погоды на день
if (timeBetween("00:00", "12:00")){
$w=round(gg("ow_day0.temp_day"));
if($tempw >= 5 ){ $tempcels=" градусов "; }
elseif($tempw == 1){ $tempcels= " градус "; }
elseif($tempw >= 2 and $tempw <= 4){ $tempcels= "градуса "; }
if($tempw <= -5 ){ $tempcels=" градусов "; }
elseif($tempw == -1){ $tempcels= " градус "; }
elseif($tempw <= -2 and $tempw >= 4){ $tempcels= "градуса "; }
$prognoz="Днём ".gg("ow_day0.weather_type").". Температура ".$w." ".$tempcels." цельсия.";
}
// Прогноз погоды на вечер
if (timeBetween("12:00", "16:00")){
$w=round(gg("ow_day0.temp_day"));
if($tempw >= 5 ){ $tempcels=" градусов "; }
elseif($tempw == 1){ $tempcels= " градус "; }
elseif($tempw >= 2 and $tempw <= 4){ $tempcels= "градуса "; }
if($tempw <= -5 ){ $tempcels=" градусов "; }
elseif($tempw == -1){ $tempcels= " градус "; }
elseif($tempw <= -2 and $tempw >= 4){ $tempcels= "градуса "; }
$prognoz="Вечером будет ".gg("ow_day0.weather_type").". Температура ".$w." ".$tempcels." цельсия";
}
// Прогноз погоды на ночь
if (timeBetween("16:00", "24:00")){
$w=round(gg("ow_day0.temp_day"));
if($tempw >= 5 ){ $tempcels=" градусов "; }
elseif($tempw == 1){ $tempcels= " градус "; }
elseif($tempw >= 2 and $tempw <= 4){ $tempcels= "градуса "; }
if($tempw <= -5 ){ $tempcels=" градусов "; }
elseif($tempw == -1){ $tempcels= " градус "; }
elseif($tempw <= -2 and $tempw >= 4){ $tempcels= "градуса "; }
$prognoz="Ночью будет ".gg("ow_day1.weather_type").". Температура ".$w." ".$tempcels." цельсия";
}
// Погода на завтра
$w=round(gg("ow_day1.temperature"));
$tempw=$w;
if($tempw >= 5 ){ $tempcels=" градусов "; }
elseif($tempw == 1){ $tempcels= " градус "; }
elseif($tempw >= 2 and $tempw <= 4){ $tempcels= "градуса "; }
if($tempw <= -5 ){ $tempcels=" градусов "; }
elseif($tempw == -1){ $tempcels= " градус "; }
elseif($tempw <= -2 and $tempw >= 4){ $tempcels= "градуса "; }
$pogodaz = "Завтра ".gg("ow_day1.weather_type").". Температура завтра будет ".$w." ".$tempcels." цельсия.";
say($segpogoda." ".$vlagnost." ".$presue." ".$veter." ".$prognoz." ".$pogodaz,2);
|
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');
}
|