Контексты в шаблонах поведения

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

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Контексты в шаблонах поведения

Сообщение nick7zmail » Вт янв 19, 2016 10:00 am

LocalBrownie писал(а): Ну грешен, да! :) Выкинул две строчки с таймингом минут 5 уже после всего этого безобразия. Там было про "твою мать" и "неизвестную команду" ;)
Хм...у меня подобный шаблон отлично работает....а у вас случайно
Напомни через (\d+) минут (.+)
Не указан как еще 1 контекст? По идее должен быть указан как обычная команда...если как контекст - либо уберите, либо так же таймауты на 1сек.

И не помешало бы перезагрузить систему...так...на всякий случай =D....а то были у меня ситуации когда что-то не срабатывало после различных изменений - а после перезагрузки начинало работать.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
LocalBrownie
Сообщения: 66
Зарегистрирован: Пт июл 11, 2014 11:08 am
Благодарил (а): 16 раз
Поблагодарили: 9 раз

Re: Контексты в шаблонах поведения

Сообщение LocalBrownie » Вт янв 19, 2016 10:41 am

nick7zmail писал(а): Хм...у меня подобный шаблон отлично работает....а у вас случайно
Во-во... Я ж говорю - мистика какая-то!
Напоминалка стоит как команда обычная.
Самое интересное, я вчера таки проверил свой другой шаблон. Тот который
"Алиса ==> Свет ==> комната ==> центр ==> (\d+)( процентов|%)"
Т. есть я прохожу через шаблон "Алиса" в обоих случаях, только второй случай еще более разветвлённый и ничего, всё работает как часики:
20:33 Андрей: Алиса свет комната центр 20%
20:33 Алиса: Устанавливаю на 20 процентов.
20:33 Андрей: Алиса свет комната центр 25%
20:33 Алиса: Устанавливаю на 25 процентов.

... И так "Даканца" без сбоев или каких-то повторов.

20:34 Андрей: Алиса свет комната центр выключить
20:34 Алиса: Выключаю центральные светильники в комнате.

