((В|в)ключи|(В|в)ыключи)
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Включить что?',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Выключить что?',2); }
|
(Свет|свет)
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Где включить свет?',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Где выключить свет?',2); }
|
((З|з)ал(|е)|(Г|г)остинн(ая|ой)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю свет в гостинной', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю свет в гостинной', 2);
} else {
sayReply('Непонятно что со светом в гостинной: '.$original, 2);
}
|
((К|к)оридор(|е)|(П|п)рихож(ей|ая))
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Какой свет включить коридоре?',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Какой свет выключить на коридоре?',2); }
|
((Д|д)ополнительный|(В|в)спомогательный|(В|в)торой)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю дополнительный свет в коридоре', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю дополнительный свет в коридоре', 2);
} else {
sayReply('Непонятно что с дополнительным светом в коридоре: '.$original, 2);
}
|
((О|о)сновной|(О|о)бычный|(П|п)ервый)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю основной свет в коридоре', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю основной свет в коридоре', 2);
} else {
sayReply('Непонятно что с основным светом в коридоре: '.$original, 2);
}
|
(В|в)есь
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю весь свет в коридоре', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю весь свет в коридоре', 2);
} else {
sayReply('Непонятно что со всем светом в коридоре: '.$original, 2);
}
|
|
((Т|т)уалет(|е)|(У|у)борн(ая|ой))
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю свет в туалете', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю свет в туалете', 2);
} else {
sayReply('Непонятно что со светом в туалете: '.$original, 2);
}
|
(Б|б)алкон(|е)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю свет на балконе', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю свет на балконе', 2);
} else {
sayReply('Непонятно что со светом на балконе: '.$original, 2);
}
|
(В|в)анн(ой|е)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю свет в ванной', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю свет в ванной', 2);
} else {
sayReply('Непонятно что со светом в ванной: '.$original, 2);
}
|
(К|к)ухн(е|я)
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Какой свет включить на кухне?',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Какой свет выключить на кухне?',2); }
|
((Г|г)лавный|(Ц|ц)ентральный|(Г|г)оловной|(Л|л)юстр(а|у))
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю люстру на кухне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю люстру на кухне', 2);
} else {
sayReply('Непонятно что с люстрой на кухне: '.$original, 2);
}
|
((О|о)сновной|(О|о)бычный|(П|п)остоянный|(Т|т)очечный)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю основной свет на кухне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю основной свет на кухне', 2);
} else {
sayReply('Непонятно что с основным светом на кухне: '.$original, 2);
}
|
(В|в)есь
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю весь свет на кухне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю весь свет на кухне', 2);
} else {
sayReply('Непонятно что со всем светом на кухне: '.$original, 2);
}
|
|
(С|с)пальн(я|е)
Код
if (preg_match('/включи/isu',$original)) {
sayReply('Какой свет включить в спальне?',2);
} elseif (preg_match('/выключи/isu',$original)) {
sayReply('Какой свет выключить в спальне?',2); }
|
((Д|д)ополнительный|(В|в)спомогательный|(В|в)торой)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю дополнительный свет в спальне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю дополнительный свет в спальне', 2);
} else {
sayReply('Непонятно что с дополнительным светом в спальне: '.$original, 2);
}
|
((О|о)сновной|(О|о)бычный|(П|п)остоянный|(С|с)тандартный)
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю основной свет в спальне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю основной свет в спальне', 2);
} else {
sayReply('Непонятно что с основным светом в спальне: '.$original, 2);
}
|
(В|в)есь
Код
if (preg_match('/включи/is',$original)) {
sayReply('Включаю весь свет в спальне', 2);
} elseif (preg_match('/выключи/is',$original)) {
sayReply('Выключаю весь свет в спальне', 2);
} else {
sayReply('Непонятно что со всем светом в спальне: '.$original, 2);
}
|
|
|
|
report system state
|
Weather_Full
Шаблон: (П|п)огода|(И|и)нформация о погоде|(Ч|ч)то там на улице
Код
// получение и обработка данных;
$Temp_Oshush = gg("Prognozy.Temp_Oshushaemaya");
//$Temp_Oshush2 = str_replace(' ', '', $Temp_Oshush);
$Temp_Oshush3 = trim($Temp_Oshush, " \t\n\r\0\x0B");
$Temp_Oshush2 = str_replace("−", "-", $Temp_Oshush3);
$Opisanie = gg("Prognozy.Opisanie");
$TOut = gg("MyNetatmo.TempOut");
$Veter = gg("Prognozy.Veter");
//$Veter2 = str_replace(' ', '', $Veter);
$Veter2 = trim($Veter, " \t\n\r\0\x0B");
$Voda = gg("Prognozy.Temp_Vody");
$Vlajn = gg("MyNetatmo.VlajnOut");
//Градусы и метры
//Ветер
if (substr($Veter2, -1) == 1) {
$metr = "метр";
} elseif (substr($Veter2, -1) >= 2 and substr($Veter2, -1) <= 4) {
$metr = "метра";
} elseif (substr($Veter2, -1) == 0 or substr($Veter2, -1) >= 5) {
$metr = "метров";
}
//температура на улице
if (substr($TOut, -1) == 1) {
$gradout = "градус";
} elseif (substr($TOut, -1) >= 2 and substr($TOut, -1) <= 4) {
$gradout = "градуса";
} elseif (substr($TOut, -1) == 0 or substr($TOut, -1) >= 5) {
$gradout = "градусов";
}
//температура воды
if (substr($Voda, -1) == 1) {
$gradvody = "градус";
} elseif (substr($Voda, -1) >= 2 and substr($Voda, -1) <= 4) {
$gradvody = "градуса";
} elseif (substr($Voda, -1) == 0 or substr($Voda, -1) >= 5) {
$gradvody = "градусов";
}
//Влажность
if (substr($Vlajn, -1) == 1) {
$perc = "процент";
} elseif (substr($Vlajn, -1) >= 2 and substr($Vlajn, -1) <= 4) {
$perc = "процента";
} elseif (substr($Vlajn, -1) == 0 or substr($Vlajn, -1) >= 5) {
$perc = "процентов";
}
//$qqq = substr($TOut, -1);
$WeatherFull = "Сейчас ".timeNow().". Температура на улице ".$TOut." ".$gradout.". Влажность ".$Vlajn." ".$perc.". Ощущается как ".$Temp_Oshush2.". ".$Opisanie.". Ветер ".$Veter2." ".$metr." в секунду. Температура воды в Волге ".$Voda." ".$gradvody.".";
//Вывода данных;
//sg("ThisComputer.weatherFull", $WeatherFull);
sayReply($WeatherFull, 2);
|
Доброе утро
Шаблон: ((Д|д)оброе|(С|с) добрым) утр(о|ом)
Код
$TOut = gg("MyNetatmo.TempOut");
sayReply("Привет, Кирилл! Сейчас ".timeNow().". Температура на улице ".$TOut." градусов.",2);
//if ($TOut < 0) {
// sayReply("Привет, Кирилл! Сейчас ".timeNow().". Температура на улице минус ".$TOut." градусов.",4);
//} else if ($TOut >= 0){
//sayReply("Привет, Кирилл! Сейчас ".timeNow().". Температура на улице плюс ".$TOut." градусов",4);
//}
|
Общий контекст
|
((З|з)абудь|(Х|х)ватит|(Д|д)овольно)
Код
context_clear();
clearTimeOut('user_'.context_getuser().'_contexttimeout');
sayReply("Контекст забыт.", 2);
|
|
Статус освещения
Код
$SvOn = gg("SwitchStatus.All_On");
$SvOff = gg("SwitchStatus.All_Off");
if ($SvOn == 1) {
sayReply("Свет в квартире включен!", 2);
} else {
sayReply("Свет в квартире выключен!", 2);
}
|
Тестирование
Код
$Svet = "SwitchStatus.Svet_";
for ($i = 1; $i <= 5; $i++) {
//1 - коридор 1
//2 - коридор 2
//3 - кухня 1
//4 - ванна 1
//5 - туалет 1
$Svet2 = $Svet.$i;
$SvOn = gg($Svet2);
//sayReply($Svet2." ".$SvOn,2);
if ($i <= 1) {
$Tabl1 = array($Svet2); //массив названий
$Tabl2 = array($SvOn); //массив статусов
} else {
array_push($Tabl1, $Svet2);
array_push($Tabl2, $SvOn);
}
}
$Tabl3 = array_combine($Tabl1, $Tabl2); //объеденяет 2 массива
$Svet_On = (array_keys($Tabl3, "1")); //массив названий со значением 1 - горит
$Svet_Off = (array_keys($Tabl3, "2")); //массив названий со значением 2 - не горит
//Удаляем пустые строки в массиве
$On = array_diff($Svet_On, array('', null));
$Off = array_diff($Svet_Off, array('', null));
//кол-во элементов в массивах
$Val_On = count($On);
$Val_Off = count($Off);
//Вывод информации
if ($Val_On == 0 and $Val_Off <> 0) {
sayReply("Свет выключен везде!");
} else if ($Val_On <> 0 and $Val_Off == 0) {
sayReply("Свет включен везде!");
}
//say($Val_On."-".$Val_Off);
//перевод массива в строку и подмена данных
if ($Val_On <> 0) {
$Arr_On_Index = implode(", ", $On);
$Arr_On = str_replace("SwitchStatus.Svet_1", "корридоре 1", $Arr_On_Index);
$Arr_On = str_replace("SwitchStatus.Svet_2", "корридоре 2", $Arr_On);
$Arr_On = str_replace("SwitchStatus.Svet_3", "кухне", $Arr_On);
$Arr_On = str_replace("SwitchStatus.Svet_4", "ванной", $Arr_On);
$Arr_On = str_replace("SwitchStatus.Svet_5", "туалете", $Arr_On);
}
if ($Val_Off <> 0) {
$Arr_Off_Index = implode(", ", $Off);
$Arr_Off = str_replace("SwitchStatus.Svet_1", "корридоре 1", $Arr_Off_Index);
$Arr_Off = str_replace("SwitchStatus.Svet_2", "корридоре 2", $Arr_Off);
$Arr_Off = str_replace("SwitchStatus.Svet_3", "кухне", $Arr_Off);
$Arr_Off = str_replace("SwitchStatus.Svet_4", "ванной", $Arr_Off);
$Arr_Off = str_replace("SwitchStatus.Svet_5", "туалете", $Arr_Off);
}
//вывод наименьшей строки
if ($Val_On <> 0 and $Val_On <= $Val_Off) {
$Nach_Str_On = substr($Arr_On, 0, 10);
say($Arr_On);
say($Nach_Str_On);
if ($Nach_Str_On === "кухне"){
sayReply("Свет включен на ".$Arr_On, 2);
} else {
sayReply("Свет включен в ".$Arr_On, 2);
}
} else if ($Val_Off <> 0 and $Val_On > $Val_Off) {
$Nach_Str_Off = substr($Arr_Off, 0, 10);
if ($Nach_Str_Off === "кухне"){
sayReply("Свет выключен на ".$Arr_Off, 2);
} else {
sayReply("Свет выключен в ".$Arr_Off, 2);
}
}
//sayReply(array_sum($Tabl2)); сумма
|