Контексты в шаблонах поведения
Модератор: immortal
-
- Сообщения: 49
- Зарегистрирован: Пт сен 26, 2014 10:03 pm
- Благодарил (а): 5 раз
- Поблагодарили: 3 раза
Re: Контексты в шаблонах поведения
У меня тоже незвестная комманда. Не получается выделить параметры.
-
- Сообщения: 49
- Зарегистрирован: Пт сен 26, 2014 10:03 pm
- Благодарил (а): 5 раз
- Поблагодарили: 3 раза
Re: Контексты в шаблонах поведения
Странно. Работает только (повтори|скажи) (.+)
только скажи
say($matches[2],5);
только скажи
say($matches[2],5);
-
- Сообщения: 49
- Зарегистрирован: Пт сен 26, 2014 10:03 pm
- Благодарил (а): 5 раз
- Поблагодарили: 3 раза
Re: Контексты в шаблонах поведения
Всё работает. Спасибо Сергею за данный функционал.
Использую его как команды SMS. На Cubietruck установлен gummu. Умный дом на даче и управление с помощью SMS на случай отсутствия интернета очень удобно.
Прилагаю сценарий, который проверяет входящие сообщения и отправляет сообщение say(сообщение).
Далее по шаблону выполняются определённые действия.
Если кому нужны подробности готов подробно описать.
$SMSdir=('/var/spool/gammu/inbox/'); //папка входящих СМС
if ($handle=opendir($SMSdir))
{ while (false !==($file2=readdir($handle)))
{ if ($file2 !="." && $file2 !="..")
{
$nSMS=substr($file2,23,10);
if ($nSMS==gg('AlexanderUs.PhoneNumber')
OR $nSMS==gg('ElenaUs.PhoneNumber')
OR $nSMS==gg('PlanshetUs.PhoneNumber')) //проверка номера телефона откуда прислана SMS
{
$lines=file($SMSdir.$file2);
foreach($lines as $line_num=>$line) {
// echo $line;
say ($line);
}
unlink ($SMSdir.$file2); //удаление сообщения
}
else
{
say ('Сообщение с номера '.$nSMS);
unlink ($SMSdir.$file2); // чужой номер телефона
}
}
}
}
closedir($handle);
Использую его как команды SMS. На Cubietruck установлен gummu. Умный дом на даче и управление с помощью SMS на случай отсутствия интернета очень удобно.
Прилагаю сценарий, который проверяет входящие сообщения и отправляет сообщение say(сообщение).
Далее по шаблону выполняются определённые действия.
Если кому нужны подробности готов подробно описать.
$SMSdir=('/var/spool/gammu/inbox/'); //папка входящих СМС
if ($handle=opendir($SMSdir))
{ while (false !==($file2=readdir($handle)))
{ if ($file2 !="." && $file2 !="..")
{
$nSMS=substr($file2,23,10);
if ($nSMS==gg('AlexanderUs.PhoneNumber')
OR $nSMS==gg('ElenaUs.PhoneNumber')
OR $nSMS==gg('PlanshetUs.PhoneNumber')) //проверка номера телефона откуда прислана SMS
{
$lines=file($SMSdir.$file2);
foreach($lines as $line_num=>$line) {
// echo $line;
say ($line);
}
unlink ($SMSdir.$file2); //удаление сообщения
}
else
{
say ('Сообщение с номера '.$nSMS);
unlink ($SMSdir.$file2); // чужой номер телефона
}
}
}
}
closedir($handle);
-
- Сообщения: 49
- Зарегистрирован: Пт сен 26, 2014 10:03 pm
- Благодарил (а): 5 раз
- Поблагодарили: 3 раза
Re: Контексты в шаблонах поведения
отправка SMS через gummu
include_once(ROOT.'lib/hardware/smsgwMy.php');
MySendSMS(gg('AlexanderUs.PhoneNumber'),'Привет');
В папке lib/hardware/ создан smsgwMy.php
* Description
*
* @access public
*/
function MySendSMS($phone, $message) {
$filename1='/var/spool/gammu/outbox/OUTTT_+7'.$phone.'_00.txt';
if( !file_exists($filename1))
{
$fp = fopen($filename1, "w"); //
fwrite($fp, $message);
fclose ($fp);
}
}
function IpSMS($phone) {
$mes='/var/www/OUTTT_+7'.$phone.'_00.txt';
safe_exec('sudo ifconfig -a >'.$mes.'');
}
?>
Для восприятия русского написания необходимо в .gummurc
добавить
gammucoding = utf8
include_once(ROOT.'lib/hardware/smsgwMy.php');
MySendSMS(gg('AlexanderUs.PhoneNumber'),'Привет');
В папке lib/hardware/ создан smsgwMy.php
* Description
*
* @access public
*/
function MySendSMS($phone, $message) {
$filename1='/var/spool/gammu/outbox/OUTTT_+7'.$phone.'_00.txt';
if( !file_exists($filename1))
{
$fp = fopen($filename1, "w"); //
fwrite($fp, $message);
fclose ($fp);
}
}
function IpSMS($phone) {
$mes='/var/www/OUTTT_+7'.$phone.'_00.txt';
safe_exec('sudo ifconfig -a >'.$mes.'');
}
?>
Для восприятия русского написания необходимо в .gummurc
добавить
gammucoding = utf8
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Контексты в шаблонах поведения
Хм. А конструкции из двух шаблонов (типа: "сколько время и включи свет") только у меня не работают?
- За это сообщение автора Amarok поблагодарил:
- directman66 (Пт авг 23, 2019 5:35 pm)
- Рейтинг: 1.16%
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Контексты в шаблонах поведения
Необольшое обновление и пример использования...
В качестве эксперимента решил попробовать поубавить скромности Алисе и дать ей возможность инициировать общение при определённых условиях. Для этих целей есть замечательная штука под названием "контексты", а так же команда для активации контекста из кода.
Но всё по порядку.
Во-первых, создаём шаблон поведения, который будет выступать в качестве контекста. Фактически, это вопрос Алисы о том, надо ли что-то сделать в данный момент:
Важные вещи на картинке:
1. ID (появляется после добавление) -- его будем использовать для принудительной активации
2. Код, который будет исполнен при активации контекста
3. Галочка, которая говорит о том, что это не просто шаблон, а контекст, т.е. может иметь дочерние шаблоны
4. Время, через которое контекст будет автоматически деактивирован, если не была принята никакая команда
5. Код, который выполнится в случае истечении времени (см. предыдущий пункт).
Далее, создаём три дочерних шаблона:
1. Да
2. Нет
3. (.+)
Соответственно, на каждый из этих шаблонов система реагирует по-разному. Последний шаблон я добавил просто для примера того, что можно вводить и использовать внутри контекста произвольную фразу.
И последний штрих -- инициировать переход системы состояние нужного контекста можно следующим кодом:
10 это ID нашего контекста. Код может быть вызван например по таймеру или датчику движения и Алиса может спросить, "а не хотите ли включить музыку?". Ну или по условному событию -- температура на улице понизилась и Алиса может предложить по-раньше начинать прогрев помещения. В общем, всё зависит от вашей фантазии, как обычно.
Для ответа можно использовать как чат, так и голос, но ещё вариант использовать небольшой пульт (от Noolite либо любой другой), повесив на одну кнопку ответ "Да", на вторую "Нет", чтобы быстро отвечать на какие-то предложения от Алисы.
В качестве эксперимента решил попробовать поубавить скромности Алисе и дать ей возможность инициировать общение при определённых условиях. Для этих целей есть замечательная штука под названием "контексты", а так же команда для активации контекста из кода.
Но всё по порядку.
Во-первых, создаём шаблон поведения, который будет выступать в качестве контекста. Фактически, это вопрос Алисы о том, надо ли что-то сделать в данный момент:
картинкаПоказать
1. ID (появляется после добавление) -- его будем использовать для принудительной активации
2. Код, который будет исполнен при активации контекста
3. Галочка, которая говорит о том, что это не просто шаблон, а контекст, т.е. может иметь дочерние шаблоны
4. Время, через которое контекст будет автоматически деактивирован, если не была принята никакая команда
5. Код, который выполнится в случае истечении времени (см. предыдущий пункт).
Далее, создаём три дочерних шаблона:
1. Да
СпойлерПоказать
СпойлерПоказать
СпойлерПоказать
И последний штрих -- инициировать переход системы состояние нужного контекста можно следующим кодом:
Код: Выделить всё
context_activate(10);
Для ответа можно использовать как чат, так и голос, но ещё вариант использовать небольшой пульт (от Noolite либо любой другой), повесив на одну кнопку ответ "Да", на вторую "Нет", чтобы быстро отвечать на какие-то предложения от Алисы.
- За это сообщение автора sergejey поблагодарили (всего 4):
- Amarok (Вт дек 30, 2014 9:05 am) • Gelezako (Пн июн 13, 2016 5:29 pm) • directman66 (Пт авг 23, 2019 5:35 pm) • Yashalta (Пт май 08, 2020 8:43 pm)
- Рейтинг: 4.65%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Контексты в шаблонах поведения
А обновление точно самое последнее? 3 часа назад я тоже это заметил и вносил как раз правку.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги