(start|play) music
Code
runScript('playFavoriteMusic');
|
report system state
|
Wikipedia
Code
$query = $matches[1];
$arr = explode('@', $query);
$query = $arr[0];
sayReply('Ищу, что такое: '.$query,2);
$queryUrl = urlencode($query);
$url = 'http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$queryUrl.'&prop=info&format=xml&inprop=url';
$content = file_get_contents($url);
$xml = simplexml_load_string($content);
$answer = $xml->Section->Item->Description;
//избавимся от ударений
$answer = iconv("UTF-8","CP1251//IGNORE",$answer);
$answer = iconv("CP1251","UTF-8",$answer);
$answer = preg_replace("#\s\(.*?\)#isu", '', $answer);
$answer = strval($answer);
sayReply($answer,2);
|
Как дела
Code
// Доложить о состоянии
$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);
|
Привет
Code
if(timeBetween("05:00", "11:00")){
say("Доброе утро!",10);
}elseif(timeBetween("11:00", "17:00")){
say("Добрый день!",10);
}elseif(timeBetween("17:00", "23:00")){
say("Добрый вечер!",10);
}elseif(timeBetween("23:00", "05:00")){
say("Доброй ночи!",10);
}else{ // Новое, неизвестное время суток.
say('Привет!',2);
}
|
Свет
Pattern: (включи|выключи) свет
|
Свет Дима
Pattern: (Дим(.*)|у Дим(.*))
Code
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Dima.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Dima.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Коридора
Pattern: (коридор(.*)|в коридор(.*))
Code
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Koridor.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Koridor.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Леша
Pattern: (Л(е|ё)ш(.*)|у Л(е|ё)ш(.*)|у Л(е|ё)х(.*)|Л(е|ё)х(.*))
Code
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Lexa.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Lexa.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Спальне
Pattern: (спальн(.*)|в спальн(.*))
Code
if (preg_match('/включи/isu',$original)) {
sg('Sonoff_Spaln.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Sonoff_Spaln.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
|
Сколько будет
Pattern: сколько будет (.*)
Code
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('разделить на','/',$com);
$com=str_replace('делить на','/',$com);
$com=str_replace('умножить на','*',$com);
$com=str_replace('на','*',$com);
$com=str_replace('плюс','+',$com);
$com=str_replace('прибавить','+',$com);
$com=str_replace('минус','-',$com);
$com=str_replace('отнять','-',$com);
$com=str_replace('вычесть','-',$com);
$com='$result=' . $com .';';
eval($com);
$result=str_replace('.',',',$result);
say($command.' равно '.$result,2);
|
Сколько время
Pattern: (Сколько|Который) (время|час)
Code
say('Сейчас '.timeNow(),1);
|
Таймер
Pattern: (Поставь|Установи) таймер на (\d+) минут
Code
say("Окей, как пройдёт $matches[2] минут, я скажу",2);
setTimeOut('timer','say("Внимание. Прошло '.$matches[2].' минут",2);',$matches[2]*60);
|