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

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

Модератор: immortal

Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

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

Сообщение Logrus » Пт авг 05, 2022 3:00 pm

насчет дороги
если локальный стт, то посмотреть как пример https://mycroft.ai/
питон, и как пример реализации в ассистентах посмотреть на скиллы и интенты
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Пт авг 05, 2022 7:01 pm

Bagir писал(а):
Пт авг 05, 2022 2:50 pm
xor писал(а):
Пт авг 05, 2022 1:06 pm
А зачем напоминания через шаблоны? это штатная функция у я.колонки.
Это да, просто я пока не сильно на неё подсел. И Я.колонки не во всех комнатах. Пока что пара штук только. В серверной Микрофон через мою прогу SDM. Есть второй микрофон, только там же пока валяется выключенный. Не протягивал никуда. Из минусов у меня только что нет ключевого слова, но зато диалоги может МД начинать. Пока ещё не знаю, по какой дороге пойду.
Напоминалка то у меня работает. "Напомни через <x> минут <текст>" Вот только Я.колонка цифры прописью присылает. Новому коду шаблона (включи|выключи) не мешает.
Хотел поработать с фразой "через <x> минут", которая добавляется к команде. Не так уж мне это и нужно, просто пока в этой теме сижу, доделать и в сторону.
интересует передача текста от я.колонки в мдм. как реализовано? я делал через сценарии только предустановленные фразы с передачей виртуальному пульту номера канала, по которому уже в мдм запускал скрипты.
типа, в яндексе сценарий - если я скажу Включи камеру, то пульт установит канал 999.
в мдм - если канал пульта=999, то выполни скрипт "включи камеру"
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

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

Сообщение Bagir » Пт авг 05, 2022 8:02 pm

