backupimagetosamba
|
Резервное копирование каталогов и БД сервера локально и на яндекс диск
|
calculate_realfeel
|
$t = gg('ow_day0.temperature'); // температура на улице
$h = gg('ow_day0.humidity'); // влажность на улице
$w = gg('ow_day0.wind_speed'); // данные о ветре из прогноза OpenWeather
$w=$w*3.6/1.609;//m/s -> mph
$tF = $t *1.8+32; // перевод температуры в Farenheit
if ($t > 26.6){
// Считаем HeatIndex по Rothfusz
$_f=-42.379 + 2.04901523*$tF + 10.14333127*$h - 0.22475541*$tF*$h - 0.00683783*$tF*$tF - 0.05481717*$h*$h + 0.00122874*$tF*$tF*$h + 0.00085282*$tF*$h*$h -0.00000199*$tF*$tF*$h*$h;
if(($tF<112)&&($h<13)){
// If the RH is less than 13% and the temperature is between 80 and 112 degrees F, then the following adjustment is subtracted from HI:
$_f=$_f-((13-$h)/4)*sqrt((17-abs($tF-95.))/17);
}
if(($tF<88)&&($h>85)){
// On the other hand, if the RH is greater than 85% and the temperature is between 80 and 87 degrees F, then the following adjustment is added to HI:
//ADJUSTMENT = [(RH-85)/10] * [(87-T)/5]
$_f=$_f+(($h-85)/10)*((87-$tF)/5);
}
}else if ($t <= 10){
// Считаем фактор WindChild
$_f = 35.74+(0.6215*$tF)-(35.75*pow($w,0.16))+((0.4275*$tF)*pow($w,0.16));
}else{
//считаем по упрощенной формуле
$_f = 0.5*($tF+61+(($tF-68)*1.2)+($h*0.094));
}
// переводим в цельсии
$rf = round(($_f-32)/1.8,0);
//и пропишем значение
sg("ThisComputer.reelFeel",$rf);
// внесем дни недели прогноза
$numD=gg("ow_setting.forecast_interval");
$day[0]="Воскресенье";
$day[1]="Понедельник";
$day[2]="Вторник";
$day[3]="Среда";
$day[4]="Четверг";
$day[5]="Пятница";
$day[6]="Суббота";
for ($i = 1; $i < $numD; $i++) {
$dayNum = date("w", strtotime($date .' +'.$i.' day'));
$name = $day[date("w", strtotime($date .' +'.$i.' day'))];
sg("ow_day".$i.".name", $name);
}
|
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);
|
delete_cycles
|
function removeOldFile($dir,$time_live=360){
$time= intval(time()-$time_live);
foreach (glob($dir.'/*') as $file) {
if(is_dir($file)){
echo $file.":".$time_live;
removeOldFile($file,$time_live);
}else{
if($time > filemtime($file)){
unlink($file);
}
}
}
}
function clear_old_files(){
$expire_time = 86400; // Время через которое файл считается устаревшим (в сек.)
$dir = $_SERVER['DOCUMENT_ROOT']."/tmp/";
// проверяем, что $dir - каталог
if (is_dir($dir)) {
// открываем каталог
if ($dh = opendir($dir)) {
// читаем и выводим все элементы
// от первого до последнего
while (($file = readdir($dh)) !== false) {
// текущее время
$time_sec=time();
// время изменения файла
$time_file=filemtime($dir . $file);
// тепрь узнаем сколько прошло времени (в секундах)
$time=$time_sec-$time_file;
$unlink = $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$file;
if (is_file($unlink)){
if ($time>$expire_time){
if (unlink($unlink)){
echo 'Файл удален';
}else {
echo 'Ошибка при удалении файла';
}
}
}
}
// закрываем каталог
closedir($dh);
}
}
}
//86400 - сутки
//18000 - 3 часа
//610000 - неделя
$oldtime=86400;
removeOldFile('/var/www/cam/cam2/',$oldtime);
removeOldFile('/var/www/cam/cam1/',$oldtime);
|
getsutki
|
определяем день ночь утро вечер
if (timeBetween("00:00", "06:00")) {
$s='ночь';
} elseif (timeBetween("06:00", "10:00")) {
$s='утро';
} elseif (timeBetween("10:00", "16:00")) {
$s='день';
} else {
$s='вечер';
}
if (gg('sutki')==$s )
{echo "не изменились";} else
{sg('sutki',$s);echo $s; }
|
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);
|
Router_IP
|
|
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);
|
Включи насос
|
callMethod('Switch26'.'.'.'turnOn');
Say('Рециркуляционный насос включен',2);
|
Выключатель ванна включение
|
callMethod('Vannaya1'.'.'.'turnOn');
|
Выключатель ванна выключение
|
callMethod('Vannaya1'.'.'.'turnOff');
|
Выключатель гараж включение
|
callMethod('GaragS1'.'.'.'turnOn');
callMethod('GaragS2'.'.'.'turnOn');
|
Выключатель гараж выключение
|
callMethod('GaragS1'.'.'.'turnOff');
callMethod('GaragS2'.'.'.'turnOff');
|
Выключатель детская включение
|
callMethod('Detskaya'.'.'.'turnOn');
|
Выключатель детская выключение
|
callMethod('Detskaya'.'.'.'turnOff');
|
Выключатель зал выключение
|
callMethod('Zall2'.'.'.'turnOff');
|
Выключатель зал включение
|
callMethod('Zall2'.'.'.'turnOn');
|
Выключатель зал люстра выключение
|
callMethod('Zall1'.'.'.'turnOff');
|
Выключатель зал люстра включение
|
callMethod('Zall1'.'.'.'turnOn');
|
Выключатель кабинет включение
|
callMethod('Kabinet'.'.'.'turnOn');
|
Выключатель кабинет выключение
|
callMethod('Kabinet'.'.'.'turnOff');
|
Выключатель кондиционера вкл
|
|
Выключатель кондиционера выкл
|
|
Выключатель коридор включение
|
callMethod('koridor'.'.'.'turnOn');
|
Выключатель коридор выключение
|
callMethod('koridor'.'.'.'turnOff');
|
Выключатель кухня включение
|
callMethod('kuhnya2'.'.'.'turnOn');
|
Выключатель кухня выключение
|
callMethod('kuhnya2'.'.'.'turnOff');
|
Выключатель моя комната включение
|
callMethod('Switch51'.'.'.'turnOn');
|
Выключатель моя комната выключение
|
callMethod('Switch51'.'.'.'turnOff');
|
Выключатель туалет включение
|
callMethod('Switch25'.'.'.'turnOn');
|
Выключатель туалет выключение
|
callMethod('Switch25'.'.'.'turnOff');
|
Выключатель эркер выключение
|
callMethod('Erker'.'.'.'turnOff');
|
Выключатель эркер включение
|
callMethod('Erker'.'.'.'turnOn');
|
Выключи насос
|
callMethod('Switch26'.'.'.'turnOff');
Say('Рециркуляционный насос выключен',2);
|
cputemp
|
Температура процессора
$cpu_temp = shell_exec('cat /sys/class/thermal/thermal_zone0/temp')/1000;
$cpu_temp = shell_exec('cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input')/1000;
$cpu_temp = round($ThisComputer.CPUtemp, 1);
echo $cpu_temp;
//if(gg('CPUtemp') != $cpu_temp) {
sg('CPUtemp', $cpu_temp);
|
Volum-
|
$vol = gg("ThisComputer.volumeLevel");
if ($vol > 10){
cm('RadioSetting.Control',array('vol'=> $vol-10 ));
} else {
cm('RadioSetting.Control',array('vol'=> 0 ));
}
|
Влажность в моей комнате
|
if (gg('Sensor_Humspalnya.status')<'40') {
callMethod('Uvlagnitelmoya'.'.'.'turnOn');}
else
if (gg('Sensor_Humspalnya.status')>'70') {
callMethod('Uvlagnitelmoya'.'.'.'turnOff');
}
|
Гараж2мой
|
getURL('http://192.168.1.50/gpio?st=1&pin=220', 0);
getURL('http://192.168.1.50/gpio?st=0&pin=220', 0);
|
Датчик Газа
|
Отвратительный запах в моей комнате
if (gg('cospalnyagaz.value')<'100') {
Say('Внимание срочно проветрите помещение опасный уровень природного газа ',2);
}
|
Датчик СО
|
Отвратительный запах в моей комнате
if (gg('cospalnya.value')>'55') {
Say('Рекомендую проветрить помещение ',2);
}
|
дзинь
|
if (gg('Deutechka.status')=='1') {sayReply("Внимание произошла утечка воды в туалете срочно перекройте воду.",5); }
|
Кран закрыть
|
getURL('http://192.168.1.65/gpio?st=0&pin=12', 0);
|
Кран открыть
|
getURL('http://192.168.1.65/gpio?st=1&pin=12', 0);
|
Настольная лампа кабинетавкл
|
getURL('http://192.168.1.61/gpio?st=2&pin=12', 0);
|
Настольная лампа кабинетавык
|
getURL('http://192.168.1.61/gpio?st=2&pin=12', 0);
|
Отключение света по датчику движения
|
|
Утечка воды в ванной
|
include_once(DIR_MODULES . 'sms_ru/sms_ru.class.php');
$notify = new sms_ru();
$notify->sendNotifyAll("Произошла утечка воды в ванной, кран водоснабжения дома закрыт автоматически!");
$notify->sendNotifByName("Alisa","Произошла утечка воды в ванной, кран водоснабжения дома закрыт автоматически");
|
Утечка воды в туалете
|
include_once(DIR_MODULES . 'sms_ru/sms_ru.class.php');
$notify = new sms_ru();
$notify->sendNotifyAll("Произошла утечка воды в туалете, кран водоснабжения дома закрыт автоматически!");
$notify->sendNotifByName("Alisa","Произошла утечка воды в туалете, кран водоснабжения дома закрыт автоматически");
|
Утечка воды на кухне
|
include_once(DIR_MODULES . 'sms_ru/sms_ru.class.php');
$notify = new sms_ru();
$notify->sendNotifyAll("Произошла утечка воды на кухне, кран водоснабжения дома закрыт автоматически!");
$notify->sendNotifByName("Alisa","Произошла утечка воды на кухне, кран водоснабжения дома закрыт автоматически");
|
Включен свет в гараже над окном
|
Say('Включен свет в гараже над окном',2);
callMethod('GaragS2'.'.'.'turnOn');
|
Включен свет в гараже периметр
|
Say('Включен свет в гараже периметр',2);
callMethod('GaragS1'.'.'.'turnOn');
|
ворота статус первых ворот
|
|
Выключен свет в гараже над окном
|
Say('Выключен свет в гараже над окном',2);
callMethod('GaragS2'.'.'.'turnOff');
|
Выключен свет в гараже периметр
|
Say('Выключен свет в гараже периметр',2);
callMethod('GaragS1'.'.'.'turnOff');
|
Гараж 1 закрыт
|
Say('Вездные ворота первого гаража закрыты',2);
|
Гараж 1 открывается
|
Say('Внимание включилась автоматика ворот первого въезда в гараж',2);
getURL('http://192.168.1.51/rcremote?cmd=487130', 0);
|
Гараж 2 открывается
|
Say('Внимание включилась автоматика ворот второго въезда в гараж',2);
getURL('http://192.168.1.51/rcremote?cmd=487126', 0);
|
Гараж1 открыт
|
Say('Ворота первого въезда в гараж открыты',2);
|
Гараж1 открытпол
|
Say('Ворота первого въезда в гараж открыты полностью',2);
|
Гараж2 закрыт
|
Say('Ворота второго въезда в гараж закрыты',2);
|
Гараж2 открыт
|
Say('Ворота второго въезда в гараж открыты полностью',2);
|
Константин авто
|
Say('Мерседес бенц владелец Константин Сергеевич',2);
|
Концевик 1
|
Say('Нижний концевой переключатель вторых ворот',2);
|
Концевик 2
|
Say('Верхний концевой переключатель вторых ворот',2);
|
Концевик 3
|
Say('Нижний концевой переключатель первых ворот',2);
|
Концевик 4
|
Say('Верхний концевой переключатель первых ворот',2);
|
Наталья авто
|
Say('Киа спортаж, владеет данным автомобилем Наталья Юрьевна',2);
|
Фотодатчик 1 ворота
|
Say('Фотоэлемент присутсвия автомобиля в первом боксе гаража',2);
|
Фотодатчик 2 ворота
|
Say('Фотоэлемент присутсвия автомобиля во втором боксе гаража',2);
|
Avtoradio
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=179', 0);
|
HRradio
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=225', 0);
|
NRGradio
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=180', 0);
|
Relaxfm
|
getURL(BASE_URL.ROOTHTML.'apps/shoutcast.html?mode=playnow&terminal=MAIN&station_id=1066378',0);
|
Европа плюс
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=797491', 0);
|
Радиовкл
|
callMethod("Edifier_relay.turnOn");
cm('RadioSetting.Control',array('cmd'=>'stop'));
cm('RadioSetting.Control',array('vol'=> 14 ));
say('Радио включено');
cm('RadioSetting.Control',array('cmd'=>'play'));
setGlobal("RadioSetting.RadioLedOn",1);
sg("RadioSetting.SleepMinutesLeft", gg('RadioSetting.SleepMinutes'));
|
Радиоволна
|
Управление радио в бане
if(gg('Radioscaner.alive')== '90.3'){
getURL('http://192.168.1.119/fmradio?set=2');
setGlobal('Radioscaner.status', 2);
Say('Авторадио',2);
}
if(gg('Radioscaner.alive')== '88.3'){
getURL('http://192.168.1.119/fmradio?set=1');
setGlobal('Radioscaner.status', '1');
Say('Ретро фм',2);
}
if(gg('Radioscaner.alive')== '90.8'){
getURL('http://192.168.1.119/fmradio?set=3');
setGlobal('Radioscaner.status', '3');
Say('Релакс фм',2);
}
if(gg('Radioscaner.alive')== '92.4'){
getURL('http://192.168.1.119/fmradio?set=4');
setGlobal('Radioscaner.status', '4');
Say('Радио дача',2);
}
if(gg('Radioscaner.alive')== '95.6'){
getURL('http://192.168.1.119/fmradio?set=5');
setGlobal('Radioscaner.status', '5');
Say('Радио звезда',2);
}
if(gg('Radioscaner.alive')== '101.7'){
getURL('http://192.168.1.119/fmradio?set=6');
setGlobal('Radioscaner.status', '6');
Say('Наше радио',2);
}
if(gg('Radioscaner.alive')== '104.7'){
getURL('http://192.168.1.119/fmradio?set=7');
setGlobal('Radioscaner.status', '7');
Say('Радио семь на семи холмах',2);
}
if(gg('Radioscaner.alive')== '105.7'){
getURL('http://192.168.1.119/fmradio?set=8');
setGlobal('Radioscaner.status', '8');
Say('Русское радио',2);
}
if(gg('Radioscaner.alive')== '106.2'){
getURL('http://192.168.1.119/fmradio?set=9');
setGlobal('Radioscaner.status', '9');
Say('Европа плюс',2);
}
if(gg('Radioscaner.alive')== '107.8'){
getURL('http://192.168.1.119/fmradio?set=10');
setGlobal('Radioscaner.status', '10');
Say('Милицейская волна',2);
}
|
Радиовыкл
|
cm('RadioSetting.Control',array('cmd'=>'stop'));
setGlobal("Radio.RadioLedOn",0);
say('Радио выключено');
|
Русский хит
|
|
Русхит
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=237', 0);
|
Транс
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=252', 0);
|
ЮморFM
|
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=182', 0);
|
Hourly
|
Выполняется каждый час
|
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('Detskaya','Эркер','Kabinet','Коридор','Switch51','Switch25',
'Vannaya1','Zall1','Zall2','GaragS1','Banysvet1','GaragS2','GaragS3','GaragS4','Switch20','Switch21','Switch22','Switch23','Switch24','Switch29','Switch34');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
turnOoEverything
|
Включение света везде
$objects=array('Detskaya','Эркер','Kabinet','Коридор','Switch51','Switch25',
'Vannaya1','Zall1','Zall2','GaragS1','Banysvet1','GaragS2','GaragS3','GaragS4','Switch20','Switch21','Switch22','Switch23','Switch24','Switch29','Switch34');
foreach($objects as $o) {
callMethod($o.'.turnon');
}
|
Гараж
|
|
Гараж закрывается
|
Say('Внимание гараж закрывается',2);
|
Гараж открывается
|
Say('Внимание гараж открывается',2);
|
Гараж открыт
|
Say('Внимание гараж открыт',2);
|
оповещение откр. 1 ворот
|
Say('Внимание открыты ворота первого въезда в гараж',2);
|