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

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

Модератор: immortal

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

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

Сообщение slgeo » Вт апр 10, 2018 9:52 am

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

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
Onilo09
Сообщения: 28
Зарегистрирован: Пн окт 02, 2017 11:42 am
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение Onilo09 » Сб апр 28, 2018 10:58 am

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

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

Сообщение fandaymon » Сб апр 28, 2018 11:24 am

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'] - здесь будет название терминала
За это сообщение автора fandaymon поблагодарили (всего 2):
Onilo09 (Сб апр 28, 2018 12:45 pm) • Step40 (Ср ноя 07, 2018 5:32 am)
Рейтинг: 2.33%
Аватара пользователя
Lerych
Сообщения: 191
Зарегистрирован: Чт дек 14, 2017 8:46 pm
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

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

Сообщение Lerych » Вт ноя 06, 2018 10:05 pm

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

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

Сообщение 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 поблагодарил:
Step40 (Ср ноя 07, 2018 5:32 am)
Рейтинг: 1.16%
ZyaK
Сообщения: 407
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 45 раз
Поблагодарили: 69 раз

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

Сообщение ZyaK » Ср ноя 07, 2018 6:20 am

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
Откуда: Московская область, Серпухов
Благодарил (а): 79 раз
Поблагодарили: 24 раза

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

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

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

Сообщение xor » Чт ноя 08, 2018 12:12 am

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
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Чт ноя 08, 2018 12:42 am

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

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