(start|play) music
Код
runScript('playFavoriteMusic');
|
report system state
|
WhatIs
Код
// WhatIs
// поиск
// https://mjdm.ru/forum/viewtopic.php?t=2392
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
$word = $request = $matches[1]; //получаем искомое слово
$space_replace = preg_match_all("#\s#isu", $request, $s); //проверяем, есть ли пробелы в запросе
if ($space_replace === 1) { //если есть
$request = preg_replace("#\s#", '_', $request); //меняем их на _
}
$url = 'https://ru.wikipedia.org/w/api.php?action=opensearch&search='.$request.'&format=xml'; //формируем запрос
$ch = curl_init(); //инициируем curl
curl_setopt($ch, CURLOPT_URL, $url); //передаем url
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //возвращаем результат в виде строки
curl_setopt($ch, CURLOPT_USERAGENT, 'MyBot/1.0 (http://www.mysite.com/)'); //имитируем браузер
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //отключаем проверку ssl-сертификата узла
$result = curl_exec($ch); //выполяем curl
$data = fopen('test.xml', 'w'); //открываем файл для записи
fputs($data, $result); //записываем результат выполнения
fclose($data); //закрываем
$file = 'test.xml'; //указываем файл
$data_xml = simplexml_load_file($file); //загружаем его и раскладываем на массив
$text = $text1 = $data_xml->Section[0]->Item[0]->Text[0]; //получаем первый найденный вариант
$description = $data_xml->Section[0]->Item[0]->Description[0]; //получаем определение слова
$description = mb_convert_encoding($description, 'UTF-8', 'UTF-8'); //конвертируем utf-8 без bom в простой utf-8
if (empty($description)) { //если ничего не нашлось
say ("Я не знаю такого слова.");
} elseif (!empty($description)) { //иначе
$text = preg_replace("#ё#", 'е', $text); //меняем "ё" на "е"
$text = mb_strtolower($text, 'utf-8'); //меняем регистр всех букв на нижний
if ($word === $text) { //если первый результат равен введенному слову
function utf8_str_split($str) {
// переводим каждый символ в массив строк
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]); //возвращаем ASCII-код сиволов и проверяем их на корректность
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
/**
* Функция вырезки
* @param $str
* @return
*/
function clearstr($str){
$sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю';
$s1 = array_merge(utf8_str_split($sru), utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'), array('&',' ','#',';','%','?',':','(',')','-','_','=','+','[',']',',','.','/','\\'));
$codes = array();
for ($i=0; $iSection[0]->Item[1]->Text[0]; //получаем второе совпадение
$text3 = $data_xml->Section[0]->Item[2]->Text[0]; //получаем третье совпадение
$say = "По Вашему запросу совпадений не найдено. Похожие результаты: ";
//$say.=$text1 .", " .$text2 ." и " .$text3 .".";
$say.=$text1; //первый похожий резальтат
if ($text2 ==='') { //если во втором результате пусто
$say.="."; //ставим точку
} else { //иначе
$say.= ", " .$text2; //ставим запятую и дописываем второй вариант
if ($text3 === '') { //если в третьем результате пусто
$say.="."; //ставим точку
} else { //иначе
$say.=" и " .$text3; //ставим запятую и дописываем третий вариант
}
}
sayReply($say);
}
}
|
Включение
Шаблон: (включи|включить|открой|открыть)
Код
sayReply("а что мне включить",2);
|
вентилятор
Код
|
ворота
Код
// Открыть ворота (замок)
$ack=getURL('http://192.168.1.5/EAO',0);
if ($ack == "") {$ack="Нет управляющего устройства";}
echo $ack;
sayReply($ack,2);
|
гараж
Код
//
sayReply('Возможность не реализована - нет устройства',2);
|
калитку
Код
$ack=getURL('http://192.168.1.5/CAO',0);
echo $ack;sayReply($ack,2);
|
компьютер
Шаблон: (компьютер)|(мой компьютер)
Код
|
лампу
Шаблон: (лампу|настольную лампу)
Код
|
маяк
Код
// Включить парковочный маяк
// $ack=getURL('http://192.168.1.5/EAO',0);
$ack="33_Нет управляющего устройства";
echo $ack;
sayReply($ack,2);
|
ничего
Шаблон: (ничего|отбой|отстань|отвали)
Код
|
подогрев машины
Код
sg('Relay214.status','1');
|
прожектор
Код
CallMethod('Lamp10.turnOn');
|
Серёге интернет
Код
callMethod('Socket1.turnOn');
|
таймер
Код
//
say('не реализовано');
|
телевизор
Код
//
say('не реализовано');
|
чайник
Код
//
callMethod('RK_G210S.boil');
|
|
Включение света
Шаблон: (включи свет|включить свет)
Код
sayReply("а где мне включить свет",2);
|
в детской
Код
CallMethod('Lamp3.turnOn');
|
в зале
Код
CallMethod('Lamp1.turnOn');
|
в коридоре
Код
CallMethod('Lamp4-1.turnOn');
|
в котельной
Код
CallMethod('Lamp5.turnOn');
|
на кухне
Код
CallMethod('Lamp2.turnOn');
|
на улице
Код
CallMethod('Lamp9.turnOn');
|
|
Внешний ip
Код
|
Вызови
Код
// Название: Вызови
// Шаблон: (Вызови|позови)
// Разбираем предложение на слова
// Надо учесть, что длинна $message_text имеет ограничения
$keywords = preg_split("/[\s,]+/",$original);
$total=count($keywords);
if ($keywords[1] == "Серёгу") {$ip="192.168.1.203";}
if ($keywords[1] == "Сергея") {$ip="192.168.1.203";}
if ($keywords[1] == "детскую") {$ip="192.168.1.203";}
if ($keywords[1] == "зал") {$ip="192.168.1.201";}
if ($keywords[1] == "кухню") {$ip="192.168.1.202";}
if ($keywords[1] == "котельную") {$ip="192.168.1.205";}
$url='http://'.$ip.'/blynk3';
$ack=getURL($url,0);
if ($ack == "") {say("статус $ip не получен",2);}
sayReply('выполнено '.$keywords[1]);
|
Выключение
Шаблон: (выключи|выключить|отключи|отключить)
Код
sayReply("а что мне выключить",2);
|
везде свет
Код
|
вентилятор
Код
|
лампу
Шаблон: (лампу|настольную лампу)
Код
|
маяк
Код
//
sayReply("Нет устройства управления",2);
|
ничего
Шаблон: (ничего|отбой|отстань|отвали)
Код
|
НЦ
Шаблон: (циркуляционный насос|нц|nc)
Код
sg('MobiThermC.status','0');
sayReply('отключаю ЦН',0);
|
подогрев машины
Код
sg('Relay214.status','0');
|
прожектор
Код
CallMethod('Lamp10.turnOff');
|
Серёге интернет
Код
callMethod('Socket1.turnOff');
|
чайник
Код
//
callMethod('RK_G210S.off');
|
|
Выключение света
Шаблон: (выключи свет|выключить свет|отключить свет)
Код
sayReply("а где мне выключить свет",2);
|
в детской
Код
CallMethod('Lamp3.turnOff');
|
в зале
Код
CallMethod('Lamp1.turnOff');
|
в коридоре
Код
CallMethod('Lamp4-1.turnOff');
|
в котельной
Код
CallMethod('Lamp5.turnOff');
|
везде
Код
|
на кухне
Код
CallMethod('Lamp2.turnOff');
|
на улице
Код
CallMethod('Lamp9.turnOff');
|
|
Добавь задачу идею
Шаблон: (добавь|добавить|создать) (задачу|идею|заявку|напоминание)
Код
// CreateTaskIdeas
// Добавь задачу идею заявку - добавляет продиктованный текст в Tasks.txt или Ideas.txt
// Шаблон: (добавь|добавить|создать) (задачу|идею|заявку|напоминание)
// добавляет задачу в файл задач идею - в файл идей
$outmsg=""; // очищаем сообщение
// Разбираем предложение на слова
// Надо учесть, что длинна $message_text имеет ограничения
$keywords = preg_split("/[\s,]+/",$original);
$total=count($keywords);
if ($keywords[1] == "задачу") {$fpath="/pData/MD/Tasks.txt";}
if ($keywords[1] == "идею") {$fpath="/pData/MD/Ideas.txt";}
if ($keywords[1] == "заявку") {$fpath="/pData/MD/Application.txt";}
if ($keywords[1] == "напоминание") {$fpath="/pData/MD/Memo.csv";}
// далее пропускаем два слова "создать задачу" или "создать идею"
for($i=2;$i<$total;$i++) { $outmsg= $outmsg.$keywords[$i]." ";}
$outmsg .= "\r\n";
// $outmsg .= $fpath; $outmsg .= "\r\n";
sayreply($outmsg);
$fd = fopen($fpath, 'a') or die("не удалось создать файл");
fwrite($fd, $outmsg);
fclose($fd);
sayReply("Записано");
|
Доложить
Код
sayReply("о чем доложить",2);
|
о нагрузке
Шаблон: (нагрузке|нагрузках)
Код
runScript("AboutCurrent");
|
о температуре
Шаблон: (температуре|температурах)
Код
runScript("AboutTemperatures");
|
|
кто дома
Код
|
Перезагрузи
Код
sayReply("что перезагрузить",2);
|
MIS
Код
// Перезагрузить второй роутер ↑
sayReply("Перезагружаю МИС",2);
runScript('MIS-Restart');
|
второй роутер
Код
// Перезагрузить второй роутер ↑
rs('RestartRouter2');
|
роутер
Код
// Перезагрузить второй роутер ↑
sayReply("Перезагружаю роутер Linet",2);
runScript('RestartRouter1');
|
сервер
Код
// Перезагрузить второй роутер ↑
runScript('Reboot');
|
|
Показать
Шаблон: (покажи|показать|какова) (задачу|задачи|задача|идеи|заявку|заявки)
Код
// ShowTasksIdeas
// Показать задачи, идеи - показывает из текст в Tasks.txt или Ideas.txt
// Шаблон: (покажи|показать|какова) (задачу|задачи|задача|идеи|заявку|заявки)
// из шаблонов поведения
$outmsg=""; // очищаем сообщение
// Разбираем предложение на слова
// Надо учесть, что длинна $message_text имеет ограничения
$keywords = preg_split("/[\s,]+/",$original);
$total=count($keywords);
if ($keywords[1] == "задачу") {$fpath="/pData/MD/Tasks.txt";}
if ($keywords[1] == "задачи") {$fpath="/pData/MD/Tasks.txt";}
if ($keywords[1] == "задача") {$fpath="/pData/MD/Tasks.txt";}
if ($keywords[1] == "идеи") {$fpath="/pData/MD/Ideas.txt";}
if ($keywords[1] == "заявку") {$fpath="/pData/MD/Application.txt";}
if ($keywords[1] == "заявки") {$fpath="/pData/MD/Application.txt";}
$current = file_get_contents($fpath);
sayReply($current);
// sayReply("Не реализовано");
|
Приветствие
Шаблон: (Привет|здравствуйте)
|
прогрей машину
Код
sg('Relay214.status','1');
|
Септик откачан
Шаблон: (септик откачан)|(слив откачали)
Код
// SepticPumpedOut -септик откачан
// записывает дату откачки в файл
// Показать задачи, идеи - показывает из текст в Tasks.txt или Ideas.txt
// Шаблон: (септик откачан)|(слив откачали)
// из шаблонов поведения
$outmsg=" Асеннизатор;1;800"; // очищаем сообщение
$filename = '/aData/Share/MD/Log/Resources.csv';
file_put_contents($filename, date('d.m.y;') . print_r($outmsg, true) . PHP_EOL, FILE_APPEND | LOCK_EX);
sayReply("Хорошо. Запишу дату в отчет");
cm('Septic.SetPerviousLevel');
// далее если требуется нужно включить просушку электродов ВАУ
|
что приготовить
Шаблон: (что готовить|что приготовить)
Код
// WhatCooke отвечает что готовить
// say(getRandomLine("/var/www/cms/texts/whatcooke.txt"),2);
$ack=getRandomLine("/var/www/cms/texts/whatcooke.txt");
sayReply($ack,2);
echo $ack;
|