dmitriy_BattLevel
|
$bat=gg("dmitriy.BattLevel");
say("зарядка телефона составляет $bat %",2);
|
easyRF
|
$device_id=$params['did'];
$destination_id=$params['dest'];
$packet_id=$params['pid'];
$command_id=$params['c'];
$data=$params['d'];
if ($device_id==0) {
if ($command_id==10) {
//temp
setGlobal('ws.tempInside',round($data/100));
} elseif ($command_id==12) {
//motion
callMethod('intSensor.statusChanged',array('status'=>1));
clearTimeOut($id.'_move');
setTimeOut($id.'_move',"callMethod('intSensor.statusChanged',array('status'=>0));",20);
}
}
|
humhall2
|
$hupr2=gg("Sensor_humidity02.value");
say("влажность в прихожей на втором этаже составляет $hupr2 процентов",2);
|
RCSwitch
|
$id=$params['rcswitch'];
if ($id=='12345') {
//sensor 1
}
|
sunrise
|
вычисление захода солнца
$sun_info = date_sun_info(time(), 44.044441, 42.860561); // географические координаты
///44.044441, 42.860561
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
echo 'Восход: '.date("H:i:s", $sunrise).'<br>';
setGlobal('ThisComputer.SunRiseTime',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
echo 'Заход: '.date("H:i", $sunset).'<br>';
echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('ThisComputer.SunSetTime',date("H:i", $sunset));
setGlobal('ThisComputer.LongTagTime',gmdate("H:i", $day_length));
}
if ($key == 'transit') {
//echo 'В зените: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.TransitTime',date("H:i", $val));
}
if ($key == 'civil_twilight_begin') {
//echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
setGlobal('ThisComputer.Chicivil_beginTime',date("H:i", $val));
}
if ($key == 'civil_twilight_end') {
//echo 'Конец вечерних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.civil_endTime',date("H:i", $val));
}
}
|
tempdvor
|
$tdvor=gg("Sensor_temp05.value");
say("во дворе$tdvor градусов цельсия",2);
|
temphall1
|
$th1=gg("Sensor_temp06.value");
say("на первом этаже$th1 градусов цельсия",2);
|
temphall2
|
$tspr2=gg("Sensor_temp09.value");
say("температура в прихожей на втором этаже составляет $tspr2 градус цельсия",2);
|
потребление электроэнергии
|
$rozetka2=gg("powerrozetka.value");
say("мощность потребления электроэнергии розеткой в зале составляет $rozetka2 Ватт",2);
|
LG_channelDown
|
setGlobal('RemoteLG1.command','channelDown');
say("вниз",2);
|
LG_channelUp
|
setGlobal('RemoteLG1.command','channelUp');
say("вверх",2);
|
LG_muteOff
|
setGlobal('RemoteLG1.command','muteOff');
say("выключила режим без звука",2);
|
LG_muteOn
|
setGlobal('RemoteLG1.command','muteOn');
say("режим без звука",2);
|
LG_notification
|
setGlobal('RemoteLG1.notification',gg('RemoteLG1.text'));
say("отправила сообщение на телевизор",2);
|
LG_powerOff
|
setGlobal('RemoteLG1.command','powerOff');
say("Выключила тв на мансарде",2);
|
LG_powerOn
|
include_once(DIR_MODULES . 'wol/wol.class.php');
$wake = new wol();
$wake->WakeOnLan("255.255.255.255", 'a8:23:fe:be:94:62');
$wake->WakeOnLan('192.168.255.255','a8:23:fe:be:94:62');
$wake->WakeOnLan('192.168.0.255','a8:23:fe:be:94:62');
$wake->WakeOnLan('192.168.1.255','a8:23:fe:be:94:62');
say("Включила телевизор на мансарде",2);
|
LG_volumeDown
|
setGlobal('RemoteLG1.command','volumeDown');
say("делаю потише",2);
|
LG_volumeUp
|
setGlobal('RemoteLG1.command','volumeUp');
say("делаю громче",2);
|
LG_volume_10
|
setGlobal('RemoteLG1.command','volume|10');
say("делаю громкость на 10 %",2);
|
LG_volume_15
|
setGlobal('RemoteLG1.command','volume|15');
say("делаю громкость на 15 %",2);
|
LG_volume_20
|
setGlobal('RemoteLG1.command','volume|20');
say("делаю громкость на 20 %",2);
|
LG_volume_25
|
setGlobal('RemoteLG1.command','volume|25');
say("делаю громкость на 25 %",2);
|
LG_volume_30
|
setGlobal('RemoteLG1.command','volume|30');
say("делаю громкость на 30 %",2);
|
LG_volume_35
|
setGlobal('RemoteLG1.command','volume|35');
say("делаю громкость на 35 %",2);
|
LG_volume_40
|
setGlobal('RemoteLG1.command','volume|40');
say("делаю громкость на 40 %",2);
|
LG_volume_45
|
setGlobal('RemoteLG1.command','volume|45');
say("делаю громкость на 45 %",2);
|
LG_volume_5
|
setGlobal('RemoteLG1.command','volume|5');
say("делаю громкость на 5 %",2);
|
LG_volume_50
|
setGlobal('RemoteLG1.command','volume|50');
say("делаю громкость на 50 %",2);
|
LG_volume_60
|
setGlobal('RemoteLG1.command','volume|60');
say("делаю громкость на 60 %",2);
|
LG_volume_70
|
setGlobal('RemoteLG1.command','volume|70');
say("делаю громкость на 70 %",2);
|
LG_volume_80
|
setGlobal('RemoteLG1.command','volume|80');
say("делаю громкость на 80 %",2);
|
LG_youtube
|
setGlobal('RemoteLG1.command','youtube|https://www.youtube.com/watch?v=mHUOCxVT5ro');
say("Запускаю ролик в высоком разрешении из ютуб",2);
|
irreceived
|
пришёл сигнал от пульта в зале
/*debmes('IRcode: '.$params['code']);
$code=trim($params['code']);
if ($code=='SONY32e9') {
//green btn
callMethod('lcw5.switch');
} elseif ($code=='SONY52e9'){
//red btn
} elseif ($code=='SONY72e9'){
//yellow btn
} elseif ($code=='SONY12e9'){
//purple btn
} elseif ($code=='SONYfd0') {
//gate btn
callMethod('EntryGates.switch');
}
*/
|
playFavoriteMusic
|
// вытягиваем историю из переменной
$alreadyPlayed=gg("AlreadyPlayedMusic");
if (!$alreadyPlayed) {
$alreadyPlayed='0';
}
// выбираем случайную папку
$rec=SQLSelectOne("SELECT * FROM media_favorites WHERE ID NOT IN (".$alreadyPlayed.") ORDER BY RAND()");
if (!$rec['ID']) {
// папок больше не осталось, поэтому выбираем случайную и сбрасываем истоирю
$rec=SQLSelectOne("SELECT * FROM media_favorites ORDER BY RAND()");
$alreadyPlayed='0';
}
if ($rec['ID']) {
// добавляем выбранную папку в историю
$alreadyPlayed.=','.$rec['ID'];
sg("AlreadyPlayedMusic",$alreadyPlayed);
// запускаем на проигрывание
$collection=SQLSelectOne("SELECT * FROM collections WHERE ID=".(int)$rec['COLLECTION_ID']);
$path=$collection['PATH'].$rec['PATH'];
playMedia($path);
//setTimeOut('VLCPlayer_update',"callMethod('VLCPlayer.update');",10);
}
|
playNextSong
|
//getURL('_/rc/?command=vlc_next',0);
say("переключаю на следующий трек",1);
getURL('http://192.168.0.110:8086/rc/?command=vlc_next',0);
|
playPause
|
//$pausevlc="?command=pl_pause&id=<id>";
//geturl("http://localhost:8080/requests/status.xml".$pausevlc);
getURL("http://192.168.0.110:8086/rc/?command=vlc_pause",0);
//app_player_5cad021bc7dab_action('pause');
//getURL("http://192.168.0.110:8086/module/app_101ru.html?md=app_101ru&mode=play&id=208",0);
//getURL("http://127.0.0.1:8080/requests/status.x ... nd=pl_play", 0,"", "12345",0);
//getURL("http://192.168.0.110:8086/requests/status.xml?command=pl_stop",0);
//exec("start C:\\_majordomo\\apps\\vlc\\vlc.exe");
//$file_path=gg("/popup/app_101ru.html");
//$str='C:\\_majordomo\\apps\\vlc\\vlc '.$file_path;
//safe_exec($str);
|
play_previousSong
|
//getURL('_/rc/?command=vlc_next',0);
getURL('192.168.0.110:8086/rc/?command=vlc_prev',0);
|
showVLCStatus
|
$url=getGlobal('VLCPlayer.URL');
$data=getURL($url.'/requests/status.xml',0,getGlobal('VLCPlayer.Username'),getGlobal('VLCPlayer.Password'),0);
echo ($data);
|
vlc close
|
//getURL('http://192.168.0.110:8086/rc/?command=vlc_pause',0);
//app_player_5cad021bc7dab_action('pause');
//getURL("http://192.168.0.110:8086/module/app_101ru.html?md=app_101ru&mode=play&id=208",0);
//getURL("http://127.0.0.1:8080/requests/status.x ... nd=pl_play", 0,"", "12345",0);
//getURL("http://192.168.0.110:8086/requests/status.xml?command=pl_stop",0);
//exec("start C:\\_majordomo\\apps\\vlc\\vlc.exe");
safe_exec("taskkill /IM vlc.exe /T");
|
VlcStop
|
getURL("http://192.168.0.110:8086/rc/?command=vlc_stop",0);
|
VlcVideo
|
$kino='Аватар';
$ip_sv = '192.168.0.110';
$port_sv='8086';
echo "<b>ищу фильм ".$kino." в домашних базах </b><br>";
echo "<b>сервер ".$ip_sv." порт ".$port_sv." </b><br>";
include_once("./config.php");
$connect_to_db = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die("Could not connect: " . mysql_error());
echo "<b>подключаемся к базе данных ".$connect_to_db."</b><br>";
mysql_select_db("db_terminal",$connect_to_db)
or die("Could not select DB: " . mysql_error());
mysql_query ("SET NAMES utf8");//Устанавливаем кодировку
// значения поиск по похожему
$sql="SELECT * FROM `video_list` WHERE `name` LIKE '%$kino%'";
// выбираем из таблицы
$result=mysql_query($sql,$connect_to_db)
or die(mysql_error());
//Проверяем "есть че"
if(mysql_num_rows($result)){
while($arr=mysql_fetch_array($result)) {
$o=gg("Folder01.skan_dir").'\\'.$arr['name'];
// $mediafile="smb:".str_replace('\\','/', $o);
$mediafile=$o;
echo "<b>фаил ".$mediafile."</b><br>";
}
}else{
echo "<b>не нашла ".$kino;
return;
}
//отправка
$strvlc='vlc --no-repeat --no-loop -vvv "'.$mediafile.'" --sout=#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://'.$ip_sv.':'.$port_sv.'/}';
echo '<b>строка для vlc </b><br>'.$strvlc.'<br>';
$strcmd='psexec -i -h -u HOME10\user \\'.$ip_sv.' "c:\Program Files (x86)\VideoLAN\VLC\vlc.exe" '.$strvlc;
echo '<b>генерим магию </b><br>'.$strcmd.'<br>';
|
vlc_open
|
//getURL('http://192.168.0.110:8086/rc/?command=vlc_pause',0);
//app_player_5cad021bc7dab_action('pause');
//getURL("http://192.168.0.110:8086/module/app_101ru.html?md=app_101ru&mode=play&id=208",0);
//getURL("http://127.0.0.1:8080/requests/status.x ... nd=pl_play", 0,"", "12345",0);
//getURL("http://192.168.0.110:8086/requests/status.xml?command=pl_stop",0);
exec("start C:\\_majordomo\\apps\\vlc\\vlc.exe");
//$file_path=gg("/popup/app_101ru.html");
//$str='C:\\_majordomo\\apps\\vlc\\vlc '.$file_path;
//safe_exec($str);
|
vlc_vol+
|
getURL("http://localhost:8080/requests/status.x ... val=+50",0);
|
rec
|
//устанавливаем кодировки
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 ("Я не знаю такого слова",2);
} 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 <string> $str
* @return <string>
*/
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; $i<count($s1); $i++){
$codes[] = ord($s1[$i]);
}
$str_s = utf8_str_split($str);
for ($i=0; $i<count($str_s); $i++){
if (!in_array(ord($str_s[$i]), $codes)){
$str = str_replace($str_s[$i], '', $str);
}
}
return $str;
}
$res = clearstr($description); //удаляем спецсимволы
$res = preg_replace("#ё#isu", 'е', $res); //меняем ё на е
//делаем первую букву большой
$first = mb_substr($word, 0,1, 'utf-8'); //возвращаем 1 букву искомой фразы
$last = mb_substr($word,1); //возвращаем остальное
$first = mb_strtoupper($first, 'utf-8'); //переводим первую букву в верхний регистр
$last = mb_strtolower($last, "utf-8"); //все остальное - в нижний
$word = $first.$last; //склеиваем
$rep = $word .", это "; //искомое слово + фраза замены
$tracking = preg_replace("#".$word."#isum", $rep, $res,1); //заменяем первое слово определения нашим словом поиска и замены
$tracking = preg_replace("#\s\(.*?\)#isu", '', $tracking); //удаляем все остальные круглые скобки и их содержимое
say($tracking,2);
} elseif ($word != $text){ //если искомое слово не найдено в первом варианте
$text2 = $data_xml->Section[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; //ставим запятую и дописываем третий вариант
}
}
say($say,2);
}
}
|
Charging
|
$Batt = gg("dmitriy.BattLevel");
$Charg = gg("dmitriy.Charging");
if (($Batt < 10)&($Charg < 1)){
say("Дмитрий ваш телефон почти сдох",2);
}
|
Demo01
|
include_once(DIR_MODULES.'app_radio/app_radio.class.php');
say('Здравствуйте, меня зовут Алиса.', 2);
say('Я представляю систему умного дома Мажордомо и сейчас расскажу о том, что я знаю и умею. ', 2);
sleep(1);
say('Во-первых, я в курсе тово, какая температура в разных комнатах ', 2);
rs("temphall1");
rs("temphall2");
rs("tempdvor");
rs("humhall2");
say('Если дома будет сухо, то я включу увлажнитель воздуха. Я обязательно предупрежу об этом утром.', 2);
say("Так же я знаю, что на улице сегодня",2);
//Запускаем обновленние данных с сервиса
include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
$openweather = new app_openweather();
$openweather->get_weather(gg('ow_city.id'));
//Температура
$tempw=round(gg("ow_fact.temperature"));
if($tempw >= 11 and $tempw <= 14){
$degree=" градусов ";
}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
$degree= градусов ; }
if($tempw == 1){
$degree= градус ; }
if($tempw >= 2 and $tempw <= 4){
$degree= градуса ; }
}
$tNew = abs((float)getGlobal('ow_fact.temperature'));
//влажность
$tempw2=round(gg("ow_fact.humidity"));
if($tempw2 >= 11 and $tempw2 <= 14){
$tempcels=" процентов ";
}
else{
while ($tempw2 > 9){
$tempw2=$tempw2-10;
}
if($tempw2 == 0 or $tempw2 >= 5 and $tempw2 <= 9){
$tempcels= процентов ; }
if($tempw2 == 1){
$tempcels= процент ; }
if($tempw2 >= 2 and $tempw2 <= 4){
$tempcels= процента ; }
}
//давление
$pressure=(float)gg("ow_fact.pressure_mmhg");
if ($pressure<728) {
$stp=" Атмосферное давление пониженное. ";
} elseif ($pressure>768) {
$stp=" Атмосферное давление повышенное. ";
} else {
$stp=" Атмосферное давление нормальное. ";
}
//ветер
$WindSpeed=(float)gg("ow_fact.wind_speed");
if ($WindSpeed<1) {
$stw.=" Ветра нет.";
} elseif ($WindSpeed<3) {
$stw.=" Ветер слабый.";
} elseif ($WindSpeed<6) {
$stw.=" Ветер сильный.";
} elseif ($WindSpeed<9) {
$stw.=" Ветер очень сильный.";
} else {
$stw.=" Ожидается ураган ";
}
$status.="Погода в ".gg("ow_city.name")." на на данный момент: ".gg("ow_fact.weather_type").". "." Температура: ".round(gg("ow_fact.temperature"))." ".$degree." цельсия. "." Относительная влажность: ".round(gg("ow_fact.humidity"))." ".$tempcels.". ".$stp.$stw;
say($status,2);
sleep(1);
say('В мои обязанности входит наблюдение за тем, где находятся мои хозяева. ', 2);
//проверяем кто дома
$user=getObjectsByClass("Users");
$total=count($user);
for($i=0;$i<$total;$i++) {
$user[$i]['isHome']=getGlobal($user[$i]['TITLE'].'.isHome');
$user[$i]['user']=getGlobal($user[$i]['TITLE'].'.NAME');
if ($user[$i]['isHome']) {
$res_user[]=$user[$i]['user'];
}
}
if ($res_user){
$isHomeText="Сейчас дома: ".implode(", ",$res_user);
}else{
$isHomeText="Если и есть кто, то я его не знаю.";
}
say($isHomeText,2);
say('Уровень заряда телефона Дмитрия '.gg('dmitriy.BattLevel').процентов,2);
say('Если телефон будет разряжен, то я об этом предупрежу. Так же я знаю, когда дома никого нет и когда кто-то приходит домой,чтобы рационально управлять домашними системами.',2);
say('Кстати, об управлении. Я могу управлять различными приборами или, например, светом.', 2);
say('Вот смотрите, я сейчас немного поиграю с освещением. У меня записано несколько световых сцен под различные обстоятельства. ', 2);
setTimeOut('DemoTimer',"runScript('Demo02');",127);
|
Demo02
|
$lastrelay11=gg('Relay11.status');
callmethod('Relay11.switch');
sleep(2) ;
$lastrelay12=gg('Relay12.status');
callmethod('Relay12.switch');
sleep(2) ;
$lastrelay13=gg('Relay13.status');
callmethod('Relay13.switch');
sleep(1) ;
$lastrelay18=gg('Relay18.status');
callmethod('Relay18.switch');
sleep(5) ;
sg('Relay11.status',$lastrelay11);
sg('Relay12.status',$lastrelay12);
sg('Relay13.status',$lastrelay13);
sg('Relay18.status',$lastrelay18);
//say('Ещё по утрам я поднимаю шторы и закрываю их вечером, посмотрите как это происходит (в спальне поднимаются/опускаются шторы). ', 2);
say('Также я могу проверять вашу почту. Например в почтовом ящике Дмитрия на начало это часа было непрочитано '.gg("unreademail").' сообщений.', 2);
say('Ко мне можно обратиться и через Интернет, так что вы можете меня попросить открыть дверь, даже если никого нет дома и с помощью системы видео-наблюдения контролировать, что происходит.', 2);
say('Кроме управления механизмами, я могу помочь и с развлечением. Например, сейчас включу последнюю прослушиваемую вами радиостанцию.', 2);
setTimeOut('DemoTimer',"runScript('Demo03');",38);
|
Demo03
|
/*include_once(DIR_MODULES.'app_radio/app_radio.class.php');
$app_radio=new app_radio();
$app_radio->control('play');//вкл радио
sleep(10);
$app_radio->control('stop');//вкл радио
say('Ну или даже поставить мультфильм для ребёнка. ', 2);
setTimeOut('DemoTimer',"runScript('Demo04');",60);
*/
cm('RadioSetting.Control', array('sta'=>'Europa Plus', 'cmd'=>'play', 'vol'=>50));
sleep(20);
cm('RadioSetting.Control', array('cmd'=>'stop'));
say('Ну или даже поставить видео в разрешении ультра HD. ', 2);
setTimeOut('DemoTimer',"runScript('Demo04');",10);
|
demo04
|
cm('RadioSetting.Control', array('sta'=>'yotube 4k', 'cmd'=>'play', 'vol'=>50));
sleep(20);
cm('RadioSetting.Control', array('cmd'=>'stop'));
setTimeOut('DemoTimer',"runScript('Demo05');",1);
|
Demo05
|
say('Ну как, понравилось? А ещё вы можете у меня что-нибудь спросить. Я могу найти ответы на вопросы “что такое” или “кто такой”. Попробуйте, спросите! ', 2);
rs("rec");
setTimeOut('DemoTimer',"runScript('Demo06');",60);
|
Demo06
|
say('Спасибо за внимание и всегда к вашим услугам ', 2);
|
DemoStart
|
setGlobal('DemoMode',1);
set_time_limit(180);
setTimeOut('DemoStart','runScript("Demo01");',1);
|
lightswitch
|
$ar = array ("Relay01", "Relay12", "Relay13","Relay07");
$n=0;
foreach ($ar as $key => $value) {
echo ($value.' '. $key);
$n=$n+1;
$last.$value=gg('Relay07.status');
if ($last.$value=1) {$nn==$n;}
sg($value.'.status',$last.$value);
}
|
test
|
setTimeOut('testTimer','say("Hello world!");',30);
|
timeNow
|
say('Сейчас'.timeNow(),2);
|
wiki
|
$zap=$params['zapros'];
if ($zap==""){$zap="путин";}
//say('Запрашиваю у Wikipedia информацию о '.$zap,2);
$zapurl=urlencode($zap);
//echo $zapurl;
//$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=json&inprop=url';
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
//echo $url;
$answ=file_get_contents($url);
//echo $answ;
//echo "-----------------------";
//$data=json_decode($content,true, JSON_UNESCAPED_UNICODE);
// $data=json_encode($answ, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
//$data=json_encode($answ, true);
//$objn=$data[0]['id'];
//$objn=$data[0]['code'];
//echo $data;
//echo $objn.'----------------';
//addClassObject('livegpstracks',$objn);
//$src=$data[2];
//sg( $objn.'.json',$content);
// sg( $objn.'.link','https://livegpstracks.com/dv_'.$objn.'.html');
//foreach ($src as $key=> $value ) {
//echo $key.':'.$value;
//}
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description;
$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2);
//sg('temp', $otvet);
//say(gg('temp'));
|
wiki2
|
//устанавливаем кодировки
header("Content-type: text/html;charset=utf-8");
mb_internal_encoding("UTF-8");
//$word = $request = $matches[1]; //получаем искомое слово
$word=$params['zapros'];
say('Запрашиваю у Wikipedia информацию о '.$word );
$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 <string> $str
* @return <string>
*/
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; $i<count($s1); $i++){
$codes[] = ord($s1[$i]);
}
$str_s = utf8_str_split($str);
for ($i=0; $i<count($str_s); $i++){
if (!in_array(ord($str_s[$i]), $codes)){
$str = str_replace($str_s[$i], '', $str);
}
}
return $str;
}
$res = clearstr($description); //удаляем спецсимволы
$res = preg_replace("#ё#isu", 'е', $res); //меняем ё на е
//делаем первую букву большой
$first = mb_substr($word, 0,1, 'utf-8'); //возвращаем 1 букву искомой фразы
$last = mb_substr($word,1); //возвращаем остальное
$first = mb_strtoupper($first, 'utf-8'); //переводим первую букву в верхний регистр
$last = mb_strtolower($last, "utf-8"); //все остальное - в нижний
$word = $first.$last; //склеиваем
$rep = $word .", это "; //искомое слово + фраза замены
$tracking = preg_replace("#".$word."#isum", $rep, $res,1); //заменяем первое слово определения нашим словом поиска и замены
$tracking = preg_replace("#\s\(.*?\)#isu", '', $tracking); //удаляем все остальные круглые скобки и их содержимое
say($tracking);
} elseif ($word != $text){ //если искомое слово не найдено в первом варианте
$text2 = $data_xml->Section[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; //ставим запятую и дописываем третий вариант
}
}
say($say);
}
}
|
eveningGreeting
|
// возвращаемся вечером домой
say("Добро пожаловать домой!",2);
//setTimeOut('canhelp','runScript("TabletAsk");',10);
// включаем блок зарядок на 1 час
//callMethod("netping_pwr2.turnon");
//clearTimeOut("charging_outlet2");
//setTimeOut("charging_outlet2",'callMethod("netping_pwr2.turnoff");',1*60*60);
// если уже темно
//if (getGlobal('DarknessMode.active')) {
// callMethod("lcw0.turnOn"); // включаем свет в прихожей
// callMethod("lcw1.turnOn"); // включаем свет над барной стойкой
//callMethod("lcw3.turnOn"); // включаем подсветку потолка в зале
//callMethod("lcw4.turnOn"); // включаем свет в коридоре
// callMethod("lcw8.turnOn"); // включаем свет над столом
// callMethod("RCOutlet1.turnOn"); // включаем подветку на кухне
//callMethod("noo8.turnOn"); // включаем подсветку мебели
// callMethod('Orvibo1.turnOn'); //включаем гирлянду
//callMethod("MiLamp2.setColor",array('color'=>'#00ff00')); // свет в цветном светильнике
//}
// включаем компьютер
//runScript("WOL");
|
morningAlarm
|
Утренний будильник
/*clearTimeOut('AlarmTimer');
if (gg('ThisComputer.AlarmWaiting')) {
if (timeIs('11:00')) {
say('Видимо зря стараюсь...');
setGlobal('ThisComputer.AlarmWaiting',0);
}
say("Ну когда же вы проснётесь!");
} else {
say("Просыпайтесь, уже пора вставать!",2);
setGlobal('ThisComputer.AlarmWaiting',1);
//runScript('playFavoriteMusic');
runScript('morningRoutine');
}
setTimeOut('AlarmTimer','runScript("MorningAlarm");',10*60);
*/
|
morningGreeting
|
утреннее приветствие
say("Доброе утро!",2);
runScript("sayTime");
clearTimeOut('AlarmTimer');
if (gg('ThisComputer.AlarmWaiting')) {
setGlobal('ThisComputer.AlarmWaiting',0);
}
if (gg('GuestsMode.active')) return;
runScript('morningRoutine');
runScript("sayTodayAgenda");
//runScript("playFavoriteMusic");
|
NobodyHome
|
Срабатывает, когда никого дома нет
/*say('Включаю режим экономии', 2);
callMethod('EconomMode'.'.'.'activate');
if (getGlobal('Motion01.status')) {
runScript('Motion01.status', array('start'=>'1'));
}*/
say("По-моему никого нет дома...");
setGlobal('somebodyHome',0); // ставим глобальный флаг на то что никого нет дома
setGlobal('somebodyHomeText','Никого нет дома');
if (timeBetween('00:00', '7:00')) {
say("Хотя скорее всего все спят :) Ночь ведь!");
}
|
SawYou
|
рассказывает "разное" если увидел пользователя
if (gg('securityMode')) {return;}
if (gg('nobodyHome')) {return;} //Если дома нет
$Users=getObjectsByClass("Users");
$total=count($Users);
for($i=0;$i<$total;$i++) {
$fullName=gg($Users[$i]['TITLE'].'.fullName');
$isHome=gg($Users[$i]['TITLE'].'.isHome');
$GMailNew=gg($Users[$i]['TITLE'].'.GMailNew');
$BattLevel=gg($Users[$i]['TITLE'].'.BattLevel');
$WasHome=gg($Users[$i]['TITLE'].'.WasHomeTimestamp');
$HelloTimestamp=gg($Users[$i]['TITLE'].'.HelloTimestamp');
if ($isHome) {
if ($WasHome>=$HelloTimestamp+5*60*60){
if (timeBetween('12:00', '16:00')){
sg($Users[$i]['TITLE'].'.HelloTimestamp',time());
$msgtxt="Добрый день ".$fullName."!";
say ($msgtxt,2);
// Читаем задачи Wunderlist через 1,5 минуты и отправляем стикер в телеграмм
$Wunderlist="rs(AliceWunderlist, array('User' => '".$Users[$i]['TITLE']."'));";
$str="rs(SendSticker_v, array('stickerbody' => '".$msgtxt."'));";
setTimeOut("SawYouStickerTimer",$str,90);
setTimeOut("WunderlistTimer",$Wunderlist,95);
}
if (timeBetween('16:00', '23:55')){
sg($Users[$i]['TITLE'].'.HelloTimestamp',time());
$msgtxt="Добрый вечер ".$fullName."!";
say ($msgtxt,2);
// Читаем задачи Wunderlist через 1,5 минуты и отправляем стикер в телеграмм
$Wunderlist="rs(AliceWunderlist, array('User' => '".$Users[$i]['TITLE']."'));";
$str="rs(SendSticker_v, array('stickerbody' => '".$msgtxt."'));";
//Если включен режим ОПАСНОСТЬ то напоминаем
if (gg('ThisComputer.danger')){
say($fullName.", в системе был обнаружен сбой или критическое событие!",10);
$str="rs(SendSticker_v, array('stickerbody' => 'Обнаружен сбой'));";
setTimeOut("SawYouStickerTimer",$str,90);
rs(Diagnostics);
rs(reportStatus);
}
setTimeOut("SawYouStickerTimer",$str,90);
setTimeOut("WunderlistTimer",$Wunderlist,95);
//Читаем почту
cm($Users[$i]['TITLE'].".ReadMail");
}
if ($BattLevel<15 && $BattLevel>0){
say ($fullName.", мне кажется, что у Вас садится телефон.",1);
}
}
}
}
|
SomebodyHome
|
Срабатывает в том случае, когда кто-то появился дома
callMethod('EconomMode'.'.'.'deactivate');
say('Здравствуйте!', 2);
callMethod('NobodyHomeMode.deactivate');
runScript('reportStatus', array());
if (getGlobal('Motion01.status')) {
setTimeOut('Motion01.status', " runScript('Motion01.status', array('stop'=>'1'));", (int)('120'));
}
|