Команда ask

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

Модератор: immortal

Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Команда ask

Сообщение savenko_egor »

dance12r писал(а): Чт июл 12, 2018 3:55 pm отправить команду ask на терминал с которого был произведен запрос
Для этого есть sayTo и sayReply: Новое в работе с терминалами, sayTo, sayReply.
dance12r писал(а): Чт июл 12, 2018 3:55 pm отправить команду на все терминалы с MajorDroid, согласно первому сообщению
Как вариант перебирать циклом терминалы.
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев

Re: Команда ask

Сообщение dance12r »

Но ведь команда аск создана для того,чтоб инициировать распознавание автоматически, без надобности говорить ключевое слово или нажимания соответствующей кнопки в мобильном приложении. И ведь работает же, но только с четко указаным терминалом... если я правильно понял, так как я себе наметил оно работать не будет?
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев

Re: Команда ask

Сообщение dance12r »

Вообщем не дает покоя мне эта команда)
посмотрел как делается выборка по каким теминалам рассылать запрос если явно не указан IP:

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

SELECT * FROM terminals WHERE 1 AND MAJORDROID_API=1 AND (NAME LIKE '' OR TITLE LIKE '');
к сожелению ответ всегда будет пустым(.

Рабочий вариант запроса у меня выглядит так:

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

SELECT * FROM terminals WHERE IS_ONLINE=1 AND MAJORDROID_API=1
PS:
вот эту конструкцию я так думаю полагалось использовать для возможности указания не только IP терминала но и его имени

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

AND (NAME LIKE '' OR TITLE LIKE '');
но тогда, мне кажется, что нужно было добавить еще одно ЕСЛИ.

как то так

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

function ask($prompt, $target = '') {
    processSubscriptions('ASK', array('prompt' => $prompt, 'target' => $target));

    $service_port='7999';
    $in='ask:'.$prompt;

    if (preg_match('/^[\d\.]+$/',$target)) {
        $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if ($socket) {
            $result = socket_connect($socket, $target, $service_port);
            if ($result) {
                socket_write($socket, $in, strlen($in));
            }
        }
        socket_close($socket);
    } elseif(preg_match('/^[a-zA-Z]+$/',$target)) {        
        $qry=1;
        $qry.=" AND MAJORDROID_API=1";
        $qry.=" AND (NAME LIKE '".DBSafe($target)."' OR TITLE LIKE '".DBSafe($target)."')";
        $terminals = SQLSelect("SELECT * FROM terminals WHERE IS_ONLINE=$qry");
        $total = count($terminals);
        for ($i = 0; $i < $total; $i++) {
            $address = $terminals[$i]['HOST'];
            $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
            if ($socket) {
                $result = socket_connect($socket, $address, $service_port);
                if ($result) {
                    socket_write($socket, $in, strlen($in));
                }
            }
            socket_close($socket);
        }
    } else {
        $qry=1;
        $qry.=" AND MAJORDROID_API=1";
        $terminals = SQLSelect("SELECT * FROM terminals WHERE IS_ONLINE=$qry");
        $total = count($terminals);
        for ($i = 0; $i < $total; $i++) {
            $address = $terminals[$i]['HOST'];
            $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
            if ($socket) {
                $result = socket_connect($socket, $address, $service_port);
                if ($result) {
                    socket_write($socket, $in, strlen($in));
                }
            }
            socket_close($socket);
        }
    }
}
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Контактная информация:

Re: Команда ask

Сообщение Gelezako »

в какой это файле? dance12r, можете оформить это пуле реквестом в проект с описанием, которое тут?
https://github.com/sergejey/majordomo
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев

Re: Команда ask

Сообщение dance12r »

Сегодня сделаю
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Команда ask

Сообщение savenko_egor »

Только в альфа ветку делайте. Сергей туда принимает.
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев

Re: Команда ask

Сообщение dance12r »

Gelezako писал(а): Вс июл 22, 2018 12:18 pm в какой это файле? dance12r, можете оформить это пуле реквестом в проект с описанием, которое тут?
https://github.com/sergejey/majordomo
это файл -

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

lib/common.class.php
Пул реквест оформил
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
artemon25
Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm

Re: Команда ask

Сообщение artemon25 »

я конечно извиняюсь но как уточнить какая ветка у меня альфа мастер или какая то другая ? вообще ни разу не вникал в это
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Команда ask

Сообщение savenko_egor »

artemon25 писал(а):я конечно извиняюсь но как уточнить какая ветка у меня альфа мастер или какая то другая ? вообще ни разу не вникал в это
Если в конфиге МД не указана ссылка на альфа ветку, то Вы на мастер ветке.
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Команда ask

Сообщение xor »

Вот бы ещё Алиса при ask и в нужном контексте бы была! Как в context_activate...
Ответить