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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД

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

Сообщение slgeo »

У меня стоит комментарий, что больше не работает )
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Сергей Петрянкин
Сообщения: 17
Зарегистрирован: Сб мар 17, 2018 8:13 am

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

Сообщение Сергей Петрянкин »

Идея, конечно, была замечательная. Жаль. Тогда помогите, пожалуйста разобрать включение радио:
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
Onilo09
Сообщения: 28
Зарегистрирован: Пн окт 02, 2017 11:42 am

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

Сообщение Onilo09 »

Добрый день, возможно как то получить название терминала с которого пришло сообщение? хотелось бы чтобы система понимала с какого терминала мне пришло "включи свет" и включил именно там где я нахожусь.
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

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

Сообщение 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'] - здесь будет название терминала
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов

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

Сообщение Lerych »

Господа, помогите реализовать шаблон поведения:
Я: "Покажи сцену ..."
Алиса: "Как пожелаете" и открывает созданную ранее сцену (например, с видео с камеры наблюдения), желательно во всплывающем окне.
Как реализовать через элемент интерфейса нашёл, а вот как скриптом не нашел.
Спасибо!
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

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

Сообщение 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"));
пойдёт на первое время?
ZyaK
Сообщения: 418
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск

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

Сообщение 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');
PI2 + MQTT + 5 ESP8266 + Atmega16
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов

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

Сообщение 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"));
пойдёт на первое время?
Ничего не происходит
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

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

Сообщение 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"));
пойдёт на первое время?
Ничего не происходит
Кхе, сервер подставлен свой и номер сцены?
и это два варианта скриптов, а не один
Аватара пользователя
tarasfrompir
Сообщения: 3217
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

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

Сообщение 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 - тип (название) терминала...

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