Страница 2 из 5

Re: Шаблоны поведения для новичков

Добавлено: Вт апр 10, 2018 9:52 am
slgeo
У меня стоит комментарий, что больше не работает )

Re: Шаблоны поведения для новичков

Добавлено: Вт апр 10, 2018 11:14 am
Сергей Петрянкин
Идея, конечно, была замечательная. Жаль. Тогда помогите, пожалуйста разобрать включение радио:
1. (Включи|Выключи|включи|выключи)
код: sayReply('Что именно мне '.$original.'ть?',2);
2. радио
код: //sayReply('Какую станцию?',2);

if (preg_match('/включи/isu',$original))
{
sayReply('Включаю радио',2);
cm('RadioSetting.Control',array('cmd'=>'play'));
context_clear();
}
elseif (preg_match('/выключи/isu',$original))
{
sayReply('Выключаю радио',2);
cm('RadioSetting.Control',array('cmd'=>'stop'));
context_clear();
}
else
{
sayReply('Непонятно что с радио: '.$original,2);
}

//Reply('Вы не выбрали какую станцию, включаю последнюю',2);
//cm('RadioSetting.Control',array('cmd'=>'play'));

3. ((М|м)аяк)
код:
cm('RadioSetting.Control',array('cmd'=>'stop'));
say('Включаю радио Маяк');
cm('RadioSetting.Control',array('cmd'=>'play'));
cm('RadioSetting.Control', array('sta'=>'Маяк'));

когда даю команду, например, "включи радио маяк" радио включается, но с ошибкой:
Warning: preg_match(): Compilation failed: unmatched parentheses at offset 35 in /var/www/html/modules/patterns/patterns.class.php on line 719

Re: Шаблоны поведения для новичков

Добавлено: Сб апр 28, 2018 10:58 am
Onilo09
Добрый день, возможно как то получить название терминала с которого пришло сообщение? хотелось бы чтобы система понимала с какого терминала мне пришло "включи свет" и включил именно там где я нахожусь.

Re: Шаблоны поведения для новичков

Добавлено: Сб апр 28, 2018 11:24 am
fandaymon
Onilo09 писал(а):
Сб апр 28, 2018 10:58 am
Добрый день, возможно как то получить название терминала с которого пришло сообщение? хотелось бы чтобы система понимала с какого терминала мне пришло "включи свет" и включил именно там где я нахожусь.
Можно, наверное, делать так же, как это делает команда sayreply

Код: Выделить всё

$replayto=$matches[0];
$terminal_rec=SQLSelectOne("SELECT * FROM terminals WHERE LATEST_REQUEST LIKE '%".DBSafe($replyto)."%' ORDER BY LATEST_REQUEST_TIME DESC LIMIT 1");
$terminal_rec['NAME'] - здесь будет название терминала

Re: Шаблоны поведения для новичков

Добавлено: Вт ноя 06, 2018 10:05 pm
Lerych
Господа, помогите реализовать шаблон поведения:
Я: "Покажи сцену ..."
Алиса: "Как пожелаете" и открывает созданную ранее сцену (например, с видео с камеры наблюдения), желательно во всплывающем окне.
Как реализовать через элемент интерфейса нашёл, а вот как скриптом не нашел.
Спасибо!

Re: Шаблоны поведения для новичков

Добавлено: Ср ноя 07, 2018 1:24 am
xor
Lerych писал(а):
Вт ноя 06, 2018 10:05 pm
Господа, помогите реализовать шаблон поведения:
Я: "Покажи сцену ..."
Алиса: "Как пожелаете" и открывает созданную ранее сцену (например, с видео с камеры наблюдения), желательно во всплывающем окне.
Как реализовать через элемент интерфейса нашёл, а вот как скриптом не нашел.
Спасибо!
Если без всплывающих окон

Код: Выделить всё

header( "Location: http://192.168.1.7/popup/scenes/5.html" );

Код: Выделить всё

