(start|play) music
Код
runScript('playFavoriteMusic');
|
report system state
|
Wikipedia
Код
$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);
|
Как дела
Код
// Доложить о состоянии
$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);
|
Привет
Код
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);
}
|
Свет
Шаблон: (включи|выключи) свет
|
Свет Дима
Шаблон: (Дим(.*)|у Дим(.*))
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Dima.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Dima.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Коридора
Шаблон: (коридор(.*)|в коридор(.*))
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Koridor.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Koridor.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Леша
Шаблон: (Л(е|ё)ш(.*)|у Л(е|ё)ш(.*)|у Л(е|ё)х(.*)|Л(е|ё)х(.*))
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Sonoff_Lexa.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Sonoff_Lexa.status',0);
} else {
sayReply('Непонятно где: '.$original,1);
}
|
Свет Спальне
Шаблон: (спальн(.*)|в спальн(.*))
Код
if (preg_match('/включи/isu',$original)) {
sg('Sonoff_Spaln.status',1);
} elseif (preg_match('/выключи/isu',$original)) {
sg('Sonoff_Spaln.status',0);
} else {
say('Непонятно где: '.$original,1);
}
|
|
Сколько будет
Шаблон: сколько будет (.*)
Код
$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);
|
Сколько время
Шаблон: (Сколько|Который) (время|час)
Код
say('Сейчас '.timeNow(),1);
|
Таймер
Шаблон: (Поставь|Установи) таймер на (\d+) минут
Код
say("Окей, как пройдёт $matches[2] минут, я скажу",2);
setTimeOut('timer','say("Внимание. Прошло '.$matches[2].' минут",2);',$matches[2]*60);
|