МД перезагружал. Комп, правда, давненько... Да и вряд-ли поможет. Второй шаблон (со светом) работает ведь.
Вытащу на экран оба шаблона сразу и буду сравнивать. :(
LocalBrownie
Сообщения: 66
Зарегистрирован: Пт июл 11, 2014 11:08 am
Благодарил (а): 16 раз
Поблагодарили: 9 раз

Re: Контексты в шаблонах поведения

Сообщение LocalBrownie » Вт янв 19, 2016 10:50 am

triada13 писал(а): Не получается ничего, таймер создается, но действие выполняется тут же. :cry:
А попробуйте добавить в код что-то типа
say($matches[1]); // должно сказать что оно видит в этом $matches[1]
Если там вдруг ноль, то "тут же" и должно быть...
LocalBrownie
Сообщения: 66
Зарегистрирован: Пт июл 11, 2014 11:08 am
Благодарил (а): 16 раз
Поблагодарили: 9 раз

Re: Контексты в шаблонах поведения

Сообщение LocalBrownie » Вт янв 19, 2016 12:31 pm

Вытащу на экран оба шаблона сразу и буду сравнивать. :(
Починилось! :o
Сидел, тупил в оба шаблона. Устал. Грохнул напоминалку вообще и создал заново.
Работает!

11:22 Андрей: Алиса Напомни через 7 минут тест номер 3
11:22 Алиса: Принято напоминание - через 7 минут напомнить: тест номер 3
11:23 Андрей: Алиса Напомни через 6 минут тест номер 2
11:23 Алиса: Принято напоминание - через 6 минут напомнить: тест номер 2
11:23 Андрей: Алиса Напомни через 5 минут тест номер 1
11:23 Алиса: Принято напоминание - через 5 минут напомнить: тест номер 1

Осталось только переделать код для мультинапоминалки. В прошлом имеется логическая ошибка.
Доделаю - выложу. Мож кому пригодится тоже.
LocalBrownie
Сообщения: 66
Зарегистрирован: Пт июл 11, 2014 11:08 am
Благодарил (а): 16 раз
Поблагодарили: 9 раз

Re: Контексты в шаблонах поведения

Сообщение LocalBrownie » Вт янв 19, 2016 1:21 pm

Рабочая мультинапоминалка:

Шаблон:
(Н|н)апомни через (\d+) минут(|у|ы) (.+)

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

$rnumber = 1;
while (1) {
  $rname = "Reminder_$rnumber";
  if (!timeOutExists($rname)) break;
  $rnumber++;
}

setTimeOut($rname,'say("Напоминаю: '.$matches[4].'");',$matches[2]*60); 
say("Принято напоминание - напомнить через $matches[2] минут: $matches[4]");
say("Постараюсь не забыть!");
За это сообщение автора LocalBrownie поблагодарили (всего 5):
Gelezako (Пн июн 13, 2016 9:23 pm) • mazahaka7sk (Пн окт 24, 2016 6:44 pm) • igrok (Пн фев 27, 2017 3:39 am) • LeonidMarchuk (Вс янв 28, 2018 5:14 pm) • Князь (Пн сен 23, 2019 3:42 pm)
Рейтинг: 5.81%
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Контексты в шаблонах поведения

Сообщение triada13 » Вт янв 19, 2016 5:29 pm

nick7zmail писал(а):
triada13 писал(а): Не получается ничего, таймер создается, но действие выполняется тут же. :cry:
В первую очередь проверьте что в таймере на выполнение отправлятся хочет, во-вторых поставьте галочки - не искать другие шаблоны при совпадении, и не реагировать на системные события (на скрине они обе есть). Домой приду - покажу как должен выглядеть создавшийся таймер.
Галочки стоят, обе.
СпойлерПоказать
вот то что появляется в XRay в таймерах:
СпойлерПоказать

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

getURL('http://localhost/command.php?qry=%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B8+%D0%BC%D0%B0%D0%BB%D1%8B%D0%B9+%D1%81%D0%B2%D0%B5%D1%82+%D0%BD%D0%B0');
вот скрин этого:
СпойлерПоказать
вот скрин истории сообщений:
СпойлерПоказать
Majordomo на Orange Pi Zero.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Контексты в шаблонах поведения

Сообщение nick7zmail » Пт янв 22, 2016 8:11 pm

triada13 писал(а): Не получается ничего, таймер создается, но действие выполняется тут же.
Самое главное забыл...код шаблона то выложи, чтобы проверить))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Контексты в шаблонах поведения

Сообщение triada13 » Пт янв 22, 2016 9:22 pm

nick7zmail писал(а):
triada13 писал(а): Не получается ничего, таймер создается, но действие выполняется тут же.
Самое главное забыл...код шаблона то выложи, чтобы проверить))
Приоритет повысил, и вроде пошло, но не далеко. Все предложение не помещается:
" через 5 минут выключи малый свет на кухне"
влезает только: " через 5 минут выключи малый свет", соответственно через 5 минут Алиса задает уточняющий вопрос "выключить где?", и естественно ответа не дожидается, что приводит к сбросу контекста.
Код шаблона:
СпойлерПоказать

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

setTimeOut('timer', "getURL('http://192.168.0.101/command.php?qry=".urlencode($matches[3])."');", $matches[1]*60); 
Majordomo на Orange Pi Zero.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Контексты в шаблонах поведения

Сообщение nick7zmail » Сб янв 23, 2016 9:12 am

triada13 писал(а): Приоритет повысил, и вроде пошло, но не далеко. Все предложение не помещается:
" через 5 минут выключи малый свет на кухне"
влезает только: " через 5 минут выключи малый свет", соответственно через 5 минут Алиса задает уточняющий вопрос "выключить где?", и естественно ответа не дожидается, что приводит к сбросу контекста.
Про приоритет тоже подумал, когда шаблон создал и попробовал - срабатывал конечный шаблон сразу...а если повысить приоритет, чтобы сперва этот отрабатывал - то все ок.
На счет строки - хз. В urlencode ограничения такого маленького точно нет...может это у вас в системе? У меня на винде стоит - дак все нормально влазит. Ваш шаблон отлично отрабатывает.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Контексты в шаблонах поведения

Сообщение triada13 » Сб янв 23, 2016 5:36 pm

nick7zmail, еще один недостаток данного шаблона, нельзя активировать более одного таймера, последний затирает предыдущий
Majordomo на Orange Pi Zero.
Ответить