echo(file_get_contents("http://192.168.1.7/popup/scenes/12.html"));
пойдёт на первое время?

Re: Шаблоны поведения для новичков

Добавлено: Ср ноя 07, 2018 6:20 am
ZyaK
Onilo09 писал(а):
Сб апр 28, 2018 10:58 am
Добрый день, возможно как то получить название терминала с которого пришло сообщение? хотелось бы чтобы система понимала с какого терминала мне пришло "включи свет" и включил именно там где я нахожусь.
у меня как то так

Код: Выделить всё

global $session; //Обращаемся к глобальной переменной

  sayTo("Добавляю громкость", 2, $session->data['TERMINAL']);
  $objects=array('IR','Usilitel', 'Usilitel');
foreach($objects as $o) {
callMethod($o.'.vol_up');

Re: Шаблоны поведения для новичков

Добавлено: Ср ноя 07, 2018 11:44 pm
Lerych
xor писал(а):
Ср ноя 07, 2018 1:24 am
Lerych писал(а):
Вт ноя 06, 2018 10:05 pm
Господа, помогите реализовать шаблон поведения:
Я: "Покажи сцену ..."
Алиса: "Как пожелаете" и открывает созданную ранее сцену (например, с видео с камеры наблюдения), желательно во всплывающем окне.
Как реализовать через элемент интерфейса нашёл, а вот как скриптом не нашел.
Спасибо!
Если без всплывающих окон

Код: Выделить всё

header( "Location: http://192.168.1.7/popup/scenes/5.html" );

Код: Выделить всё

echo(file_get_contents("http://192.168.1.7/popup/scenes/12.html"));
пойдёт на первое время?
Ничего не происходит

Re: Шаблоны поведения для новичков

Добавлено: Чт ноя 08, 2018 12:12 am
xor
Lerych писал(а):
Ср ноя 07, 2018 11:44 pm
xor писал(а):
Ср ноя 07, 2018 1:24 am
Lerych писал(а):
Вт ноя 06, 2018 10:05 pm
Господа, помогите реализовать шаблон поведения:
Я: "Покажи сцену ..."
Алиса: "Как пожелаете" и открывает созданную ранее сцену (например, с видео с камеры наблюдения), желательно во всплывающем окне.
Как реализовать через элемент интерфейса нашёл, а вот как скриптом не нашел.
Спасибо!
Если без всплывающих окон

Код: Выделить всё

header( "Location: http://192.168.1.7/popup/scenes/5.html" );

Код: Выделить всё

echo(file_get_contents("http://192.168.1.7/popup/scenes/12.html"));
пойдёт на первое время?
Ничего не происходит
Кхе, сервер подставлен свой и номер сцены?
и это два варианта скриптов, а не один

Re: Шаблоны поведения для новичков

Добавлено: Чт ноя 08, 2018 12:42 am
tarasfrompir
Onilo09 писал(а):
Сб апр 28, 2018 10:58 am
Добрый день, возможно как то получить название терминала с которого пришло сообщение? хотелось бы чтобы система понимала с какого терминала мне пришло "включи свет" и включил именно там где я нахожусь.
есть такая функция -
/**
* Summary of sayReply
* @param mixed $ph Phrase
* @param mixed $level Level (default 0)
* @param mixed $replyto Original request
* @return void
*/
function sayReply($ph, $level = 0, $replyto='')

которая дает такое событие - processSubscriptionsSafe('SAYREPLY', array('level' => $level, 'message' => $ph, 'replyto' => $replyto, 'source'=>$source));
и если ваш класс подписан на него - то там и получиш 'source'=>$source - тоесть терминал от которого пришло ваше сообщение..
ну или таблица shouts - в которой указан source - тип (название) терминала...

НО вот вопрос а как это передать в систему - что терминал такой то получил запрос на включение света?
КАК вы вообще говорите в терминал ?? (окромя используете МАЖОРДРОИД АПИ ?)