🏠 Home Assistant + Music Assistant = 🎼 ❤

Душнить это даже иногда полезно :slight_smile: Меня вот ваш комментарий сподвиг на проведение дополнительного исследования на предмет получения lossless. И оказалось, что Яндекс может отдавать идентичные потоки, что в сыром, что в зашифрованом виде. По качеству это по умолчанию 48 kHz / 24-bit / stereo FLAC в MP4-контейнере. В связи с этим, maxicom, а можно пример трека который через YandexStation 44/16, а через MA 48/24, если не сложно ? Есть у меня подозрение что всё-таки есть различие у зашифрованного и не зашифрованного потока возможно не на всех треках, функционал шифрования же Яндекс не просто так ввёл :slight_smile:

1 лайк

44.1/16 flac

48/16 flac

2 лайка

Тааак)) а вот тут можно поподробнее?))

1 лайк

В integration/dev можно уже пощупать :slight_smile:

Спойлер

https://github.com/music-assistant/server/pull/3615
https://github.com/music-assistant/server/pull/3614

3 лайка

:+1:

Ок, перепроверил, оба идентичны и в raw и encraw режиме, буду смотреть логику в провайдере

Трэк Sample Rate Bit Depth MD5 Match
Filatov & Karas — I Keep On 48000 Hz 16-bit raw=encraw
Dj NACZALNIK Boss 44100 Hz 16-bit raw=encraw
Сироткин — Эти цветы никогда не умрут 48000 Hz 24-bit raw=encraw

А вот проблема с обрывами при медленном воспроизведении без буферизации в YandexStation действительно не решена. Отправлю им pr пожалуй.

В общем по итогу анализа, переработал логику стриминга и опредления характеристик потока, теперь параметры потока корректно определяются и отображаются в интерфейсе, а декодирование сделано опциональным (на всякий случай). Всем спасибо за участие :slight_smile: Попробовать можно в integration/dev как обычно. Позже волью изменения в репозиторий MA

5 лайков

Прописывать надо?
server_repo: trumenboy/ma-server@integration/dev

1 лайк

Да, trudenboy/ma-server@integration/dev

1 лайк

Красота :slight_smile:

Спойлер

1 лайк

Жду в Beta ))) Dev версия напрягает перекомпиляцией при старте. Всё таки, она для разработки :ok_hand:

1 лайк

Утренний Ynison :slight_smile:

Спойлер


5 лайков

Привет!
Планирую сегодня начать тестирование.
Пока не до конца разобрался, но вижу 2 плагина:

  1. Yandex music connect
  2. Yandex smart home

Правильно я понимаю, что для управления через Алису, достаточно установить второй? Или они работают в связке: первый добавляет источник в MA (по аналогии с airplay receiver или Spotify connect), а вторым управляем этим источником через Алису?

1 лайк

Да, для управления через Алису достаточно второго, но есть нюанс, если уже используешь в ha интеграцию dext0r/yandex_smart_home то придётся создавать новый приватный навык в Yandex.Dialog, там в настройках я постарался максимально облегчить этот путь, но тем не менее, для лучшего понимания можно к документации от dext0r обратиться https://docs.yaha-cloud.ru/v1.1.x/

А в связке как раз работают Yandex music connect (Yanison) и Yandex Music собственно как и Spotify Connect и Spotify

Из известных проблем, изменение гормкости в ma при проигрывании через Connect приводит к переподключению, и перемотка внутри трека тоже пока кривовато работает.
А в УДЯ плеер передаётся как устройство Ресивер (https://yandex.ru/dev/dialogs/smart-home/doc/ru/concepts/device-type-media-receiver) переключение треков реализовано через переключение каналов (“Алиса, следующий канал на ресивере”) в общем надо как-то подумать как удобнее голосом им управлять.

2 лайка

С бубном вроде заработало.
Но чувствую: висит на волоске. То рендер отваливается, то МА глючит, то приложение ЯМ хандрит, то токены теряются :grinning_face:
И трек через приложение ЯМ начинает играть через 35 сек!!! Т.к. у меня через МА трек начинает играть с паузой в 15-20 сек, то я решил подождать подольше.

Спойлер


Ну вот почему стала неактивна “кнопка” следующий трек в приложении ЯМ?

1 лайк

У меня нет обрывов, просто треки играли через один.
Я сделал три автоматизации:

  1. если плеер пбездействует 1сек, то включается воспроизведение,
  2. такая же как первая, но интервал 3 сек,
  3. если бездействие составляет 5 сек, то станция включает следующий трек.
    Обычно срабатывает первая, вторая несколько раз в сутки, а третья от силы один раз в сутки.

То что треки играют “через один” это и есть обрывы, просто cdn рвёт соединение плеер думает что трек закончился и включает следующий. Наличие или отсутствие таких ошибок очень сильно зависит от скорости обработки потока и наличия буферизации, она как раз решает проблему но в MA её использовать по правовым рискам нельзя , поэтому в MA провайдере проблема решена по другому и глобально, поток запрашивается небольшими частями, подсмотрено в официальном вэб клиенте яндекса :slight_smile:

Поработал над интеграцией с Умным Домом Яндекса, в общем-то всё работает:

Управление воспроизведением:

  • Включение/выключение (play/stop) — «Алиса, включи/выключи музыку»
  • Пауза/возобновление — «Алиса, пауза»
  • Следующий/предыдущий трек — через переключение каналов

Управление звуком:

  • Установка громкости (0–100%) — «Алиса, громкость 50»
  • Относительная регулировка — «Алиса, громче/тише»
  • Mute/unmute — «Алиса, выключи звук»
  • Групповая громкость и mute — работает для sync-групп через MA Group API

Выбор источника:

  • Переключение input source (если плеер поддерживает) — через режимы Яндекса

Два режима подключения:

  • Cloud - WebSocket через Yaha, не требует публичного IP (Проверено)
  • Cloud Plus - Если уже есть одна интеграция с Yaha, через создание приватного навыка (Проверено)
  • Direct - прямое HTTP-подключение с OAuth авторизацией (Пока не проверял)

Экспорт устройств:

  • Автоматическая регистрация MA плееров как устройств типа media_device
  • Нормализация имён (только русские/английские буквы, цифры, пробелы)
  • Дедупликация плееров (исключение PROTOCOL sub-players)
  • Выбор конкретных плееров для экспорта через настройки
2 лайка

А что за плееры: pulse и default?

pulse это local audio провайдер который недавно добавили, он pulseaudio использует, а default не занаю, на плеере же видно к какому он провайдеру он относится.