((В|в)ключ(и|ить)|Зажги)
|
(в спальне|спальни|спальня) (телевизор|тв)
Код
runScript('StandbyTVSamsung');
|
(телевизор|тв)
Код
runScript('TVPhilipsOn');
|
Включить музыку
|
(в спальне|спальни|спальня)
Код
runScript('PlayMusic_Zone2');
|
|
Включить радио
Код
runScript('PlayRadio_Zone1');
|
(в спальне|спальни|спальня)
Код
runScript('PlayRadio_Zone2');
|
(на кухне|кухни|кухня)
Код
runScript('PlayRadio_Zone3');
|
в зале
Код
runScript('PlayRadio_Zone1');
|
|
ёлку|елку
Код
sg('Ralay_test2.status',1);
|
свет
Код
sg("Switch_Hall.State",1);
|
сплит|сплит-систему
Код
sg('Panasonic_9.Status',1);
|
экран
Код
|
|
(Д)|(д)ень недели
Шаблон: день недели|какой сегодня день недели
Код
$days=array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
$day_num=(int)date('w');
$day_of_week=$days[$day_num];
say("Сегодня - ".$day_of_week,1);
|
(Д|д)авай приготовим (.+)
Код
$queryString = $matches[2];
/*
$findParams = array(
'aerogrill' => '22', // Рецепты для аэрогриля
'waffle' => '27', // Для вафельницы
'yoghurt' => '28', // Для йогуртиницы
'multivarka' => '25', //Рецепты для мультиварки
'steamer' => '15', //Для пароварки
'pressureCooker' => '46', //Для скороварки
'breadMaker' => '23', //Для хлебопечки
'fondue' => '24' //Рецепты фондю
);
*/
$findParams = array();
$recipeNumber = rand(0, 1);
$recipesList = findRecipes($queryString, $findParams);
if (!empty($recipesList)) {
$recipe = getRecipes($recipesList[$recipeNumber]['link']);
$recipe['link'] = $recipesList[$recipeNumber]['link'];
$recipe['name'] = $recipesList[$recipeNumber]['text'];
sayRecipe($recipe);
sg('ThisComputer.KitchenUrl',$recipe['link']);
} else {
say('Ничего не найдено.');
}
function sayRecipe($recipe) {
say($recipe['name']);
if (!empty($recipe['description'])) {
foreach ($recipe['description'] as $e) {
say($e);
}
}
$ingrstr = 'Нам понадобится: ';
foreach ($recipe['ingredients'] as $e) {
$ingrstr .= $e . ', ';
}
say($ingrstr);
say('Способ приготовления:');
foreach ($recipe['preparing'] as $e) {
say($e);
}
$rec=array();
$rec['EVENT_TYPE']='openurl'; // команда может быть ещё newwindow
$rec['WINDOW']='alice';
$rec['TERMINAL_TO']='*'; //здесь можно конкретный терминал указать
$rec['ADDED']=date('Y-m-d H:i:s');
$rec['EXPIRE']=date('Y-m-d H:i:s', time()+10);
$rec['DETAILS']=$recipe['link'];
$rec['ID']=SQLInsert('events', $rec);
}
function getRecipes($recipeLink) {
if (empty($recipeLink)) {
return FALSE;
}
$html = @file_get_contents($recipeLink);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$ingredients = array();
$description = array();
$ingredientsDom = $xpath->query('//table[@class="rec-ingred-table"]/tr');
if ($ingredientsDom->length > 0) {
foreach ($ingredientsDom as $item) {
$ingredients[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
$descriptionDom = $xpath->query('//div[@class="b-page_block__outside"]/p');
foreach ($descriptionDom as $item) {
$description[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
} else {
$ingredientsDom = $xpath->query('//div[@class="b-page_block__outside"]/p');
foreach ($ingredientsDom as $item) {
$ingredients[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
}
$preparingDom = $xpath->query('//div[@class="b-list__clause__text"]/p');
$preparing = array();
foreach ($preparingDom as $item) {
$preparing[] = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
}
$recipe = array(
'description' => $description,
'ingredients' => $ingredients,
'preparing' => $preparing
);
return $recipe;
}
function findRecipes($queryString, $params) {
if (empty($queryString)) {
return FALSE;
}
$url = 'http://www.edimdoma.ru/search?utf8=%E2%9C%93&asset=recipes&index=title_search&query=' . urlencode($queryString) . '&search%5Bmain_category_id%5D=&search%5Bcuisine_id%5D=';
if (!empty($params)) {
foreach ($params as &$value) {
$url .= '&cooking_method_ids%5B%5D=' . $value;
}
}
$url .= '&user_name=';
$html = @file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXpath($doc);
$articles = $xpath->query('//div[@class="b-page_block__header"]');
$links = array();
foreach ($articles as $container) {
$arr = $container->getElementsByTagName("a");
foreach ($arr as $item) {
if ($item->parentNode->tagName == "h2") {
$href = $item->getAttribute("href");
$text = trim(preg_replace("/[\r\n]+/", " ", $item->nodeValue));
$links[] = array(
'link' => $href,
'text' => $text
);
}
}
}
return $links;
}
|
(З|з)акрой
|
жалюзи
Код
RunScript("CloseSunBlind");
|
фоновые
Код
RunScript("CloseSunBlind45");
|
|
шторы
Код
|
|
(Н|н)ай(д|т)и
|
музыку (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1, 'COUNT'=>'30'));
|
песню (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1));
say("Ищу песню ".$matches[1]);
|
песня (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=>1));
say("Ищу песню ".$matches[1]);
|
плейлист (.+)
Код
runScript("VkMusic", array('VALUE'=>$matches[1], 'MODE'=> 0));
|
|
(Н|н)апомни через (\d+) минут(|у|ы) (.+)
Код
$rnumber = 1;
while (1) {
$rname = "Reminder_$rnumber";
if (!timeOutExists($rname)) break;
$rnumber++;
}
setTimeOut($rname,'say("Напоминаю: '.$matches[4].'",1);',$matches[2]*60);
say("Принято - напомнить через $matches[2] минут: $matches[4]",1);
setTimeOut($rname."_1",'sg("admin.SubjectMailMessage","Алиса напоминает");',$matches[2]*60-3);
setTimeOut($rname."_2",'sg("admin.MailMessage","'.$matches[4].'");',$matches[2]*60-3);
setTimeOut($rname."_3","cm('admin.SendMail');",$matches[2]*60);
setTimeOut($rname."_4","cm('VuSolo2.SendMessage',array('SATCommand'=>'".$matches[4]."'));",$matches[2]*60);
|
(назад|предыдущий|предыдущая) (трек|песня|станция)
Код
runScript('PlayPrevTrack');
|
(следующий|следующая|дальше) (трек|песня|станция)
Код
//runScript('PlayNextTrack');
getURL("http://localhost:8080/requests/status.xml?command=pl_next",0);
|
(спасибо|благодарю)
Шаблон: (спасибо|благодарю)
Код
#$response=getRandomLine(response2gratitude);
#say($response, 1);
say('Всегда пожалуйста!',2);
|
Minix|миникс|mennekes|видео
|
включи
Код
|
Выход|Exit|Назад
Код
|
Играй|Play|Воспроизведи
Код
|
Ок|Окей|OK
Код
|
Пауза
Код
|
следущий|next
Код
sg('Minix.btNextTrack',1);
|
Стоп|останови
Код
|
|
вверх
Код
$queryString = 103;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
влево|слева
Код
$queryString = 105;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
вниз
Код
$queryString = 108;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
выключ(и|ить)
|
(телевизор|тв)
Код
RunScript('TVPhilipsOff');
|
Выключить (музыку|радио)
Код
say('Выключаю радио');
runScript('StandBy_Zone1');
|
(в спальне|спальни|спальня)
Код
runScript('Standby_Zone2');
|
(на кухне|кухня|кухни)
Код
runScript('Standby_Zone3');
|
|
ёлку|елку
Код
sg('Ralay_test2.status',0);
|
свет
Код
//sg("IRHumiditySensor.Livolo_State",106);
sg("Switch_Hall.State",0);
|
сплит|сплит-систему
Код
sg('Panasonic_9.Status',0);
|
экран
Код
|
|
Где (сейчас)
Шаблон: (где сейчас)|(где)
Код
//say ("Место положение кого именно интересует? Хотя пока я знаю только о Славе!",1);
//setTimeOut("answer_","runScript('AutoRemoteMessage');",3);
|
Лена
Код
if (time()-gg('helen.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Лены - ".gg('helen.seenAt'),1);
} elseif (gg('helen.seenAt')!='') {
say("Место нахождения Лены - ".gg('helen.seenAt'),1);
} else {
say("Место нахождения Лены - ".gg('helen.Location'),1);
}
|
Полина
Код
if (time()-gg('polina.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Полины - ".gg('polina.seenAt'),1);
} elseif (gg('polina.seenAt')!='') {
say("Место нахождения Полины - ".gg('polina.seenAt'),1);
} else {
say("Место нахождения Полины - ".gg('polina.Location'),1);
}
|
Слава|слова
Шаблон: (слава(.*)|вячеслав(.*)|хозяин)
Код
if (time()-gg('admin.CoordinatesUpdatedTimestamp')>2*60*60) {
say("Извините, координаты устарели. Последне место нахождения Славы - ".gg('admin.seenAt'),1);
} elseif (gg('admin.seenAt')!='') {
say("Место нахождения Славы - ".gg('admin.seenAt'),1);
} else {
say("Место нахождения Славы - ".gg('admin.Location'),1);
}
|
|
говор(и|ит)
|
голосом
Код
setGlobal('minMsgLevel',1);
say('Окей',1);
|
громче
Код
safe_exec("sudo amixer cset numid=1 -- 80%");
say("Высокая громкость",1);
|
негромко
Код
safe_exec("sudo amixer cset numid=1 -- 70%");
say("Средняя громкость",1);
|
тише
Код
safe_exec("sudo amixer cset numid=1 -- 40%");
say("Низкая громкость",1);
|
|
Ёлочка гори|Раз два три ёлочка гори
Код
sg('Ralay_test2.status',1);
|
Запусти
|
(музыку|интернет радио)
Код
getURL("http://localhost:8080/requests/status.xml?command=pl_play",0);
runScript('PlayRadio_Main');
sg("OnkyoMain.RadioNum",9);
//say(LANG_DONE,1);
|
кино
Код
|
пылесос
Код
callMethod('LG_Hombot.Run');
|
фильм (.+)
Код
$queryString = $matches[1];
//say('Фильм '.$queryString,0);
RunScript('PlayCinemaOnMinix', array("name"=>$queryString));
|
|
какая температура (.+)
Код
$curtemp = 0;
if ($matches[1] == 'в зале') {
$curtemp = gg('Livingroom.RTemp');
}
if ($matches[1] == 'в спальне') {
$curtemp = $curtemp = gg('BedRoom.RTemp');
}
if ($matches[1] == 'на балконе') {
$curtemp = gg('Balkon.RTemp');
}
if ($matches[1] == 'на кухне') {
$curtemp = gg('Kitchen.RTemp');
}
if ($matches[1] == 'на улице') {
$curtemp = gg('Rostov.Temp');
}
if ($matches[1] == 'за окном') {
$curtemp = gg('ws.tempOutside');
}
say($matches[1]." - ".$curtemp." градусов",2);
|
канал (.+)
Код
$queryString = $matches[1];
//say($queryString);
callMethod('VuSolo2.ChangeChannel',array('SATCommand'=>$queryString));
|
кино (.+)
Код
$queryString = $matches[1];
//$url = 'http://www.kinopoisk.ru/index.php?first=no&what=&kp_query=' . urlencode($queryString);
$url = 'http://www.film.ru/search/result?text='. urlencode($queryString).'&type=all';
sg('ThisComputer.KinopoiskUrl',$url);
$rec=array();
$rec['EVENT_TYPE']='openurl'; // команда может быть ещё newwindow openurl
$rec['WINDOW']='ФильмРу';
$rec['TERMINAL_TO']='*'; //здесь можно конкретный терминал указать
$rec['ADDED']=date('Y-m-d H:i:s');
$rec['EXPIRE']=date('Y-m-d H:i:s', time()+10);
$rec['DETAILS']=$url;
$rec['ID']=SQLInsert('events', $rec);
|
который час
Код
say('Сейчас '.timeNow(),1);
|
Маршрут до(.+)
Код
sg("admin.GEO_toAddress",trim($matches[1]));
RunScript("GetRouteToWork");
|
Молчи
Код
setGlobal('minMsgLevel',2);
say('Окей');
|
Останови
|
(кино|фильм)
Код
|
(музыку|интернет радио)
Код
getURL("http://localhost:8080/requests/status.xml?command=pl_stop",0);
|
пылесос
Код
callMethod('Broadlink.Run',array('file_name'=>"./broadlink_cmd/LG_Home"));
|
|
отключ(и|ть) звук
Код
$vol = 0;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
Открой
|
жалюзи
Код
RunScript("OpenSunBlind");
|
фоновые
Код
RunScript("OpenSunBlind45");
|
|
шторы
Код
|
|
отмена
Код
$queryString = 174;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
отправь сообщение(.+)
Код
$mes = $matches[1];
callMethod('VuSolo2.SendMessage',array('SATCommand'=>$mes));
|
Пауза
Код
|
переключи
|
на (малину|малинку)
Код
sg("OnkyoMain.RadioNum",9);
|
на авторадио
Код
//runScript('Play_AutoRadio');
sg("OnkyoMain.RadioNum",2);
|
на дорожное радио
Код
sg("OnkyoMain.RadioNum",6);
|
на маяк
Код
//runScript('Play_RadioMayak');
sg("OnkyoMain.RadioNum",4);
|
на наше радио
Код
sg("OnkyoMain.RadioNum",3);
|
на радио 7
Код
sg("OnkyoMain.RadioNum",7);
|
на ретро (фм|fm)
Код
sg("OnkyoMain.RadioNum", 1);
|
|
Плей|Play
Код
|
погод(а|ы)
|
погод(а|ы) на завтра
Код
$curtemp = gg("ThisComputer.weatherFull");
say($curtemp,2);
|
поставь|установи
|
будильник
Код
$t=$matches[1];
say("Ставлю будильник на ".$t);
setGlobal('AlarmOne.AlarmOn',1);
setGlobal('AlarmOne.AlarmTime',$t);
|
|
Привет|Здравствуй
Код
if(timeBetween("05:00", "11:00")){
say("Доброе утро!",1);
}elseif(timeBetween("11:00", "17:00")){
say("Добрый день!",1);
}elseif(timeBetween("17:00", "23:00")){
say("Добрый вечер!",1);
}elseif(timeBetween("23:00", "05:00")){
say("Доброй ночи!",1);
}else{ // Новое, неизвестное время суток.
say('Привет!',1);
}
|
проверка связи
Код
say("Да слышу я. Слышу...",2);
|
программа передач|программа|и PG
Код
$queryString = 358;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
разверни экран
Код
cm("ProjectorScreen.TurnOn");
|
расскажи
|
анекдот
Код
$anek=getRandomLine(anek);
say($anek, 1);
|
новости
Код
RunScript('ReadRssNews');
|
умное|заумное|умная
Код
|
|
сверни экран
Код
cm("ProjectorScreen.TurnOff");
|
сдела(й|ть)
|
(погромче|потише)
Код
$vol = 40;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
(в зале|зал)
Код
$vol = 40;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
(в спальне|спальни|спальня)
Код
$vol = 40;
sg('OnkyoZone2.VolumeLevel',$vol);
cm('OnkyoZone2.VolumeChanged');
|
(на кухне|кухня|кухни)
Код
$vol = 40;
sg('OnkyoZone3.VolumeLevel',$vol);
cm('OnkyoZone3.VolumeChanged');
|
|
громче
Код
$vol = 50;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
(в спальне|спальни|спальня)
Код
$vol = 50;
sg('Onkyo_Zone2.VolumeLevel',$vol);
cm('Onkyo_Zone2.VolumeChanged');
|
(на кухне|кухня|кухни)
Код
$vol = 50;
sg('OnkyoZone3.VolumeLevel',$vol);
cm('OnkyoZone3.VolumeChanged');
|
громче в зале
Код
$vol = 50;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
|
темнее
Код
sg('IRHumiditySensor.Livolo_State',116);
|
тише
Код
$vol = 28;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
(в спальне|спальни|спальня)
Код
$vol = 28;
sg('OnkyoZone2.VolumeLevel',$vol);
cm('OnkyoZone2.VolumeChanged');
|
(на кухне|кухня|кухни)
Код
$vol = 28;
sg('OnkyoZone3.VolumeLevel',$vol);
cm('OnkyoZone3.VolumeChanged');
|
ти(ше|хо) в зале
Код
$vol = 28;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
чуть тише
Код
$vol = gg('OnkyoMain.VolumeLevel');
$vol = $vol - 5;
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
|
чуть громче
Код
$vol = gg('OnkyoMain.VolumeLevel');
$vol = $vol + 5;
say($vol);
sg('OnkyoMain.VolumeLevel',$vol);
cm('OnkyoMain.VolumeChanged');
|
ярче
Код
sg('IRHumiditySensor.Livolo_State',92);
|
|
скажи (.+)
Код
|
Состояние системы
Шаблон: (состояние системы|состояние|статус)
Код
// Доложить о состоянии
$details=array();
if (getGlobal("System.stateColor") != "green") {
$details[]="Обнаружена ошибка работы системы";
$details[]=getGlobal("System.stateDetails");
};
if (getGlobal("Communication.stateColor") != "green") {
$details[]="Обнаружена ошибка работы коммуникаций";
$details[]=getGlobal("Communication.stateDetails");
};
if (getGlobal("Security.stateColor") != "green") {
$details[]="Обнаружена ошибка безопасности";
$details[]=getGlobal("Security.stateDetails");
};
if (!$details) {
$details[]="Все системы функционируют без ошибок";
};
say (implode(". ",$details),1);
|
Сохрани координаты места
Шаблон: (сохран(.+) координаты)(\s*)(.*)
Код
$pName=$matches[4];
if (time()-getGlobal('admin.CoordinatesUpdatedTimestamp')>30*60) {
say('Текущие координаты устарели (неизвестны)',1);
} else {
say(getRandomLine('ok').' Сохраняю координаты: '.$pName,1);
$tmp=explode(',',gg('admin.Coordinates'));
$rec=array();
// $rec['TITLE']='Координаты: '.$pName.' '.date("Y-d-m H:i");
$rec['TITLE']= $pName;
$rec['LAT']=$tmp[0];
$rec['LON']=$tmp[1];
$rec['RANGE']=200;
SQLInsert('gpslocations',$rec);
}
|
список каналов
Код
$queryString = 108;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
справа|вправо
Код
$queryString = 106;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
сценарий (.+)
Код
say("Запускаю сценарий ".$matches[1]);
runScript($matches[1]);
|
текущая программа|OK|окей
Код
$queryString = 352;
callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
|
ты кто
Код
#say(getRandomLine('whoareyou'),1);
//say("Конь в пальто",1);
sayReply("Конь в пальто",2);
|