ialtuhov писал(а):Прошу помощи, немного запутался.
Возьмем обсуждаемый здесь пример: шаблон Включи-что?-свет-где?-на улице
У меня вопрос вот какой: в данном примере под каждым уровнем шаблона понимается одна переменная и все просто.
Если создать на втором уровне шаблон, например, Вода, то получим второе направление реакции шаблона Включи:
Включи-что?-свет-где?-на улице и Включи-что?-воду-где?-на улице.
Как запихать две и более ветки в одну и идентифицировать, что нужно сделать я знаю, то есть как создать универсальный шаблон типа Включи-что?-(воду/свет/газ/...)-где?-(на улице/в подвале/на крыше/...). Но я не понимаю как этот универсальный шаблон заставить работать в одну команду? Я говорю - Включи свет в подвале, результатом служит выполнение только последнего уровня шаблона, то есть переменная второго уровня (где?) не определяется. Если делать по шагам все работает безупречно.
Пробывал поставить на втором уровне context_clear(), но после идентификации полной команды ссылка всегда на третий уровень.
Кто что посоветует, как заставить работать?
То-то и оно, что сейчас изменили концепцию и фиг так сделаешь, кмк.
У меня щас так:
1 Включи
2 свет
3 на улице
3 дома
2 воду
3 на улице
3 дома
Плюс такая же ветка для Выключи((
Отправлено с моего Redmi 4X через Tapatalk
Так вообще не айс. Такой лес команд. Нужно проще делать
Сделаете, поделитесь! Я устал переписывать шаблоны после очередного обновления
ialtuhov писал(а): Чт май 23, 2019 10:27 am
Включи свет в подвале, результатом служит выполнение только последнего уровня шаблона, то есть переменная второго уровня (где?) не определяется. Если делать по шагам все работает безупречно.
Пробывал поставить на втором уровне context_clear(), но после идентификации полной команды ссылка всегда на третий уровень.
Кто что посоветует, как заставить работать?
А смысл второго уровня если он автоматом пролетает на третий?
Если сказать "включи свет" тут вам и будет второй
ialtuhov писал(а): Чт май 23, 2019 10:27 am
Включи свет в подвале, результатом служит выполнение только последнего уровня шаблона, то есть переменная второго уровня (где?) не определяется. Если делать по шагам все работает безупречно.
Пробывал поставить на втором уровне context_clear(), но после идентификации полной команды ссылка всегда на третий уровень.
Кто что посоветует, как заставить работать?
А смысл второго уровня если он автоматом пролетает на третий?
Если сказать "включи свет" тут вам и будет второй
Я говорил о универсальном шаблоне, читайте внимательно.
Если на втором уровне не определяется переменная, то итоговая команда не может быть выполнена или будет выполнена не корректна.
ialtuhov писал(а): Пт май 24, 2019 8:28 am
Я говорил о универсальном шаблоне, читайте внимательно.
Если на втором уровне не определяется переменная, то итоговая команда не может быть выполнена или будет выполнена не корректна.
"Универсальный" шаблон может быть хоть 1, а дальше можно самому разбирать его по $original и $matches
и если говорить целой фразой, а не обрывками то будет не важно на каком он уровне
Но при этом в каждом из шаблонов будет очень много кода
(включи|выключи) - универсальный?
if(включи) -
if(улица)
if(свет)(делаем)
if(ботинки)(делаем)
if(комната)
if(свет)(делаем)
if(тапки)(делаем)
if(выключи) -
if(улица)
if(свет)(делаем)
if(ботинки)(делаем)
if(комната)
if(свет)(делаем)
if(тапки)(делаем
Если делать по идеологии то кода будет намного меньше, но портянок из шаблонов больше
1(включи) -
2 -- (в комнате)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
2 -- (на улице)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
1(выключи) -
2 -- (в комнате)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
2 -- (на улице)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
сам $original(который содержит ВСЮ фразу) у меня в мастере пока работает, а почему не собирается проходя по шаблонам - надо править функцию истории
Sas писал(а):
сам $original(который содержит ВСЮ фразу) у меня в мастере пока работает, а почему не собирается проходя по шаблонам - надо править функцию истории
Вот руки чешутся сохранять оригиналы, собирая их в какой нибудь внешней переменной, хоть в свойстве или ивенте, до отработки ветки шаблонов или очистки контекста.
ialtuhov писал(а): Пт май 24, 2019 8:28 am
Я говорил о универсальном шаблоне, читайте внимательно.
Если на втором уровне не определяется переменная, то итоговая команда не может быть выполнена или будет выполнена не корректна.
"Универсальный" шаблон может быть хоть 1, а дальше можно самому разбирать его по $original и $matches
и если говорить целой фразой, а не обрывками то будет не важно на каком он уровне
Но при этом в каждом из шаблонов будет очень много кода
(включи|выключи) - универсальный?
if(включи) -
if(улица)
if(свет)(делаем)
if(ботинки)(делаем)
if(комната)
if(свет)(делаем)
if(тапки)(делаем)
if(выключи) -
if(улица)
if(свет)(делаем)
if(ботинки)(делаем)
if(комната)
if(свет)(делаем)
if(тапки)(делаем
Если делать по идеологии то кода будет намного меньше, но портянок из шаблонов больше
1(включи) -
2 -- (в комнате)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
2 -- (на улице)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
1(выключи) -
2 -- (в комнате)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
2 -- (на улице)
3 ---- (свет)(делаем)
3 ---- (воду)(делаем)
сам $original(который содержит ВСЮ фразу) у меня в мастере пока работает, а почему не собирается проходя по шаблонам - надо править функцию истории
В целом величина кода не пугает, но почему то не работает. В моем случае шаблон (управление пылесосом) шаблон второго уровня типа «нужно выполнить уборку (.+)» (определяет зону или несколько зон), на третьем уровне все проще «один|два|три». Если всю команду говорю с один два или три то переменная второго уровня (комната(ты)) не определяется и код работает по истории (последнее значение переменной). Воткнул на третий уровень полный код, но поскольку опять же в шаблоне третьего уровня нет переменной в голосовой команде то и опять нет результата. Запихивать полный вариант голосовой команды на третий уровень получиться такой огород, что мама не горюй.
Подскажите, что мне сделать для того, что бы работала все?
И сразу вопрос: по моему примеру можно ли как то заставить мажора тормознуть на втором уровне при произношении полной команды без перехода на третий уровень? У меня не получается это.
Для себя вопрос с мульти командой я закрыл, получилось три шаблона в три уровня вместо, как минимум двадцати пяти )))
Поскольку я не являюсь программистом, а в тему начал погружаться совсем недавно, тут услышал про $original и с помощью нее и решил все задачи. Код, поскольку делал так как умею (уровень у меня нулевой) получился в 50 строк (на мой взгляд это ничто по сравнению с кучей шаблонов).
В моем случае:
второй уровень - определяет комнату, их пять. Итог - комната или несколько комнат (5 на 5 = 25 как минимум вариантов итога второго уровня)
третий уровень - все просто, количество циклов уборки (1, 2, 3)
Все это разнообразие в трех шаблонах. Но пока буду еще тестить, вдруг что вылезет еще
Решение проблемы с выводом "Неизвестная команда...", после отработки реально имеющегося шаблона!
предыстория:
некоторое время назад у меня (после обновлений связанных с общением и терминалами) была замечена проблема:
после отработки реакции на некоторые шаблоны, например: "Привет", Алиса выдавала необходимую реакцию и дополнительно писала "Неизвестная команда..."!
решение проблемы:
оказывается ошибка была тут, а именно:
некоторые шаблоны, для своего удобства, я объединил типа в раздел - а реально в контекстный шаблон, назвав его "Общие" и при этом оставив в нем чистыми все поля настроек, кроме установки галочки "использовать как контекст ". И созданные другие шаблоны, которые я решил считать общими, я создавал с указанием в поле "Доступно в контексте", именно "Общие".
В результате именно только для всех шаблонов созданных в таком виде происходила такая ошибка.
таким образом вынесение шаблонов, из общего (при чем пустого) в корень, решило проблему!
Мой -CONNECT- Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры) -=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Продублирую тут
Проблема скорей в том что не работает галка 'не проверять другие шаблоны при совпадении'
у меня два шаблона 'кто дома' в глобальном 'общие' и глобальный 'температура' с под 'дома'
и вот если спросить кто дома она отвечает и кто дома и температуру в помещениях и после добавляет 'неизвестная команда'
Наверное сломалась галка для глобальных, а может и для всех