backup
|
set_time_limit(500);
say('Резервное копирование запущено');
include(DIR_MODULES . 'backup/backup.class.php');
$backup_module = new backup();
$backup_module->create_backup($out);
|
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);
|
cameraVLightLevel
|
$url = 'http://192.168.10.42:8080/shot.jpg';
$im = @imagecreatefromjpeg($url);
imagefilter($im, IMG_FILTER_GRAYSCALE);
$rgb_tot = 0;
for ($y = 0; $y < 480; $y++) {
for ($x = 0; $x < 640; $x++) {
$rgb = imagecolorat($im, $x, $y);
$rgb_tot = $rgb + $rgb_tot;
}
}
$result = round($rgb_tot / 307200, 0);
$final = round($result / 1000000, 1);
sg('WebCamV.LightLevel',$final);
if ($final>4){
sg('WebCamV.LightLevelValue','2');
sg('WebCamV.LightLevelWord','норма');
}else if ($final<=4&&$final>1){
sg('WebCamV.LightLevelValue','1');
sg('WebCamV.LightLevelWord','тускло');
}else if ($final<=1){
sg('WebCamV.LightLevelValue','0');
sg('WebCamV.LightLevelWord','темно');
}
if (gg('WebCamV.LightLevelValue')<2 && gg('h2.status')){
sg('h2.status',0);
}else if (gg('WebCamV.LightLevelValue')>1 && !gg('h2.status') && gg('DarknessMode.active')){
sg('h2.status',1);
}
|
CamSelect
|
$text=$params['SUBJECT'];
if (stristr($text,'Motion')) {
}
if (stristr($text,'Dom')) {
clearTimeOut('CameraDom_move');
setTimeOut('CameraDom_move',"sg('CameraDom.motionDetected',0);",80);
$cd = gg('CameraDom.dayCount')+1;
sg('CameraDom.motionDetected',1);
sg('CameraDom.updatedTimestamp',time());
sg('CameraDom.dayCount',$cd);
sg('CameraDom.statusText',date('Y-m-d H:i:s'));
} elseif (stristr($text,'Ulica')) {
$cu = gg('CameraUlica.dayCount')+1;
clearTimeOut('CameraUlica_move');
setTimeOut('CameraUlica_move',"sg('CameraUlica.motionDetected',0);",80);
sg('CameraUlica.motionDetected',1);
sg('CameraUlica.updatedTimestamp',time());
sg('CameraUlica.dayCount',$cu);
sg('CameraUlica.statusText',date('Y-m-d H:i:s'));
}else{
say ($text);
}
if (gg('ow_fact.wind_speed')<5 && getHistorySum("CameraUlica.motionDetected",strtotime("-1 hour"))<10){
clearTimeOut("Mov_tim");
setTimeOut("Mov_tim", runScript("Mov"), 2*60);
}
|
lightOff
|
$light=getObjectsByClass("Light");
$total=count($light);
for($i=0;$i<$total;$i++) {
callMethod($light[$i]['TITLE'].'.turnOff');
//say($light[$i]['TITLE'].'.turnOff');
}
|
Mov
|
$TimeGarage = gg('WebCamG.updatedTimestamp');
$TimeDoor = gg('ExDoor.updatedTimestamp');
$MotionDom = gg('CameraDom.motionDetected');
$TimeDom = gg('CameraDom.updatedTimestamp');
$MotionUlica = gg('CameraUlica.motionDetected');
$TimeUlica = gg('CameraUlica.updatedTimestamp');
if($TimeUlica<$TimeDom && $TimeDom-$TimeUlica>5 && $TimeDom-$TimeUlica<=60 && abs($TimeDoor-$TimeDom)>2*60 && abs($TimeGarage-$TimeUlica)>2*60) {
say("Похоже домой кто-то пришел!");
//sleep(3);
runscript('sendCamUVideo');
runscript('sendCamDVideo');
} else if($TimeUlica>$TimeDom && $TimeUlica-$TimeDom>5 && $TimeUlica-$TimeDom<=60 && abs($TimeDom-$TimeDoor)>2*60 && abs($TimeGarage-$TimeDom)>2*60){
Say ("Похоже из дома кто-то ушел!");
//sleep(3);
runscript('sendCamDVideo');
runscript('sendCamUVideo');
} else if($TimeUlica<$TimeDom && $TimeDom-$TimeUlica>5 && $TimeDom-$TimeUlica<=60 && abs($TimeDoor-$TimeDom)<=2*60 && abs($TimeDom-$TimeGarage)>2*60){
Say ("В дом кто-то пришел!");
//sleep(3);
runscript('sendCamUVideo');
runscript('sendCamDVideo');
} else if($TimeUlica>$TimeDom && $TimeUlica-$TimeDom>5 && $TimeUlica-$TimeDom<=60 && abs($TimeDoor-$TimeDom)<=20 && abs($TimeDoor-$TimeGarage)>3*60){
Say ("Из дома кто-то ушел!");
//sleep(3);
runscript('sendCamDVideo');
runscript('sendCamUVideo');
} else if($TimeUlica<$TimeDom && $TimeDom-$TimeUlica>5 && $TimeDom-$TimeUlica<=3*60 && abs($TimeDom-$TimeGarage)<=60){
Say ("Домой кто то приехал!");
//sleep(3);
runscript('sendCamUVideo');
runscript('sendCamGImage');
runscript('sendCamDVideo');
} else if($TimeUlica>$TimeDom && $TimeUlica-$TimeDom<=60 && abs($TimeUlica-$TimeGarage)<=60){
Say ("Из дома кто-то уехал!");
//sleep(3);
runscript('sendCamDVideo');
runscript('sendCamGImage');
runscript('sendCamUVideo');
}
|
sendAllCam
|
//say("Дом");
$m=date('m');
$Y=date('Y');
$dm = cal_days_in_month(CAL_GREGORIAN, $m, $Y);
$d=date('d');
if (substr($d,-2,1)=='0'){
$yd=$d-1;
$yd='0'.$yd;
}else if ($d=='10'){
$yd='09';
}else if ($d=='01'){
$yd=$dm;
if (substr($d,-2,1)=='0'){
$m=$m-1;
$m='0'.$m;
}else{
$m=$m-1;
}
}else{
$yd=$d-1;
}
if (file_exists('D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$d.'/')){
$filepath = 'D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$d.'/';
}else{
$filepath = 'D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$yd.'/';
}
foreach(glob($filepath . '*.ts') as $file) {
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
$LastModifiedFile = $FileName[$lastIndex];
//say($LastModifiedFile);
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i '. $LastModifiedFile.' -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cached/img/out0.mp4');
if (file_exists('D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$d.'/')){
$filepath = 'D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$d.'/';
}else{
$filepath = 'D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$yd.'/';
}
foreach(glob($filepath . '*.ts') as $file) {
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
$LastModifiedFile = $FileName[$lastIndex-1];
//say($LastModifiedFile);
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i '. $LastModifiedFile.' -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cached/img/out4.mp4');
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i http://192.168.10.42:8080/video -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cached/img/out3.mp4');
$filepath = 'C:/_majordomo/htdocs/cached/webcamG/Gallery/';
foreach(glob($filepath . '*.jpg') as $file) {
// далее получаем последний добавленный/измененный файл
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
// Сортируем массив с файлами по дате изменения
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
// И вот он наш последний добавленный или измененный файл
$LastModifiedFile = $FileName[$lastIndex];
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAdmin("$LastModifiedFile");
$filepath = 'C:/_majordomo/htdocs/cached/webcamK/Gallery/';
foreach(glob($filepath . '*.jpg') as $file) {
// далее получаем последний добавленный/измененный файл
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
// Сортируем массив с файлами по дате изменения
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
// И вот он наш последний добавленный или измененный файл
$LastModifiedFile = $FileName[$lastIndex];
$telegram_module->sendImageToAdmin("$LastModifiedFile");
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cached/img/out3.mp4");
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cached/img/out4.mp4");
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cached/img/out0.mp4");
|
sendCamDVideo
|
//say("Дом");
$m=date('m');
$Y=date('Y');
$dm = cal_days_in_month(CAL_GREGORIAN, $m, $Y);
$d=date('d');
if (substr($d,-2,1)=='0'){
$yd=$d-1;
$yd='0'.$yd;
}else if ($d=='10'){
$yd='09';
}else if ($d=='01'){
$yd=$dm;
if (substr($d,-2,1)=='0'){
$m=$m-1;
$m='0'.$m;
}else{
$m=$m-1;
}
}else{
$yd=$d-1;
}
if (file_exists('D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$d.'/')){
$filepath = 'D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$d.'/';
}else{
$filepath = 'D:/NVR-Video/14d2a9a9-3176-366b-a088-252a64d18f0c/'.$Y.'/'.$m.'/'.$yd.'/';
}
foreach(glob($filepath . '*.ts') as $file) {
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
$LastModifiedFile = $FileName[$lastIndex-4];
$LastModifiedFile2 = $FileName[$lastIndex-2];
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i "concat:'.$LastModifiedFile.'|'. $LastModifiedFile2.'" -t 5 -f mp4 -vcodec copy libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cms/cached/img/out0.mp4');
//exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i '. $LastModifiedFile.' -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cms/cached/img/out0.mp4');
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cms/cached/img/out0.mp4");
|
sendCamGImage
|
$filepath = 'C:/_majordomo/htdocs/cms/cached/webcamG/Gallery/';
foreach(glob($filepath . '*.jpg') as $file) {
// далее получаем последний добавленный/измененный файл
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
// Сортируем массив с файлами по дате изменения
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
// И вот он наш последний добавленный или измененный файл
$LastModifiedFile = $FileName[$lastIndex];
//copy("http://192.168.10.10:8080/cam_1.jpg", "C:/_majordomo/htdocs/cached/img/out3.jpg");
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAdmin("$LastModifiedFile");
|
sendCamKImage
|
$filepath = 'C:/_majordomo/htdocs/cms/cached/webcamK/Gallery/';
foreach(glob($filepath . '*.jpg') as $file) {
// далее получаем последний добавленный/измененный файл
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
// Сортируем массив с файлами по дате изменения
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
// И вот он наш последний добавленный или измененный файл
$LastModifiedFile = $FileName[$lastIndex];
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAdmin("$LastModifiedFile");
|
sendCamUVideo
|
$m=date('m');
$Y=date('Y');
$dm = cal_days_in_month(CAL_GREGORIAN, $m, $Y);
$d=date('d');
if (substr($d,-2,1)=='0'){
$yd=$d-1;
$yd='0'.$yd;
}else if ($d=='10'){
$yd='09';
}else if ($d=='01'){
$yd=$dm;
if (substr($d,-2,1)=='0'){
$m=$m-1;
$m='0'.$m;
}else{
$m=$m-1;
}
}else{
$yd=$d-1;
}
if (file_exists('D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$d.'/')){
$filepath = 'D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$d.'/';
}else{
$filepath = 'D:/NVR-Video/f31bfe1f-c38d-3c3c-b1ad-4aa9fb3f6507/'.$Y.'/'.$m.'/'.$yd.'/';
}
foreach(glob($filepath . '*.ts') as $file) {
$LastModified[] = filemtime($file); // массив файлов со временем изменения файла
$FileName[] = $file; // массив всех файлов
}
$files = array_multisort($LastModified, SORT_NUMERIC, SORT_ASC, $FileName);
$lastIndex = count($LastModified) - 1;
$LastModifiedFile = $FileName[$lastIndex-2];
$LastModifiedFile2 = $FileName[$lastIndex];
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i "concat:'.$LastModifiedFile.'|'. $LastModifiedFile2.'" -t 5 -f mp4 -vcodec copy libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cms/cached/img/out4.mp4');
//say($LastModifiedFile);
//exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i '. $LastModifiedFile.' -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cms/cached/img/out4.mp4');
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cms/cached/img/out4.mp4");
|
sendWebCamVVideo
|
exec('C:\_majordomo\apps\ffmpeg\ffmpeg.exe -y -i http://192.168.10.42:8080/video -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 C:/_majordomo/htdocs/cms/cached/img/out3.mp4');
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendVideoToAdmin("C:/_majordomo/htdocs/cms/cached/img/out3.mp4");
|
alert
|
$usr = 0;
$ping = ping('192.168.10.34')+ping('192.168.10.35')+ping('192.168.10.40')+ping('192.168.10.47');
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
if(gg($obj['TITLE'].".online")=='1' && time()-gg($obj['TITLE'].".NetUpdatedTimestamp")>5*60){
$usr = $usr + 1;
}
}
if ($ping==$usr && $usr<2){
say($ping);
say($usr);
callMethod('SecurityArmedMode.alert');
}
|
manageConnectService
|
Включение/выключение сервиса синхронизации через облако
include_once(DIR_MODULES.'connect/connect.class.php');
$cn=new connect();
$cn->getConfig();
if ($params['start']) {
$cn->config['CONNECT_SYNC']='1';
$cn->saveConfig();
}
if ($params['stop']) {
$cn->config['CONNECT_SYNC']='0';
$cn->saveConfig();
}
echo $cn->config['CONNECT_SYNC'];
|
manageWebCamMotion
|
Включение/выключение детектора движений на камере
if ($params['start']) {
DebMes("Starting web-cam motion detection");
getURL('http://localhost:8080/0/detection/start',0);
}
if ($params['stop']) {
DebMes("Stopping web-cam motion detection");
getURL('http://localhost:8080/0/detection/pause',0);
}
|
manageWebCamService
|
Включение/выключение вебкамеры
if ($params['start']) {
safe_exec('cp /etc/motion/motion_enabled /etc/default/motion');
safe_exec('service motion start');
}
if ($params['stop']) {
safe_exec('cp /etc/motion/motion_disabled /etc/default/motion');
safe_exec('service motion stop');
}
|
Simulation
|
say('Начата симуляция присутствия');
callMethod('h2.turnOn');
callMethod('h1.turnOn');
callMethod('k4.turnOn');
clearTimeOut('h2');
setTimeOut('h2',"callMethod('h2.turnOff');",15*60);
setTimeOut('turnOffEverything',"runScript('turnOffEverything');",30*60);
setTimeOut('SC2BturnOn',"callMethod('SC2B.turnOn');",31*60);
setTimeOut('SC2BturnOff',"callMethod('SC2B.turnOff');",60*60);
SetTimeOut("Simulation","runScript('Simulation');", 65*60);
|
turnOffEverything
|
Выключить все приборы
$objects=array('k1','k2','k3','k4','l1','b1','v1','h1','t1','h2','p1','SC2B','SC3L');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
if(gg('TV.status')=='1'){
callMethod('TV.turnOff');
}
runScript('HomePCScreenOff');
|
TurnOffh1h2
|
$objects=array('h1','h2');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
TurnOffk
|
$objects=array('k2','k3');
if (gg('LAMABook.inUse')=='0'){
array_push($objects,'k4');
}else{
callMethod('k4.turnOn');
}
if (gg('HOMEPC.inUse')=='0'){
array_push($objects,'k1');
}else{
callMethod('k1.turnOn');
}
foreach($objects as $o) {
callMethod($o.'.turnoff');
//say($o);
}
|
TurnOffvt
|
$objects=array('v1','t2');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
turnOnEverything
|
Выключить все приборы
$objects=array('k1','k2','k3','k4','l1','b1','v1','h1','t1','h2','p1','SC2B','SC3L');
foreach($objects as $o) {
callMethod($o.'.turnOn');
}
|
TurnOnk
|
if (gg('LAMABook.inUse')=='0'){
array_push($objects,'k4');
}else{
callMethod('k4.turnOn');
}
if (gg('HOMEPC.inUse')=='0'){
array_push($objects,'k1');
}else{
callMethod('k1.turnOn');
}
|
D3
|
$text=$params['SUBJECT'];
//if (stristr($text,'Motion')) {
say($text);
|
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'));
}
|
RBGAtention
|
sg('RMPro.RGBLight',1);
sleep(1);
sg('RMPro.RGBLight',1);
|
reminderExDoor
|
if (gg('ExDoor.status')=='1'){
say('Входная дверь открыта!',2);
SetTimeOut("reminderExdoorTimer","runScript('reminderExDoor');", 15*60);
}
|
SomebodyHome
|
Срабатывает в том случае, когда кто-то появился дома
callMethod('EconomMode'.'.'.'deactivate');
say('Здравствуйте!', 2);
runScript('reportStatus', array());
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
setTimeOut('stopWebCamDetection', " runScript('manageWebCamMotion', array('stop'=>'1'));", (int)('60'));
}
|
startUp
|
Система загружена
say('Система загружена', 1);
|
welcome
|
$users=getObjectsByClass("Users");
$usrtotal=count($users);
$upd=gg('NobodyHomeMode.updated');
if(time()-$upd>4*60*60){ // || (time()-$upd<60 && time()-gg('SecurityArmedMode.updated')<30)){
$res='Добро пожаловать домой.';
for($i=0;$i<$usrtotal;$i++) {
if (time()-getGlobal($users[$i]['TITLE'].'.NetUpdatedTimestamp')<3*60){
$res.= getGlobal($users[$i]['TITLE'].'.fullName').'.';
}
}
if(time()-$upd>24*60*60){
$res.='Я скучала...';
}
if (round(gg('A1.temperature'))==round(gg('RMTemp.temperature'))){
$res.='Температура в кухне и в зале: '.round(gg('RMTemp.temperature')).' градусов. Влажность: '.round(gg('A1.humidity')).' процентов.';
}else{
$res.='Температура в кухне: '.round(gg('A1.temperature')).', в зале: '.round(gg('RMTemp.temperature')).' градусов. Влажность: '.round(gg('A1.humidity')).' процентов.';
}
if (gg('Security.stateColor')=='green' && gg('System.stateColor')=='green' && gg('Communication.stateColor')=='green') {
$res.='Все системы работают в штатном режиме.';
} else {
if (gg('Security.stateColor')!='green') {
$res.="Имеется проблема безопасности: ".getGlobal('Security.stateDetails').'.';
}
if (gg('System.stateColor')!='green') {
$res.="Имеется системная проблема: ".getGlobal('System.stateDetails').'.';
}
if (gg('Communication.stateColor')!='green') {
$res.="Имеется проблема связи: ".getGlobal('Communication.stateDetails').'.';
}
}
//$res.='Не забудьте покормить кошек и проверить лоток.';
sayTo($res,1,Tab);
}else{
$res='Привет.';
for($i=0;$i<$usrtotal;$i++) {
if (time()-getGlobal($users[$i]['TITLE'].'.NetUpdatedTimestamp')<3*60 && getHistoryCount($users[$i]['TITLE'].'.NetUpdatedTimestamp',strtotime("-3 hour"),strtotime("-3 minute"))<1){
$res.= getGlobal($users[$i]['TITLE'].'.fullName').'.';
}
}
if (gg('Security.stateColor')!='green') {
$res.="Имеется проблема безопасности: ".getGlobal('Security.stateDetails').'.';
}
if (gg('System.stateColor')!='green') {
$res.="Имеется системная проблема: ".getGlobal('System.stateDetails').'.';
}
if (gg('Communication.stateColor')!='green') {
$res.="Имеется проблема связи: ".getGlobal('Communication.stateDetails').'.';
}
sayTo($res,1,Tab);
}
if (gg('DarknessMode.active')=='1'){
//callMethod('h2.turnOn');
if(gg('A1.light')<1){
callMethod('k2.turnOn');
}
}
callMethod('h1.turnOn');
setTimeout("h1","callMethod('h1.turnOff');",5*60);
|