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);
|
reboot
|
safe_exec("sudo reboot");
|
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);
|
restart_mjd
|
echo shell_exec( 'sudo /var/www/restart.sh' );
|
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);
|
газ месяц
|
$online_2=getGlobal("gaz.oldM"); //получаем старые значения счетчика газа
$online_g2=getGlobal("gaz_voda.data_gaz"); //получаем новые значения счетчика газа
$hour_2=($online_g2-$online_2); //высчитываем потребление газ за последний час
sg('gaz.oldM',$online_g2); //записываем измененное новое значение счетчика газа
sg('gaz.month',$hour_2); //записываем значение потребления газа
|
газ сутки
|
$online_1=getGlobal("gaz.oldS"); //получаем старые значения счетчика газа
$online_g1=getGlobal("gaz_voda.data_gaz"); //получаем новые значения счетчика газа
$hour_1=($online_g1-$online_1); //высчитываем потребление газ за последний час
sg('gaz.oldS',$online_g1); //записываем измененное новое значение счетчика газа
sg('gaz.sut',$hour_1); //записываем значение потребления газа
|
газ час
|
$online_g=getGlobal("gaz.oldH"); //получаем старые значения счетчика газа
$online_g3=getGlobal("gaz_voda.data_gaz"); //получаем новые значения счетчика газа
$hour_g=($online_g3-$online_g); //высчитываем потребление газ за последний час
sg('gaz.oldH',$online_g3); //записываем измененное новое значение счетчика газа
sg('gaz.hour',$hour_g); //записываем значение потребления газа
|
свет месяц
|
$online_4=getGlobal("svet.oldM"); //получаем старые значения счетчика света
$online_g4=getGlobal("elektrochetchik.data_elektro"); //получаем новые значения счетчика света
$hour_4=($online_g4-$online_4); //высчитываем потребление света за последний час
sg('svet.oldM',$online_g4); //записываем измененное новое значение счетчика света
sg('svet.month',$hour_4); //записываем значение потребления света
|
свет сутки
|
$online_5=getGlobal("svet.oldS"); //получаем старые значения счетчика света
$online_g5=getGlobal("elektrochetchik.data_elektro"); //получаем новые значения счетчика света
$hour_5=($online_g5-$online_5); //высчитываем потребление света за последний час
sg('svet.oldS',$online_g5); //записываем измененное новое значение счетчика света
sg('svet.sut',$hour_5); //записываем значение потребления света
|
свет час
|
$online_6=getGlobal("svet.oldH"); //получаем старые значения счетчика света
$online_g6=getGlobal("elektrochetchik.data_elektro"); //получаем новые значения счетчика света
$hour_6=($online_g6-$online_6); //высчитываем потребление света за последний час
sg('svet.oldH',$online_g6); //записываем измененное новое значение счетчика света
sg('svet.hour',$hour_6); //записываем значение потребления света
|
авто радио
|
cm('RadioSetting.Control', array('cmd'=>'stop'));
say('Включаю авто радио ');
cm('RadioSetting.Control', array('sta:авто радио'));
cm('RadioSetting.Control', array('play'));
cm('RadioSetting.Control', array('vol130'));
setGlobal("RadioSetting.RadioLedOn",1);
|
громкость выше
|
$vol = gg("ThisComputer.volumeLevel");
if ($vol < 100){
cm('RadioSetting.Control',array('vol'=> $vol+10 ));
} else {
cm('RadioSetting.Control',array('vol'=> 100 ));
}
|
громкость ниже
|
$vol = gg("ThisComputer.volumeLevel");
if ($vol > 10){
cm('RadioSetting.Control',array('vol'=> $vol-10 ));
} else {
cm('RadioSetting.Control',array('vol'=> 0 ));
}
|
дорожное радио
|
cm('RadioSetting.Control', array('cmd'=>'stop'));
say('Включаю дорожное радио ');
cm('RadioSetting.Control', array('sta:дорожное радио'));
cm('RadioSetting.Control', array('play'));
cm('RadioSetting.Control', array('vol30'));
setGlobal("RadioSetting.RadioLedOn",1);
|
музыка будильника
|
say('Доброе утро .пора вставать', 2);
say(timeNow(), 2);
runScript('радио дача');
|
радио дача
|
cm('RadioSetting.Control', array('cmd'=>'stop'));
say('Включаю радио дача');
cm('RadioSetting.Control', array('sta:радио дача'));
cm('RadioSetting.Control', array('play'));
cm('RadioSetting.Control', array('vol80'));
setGlobal("RadioSetting.RadioLedOn",1);
|
радио пуск
|
cm('RadioSetting.Control', array('cmd'=>'stop'));
say('Включаю радио');
cm('RadioSetting.Control', array('cmd'=>'play'));
setGlobal("RadioSetting.RadioLedOn",1);
|
радио стоп
|
cm('RadioSetting.Control',array('cmd'=>'stop'));
setGlobal("Radio.RadioLedOn",0);
say('Радио выключено');
|
CalcSunSetRise
|
Вычисление восхода и захода солнца
$lat=gg('ow_city.lat'); // широта
$long=gg('ow_city.lon'); // долгота
$sun_info = date_sun_info(time(), $lat, $long);
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
echo 'Восход: '.date("H:i", $sunrise).'<br>';
setGlobal('ThisComputer.SunRiseTime',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('ThisComputer.SunSetTime',date("H:i", $sunset));
//setGlobal('ThisComputer.LongTag',gmdate("H:i", $day_length));
}
if ($key == 'transit') {
echo 'В зените: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.Transit',date("H:i", $val));
}
if ($key == 'civil_twilight_begin') {
echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_begin',date("H:i:s", $val));
}
if ($key == 'civil_twilight_end') {
echo 'Конец вечерних сумерек: '.date("H:i", $val).'<br>';
//setGlobal('ThisComputer.civil_end',date("H:i", $val));
}
}
|
gps_log
|
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);
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`");
|
Hourly
|
Выполняется каждый час
|
Mikhail_batt
|
|
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'));
}
setGlobal('Mikhail'.'.'.'online', '0');
callMethod('NobodyHomeMode'.'.'.'activate');
|
SomebodyHome
|
Срабатывает в том случае, когда кто-то появился дома
callMethod('EconomMode'.'.'.'deactivate');
say('Здравствуйте!', 2);
runScript('reportStatus', array());
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
setTimeOut('stopWebCamDetection', " runScript('manageWebCamMotion', array('stop'=>'1'));", (int)('60'));
}
setGlobal('Mikhail'.'.'.'online', '1');
callMethod('NobodyHomeMode'.'.'.'deactivate');
|
startUp
|
Система загружена
say('Система загружена', 2);
runScript('tellIPAddress', array());
|
turnOffEverything
|
Выключить все приборы
$objects=array('Switch1','Switch2','Switch3');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|