Управление Яндекс.Станцией и другими колонками с Алисой из Home Assistant
Мы привыкли называть умными устройства, которыми можем управлять, не вставая с дивана. Включить лампочку, вентилятор, кофеварку или стиральную машину.
Колонки с Яндекс Алисой хоть и называются умными, но вы не можете изменить громкость не находясь рядом с колонкой (орать через всю комнату не считается). Вы не можете перемотать песню из мобильного приложения Яндекса. Или остановить сказку, запущенную на колонке в детской, из своей кровати в спальне.
В январе 2020 кто-то обнаружил, что Яндекс.Станция поддерживает некий локальный протокол. На GitHub начали появляться проекты по управлению Яндекс.Станцией. Мне хватило пару часов, чтоб разобраться и выпустить первую версию компонента для Home Assistant. Это достаточно популярная система домашней автоматизации, написанная на языке Python.
На сегодняшний день компонент поддерживает управление всеми колонками с Яндекс Алисой и при желании может выглядеть так:
Инструкции по установке, настройке и использованию компонента можете найти на GitHub странице проекта.
Локальный протокол
Устройства Яндекса обнаруживаются в локальной сети по протоколу mDNS и имени _yandexio._tcp.local. .
Локальный протокол представляет собой подключение к станции по WebSocket и обмен JSON-сообщениями в две стороны. Создавался он для приложения Яндекс.Музыки и поддерживает полный перечень команд управления станцией, как медиа-устройством: включить песню по ID из каталога Яндекс.Музыки, перемотать, изменить громкость и т.п.
Первым сообщением нужно отправить на станцию токен, полученный с серверов Яндекса, используя акаунт Яндекса, к которому привязана станция. Так что кому угодно управлять вашей станцией не получится.
Кстати подключение к колонкам Google через протокол Chromecast не ограничено какими-либо паролями или аккаунтами. Управление колонкой доступно любому пользователю той же локальной сети.
К многим устройствам с AirPlay первой версии подключение также не ограничено паролем.
Помимо медиа команд протокол поддерживает функцию, делающую Яндекс.Станцию совершенно уникальным устройством на рынке. Это возможность отправить на колонку текстовую команду. И колонка её выполнит, будто услышала команду через микрофон.
Вы можете включить плейлист дня с Яндекс.Музыки, лайкнуть песню, спросить погоду, вызвать такси, управлять умными устройствами, подключенными напрямую в экосистему Яндекса.
И вишенкой на торте — вы можете попросить станцию произнести любую фразу голосом Алисы. Это тот самый голос, который по праву признан лучшим голосом TTS для русского языка на сегодняшний день. Этот голос является эксклюзивом Яндекс Алисы и его нет даже в Yandex SpeechKit.
Но и это ещё не всё! Помимо зачечательного голоса вам доступна настройка генератора речи и библиотека звуков из платформы Яндекс.Диалоги.
Облачное управление
На сегодняшний день локальный протокол поддерживает только большая станция и модуль. Почти пол года сообщество ждало появление протокола в остальных колонках с Алисой, но это так и не случилось.
В начале мая Яндекс выпустил очень интересное обновление для своей платформы. В сценарии умного дома добавили возможность отправить на любую колонку пользователя любую текстовую команду. Как и в случае с большой станцией — колонка её выполняет.
По задумке авторов сценарий выполняется по заданной активационной фразе, которую пользователь произносит своему устройству с Алисой. Это может быть колонка, мобильное приложение Яндекс или Яндекс.Браузер с Алисой на компьютере. Но в интерфейсе управления сценариями есть кнопка ручного запуска любого пользовательского сценария.
Интерфейс умного дома Яндекса представляет собой обычное веб-приложение, которое можно запустить в том числе на компьютере.
Я ранее сталкивался с внутренними API этого приложения для реализации функции управления HDMI выходом большой станции. Да, есть ещё такая недокументированная возможность и компонент её поддерживает.
Научить компонент создавать сценарии и выполнять их не составило особого труда. Через сценарии можно как выполнять команды, так и произносить любые фразы.
Единственным большим минусом такого подхода является отсутствие обратной связи от колонки. Неизвестно что играет станция на данный момент и вообще играет ли она что-либо. У локального протокола такой проблемы нет, там выводится полная информация о исполнителе и красивая обложка из Яндекс.Музыки.
YandexStation 2.0
Некоторое время ушло на объединение локального и облачного режима работы. При старте Home Assistant все колонки включаются в облачном режиме и запускается поиск колонок, поддерживающих локальный режим. mDNS довольно капризный протокол и иногда может искать колонку довольно долго. Но благодаря наличию облачного режима — управление станцией сохранится, пусть и в обрезанном режиме без обратной связи. При обнаружении локальной колонки — управление переключается на локальный протокол.
Похожим образом работает другой мой компонент для управления устройствами eWeLink (Sonoff) на оригинальной прошивке — SonoffLAN. В линейке популярных китайских реле также есть устройства, которые поддерживают локальное и облачное управление. И устройства, которые поддерживают только облачное управление.
Могу написать отдельную статью про компонент, если интересно.
Home Assistant Windows Portable
Для пользователей, испытывающих трудности в установке Home Assistant, я собрал портативную версию Home Assistant под Windows на базе WinPython — HassWP. Эта версия подойдёт для ознакомления и экспериментов. В ней уже установлен Home Assistant Community Store (HACS) и компоненты YandexStation и SonoffLAN.
Для повседневного использования всё же рекомендую установить Hass.io на Raspberry Pi, NUC (или аналог) или виртуальную машину с Linux. Но слышал у VirtualBox есть проблемы с Multicast. Это тот самый mDNS без которого в локальной сети НЕ найдутся ваши Яндекс.Станции, устройства Sonoff, колонки Google, плееры с поддержкой AirPlay и многие другие полезные гаджеты.
Заключение
Я знаю довольно много людей, кто купил колонки с Алисой благодаря выходу этого компонента. Решение показывает, что при наличии фукнционального API — эти колонки могут стать почти обязательным устройством в каждом умном доме.
Это далеко не все крутые вещи, на которые способны колонки с Алисой и экосистема умного дома Яндекса. Просто у меня пока ещё не дошли руки реализовать всё задуманное.
Следить за развитием этого и других моих проектов можно на канале в Telegram. На странице GitHub вы можете найти и другие полезные компоненты для Home Assistant.
Источник
Стать президентом Америки и потренироваться дома: 17 неизбитых функций Яндекс-колонки
Когда у нас дома появилась Яндекс-колонка с голосовым помощником Алисой, никто толком не знал, что с ней делать
Мы спрашивали у нее погоду, просили поставить таймер, чтобы вовремя достать яйца из кастрюли, и задавали дурацкие вопросы, на которые она смешно отвечала.
Со временем я изучила навыки Алисы, и она оказалась полезной практически в любой ситуации: на вечеринке Алиса скажет незабываемый тост, за завтраком поделится последними новостями, напомнит список продуктов в магазине и займет ребенка обучающими играми, пока родители работают.
Вот несколько ее способностей, которые кажутся мне наиболее полезными. Хотя Алиса живет в разных устройствах, для этой статьи я выбрала только те навыки, которые работают в домашней колонке и не требуют дополнительных устройств — специальных розеток и систем управления умным домом.
Выбирайте, что вам необходимо прямо сейчас:
Алиса может заменить тренера: она расскажет, как сделать упражнение, включит бодрую музыку и отсчитает необходимое количество повторений.
Сложность упражнений и скорость счета можно настраивать, а тренировку выбрать на свой вкус — интервальную, общеукрепляющую или йогу.
Что сказать Алисе: «Запусти навык „Умный счетчик калорий“», «Скажи умному счетчику калорий записать», «Попроси умный счетчик калорий записать»
Навык подойдет тем, кто следит за фигурой: Алиса скажет, сколько калорий в стандартной порции пасты «Карбонара» и салата «Цезарь», и уточнит содержание белков, жиров и углеводов. За завтраком, обедом и ужином можно попросить Алису записать каждое блюдо, а вечером она сообщит, сколько калорий вы съели и рассчитает меню на следующий день.
Алиса знает и точные данные блюд из сетей фастфуда. Можно сказать ей «Бигмак и макфлури» вместо «Бургер и мороженое» и не сомневаться в точности расчетов. Не забудьте записать напитки: Алиса поможет разобраться, какую часть от ежедневного рациона составляет стакан апельсинового сока, а какую — бокал вина.
Что сказать Алисе: «Запусти навык „Расшифровка пищевых добавок“»
Когда нет под рукой таблицы с расшифровкой непонятных ингредиентов вроде E100 или Е260, то поможет Алиса. Она определит добавку по шифру, расскажет, естественное или искусственное у нее происхождение, к какой категории относится вещество — например, краситель, усилитель вкуса или консервант, — и насколько оно безопасно.
Что сказать Алисе: «Запусти навык „Проверка симптомов коронавируса“»
Алиса перечисляет симптомы, которые могут сопровождать болезнь, и просит пользователя оценить, насколько часто они у него проявляются. После этого она анализирует ответы и дает рекомендации: сидеть дома и пить больше теплой жидкости или все-таки вызвать врача.
Что сказать Алисе: «Запусти „Навык тест на алкоголь“», «Сыграем в тест на алкоголь», «Поиграем в тест на алкоголь»
Этот навык поможет оценить свое состояние наутро после вечеринки, когда нужно садиться за руль. Чтобы не рисковать ни жизнью, ни деньгами на оплату штрафов, перед поездкой стоит проконсультироваться с Алисой. Она узнает пол и вес пользователя, спросит, что и в каком количестве человек употреблял накануне, и сообщит, сколько в крови промилле алкоголя.
Если по расчетам алкоголь в крови превышает допустимые нормы, помощник предупредит, на какое время стоит отложить поездку.
Что сказать Алисе: «Запусти навык „Умный шеф“»
Алиса посоветует, что приготовить из тех продуктов, которые уже есть дома, или предложит выбрать блюдо из каталога: перечислит все закуски, горячие блюда или десерты, которые знает, пока пользователь не найдет подходящий вариант.
Сначала Алиса продиктует список продуктов, а потом перейдет к инструкциям. После каждого шага она делает паузу и ждет, пока хозяин спокойно натрет сыр или обжарит лук — и даст команду продолжать.
Что сказать Алисе: «Запусти навык „Список покупок“», «Попроси список покупок добавить молоко и хлеб», «Попроси список покупок показаться»
Чтобы не приходилось несколько раз бегать то за маслом, то за сметаной, попросите Алису стать тем самым листком со списком продуктов. Просто говорите ей, что нужно купить, в любой момент, когда об этом вспомните, а она самостоятельно составит список и синхронизирует его с вашим смартфоном. В магазине запустите Алису в браузере и попросите показать список покупок.
Квесты Алисы напоминают классические квеструмы, только все события происходят в воображении пользователя. Алиса описывает обстоятельства, в которых оказался игрок, и интерьер помещения, откуда нужно выбраться, а пользователь может скомандовать своему персонажу, куда посмотреть, какие предметы взять и как их использовать.
В отличие от квестов в реальности, Алиса не ограничивает игроков во времени: можно останавливаться, когда надоест, а потом продолжать отгадывать загадки с того же места. Историю можно подобрать на любой вкус: игроки могут очутиться в секретной лаборатории или на космическом корабле, в мире литературного произведения или сериала.
Для детей квесты тоже есть: Алиса предложит поиграть за помощников Деда Мороза или стать волшебником, который справится с заданиями, только сочиняя рифмы и составляя верные слова из набора слогов.
Если квесты требуют от игроков мыслить логически, то викторины проверяют эрудицию. Алиса предлагает пользователям посоревноваться в знаниях самых разных фактов: от скорости, с которой солнечный свет достигает поверхности Земли, до того, как звучит по-сербски слово «свинья».
Правила викторин отличаются: в одних пользователю нужно выбрать правильный вариант среди нескольких, которые называет Алиса, а в других — согласиться или не согласиться с утверждением. Можно играть в одиночку, а можно в компании или даже командами: Алиса посчитает, у кого больше правильных ответов, и выберет победителя.
Что сказать Алисе: «Сыграем в „Да, мистер президент“»
В этой игре пользователь садится в кресло президента США: его задача — продержаться у власти четыре года, пройдя сквозь череду неоднозначных ситуаций. На вопросы Алисы игрок должен отвечать только «да» или «нет»: в зависимости от принятого решения будет меняться авторитет президента и бюджет страны.
Зачастую игроку придется выбирать, что дороже — одобрение публики или экономическая стабильность. Впрочем, импичмент ему могут объявить как за растрату, так и в связи с утратой доверия, так что победить в игре будет непросто.
Те, кому удастся справиться с задачей и удержать баланс, могут попробовать свои силы в похожих играх: приквеле «День выборов», где нужно не растерять электорат, и историческом аналоге «Да, милорд», в котором за неверно принятые решения грозит казнь.
Что сказать Алисе: «Запусти навык „Легко сказать“», «Запусти навык „Песни на звуки“», «Запусти навык „Песни для произношения“»
Детям, которые только учатся разговаривать, Алиса поможет освоить сложные звуки: для этого родителям нужно активировать навык-тренажер «Легко сказать», а дальше Алиса поговорит с ребенком уже сама.
Сначала герои — фиксики или звукли — предложат ребенку игровые упражнения: например, поцокать как лошадь, подребезжать как старые автомобили, научиться делать губами трубочку или парус из языка. А потом споют вместе с ребенком песню, которая поможет закрепить звук.
Чтобы упражнения не наскучили, герои развлекают ребенка интересными фактами: например, рассказывают, каким профессиям пригодятся дроны, о которых малыш только что спел куплет, или чем может быть полезна умная колонка.
Что сказать Алисе: «Запусти навык „Игра про репку“», «Запусти навык „Игра репка“»
Алиса может рассказать ребенку обычные сказки, а может — сказку-игру. В основе лежит классический сюжет про репку, только ребенок управляет героями самостоятельно: говорит Алисе, кого позвать на помощь следующим, и она добавляет героя в сюжет.
Сказка может быть сколь угодно длинной, а герои — самыми необычными: например, нам в сказке помогали не только бабка и внучка, но и папа, папина машина и какой-то Лаек. Чтобы сказка закончилась, ребенок должен позвать мышку, а пока он до этого не додумается, у родителей будет время заняться своими делами.
Что сказать Алисе: «Запусти навык „Игра киоск с лимонадом“», «Сыграем в игру „Киоск с лимонадом“»
«Киоск с лимонадом» — экономическая игра, в которой нужно создать свою торговую точку и продержаться на рынке. Настоящие бизнес-кейсы появляются с самого начала: чтобы магазин попал в рейтинг, нужно придумать название, которого еще нет у конкурентов. К заданию придется подойти творчески: все варианты со словом «лимонад» уже, разумеется, заняты.
С каждым шагом игра становится сложнее, но интереснее. Сначала потребуется рассчитать, сколько лимонов может позволить себе киоск на первые 100 рублей и сколько из них получится лимонада. Потом ребенок знакомится с динамическими рыночными отношениями: чтобы не разориться, цену на лимонад придется корректировать в зависимости от погоды и стоимости напитка в других киосках. Еще на цену влияет узнаваемость бренда: чтобы продавать дороже, нужно вкладываться в рекламу. В общем, все как в жизни.
Что сказать Алисе: «Запусти навык „Тотальный диктант“»
Навык понравится тем, кто хочет потренировать грамотность, но впадает в тоску от классических школьных диктантов. Умный помощник прочтет текст писательницы Гузель Яхиной, который она составила специально для «Тотального диктанта» в 2018 году.
Алиса читает текст так, как это сделал бы живой человек в аудитории: сначала произносит предложение полностью, а затем — по словосочетаниям, дважды повторяя каждое из них. Но, в отличие от живого чтеца, Алису можно попросить прочитать одно и то же предложение сколько угодно раз и раздумывать над сложными случаями, никуда не торопясь.
Проверять работу придется самостоятельно на сайте «Тотального диктанта»: кроме самого текста там можно найти разбор допустимых вариантов и посмотреть комментарии по правописанию каждого слова и знака препинания.
Что сказать Алисе: «Запусти навык „Умный пересказ“»
Если школьник не успевает подготовиться к уроку литературы — а в общих чертах узнать, в чем конфликт «Отцов и детей», нужно, то поможет Алиса.
Библиотека у Алисы пока не очень большая, но ключевые тексты в ней есть: например, «Дубровский», «Преступление и наказание», «Гранатовый браслет». Подготовиться к ЕГЭ по литературе таким образом вряд ли получится, а вот для того, чтобы найти аргументы для эссе по русскому языку, такие пересказы подойдут.
Что сказать Алисе: «Запусти навык „Распределительная шляпа“»
Для тех, кому сложно определиться с вузом и специальностью, у Алисы есть собственная «Распределительная шляпа». Только она подбирает факультет не в Хогвартсе, а в российских учебных заведениях.
Чтобы посоветовать подходящие варианты, Алиса спросит у абитуриента, в каком городе он живет и хочет учиться, какие ЕГЭ выбрал и сколько получил баллов на пробных экзаменах, насколько хорошо у него с дисциплиной и нравятся ли ему занятия физкультурой.
Рекомендации Алисы достаточно поверхностны: они не учитывают, какие кружки посещает ребенок и чем любит заниматься в свободное время. Но сузить круг поисков Алиса поможет: она отбракует все вузы, которые точно не подходят по набору экзаменов, а из оставшихся уже можно выбирать подходящий институт и по другим критериям.
Что сказать Алисе: «Запусти навык „Олимпиадный навигатор“», «Запусти навык „Навигатор олимпиад“»
Этот навык пригодится выпускникам, которые хотят поступить в университет по результатам олимпиад, а не по ЕГЭ. Сложность в том, что узнавать об олимпиадах нужно гораздо раньше, чем придет время вступительных экзаменов. А еще потребуется разобраться, какая олимпиада гарантирует победителям поступление или максимальный балл за профильный экзамен, а на какую уже не стоит тратить время.
Источник