|
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_Chat
|
Очистка истории чата с Алисой
say ("Удаляю историю чата",0);
callAPI('/api/module/yadevices','GET',array('station'=>1, 'command'=>'text', 'data'=>'<speaker audio="alice-sounds-things-gun-1.opus">'));
SQLExec("DELETE FROM shouts");
|
|
Hourly
|
|
|
majordomo_cycle_restart
|
Перезапуск циклов
say("Перезагрузка циклов",2);
@SaveFile(DOC_ROOT . DIRECTORY_SEPARATOR . 'reboot', 'updated');
|
|
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(LANG_GENERAL_STARTING_REBOOT,2);
setTimeout("shutdownTimer","safe_exec('sudo 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(LANG_GENERAL_STARTING_SHUTDOWN,2);
setTimeout("shutdownTimer","safe_exec('sudo shutdown -h now');",15);
|
|
startUp
|
Система загружена
say('Система MajorDomo, загружена!',2);
runScript('DROP_TABLE');
|
|
Demo01
|
Demo01
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Здравствуйте!'));
setTimeOut('DemoTimer',"runScript('Demo02');",1);
|
|
Demo02
|
Demo02
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Меня зовут Алиса. Я помощница в этом доме, и сейчас расскажу о том, что я знаю и умею.'));
setTimeOut('DemoTimer',"runScript('Demo03');",7);
|
|
Demo03
|
Demo03
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Я в курсе того, какая температура в разных комнатах. К примеру сейчас на кухне'.round(gg("Sensor_temp02.value")).' '.GetNumberWord($tempw,array('градус','градуса','градусов')).'цельсия'));
setTimeOut('DemoTimer',"runScript('Demo04');",8);
|
|
Demo04
|
Demo04
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'А в ванной '.round(gg("Sensor_temphum02.value")).' '.GetNumberWord($tempw,array('градус','градуса','градусов')).''));
setTimeOut('DemoTimer',"runScript('Demo05');",3);
|
|
Demo05
|
Demo05
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Так же я знаю, что на улице сейчас '.round(gg("Sensor_temphum06.value")).' '.GetNumberWord($tempw,array('градус','градуса','градусов')).' цельсия. "." Относительная влажность: '.round(gg("Sensor_temphum06.valueHumidity")).' '.GetNumberWord($tempcels,array('процент','процента','процентов')).'. '.$stp.$stw.';'));
setTimeOut('DemoTimer',"runScript('Demo06');",8);
|
|
Demo06
|
Demo06
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'В мои обязанности входит наблюдение за тем, где находятся мои хозяева.'));
setTimeOut('DemoTimer',"runScript('Demo07');",6);
|
|
Demo07
|
Demo06
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>''.$isHomeText.' Уровень заряда телефона Сергея сейчас '.gg('admin.BattLevel').' '.GetNumberWord($proc,array('процент','процента','процентов')).', у Ирины '.gg('Irina.BattLevel').' '.GetNumberWord($proc1,array('процент','процента','процентов')).', у Софьи '.gg('Sofa.BattLevel').' '.GetNumberWord($proc1,array('процент','процента','процентов')).'.'));
//setTimeOut('DemoTimer',"runScript('Demo08');",8);
|
|
Demo08
|
Demo06
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>''.$isHomeText.' Если телефон у кого-нибудь будет разряжен, то я об этом предупрежу.'));
setTimeOut('DemoTimer',"runScript('Demo09');",6);
|
|
Demo09
|
Demo07
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Я могу управлять освещением в зависимости от присутствия, восхода и заката солнца.'));
setTimeOut('DemoTimer',"runScript('Demo10');",8);
|
|
Demo10
|
Demo08
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Сейчас поиграю освещением.'));
sg('Relay01.status', '1'); sleep (1);
sg('Relay03.status', '1'); sleep (3);
sg('Relay03.status', '0'); sleep (1);
sg('Relay01.status', '0'); sleep (1);
if (gg("DarknessMode.active")){
sg('Relay01.status', '1'); sleep (1);
sg('Relay03.status', '1'); sleep (1);
}else{
sg('Relay01.status', '0'); sleep (1);
sg('Relay01.status', '0'); sleep (1);
}
setTimeOut('DemoTimer',"runScript('Demo11');",11);
|
|
Demo11
|
Demo09
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Кроме управления освещением, я могу помочь и с развлечением.'));
setTimeOut('DemoTimer',"runScript('Demo12');",5);
|
|
Demo12
|
Demo09
callAPI('/api/module/yadevices','GET',array('station'=>3,'say'=>'Например,сейчас включу или выключу телевизор на кухне.'));
setTimeOut('DemoTimer',"runScript('Demo13');",6);
|
|
Demo13
|
Demo10
getURL('http://192.168.2.114/irremote?cmd=16666799&mode=0&bits=32');
|
|
Backup
|
Рез. копирование модуль Backup
$state=$params['STATE'];
$desc=$params['DESCRIPTION'];
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$message = "Резервное копирование\nСтатус: <b>".$state."</b>";
if ($desc)
$message .= "\nОписание:".$desc;
$telegram_module->sendMessageToUser(1211448099, $message);
|
|
BackUpToFlash
|
Резервное копирование
$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);
exec ("sudo mkdir -p /mnt/usb/backup_root");
exec ("sudo mount -p /dev/sda2 /mnt/usb/backup_root/");
exec ("sudo rsync -aHv --delete --delete-after --exclude-from=/home/pi/not_backup / /mnt/usb/backup_root/ 2>&1 &");
say("Резервное копирование выполнено",2);
|
|
Clear_All_Timers
|
Чистка всех таймеров
SQLExec("DELETE FROM jobs");
|
|
DELETE pvalues
|
DELETE pvalues
SQLExec("DELETE pvalues . * FROM `pvalues`
LEFT JOIN objects ON pvalues.OBJECT_ID = objects.id
LEFT JOIN properties ON pvalues.PROPERTY_ID = properties.id
WHERE objects.TITLE IS NULL OR properties.TITLE IS NULL");
SQLExec("DELETE phistory . * FROM `phistory`
LEFT JOIN pvalues on phistory.value_id=pvalues.id
WHERE pvalues.id IS NULL");
|
|
DROP_TABLE
|
мусор в базе данных
SQLExec('DROP TABLE IF EXISTS OPENWEATHER_CITY');
SQLExec('DROP TABLE IF EXISTS COUNTRY');
|
|
Отключить хранение истории
|
Отключить хранение истории
SQLExec("UPDATE properties SET KEEP_HISTORY=0"); // отключить хранение истории для всех свойств
say ("Отключаю хранение истории",2);
|
|
Удалить всю историю
|
Удалить всю историю
SQLExec("TRUNCATE phistory"); // удалить всю историю (если нужно)
say ("Удаляю всю историю",0);
|
|
turn_OFF_All
|
выключить весь свет перебором в классе
/*
// выключить весь свет перебором в классе
$objects=getObjectsByClass("SButtons");
foreach($objects as $obj) {
sg($obj['TITLE'].".status",0);
//sleep(500);
}
say ("Всё выполнено.", 1);
*/
setTimeOut('Relay01.status', "sg('Relay01.status',0);", (int)('1'));
setTimeOut('Relay05.status', "sg('Relay05.status',0);", (int)('2'));
setTimeOut('Relay13.status', "sg('Relay13.status',0);", (int)('3'));
setTimeOut('Relay04.status', "sg('Relay04.status',0);", (int)('4'));
setTimeOut('Relay03.status', "sg('Relay03.status',0);", (int)('5'));
say ("Освещение везде выключено", 2);
|
|
turn_ON_All
|
включить весь свет перебором в классе
/*
// включить весь свет перебором в классе
$objects=getObjectsByClass("SButtons");
foreach($objects as $obj) {
sg($obj['TITLE'].".status",1);
}
say ("Всё выполнено. Освещение везде включено.", 1);
*/
setTimeOut('Relay01.status', "sg('Relay01.status',1);", (int)('1'));
setTimeOut('Relay05.status', "sg('Relay05.status',1);", (int)('2'));
setTimeOut('Relay13.status', "sg('Relay13.status',1);", (int)('3'));
setTimeOut('Relay04.status', "sg('Relay04.status',1);", (int)('4'));
setTimeOut('Relay03.status', "sg('Relay03.status',1);", (int)('5'));
say ("Освещение везде включено.", 2);
|