xor писал(а):
Пт авг 05, 2022 7:01 pm
интересует передача текста от я.колонки в мдм. как реализовано?
Если вкратце, то через Телеграмм.
Я. колонка использует навык Электронный почтальон, заточенный на фразу "Передай сестре" и пишет в Телеграмм своему боту. в МД есть свой бот, модуль Telegram. Он кидает в чат МД всё, что ему пишут в телеге.
Эти боты добавлены в канал админами, и видят сообщения друг друга.
Я записывал все шаги, и в будущем оформлю всё в статье. Но если очень нужно сейчас, могу в личку прислать записки.
За это сообщение автора Bagir поблагодарил:
xor (Пт авг 05, 2022 8:22 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Пт авг 05, 2022 10:43 pm

Bagir писал(а):
Пт авг 05, 2022 8:02 pm
xor писал(а):
Пт авг 05, 2022 7:01 pm
интересует передача текста от я.колонки в мдм. как реализовано?
Если вкратце, то через Телеграмм.
Я. колонка использует навык Электронный почтальон, заточенный на фразу "Передай сестре" и пишет в Телеграмм своему боту. в МД есть свой бот, модуль Telegram. Он кидает в чат МД всё, что ему пишут в телеге.
Эти боты добавлены в канал админами, и видят сообщения друг друга.
Я записывал все шаги, и в будущем оформлю всё в статье. Но если очень нужно сейчас, могу в личку прислать записки.
Супер! получилось и отлично запускаются шаблоны из яндекса!
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

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

Сообщение Bagir » Сб авг 06, 2022 11:04 am

xor писал(а):
Пт авг 05, 2022 10:43 pm
Супер! получилось и отлично запускаются шаблоны из яндекса!
Отлично! Это через модуль YaDevices?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб авг 06, 2022 12:11 pm

Bagir писал(а):
Сб авг 06, 2022 11:04 am
xor писал(а):
Пт авг 05, 2022 10:43 pm
Супер! получилось и отлично запускаются шаблоны из яндекса!
Отлично! Это через модуль YaDevices?
нет, только сценарием яндекса, навыком электронный почтальон и шаблонами. модуль YaDevices позволяет отправлять команды/сообщения на колонки и управлять устройствами я.дома, как только присутствующими в я.доме, типа яндекс-лампочки, так и прокинутыми из мдм - реле, диммерами, пультами, тв, термостатами и видеть показания датчиков - типа мощности розеток яндекса
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

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

Сообщение Bagir » Сб авг 06, 2022 12:19 pm

xor писал(а):
Пт авг 05, 2022 10:43 pm
получилось и отлично запускаются шаблоны из яндекса!
xor писал(а):
Сб авг 06, 2022 12:11 pm
навыком электронный почтальон и шаблонами.
Можно подробнее, это получается через навык электронный почтальон можно не только писать в телегу, но и в ответ вызвать реакцию Я.колонки?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Сб авг 06, 2022 4:14 pm

Bagir писал(а):
Сб авг 06, 2022 12:19 pm
xor писал(а):
Пт авг 05, 2022 10:43 pm
получилось и отлично запускаются шаблоны из яндекса!
xor писал(а):
Сб авг 06, 2022 12:11 pm
навыком электронный почтальон и шаблонами.
Можно подробнее, это получается через навык электронный почтальон можно не только писать в телегу, но и в ответ вызвать реакцию Я.колонки?
не, вызывать реакцию шаблонов мдм по пересланному сообщению
канал в телеге, там бот электронного почтальона,
в модуле мдм телеграм прописан юзером этот канал, к нему привязан пользователь мдм и разрешены шаблоны.
2022-08-06_16-19-21.png
2022-08-06_16-19-21.png (14.99 КБ) 1795 просмотров
есть шаблон в мдм - расскажи о погоде
делаем сценарий в я.доме
если я скажу передай сообщение железяке, то колонка выполнит команду Попроси электронного почтальона отправить сообщение Джарвис
(Джарвис - имя контакта канала в эл.почтальоне)
я говорю в колонку - передай сообщение железяке
колонка спрашивает - Какое сообщение передать?
я - расскажи о погоде
это прилетает в канал и срабатывает шаблон
2022-08-06_16-21-29.png
2022-08-06_16-21-29.png (28.89 КБ) 1795 просмотров
а уж в шаблоне можно прописать, чем отвечать. той же я.колонкой можно
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Связка Яндекс > Телеграмм > МД

Сообщение Bagir » Сб авг 06, 2022 6:58 pm

Кратко о ситуации: Алиса МД у меня живет уже десятый год. Синтез речи локальный, устраивает. А вот с распознаванием плоховато. Есть у меня прога SDM, распознает через Гугл но локального ключевого слова так и не сделал. Но тем не менее, на ровне с меню, шаблоны поведения тоже весьма развиты, и уходить от них я не хочу. Поэтому от умных колонок требуется только получить распознанный текст.
Задача вроде простая, но не так всё легко. Пробовал модуль YaDevices интересная разработка, но сырой текст с колонки туда не приходит. И на данный момент у меня есть только вот такое решение. Связка Алисы МД и Алисы Яндекса через канал в Телеграмме.
Суть в следующем Y.Алиса, используя навык Электронный почтальон, передает текст боту в телеге. Другой бот из модуля МД Телеграмм читает эти сообщения, и передает их в чат МД. Оба этих бота сидят с одном Телеграмм канале админами, и поэтому видят сообщения друг друга. На каждую Y.колонку создан свой телеграмм канал. Бота всего два, их плодить не нужно. Это позволяет получать сообщения в чат МД от разных пользователей. Что можно эффективно использовать в коде Шаблонов поведения.
Всё вроде бы устраивает, разве что нельзя напрямую сказать Y.Алисе Включи свет. Нужна ещё кодовая фраза для запуска навык почтальон. Мой вариант выглядит так: Алиса передай сестре > немного ждем пока запустится навык > Включи свет. Вот эта необходимая пауза, конечно, портит весь тортик, потому что мы не может произнести всю фразу на одном дыхании. Но, тем не менее, это всё равно очень удобно.

Теперь о настройке по шагам:

Связка МД-модуль-Telegram
  • в МД устанавливаем модуль Telegram из маркета дополнений
    в телеграмме добавляем себе бота @BotFather. Он нужен для создания нашего бота для модуля Telegram
    в чате BotFather команда /newbot
    придумываем name и username нашему боту
    username английскими и в конце _bot
    name какое нравится. Я назвал Алиса и номер своего дома. Это имя будет в чате Телеграм.
    без разницы, если Я.колонок несколько. Бот будет один.
    BotFather даст нам token нашего бота.
    переходим к нашему боту и отправляем /start
    в настройках МД модуля Telegram укажем токен нашего бота
    пишем что-нибудь из Телеграмма в чате с ботом
    в модуле МД появится Незарегистрированный пользователь.
    добавим его. В поле Пользователь выберем нужного пользователя системы. У меня для таких дел есть User.
Всё, теперь сообщения их чата Телеграм должны попадать в чат МД от имени User.
Подробное описание этого шага в теме [Модуль] Telegram (telegram)

Связка Я.колонка-Телеграмм
  • в Telegram-аккаунте получателя добавим бота "Электронный почтальон (бот)",
    запустим его и узнаем у него chat id (это наш личный с ботом чат, и к МД не имеет никакого отношения)
    дадим умной колонке команду "Алиса, запусти навык Электронный почтальон"
    после запуска навыка просим его "отправить сообщение"
    на вопрос "Кому?" называем имя, под которым хотим сохранить получателя (я назвал "Мне")
    диктуем словами ранее полученный chat id
    если всё верно. подтверждаем сохранение словом "Да"
Имя "Мне" К нескольким колонкам и комнатам отношения не имеет
Подробное описание этого шага на wiki

Передача сообщений между ботами и привязка к комнатам
  • создадим в Телеграмм новый Канал никого туда не добавляя
    имя канала должно ассоциироваться с названием комнаты, где стоит Я.колонка (у меня имена каналов Дом Кухня, Баня Зал ...)
    в настройках канала пункт Администраторы. Добавим туда наших двух ботов с правом Post Messages.
    напишем что-нибудь в этом канале
    в модуле МД появится новый Незарегистрированный пользователь
    добавляем его. (Запомним его ID который начинается с - и имеет много цифр)
    в навыке Я.колонки Электронный почтальон добавим получателя с именем, например, Алиса и этим ID
    для новых комнат нужно создать новые каналы в Телеграмм и новых пользователей в модуле
    А вот имя в навыке Я.колонки Электронный почтальон нужно оставить одинаковое.
Дело в том, что имена получателей в навыке почтальона хранятся в связке с id колонки, и на каждой колонке список свой. Это и выручает. Допустим на колонке в одной комнате у получателя Алиса будет id чата 123..., а в другой комнате у этого же получателя Алиса id будет 456... Это позволяет в квазаре настроит один сценарий с одним именем получателя. Теперь уже должно работать по схеме: Алиса запусти навык Электронный почтальон > Отправить сообщение > Алиса > Включи свет

Упрощение диалога
Вместо команды "Алиса, запусти навык "Электронный почтальон" можно сделать так:
В приложении Яндекса умный дом (квазар) создать сценарий, например, именем "Сообщение для МД".
Когда: услышит любая колонка
Если: Я скажу "Передай сестре"
Или: Я скажу "Скажи сестре"
Или: Я скажу "Напиши сестре"
Тогда: колонка которая услышит выполнит команду "Попроси электронного почтальона отправить сообщение Алисе"
Последний раз редактировалось Bagir Ср авг 17, 2022 8:23 am, всего редактировалось 2 раза.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

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

Сообщение Bagir » Ср авг 17, 2022 9:03 am

Обновил свой сообщение с заметками, может ещё кому пригодится.
Решена проблема с несколькими колонками в одном аккаунте Яндекса. Всё просто, в навыке электронный почтальон id канала получателя хранится для каждой колонки свой. Это позволяет использовать общий сценарий в квазаре для всех колонок, но писать они будут в разные каналы Телеграмм.
А вообще, может у кого есть ещё варианты как притащить сырой текст в чат МД с подобных колонок?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить