Новое в работе с терминалами, sayTo, sayReply
Модератор: immortal
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Новое в работе с терминалами, sayTo, sayReply
Вот попробуйте всё же вместо привет, установить имя терминала или убрать этот параметр совсем. Что-то мне подсказывает что я всё-таки правильно понял.
-
- Сообщения: 31
- Зарегистрирован: Вт окт 27, 2015 8:26 am
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новое в работе с терминалами, sayTo, sayReply
если ставлю имя терминала - ничего не меняется, когда убираю этот параметр: сервер отвечает всегда, терминалы отвечают только, когда через них обращаюсь. как заглушить сервер?
нет, проверил. всё так же, отвечает во все терминалы
при том sayTo работает нормально
так можно где-нибудь посмотреть что приходит из терминалов?
нет, проверил. всё так же, отвечает во все терминалы
при том sayTo работает нормально
так можно где-нибудь посмотреть что приходит из терминалов?
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Новое в работе с терминалами, sayTo, sayReply
Да. Тоже сейчас проверил. Вы правы. Но почему же тогда система не реагирует? Тут непонятно.
-
- Сообщения: 31
- Зарегистрирован: Вт окт 27, 2015 8:26 am
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новое в работе с терминалами, sayTo, sayReply
Видимо sayReply работает так же, как и say, что очень досадно.
И всё же не так:
При первом запросе с сервера Алиса отвечает во все терминалы. При следующем запросе, отвечает только в сервер, как и должна.
При запросах с терминала отвечает и в сервер и в терминал всегда. Если после запроса из терминала спросить через сервер, то 1 раз ответит везде, а затем только в сервер, как и должна.
Очень странное поведение.
Нашел "решение": если отключить голосовые модули на сервере и включить синтез речи в ChromeGateMJD, то соблюдая паузу в 5сек между обращениями, ответ будет выходить из нужного терминала, т.е. из расширения в браузере. А встроенные модули, получается, озвучивают всё, что происходит в системе
И всё же не так:
При первом запросе с сервера Алиса отвечает во все терминалы. При следующем запросе, отвечает только в сервер, как и должна.
При запросах с терминала отвечает и в сервер и в терминал всегда. Если после запроса из терминала спросить через сервер, то 1 раз ответит везде, а затем только в сервер, как и должна.
Очень странное поведение.
Нашел "решение": если отключить голосовые модули на сервере и включить синтез речи в ChromeGateMJD, то соблюдая паузу в 5сек между обращениями, ответ будет выходить из нужного терминала, т.е. из расширения в браузере. А встроенные модули, получается, озвучивают всё, что происходит в системе
-
- Сообщения: 17
- Зарегистрирован: Вс фев 26, 2017 4:29 pm
- Благодарил (а): 0
- Поблагодарили: 6 раз
Re: Новое в работе с терминалами, sayTo, sayReply
Пару дней назад скачал данную систему и сразу попал на этот "глюк". Терминалы отказывались сообщения воспроизводить. Пришлось лезть в код и искать причину. Функция sayReply не работает, потому что не может. Но костыли для решения есть, поскольку в системе есть сессии. Два дня ковырялся там и был вознагражден.
Чтобы ответ шел на тот терминал, с которого был запрос надо использовать функцию sayTo, для которой надо знать имя терминала NAME. Не забываем про настройки терминалов: создаем терминалы в панели управления и потом на каждом устройстве выбираем имя терминала справа вверху(вкладка).
Важно:
1) Работает только с MajorDroid API. Галочка у терминала должна быть.
2) На сервер не посылает(по идее это и не нужно)
Пример кода в сценарии:
global $session; //Обращаемся к глобальной переменной
sayTo("Ваш ответ на сценарий", 2, $session->data['TERMINAL']); // 2 - меньше звука нет. $session->data['TERMINAL'] - это имя терминала, которое хранится в сессии.
Чтобы ответ шел на тот терминал, с которого был запрос надо использовать функцию sayTo, для которой надо знать имя терминала NAME. Не забываем про настройки терминалов: создаем терминалы в панели управления и потом на каждом устройстве выбираем имя терминала справа вверху(вкладка).
Важно:
1) Работает только с MajorDroid API. Галочка у терминала должна быть.
2) На сервер не посылает(по идее это и не нужно)
Пример кода в сценарии:
global $session; //Обращаемся к глобальной переменной
sayTo("Ваш ответ на сценарий", 2, $session->data['TERMINAL']); // 2 - меньше звука нет. $session->data['TERMINAL'] - это имя терминала, которое хранится в сессии.
- За это сообщение автора cyneprepou2 поблагодарили (всего 6):
- igrok (Пн фев 27, 2017 1:52 am) • booka (Сб сен 23, 2017 10:15 pm) • K070HY (Пт янв 12, 2018 11:33 am) • ZyaK (Пт мар 02, 2018 6:24 am) • shefus (Вт окт 02, 2018 2:05 pm) • Keen Lizard (Ср ноя 13, 2019 8:30 pm)
- Рейтинг: 6.98%
-
- Сообщения: 31
- Зарегистрирован: Вт окт 27, 2015 8:26 am
- Благодарил (а): 7 раз
- Поблагодарили: 2 раза
Re: Новое в работе с терминалами, sayTo, sayReply
ChromeGateMJD так же работает, спасибо!cyneprepou2 писал(а): 1) Работает только с MajorDroid API. Галочка у терминала должна быть.
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Новое в работе с терминалами, sayTo, sayReply
Я так понимаю что Вашим решением можно исправить работу sayReply. Сделайте пуллреквест Сергею на гит.
-
- Сообщения: 100
- Зарегистрирован: Вт ноя 11, 2014 5:16 pm
- Откуда: Шатура
- Благодарил (а): 4 раза
- Поблагодарили: 8 раз
Re: Новое в работе с терминалами, sayTo, sayReply
что-то сломалось
при попытке сказать в терминал выдает ошибку:
Warning: socket_connect(): in C:\_majordomo\htdocs\lib\common.class.php on line 71
код такой: sayto("тест",2,'valio2');
причем не говорит только в Windows терминалах (ChromeGateMJD) - в андроид говорит.
при попытке сказать в терминал выдает ошибку:
Warning: socket_connect(): in C:\_majordomo\htdocs\lib\common.class.php on line 71
код такой: sayto("тест",2,'valio2');
причем не говорит только в Windows терминалах (ChromeGateMJD) - в андроид говорит.
Windows, Debian 8, 1-Wire
Connect
Connect
-
- Сообщения: 100
- Зарегистрирован: Вт ноя 11, 2014 5:16 pm
- Откуда: Шатура
- Благодарил (а): 4 раза
- Поблагодарили: 8 раз
Re: Новое в работе с терминалами, sayTo, sayReply
С выводом звука на терминалы Windows стало понятно:
Обновился из стабильной ветки - все заработало!
Вернулся на Альфу - звук в ChromeGateMJD пропал.
видно, что-то в консерватории надо подправить
Обновился из стабильной ветки - все заработало!
Вернулся на Альфу - звук в ChromeGateMJD пропал.
видно, что-то в консерватории надо подправить
Windows, Debian 8, 1-Wire
Connect
Connect
-
- Сообщения: 112
- Зарегистрирован: Чт авг 25, 2016 10:33 pm
- Благодарил (а): 15 раз
- Поблагодарили: 6 раз
Re: Новое в работе с терминалами, sayTo, sayReply
подскажите всё было хорошо и всё произносилось хорошо но вот третий день ни с того ни сего время каждый час начало произноситься три раза подряд а при срабатывания сценария произносится 2 раза. как это можно исправить. Заранее спасибо за подсказки