Страница 1 из 3

Определение местоположения запроса

Добавлено: Пт апр 26, 2019 6:36 pm
klv666
Добрый день!
Имеется возможность управление светом в комнатах квартиры. Сервер с хромгейтом стоит в Зале.
Что нужно сделать что бы при запросе "включи свет" система понимала, что запрос идет из Зала и свет нужно включить не в спальне, а в зале. А для включения в спальне требовалась бы команда "включи свет в спальне". Сейчас на такую команду включает свет в спальне, т.к. там relay с меньшим номером. Пока мучаюсь длинными названиями и для зала, через шаблоны поведения настроил "включи свет в зале", "включи свет в спальне" и т.п.
И, например, я поставлю терминал в спальне, тоже хотелось бы тогда чтобы система понимала откуда запрос и на "включи свет" включала в спальне.

Re: Определение местоположения запроса

Добавлено: Пт апр 26, 2019 8:21 pm
tarasfrompir
klv666 писал(а):
Пт апр 26, 2019 6:36 pm
Добрый день!
Имеется возможность управление светом в комнатах квартиры. Сервер с хромгейтом стоит в Зале.
Что нужно сделать что бы при запросе "включи свет" система понимала, что запрос идет из Зала и свет нужно включить не в спальне, а в зале. А для включения в спальне требовалась бы команда "включи свет в спальне". Сейчас на такую команду включает свет в спальне, т.к. там relay с меньшим номером. Пока мучаюсь длинными названиями и для зала, через шаблоны поведения настроил "включи свет в зале", "включи свет в спальне" и т.п.
И, например, я поставлю терминал в спальне, тоже хотелось бы тогда чтобы система понимала откуда запрос и на "включи свет" включала в спальне.
местоположение не опрделеяет на сегодня.
Просто называй устройство "свет в зале" - и по команде - включи свет в зале ... будет то что нужно...

Re: Определение местоположения запроса

Добавлено: Пт апр 26, 2019 10:43 pm
C_3AXAPOB
Если живешь один можно проверять где было последнее движение и включать свет там.

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 12:47 am
xor
если посмотреть на файл command.php, куда прилетает фраза от пользователя, там видно, что код пытается определить терминал, с которого, кмк, и приходит команда

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

if ($qry != '') { 

    $terminal = gr('terminal');
    if ($terminal) {
        $terminals = getTerminalsByName($terminal);
...
но у него пока не получается(((
Но, как видим, задумки в этом направлении есть. Так что, надо идею в коннект и лайки собирать

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 12:57 am
xor
вот что ещё нашёл)
таблица терминалов содержит не только их имена и настройки, но и последнюю фразу и время ввода.
в своем шаблоне вполне можно поискать последний запрос с именем шаблона
2019-04-27_00-53-33.png
2019-04-27_00-53-33.png (20.59 КБ) 3287 просмотров
из строки найдешь терминал, а если он не переносной как у меня, то и комнату можно определить
ps/ но, кмк, это работает не со всеми типами терминалов(( если я с писишки пишу команду, в таблице пусто

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 1:37 am
xor
вот ещё - таблица shouts - с сообщениями, там есть поле источник, там наоборот, сообщения, прилетевшие в command.php, обезличены, а через телегу и писишный терминал -- определены. терминал terminal15 -- id=15 в таблице terminals. тоже можно использовать
2019-04-27_01-27-26.png
2019-04-27_01-27-26.png (32.92 КБ) 3278 просмотров

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 2:11 am
tarasfrompir
xor писал(а):
Сб апр 27, 2019 1:37 am
вот ещё - таблица shouts - с сообщениями, там есть поле источник, там наоборот, сообщения, прилетевшие в command.php, обезличены, а через телегу и писишный терминал -- определены. терминал terminal15 -- id=15 в таблице terminals. тоже можно использовать

2019-04-27_01-27-26.png
я смотрю проводишь исследование - но есть функция sayreply - она возвращает на тот терминал откуда пришло сообщение.. по идее :oops: :oops: :oops:

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 5:54 am
klv666
xor писал(а):
Сб апр 27, 2019 12:57 am
вот что ещё нашёл)
таблица терминалов содержит не только их имена и настройки, но и последнюю фразу и время ввода.
в своем шаблоне вполне можно поискать последний запрос с именем шаблона
из строки найдешь терминал, а если он не переносной как у меня, то и комнату можно определить
ps/ но, кмк, это работает не со всеми типами терминалов(( если я с писишки пишу команду, в таблице пусто
Это интересно, но не более, так как я новичек и не смогу пока переварить и использовать эту информацию

tarasfrompir писал(а):
Сб апр 27, 2019 2:11 am
я смотрю проводишь исследование - но есть функция sayreply - она возвращает на тот терминал откуда пришло сообщение.. по идее :oops: :oops: :oops:
Да, система понимает с какого терминала запрос, только вопрос как это доработать для решения поставленной задачи.
Необходимо чтобы устройства с одинаковыми именами например "свет", но в разных комнатах, включались/выключались в зависимости от расположения терминала без использования приставки "название комнаты".

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 7:47 am
lihodeev
$terminal_rec=SQLSelectOne("SELECT * FROM terminals WHERE LATEST_REQUEST LIKE
'%".DBSafe($replyto)."%' ORDER BY LATEST_REQUEST_TIME DESC LIMIT 1");
sg("RadioSetting.PlayTerminal",$terminal_rec['NAME']);
cm('RadioSetting.Control', array('sta'=>'релакс', 'cmd'=>'play', 'vol'=>80));
я так включаю радио автоматически определяя терминал, если не ошибаюсь, надо к комнате привязать терминал и реле, после чего можно обратиться к конкретному устройству. Может у кого то будут мысли...

Re: Определение местоположения запроса

Добавлено: Сб апр 27, 2019 8:23 am
tarasfrompir
klv666 писал(а):
Сб апр 27, 2019 5:54 am
Да, система понимает с какого терминала запрос, только вопрос как это доработать для решения поставленной задачи.
Необходимо чтобы устройства с одинаковыми именами например "свет", но в разных комнатах, включались/выключались в зависимости от расположения терминала без использования приставки "название комнаты".
Для старта - дело не в терминалах на сегодня покрайнейе мере. :shock: :shock: :shock:
Пока пост ает вопрос в другом - чем пользуется пользоветль ПУ или отдельно писанными модулями.
Если ПУ - то надо дорабатывать коммандпроцес для ПУ,
Но если модуля - то как ни странно - надо дорабатывать модуля...
Это то что на старте...
А в конце - все как всегда самое вкусное... :lol: :lol: :lol: :lol: