Найти тему
Около Яндекс.Станции

#неформат №1

Оглавление

Всем привет! Мы запускаем новую постоянную рубрику на нашем канале. В ней мы будем рассказывать о событиях недели, брать интервью у участников событий и комментарии сотрудников Яндекса.

Это пилотный выпуск, и нам важно узнать ваше мнение о нем. Поэтому, пожалуйста, поделитесь с нами вашим мнением в комментариях или чате комьюнити.

Итак, поехали!

Самой обсуждаемой темой двух прошедших недель, стал вопрос о работе различных приложений для доступа к функциям Яндекс.Станции. Мы решили, что будет интересно поговорить с авторами и узнать про их работы.

💡 Все нижеперечисленные навыки и приложения не имеют никакого отношения к компании Яндекс. Используйте их только на ваш страх и риск.

Мои сценарии — один из самых обсуждаемых навыков этой недели. Он позволяет пользователю отправлять несколько команд на колонку. Например, по запросу «Алиса, доброе утро», можно настроить ответ, содержащий прогноз погоды, время в пути на работу и включить музыку.

Мы попросили автора рассказать об особенностях работы навыка.

В каком направлении собираетесь дальше развивать навык? Развернутая инструкция на Вики планируется?

1. Нужно научиться понимать, когда Алиса завершила отвечать на предыдущую команду, чтобы пользователям не приходилось задавать паузы вручную — как сейчас.
2. Нужно больше сценариев (сейчас один пользователь может задать лишь два сценария.
3. Нужно больше команд в одном сценарии (пока поддерживается до 3-х команд).
Инструкцию на вики изначально не планировал делать, но, видимо, все-таки сделаю 🙂.

UPD. Инструкция

2. На этой неделе навык пропадал из каталога. На данный момент проблема полностью исчерпана?

Сейчас — да, исчерпана. Видимо, до следующего отключения навыка по неизвестной мне причине :) А потом все начнется сначала :)

3. Можете кратко рассказать, почему решили сделать навык и как пришла идея?

Появились в чате ссылки на github других участников, где они научились удаленно отдавать команды Алисе. Подумал — как это можно применить и вспомнил, чего пользователям больше всего не хватает. Решил, что создание навыка типа моего — это неплохой вариант совместить применение найденного и желаний пользователей.

4. Насколько безопасно вводить свои данные в навыке?

Если вы знаете, как самостоятельно получить Токен Яндекс.Станции — укажите только его, не указывайте Яндекс Токен. Таким образом, вы дадите доступ лишь к своей станции, а не к аккаунта Яндекса (в части Яндекс.Музыки, т.к. используется именно доступ Яндекс.Музыки для получения Яндекс Токена).
Яндекс Токен можно стереть или указать другой после получения Токена Яндекс.Станции.
Что можно сделать, зная Токен Яндекс.Станции? Управлять вашей станцией - отправлять ей запросы. Включать вам музыку, например.
В части использования аккаунта от Google — тут все безопасно. используется стандартная OAuth-авторизация — сайту передается лишь ваш email (о чем Google предупреждает в момент авторизации). Более никаких данных не передается. Проверить это и отключить доступ можно тут (ищите Мои сценарии в списке).

Приложение для управления Станцией на Android

Station Control — первое неофициальное приложение для управления Яндекс.Станцией.

Приложение позволяет управлять:

  • навигацией (вверх, вниз, вправо, влево),
  • плеером (громкость, переключение между песнями, пауза/продолжить),
  • выводом звука на HDMI,
  • отправкой на Станцию собственного текста.

Мы поговорили с автором и узнали больше информации его приложение.

Как пришла идея создать приложение?

Идея пришла сама по себе, когда я узнал о дополнительных возможностях Станции, подумал, что будет прикольно управлять Станцией со смартфона. Первую версию сделал для себя, потом немного допилил и выложил в люди, вдруг кому-то тоже будет интересно.

С помощью каких инструментов удалось реализовать приложение?

Методом реверс-инжиниринга был разобран Лончер с Я.Модуля, оттуда я узнал, что на Станцию можно слать определённые команды по вебсокету. Для написания самого приложения использовалась Android Studio, в качестве языка - Java (да да, я все ещё из тех людей, которые под андроид пишут на java). Ещё для себя я почти сделал небольшой проектик на esp8266-esp01, этакий звонок для входной двери, работает он тоже по вебсокету без сторонних сервисов.

Планируете публиковать приложение в магазине?

В планах есть, просто нужно несколько вещей доработать.

Как планируете дальше развивать приложение?

Из основных вещей, сейчас, хочу добавить небольшой браузер с навыками, и прямо из приложения запускать навыки на Станции. Ещё хочу добавить избранные фразы, это очень прикольная штука, ты заранее пишешь в приложении какую-нибудь фразу, после чего эту фразу сохраняешь и в любой момент она у тебя доступна в приложении, в виде кнопки. По нажатию на кнопку приложение отправит эту фразу на Станцию.
Ну и по мелочи — добавить поддержку остальных экранов Станции, лайк и дизлайк на музыку, отправку ссылки с ютуба на станцию. А ещё опубликовать исходный код на github.com

Компонент для Home Assistant

Существует еще один проект, связанный с управлением Станцией — Yandex.Station control from Home Assistant. Это компонент для управления Яндекс.Станцией по локальной сети из Home Assistant.

Интерфейс компонента
Интерфейс компонента

