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=101; //%
$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);
|
getSceneImage
|
погода от OpenWeatherMap
if($params['scene'] == "weather") {
$winter = array("/var/www/cms/scenes/backgrounds/winter.png");
$spring = array("/var/www/cms/scenes/backgrounds/spring.png");
$summer = array("/var/www/cms/scenes/backgrounds/summer.png");
$autumn = array("/var/www/cms/scenes/backgrounds/autumn.png");
$seasons = array(0 => $winter,
1 => $spring,
2 => $summer,
3 => $autumn);
$season = $seasons[floor(date('n') / 3) % 4];
$img = $season[rand(0, count($season) - 1)];
if (file_exists($img)) {
header("Content-type: image/png");
readfile($img);
}
} else {
$images = array("cms/scenes/backgrounds/weather_1067x640.jpg",
"cms/scenes/backgrounds/city_1067x640.jpg",
"cms/scenes/backgrounds/plants_1067x640.jpg");
$img = $images[rand(0, 2)];
if (file_exists($img)) {
header("Content-type: image/jpg");
readfile($img);
}
}
|
Lamp1.switch
|
реле 0 Свет прихожая
callMethod('Lamp1.switch');
|
Lamp2.switch
|
свет на кухне
callMethod('Lamp2.switch');
|
Lamp3.switch
|
свет на улице
callMethod('Lamp3.switch');
|
Lamp4.switch
|
свет в зале
callMethod('Lamp4.switch');
|
Lamp5.switch
|
свет в спальне
callMethod('Lamp5.switch');
|
RadioHi
|
радио громче
$vol = getGlobal('RadioSetting.VolumeLevel');
$vol = $vol+5;
if ($vol < 100) {
callMethod('RadioSetting.Control', array('vol'=> $vol));
} else {
callMethod('RadioSetting.Control', array('vol'=> 100));
}
|
RadioLow
|
радио тише
$vol = getGlobal('RadioSetting.volumeLevel');
$vol = $vol-5;
if ($vol > 5) {
callMethod('RadioSetting.Control', array('vol'=> $vol));
} else {
callMethod('RadioSetting.Control', array('vol'=> 0));
}
|
rebootSystem
|
Перезапуск системы
say("Подготовка к перезагрузке",2);
say("Сервер будет перезагружен через 30 секунд",1);
say("Сохранение БД",1);
$filename = '/var/www/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);
setTimeout("shutdownTimer","safe_exec('sudo shutdown -r now');",30);
|
restart_md.
|
echo shell_exec( 'sudo /var/www/restart.sh' );
say ("Произошло падение системы, произвожу рестарт циклов!", 2);
|
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);
|
SystemHi
|
максимальная системная громкость
$value = getGlobal('ThisComputer.VolumeLevel');
$value = $value+5;
if ($value < 100) {
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> $value));
} else {
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> 100));
}
|
SystemLow
|
минимальная громкость системы
$value = getGlobal('ThisComputer.VolumeLevel');
$value = $value-5;
if ($value > 5) {
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> $value));
} else {
callMethod('ThisComputer.VolumeLevelChanged', array('VALUE'=> 0));
}
|
turnOffEverything
|
Выключить все приборы
$objects=array('Switch1','Switch2','Switch3','Switch4','Switch5','Lamp1.switch');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
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'));
}
|
Proverka Zvukovik
|
|
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());
|
SystemInfo_UPS
|
в каком состоянии ИБП на данный момент
//Скрипт проверки состояния ИБП.
//Если вдруг upsmon не смог передать изменение состояния в MDM.
$UPS_state=exec("upsc smart-ups@192.168.10.112 ups.status");
//$UPS_state="LB";
switch ($UPS_state) {
case "OL":callMethod("UPS.checkInputState",array("stateColor"=>"green"));break;
case "OL TRIM":callMethod("UPS.checkInputState",array("stateColor"=>"green"));break;
case "OB":callMethod("UPS.checkInputState",array("stateColor"=>"yellow"));break;
case "LB":callMethod("UPS.checkInputState",array("stateColor"=>"red"));break;
//default:
// callMethod("UPS.checkInputState",array("stateColor"=>"green"));
};
|
WeatherFromYandex
|
произносит погоду
$temp=$xml->day[1]->day_part[1]->temperature_from;
if ($temp!="") {
if ($temp>0) {$temp='+'.$temp;}
$Tomorrow.=$temp; }
$Tomorrow.="...";
$temp=$xml->day[1]->day_part[1]->temperature_to;
if ($temp!="") {
if ($temp>0) {$temp='+'.$temp;}
$Tomorrow.=$temp;
$Tomorrow.="°, "; }
$Tomorrow.=$xml->day[1]->day_part[1]->weather_type;
$temp=$xml->day[0]->day_part[3]->temperature;
if ($temp!="") {
if ($temp>0) {$temp='+'.$temp;}
$night.=$temp;
$night.="°, "; }
$night.=$xml->day[0]->day_part[3]->weather_type;
sg($obj['TITLE'].".weatherTomorrow",$Tomorrow);
sg($obj['TITLE'].".weatherNight",$night);
|