Новое в работе с терминалами, sayTo, sayReply

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

Модератор: immortal

Аватара пользователя
hc2hunter
Сообщения: 455
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 214 раз
Поблагодарили: 286 раз

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение hc2hunter » Пт дек 21, 2018 11:09 am

Эх... ну понял... :cry:
AAU
Сообщения: 49
Зарегистрирован: Пн ноя 19, 2018 10:14 pm
Благодарил (а): 15 раз
Поблагодарили: 5 раз

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение AAU » Вс фев 24, 2019 4:47 pm

tarasfrompir писал(а):
Вт ноя 20, 2018 8:22 am
TimonDK писал(а):
Вт ноя 20, 2018 5:34 am
Пока в процессе разработки общей концепции на бумаге. В качестве терминала в каждой комнате планирую апельсинку по ключевому слову или планшет, но пока больше склоняюсь в сторону первого

Отправлено с моего Redmi Note 4X через Tapatalk
так тебе мажордроид апи использовать надо и этот процесс разработки уже сделан давно людьми ... :idea:
Ну или свое писать - так там есть переменная
$rec['ROOM_ID'] = 0; и
$rec['MEMBER_ID'] = 0;
которых достаточно для идентификации местоположения терминала... и пользователя
Подскажите поподробнее как это можно в сценариях использовать для определения терминала?
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение ovcher » Пт июн 14, 2019 5:49 pm

Я вот тут когда то писал про костыль с паузами viewtopic.php?f=7&t=2993&p=86390#p86390 . Прошло время и он благополучно сломался. Вот я решил отметится по данной проблеме еще раз.
Очередной костыль. По моему, здесь мне задавали следующий вопрос: При голосовой команде, из шаблона поведения, запускается сложный сценарий голосового воспроизведения с выборкой данных из свойств. Примеры таких сценариев, например, Read5News, sayWeatherYandex, Demo01... При его отработке, теряются фразы, а в некоторых усугубленных случаях помимо потери фраз наблюдается еще и путаница, ну допустим, в сценарии sayWeatherYandex первым в очереди стоит воспроизведение температуры, далее влажности и наконец атмосферного давления, Алиса воспроизводит давление, потом температуру, а влажность и вовсе пропускает. Собственно вопрос, что с этим делать? Ответ. Я подметил одну особенность. Если запустить сценарий прямой ссылкой(той что указана, в сценарии, под кнопкой сохранить: http://192.168.1.10/ob…ript=sayWeatherYandex) то сценарий отрабатывает прекрасно. А вот если его вызывать как положено( runScript('sayWeatherYandex'); ), или из поля(Выполнить при совпадении), или даже значком молнии справа от имени сценария то начинаются проблемы. Так вот я подметил что во всех этих вариантах система формирует весьма дурную ссылку которая чрезвычайно долго грузится и соответственно отрабатывает через задницу. Итак, для наглядности, вот ссылка которая работает прекрасно:

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

http://192.168.1.10/objects/?script=sayWeatherYandex
,а вот то что формирует система:

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

http://192.168.1.10/admin.php?pd=c2NyaXB0czp7aW5zdGFuY2U9YWRtfQ%3D%3Dpz_cGFuZWw6e2FjdGlvbj1zY3JpcHRzfQ%3D%3Dpz_&md=scripts&inst=adm&view_mode=run_script&id=24
Собственно костыль. В шаблоне поведения, вызывать сценарий через ссылку, а именно в поле кода прописать:

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

getURL('http://192.168.1.10/objects/?script=sayWeatherYandex',0);
Это, естественно, сказано как временное решение проблемы, тут работа скорее всего для Сергея. А сказал я это для того чтобы, с одной стороны люди могли временно исправить проблему, а с другой, ув. Гуру могли бы поделиться своими соображениями почему оно так? Тут понятно, что имеет место прямой вызов и "кривой" по идентификатору, может кто копал чем это обусловлено и почему оно плывет? Я еще глубоко не рыл, просто подметил и подставил временный костыль, которым, собственно, и решил поделиться. :blush:
Vibe
Сообщения: 11
Зарегистрирован: Чт дек 07, 2017 10:37 pm
Откуда: Москва
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение Vibe » Вс июн 23, 2019 8:01 pm

у меня перемешивается когда нужно проговаривать инфо с разных скриптов, не успевает договорить с первого, и начинает второй. попробовал прописать в один скрипт через getURL несколько, та же беда.
было и из одного скрипта слова путались. решил так: sayReply($txt.".".$txt1.".".$txt2.".".$txt3.".".$status.".".$status1....
Аватара пользователя
tarasfrompir
Сообщения: 3067
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 202 раза
Поблагодарили: 749 раз

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение tarasfrompir » Вс июн 23, 2019 9:03 pm

Vibe писал(а):
Вс июн 23, 2019 8:01 pm
у меня перемешивается когда нужно проговаривать инфо с разных скриптов, не успевает договорить с первого, и начинает второй. попробовал прописать в один скрипт через getURL несколько, та же беда.
было и из одного скрипта слова путались. решил так: sayReply($txt.".".$txt1.".".$txt2.".".$txt3.".".$status.".".$status1....
Я пока не могу предложить боле-менее нормального варианта - пока в разработке...
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
mires
Сообщения: 23
Зарегистрирован: Чт сен 19, 2019 8:20 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение mires » Пт окт 25, 2019 2:33 pm

Всем массовый Трям!

Пробовал найти, но не нашел.
Как воспроизвести сообщение ТОЛЬКО на терминале 'MANI', который является сервером MD.

Команда sayTo("Привет",2,"MAIN") пишет текст, но не произносит.
В то время как указание других терминалов (на MajorDroid) работает (проговаривает текст чере TTS)

Команда sayReply тут не поможет, т.к. нет того, кто сделал запрос, сообщение воспроизводится самостоятельно (например по даймеру)
Baur
Сообщения: 2
Зарегистрирован: Чт авг 13, 2020 6:21 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Новое в работе с терминалами, sayTo, sayReply

Сообщение Baur » Чт авг 27, 2020 10:46 pm

Победил таким способом

$ip = $_SERVER['REMOTE_ADDR'];
$Record = SQLSelectOne("SELECT NAME FROM terminals WHERE HOST='$ip'");
$out = $Record['NAME'];
sayTo("Приветившие",5,$out);

отвечает терминалу

определяет ip отправителя, в базе находит название терминала по ip в переменную $out
Ответить