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

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

klv666
Сообщения: 175
Зарегистрирован: Вс янв 20, 2019 10:48 am
Благодарил (а): 64 раза
Поблагодарили: 19 раз

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

Сообщение klv666 » Пт апр 26, 2019 6:36 pm

Добрый день!
Имеется возможность управление светом в комнатах квартиры. Сервер с хромгейтом стоит в Зале.
Что нужно сделать что бы при запросе "включи свет" система понимала, что запрос идет из Зала и свет нужно включить не в спальне, а в зале. А для включения в спальне требовалась бы команда "включи свет в спальне". Сейчас на такую команду включает свет в спальне, т.к. там relay с меньшим номером. Пока мучаюсь длинными названиями и для зала, через шаблоны поведения настроил "включи свет в зале", "включи свет в спальне" и т.п.
И, например, я поставлю терминал в спальне, тоже хотелось бы тогда чтобы система понимала откуда запрос и на "включи свет" включала в спальне.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Пт апр 26, 2019 8:21 pm

klv666 писал(а):
Пт апр 26, 2019 6:36 pm
Добрый день!
Имеется возможность управление светом в комнатах квартиры. Сервер с хромгейтом стоит в Зале.
Что нужно сделать что бы при запросе "включи свет" система понимала, что запрос идет из Зала и свет нужно включить не в спальне, а в зале. А для включения в спальне требовалась бы команда "включи свет в спальне". Сейчас на такую команду включает свет в спальне, т.к. там relay с меньшим номером. Пока мучаюсь длинными названиями и для зала, через шаблоны поведения настроил "включи свет в зале", "включи свет в спальне" и т.п.
И, например, я поставлю терминал в спальне, тоже хотелось бы тогда чтобы система понимала откуда запрос и на "включи свет" включала в спальне.
местоположение не опрделеяет на сегодня.
Просто называй устройство "свет в зале" - и по команде - включи свет в зале ... будет то что нужно...
Спасибо нам ПОМОЖЕТ..!
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

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

Сообщение C_3AXAPOB » Пт апр 26, 2019 10:43 pm

Если живешь один можно проверять где было последнее движение и включать свет там.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб апр 27, 2019 12:47 am

если посмотреть на файл command.php, куда прилетает фраза от пользователя, там видно, что код пытается определить терминал, с которого, кмк, и приходит команда

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

if ($qry != '') { 

    $terminal = gr('terminal');
    if ($terminal) {
        $terminals = getTerminalsByName($terminal);
...
но у него пока не получается(((
Но, как видим, задумки в этом направлении есть. Так что, надо идею в коннект и лайки собирать
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб апр 27, 2019 12:57 am

вот что ещё нашёл)
таблица терминалов содержит не только их имена и настройки, но и последнюю фразу и время ввода.
в своем шаблоне вполне можно поискать последний запрос с именем шаблона
2019-04-27_00-53-33.png
2019-04-27_00-53-33.png (20.59 КБ) 3262 просмотра
из строки найдешь терминал, а если он не переносной как у меня, то и комнату можно определить
ps/ но, кмк, это работает не со всеми типами терминалов(( если я с писишки пишу команду, в таблице пусто
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб апр 27, 2019 1:37 am

вот ещё - таблица shouts - с сообщениями, там есть поле источник, там наоборот, сообщения, прилетевшие в command.php, обезличены, а через телегу и писишный терминал -- определены. терминал terminal15 -- id=15 в таблице terminals. тоже можно использовать
2019-04-27_01-27-26.png
2019-04-27_01-27-26.png (32.92 КБ) 3253 просмотра
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Сб апр 27, 2019 2:11 am

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

2019-04-27_01-27-26.png
я смотрю проводишь исследование - но есть функция sayreply - она возвращает на тот терминал откуда пришло сообщение.. по идее :oops: :oops: :oops:
Спасибо нам ПОМОЖЕТ..!
klv666
Сообщения: 175
Зарегистрирован: Вс янв 20, 2019 10:48 am
Благодарил (а): 64 раза
Поблагодарили: 19 раз

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

Сообщение klv666 » Сб апр 27, 2019 5:54 am

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

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

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

Сообщение lihodeev » Сб апр 27, 2019 7:47 am

$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));
я так включаю радио автоматически определяя терминал, если не ошибаюсь, надо к комнате привязать терминал и реле, после чего можно обратиться к конкретному устройству. Может у кого то будут мысли...
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Сб апр 27, 2019 8:23 am

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