Шаблоны - Инициация диалога

Новые релизы, обновления и т.п.

Модератор: immortal

Ответить
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Шаблоны - Инициация диалога

Сообщение xor » Пн май 01, 2017 8:26 pm

Привет!
к заметке Сергея viewtopic.php?f=7&t=1511&start=40#p16799, когда Алиса что-то спрашивает и ждет ответа от пользователя.

Отлично работает в режиме терминала,но повесил да/нет/отмена на кнопки пульта Ноолайт и на простые устройства Кнопки с кодом по нажатию (для Да)

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

say('да',0,1);
Последняя единичка - чтобы ответ отображался не от имени системы, а от Админа.
В настройках - не реагировать на сист. сообщения.
Пульт и простые кнопки не воспринимаются в этом контексте

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

19:54 Алиса: Ладно, проехали <- фраза при неполучении ответа 20 с
19:54 Admin: нет  <- тут от пульта/от кнопки
19:54 Алиса: Включим музыку? <- вопрос от системы
(полный игнор)
, если ввожу ответ в поле команда - всё работает:

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

19:55 Алиса: Нет? Неудачника ответ! <-фраза-реакция на Нет
19:55 Сергей: нет <- тут из окошка Команда
19:55 Алиса: Включим музыку? <- вопрос от системы
Как можно имитировать ввод пользователя в окошко команд?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шаблоны - Инициация диалога

Сообщение nick7zmail » Пн май 01, 2017 8:28 pm

До компа доберусь - скину...у функции say, если мне память не изменяет, нет третьего параметра в принципе.

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблоны - Инициация диалога

Сообщение xor » Пн май 01, 2017 8:37 pm

Я пользовался этим
say($ph,$level,$user_id); – говорит фразу (использует глобальные переменные $voicemode [именно говорить] и $commandLine [преобразует ответ в echo utf2win(), иначе просто echo]). $level указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза может быть либо озвучена голосом либо просто записана в историю сообщений).

и из common.class.php:
/**
* Summary of say
* @param mixed $ph Phrase
* @param mixed $level Level (default 0)
* @param mixed $member_id Member ID (default 0)
* @return void
*/
function say($ph, $level = 0, $member_id = 0, $source = '')
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шаблоны - Инициация диалога

Сообщение nick7zmail » Пн май 01, 2017 10:09 pm

Хм...если так, то действительно должно работать...ниразу не пользовался. У меня сейчас вот такой вариант:

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

$ans='Да'; //или 'нет'
getURL('http://localhost/command.php?qry='.urlencode($ans)); 
К сожелению выбор юзеров не содержит, но говорит от имени пользователя "По-умолчанию", и вроде адекватно воспринимается шаблонами.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблоны - Инициация диалога

Сообщение xor » Пн май 01, 2017 10:31 pm

Замена на предложенный вариант не помогла.
Шаблон в этом контексте так же не срабатывает.
в иксрее пишется
22:20:40 0.28125000 External context response: a:1:{s:15:"MATCHED_CONTEXT";i:0;}
А что это значит, нихт ферштейн
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблоны - Инициация диалога

Сообщение xor » Вт май 02, 2017 12:57 am

Что интересно, это не работает только при принудительной активации контекста через context_activate();.
При исполнении команды с пульта/кнопки
say('Включи свет везде',0,1);
всё нормально отрабатывает.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шаблоны - Инициация диалога

Сообщение nick7zmail » Вт май 02, 2017 6:51 am

Действительно интересно)) Может попробовать в контексте (в том, в котором не отрабатывают ответы) - убрать галочку - не реагировать на системные сообщения? Может по каким-то параметрам он их к системным причисляет?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблоны - Инициация диалога

Сообщение xor » Вт май 02, 2017 1:38 pm

Пробовал.
Я вышел из ситуации костылем - при ответе с помощью кнопки/пульта повторяю код из шаблона.
Но костыль остается костылем.
Ответить