Если у вас есть хорошая идея, то не бойтесь реализовать ее. В нашем чате вы всегда можете найти единомышленников, которые помогут воплотить ее в жизнь.

А теперь перейдем к другим событиям, которые произошли на этой неделе.

Редизайн Вики и доработки Доски

В первом квартале 2020 года у нас запланировано большое обновление наших сервисов для комьюнити.

На данный момент мы уже начали редизайн Вики. Он будет приведен к единому стилю с Доской. Первые изменения уже коснулись главной страницы.

Новый вид заглавной страницы
Новый вид заглавной страницы

Через некоторое время изменения придут и на Доску. Мы планируем переработать некоторые механики, в том числе добавим альтернативный вид просмотра контента.

Ждем ваших отзывов, оставляйте предложения и сообщайте о багах на специальной доске.

Отпадает навык умного дома каждую неделю

Сейчас каждые две-три недели приходится заново входить в аккаунт провайдера УД. Мы попросили сотрудника Яндекса объяснить, почему это происходит:

Существует две проблемы:
1) периодически теряется связка аккаунтов: это возникает по причине того, что некоторые разработчики навыков указывают короткий TTL у токена пользователя и при этом не реализуют механизм его продления (oauth2 refresh token). Таким образом, как только время жизни токена истекает, он не продлевается и связка аккаунтов удаляется. Навык больше не принимает токен пользователя. Яндекс на текущий момент активно работает с такими провайдерами, но так как большинство из них держат свою инфраструктуру в Китае, то это затрудняет решение и увеличивает сроки, особенно в виду особой текущей ситуации в этом регионе.
2) возникает ошибка при управлении устройствами Xiaomi, которая лечится только перепривязкой аккаунта: здесь ошибка в реализации OAuth2 протокола на стороне Xiaomi. Проблема выявлена, разработчик о ней оповещен, но исправлять ее отказывается, так как на его сервер авторизации с неправильной реализацией уже завязаны другие китайские производители. Яндекс вынужден реализовать особую логику взаимодействия с этим навыком, задача запланирована и будет взята в работу.

Интервью с участником комьюнити

Раз мы на этой неделе так много обсуждали недокументированные возможности Станции, то мы были просто обязаны взять интервью у этого человека. Сможете угадать его имя по описанию?

По итогам прошлого года он получил достижение — следопыт года. Нашел больше всего нововведений до их релиза. Например: рассказал всем про такси, смог попасть в бету (хоть и не на долго), первый порадовал новостью про смену скринсейверов и смог вывести звук по HDMI. Встречаем нашего героя — Кирилл Павлов.

Привет, Кирилл! Расскажи, пожалуйста, о себе

Меня зовут Кирилл, мне 24 года. Живу в прекрасном городе Казань. Работаю программистом. Увлекаюсь сноубордом, пазлами и велосипедом.

Как у тебя появилась Станция и как это было давно? Каким образом удалось найти наш чат?

Первая колонка (Dexp) появилась в начале января 2019 года. Решил посмотреть, что такое Алиса в колонке, а так же сделать себе небольшой подарок на прошедший день рождения :)
Так как колонка понравилась, начал искать информацию, как её расковырять и посмотреть, что внутри. Сначала нашел тему на 4pda, потом телеграм (не помню как именно). Взял себе красную Станцию, так как увидел в чате "скрипты", которые отслеживали наличие красной Станции в наличии. Подумал, видимо, есть ажиотаж на красные — надо брать! Вот с 16 апреля 2019 у меня появилась Станция.

С чем связано стремление копаться в исходниках?

Я программист из компании Яндекс. Шутка, не из Яндекс. Я программист в web-сфере. Поэтому мне было очень интересно, как именно разработчики все это устроили.

Чего ждешь от колонки и Алисы в будущем?

Возможность кастомизации ПО. Очень жду возможность взаимодействия с колонкой не через недокументированное API (сокеты), а через человеческое, для людей :) По сути это решит все проблемы, которые отображены на Доске. Обязательно включить в API возможность отправки уведомлений на Станцию. Также хочется, чтобы Станция или любая колонка имела функцию hands-free гарнитуры.

Что-нибудь хочешь передать команде Станции?

Привет, ребятули! Вы большие молодцы, делаете огромное количество работы! Очень жаль, что начали прятать ./src/client :( Теперь сложнее ковыряться в коде:) Было весело читать комментарии к коду "FIXME: Тут пока костыль вот такой" или "TODO: Сделать нормально, а не так". Очень хотелось бы посмотреть на админпанель всех Станций, интересно, что вы можете с нами удаленно делать! Удачи вам в дальнейшем! Оправдайте ожидание комьюнити.
P.S. Хочу стать бета-тестером колонок :)
Желаю всем отличного настроения!

Коротко о том, что еще произошло в чате:

  • Валерий не соглашается менять Модуль на прищепках, поэтому хотим попросить сделать его в этой статье. Пожалуйста, обратитесь в поддержку ;)
  • В Домовенка Кузю добавили поддержку статусов устройств с Blynk. Они доступны в виртуальных устройствах и в голосовом навыке как метка в ответе «ответ {0}».
  • Многие до сих пор не понимают, как обучить пульт. Прикладываем видеоинструкцию.
  • Proganet не может найти сил, чтобы дописать инструкцию по созданию сложных сценариев IR управления. Давайте подбодрим его в чате или в ЛС ;)
  • Все скорбим о подорожании Миника на 500 рублей ;(