Перейти к содержимому

Веб-интерфейс

Веб-интерфейс доступен через прямой browser-порт, задаваемый WEB_PORT (по умолчанию 8080 в standalone-режиме), и через HA Ingress для аддона Home Assistant. В addon-режиме WEB_PORT может открыть дополнительный прямой listener, но Ingress продолжит использовать фиксированный порт канала. Страница обновляется в реальном времени через Server-Sent Events, поэтому ручное обновление почти никогда не нужно.

Страница входа с вкладками Home Assistant, Music Assistant и Password

При включённой аутентификации мост сначала показывает отдельную страницу входа.

МетодКогда появляетсяЧто важно
Home AssistantВсегда в режиме аддона, а в standalone — когда bridge подключён к HA-backed экземпляру Music AssistantИспользует HA login_flow, включая TOTP / MFA
Music AssistantВ standalone-режиме, если bridge уже подключён к MA через встроенный token-flowПроверяет MA credentials на подключённом MA сервере
PasswordВключена standalone-auth и уже существует локальный password hashЛокальный поток PBKDF2-SHA256

Если Home Assistant требует MFA, страница переключается на отдельный шаг с 6-значным кодом. В standalone-режиме параметры сессии и защиты от перебора задаются в Configuration → Security. Login-формы защищены CSRF, а standalone-сессии используют cookie с SameSite=Lax и HttpOnly.

Панель с фильтрами, групповыми действиями, карточками устройств и обновлённой конфигурацией

Верхняя часть страницы объединяет live-dashboard и быстрые действия:

  • Карточки устройств или строки списка для всех настроенных колонок.
  • Состояние в реальном времени для Bluetooth, sink routing, воспроизведения, Music Assistant и синхронизации.
  • Сворачиваемые разделы Configuration, Diagnostics и Logs под live-fleet view.

Шапка с бейджем версии, обновления, быстрыми ссылками, runtime chip и health pills

Шапка состоит из основной строки действий и строки runtime/status.

  • Название и логотип моста.
  • Бейдж версии — ссылка на соответствующий релиз GitHub.
  • Бейдж обновления — показывает check, up to date или целевую версию вроде v2.31.8.
  • Report / Docs / GitHub — быстрые ссылки.
  • Область пользователя — текущий пользователь и Sign out, если включена аутентификация.
  • Runtime chip вроде LXC или systemd.
  • Hostname, IP и uptime.
  • Health pills с краткой сводкой по Bluetooth, MA и активному воспроизведению.
  • Баннер прогресса перезапуска во время Save & Restart.

Фильтры, групповые действия и режимы просмотра

Заголовок раздела «Фильтры, групповые действия и режимы просмотра»

Toolbar с фильтрами, счётчиком выбора, групповым volume и переключателем режимов

Панель над списком устройств включает:

  • Фильтр по группе Music Assistant.
  • Фильтр по адаптеру.
  • Фильтр по статусу.
  • Групповые действия — volume, mute, pause, reconnect, release для выбранных устройств.
  • Переключатель режима сетки/списка.

Новый интерфейс сам выбирает лучший режим по количеству устройств:

  • До 6 устройств → по умолчанию режим сетки.
  • Больше 6 устройств → по умолчанию режим списка.
  • Ручной выбор запоминается в браузере и применяется при следующем открытии.

В режиме списка можно разворачивать строки для transport controls, routing details и device actions. Одновременно развёрнута только одна строка.

Карточка устройства во время воспроизведения с бейджами, треком, прогрессом и transport controls

В режимах сетки и списка устройство показывает один и тот же core-набор данных:

  • Имя плеера и анимацию воспроизведения.
  • Статус Bluetooth и Music Assistant.
  • Трек, исполнителя, прогресс и обложку при наличии.
  • Громкость и mute.
  • Sync badges с re-anchor status и delay.
  • Battery и adapter badges, когда эти данные доступны.

Карточка устройства при наведении с routing details и быстрыми действиями

При наведении появляются дополнительные действия:

  • Reconnect и Re-pair.
  • Release / Reclaim для временной передачи колонки другому источнику.
  • BT Info modal с данными для копирования.
  • Шестерёнка settings, которая переводит прямо в соответствующую строку Configuration → Devices.

Бейдж группы Music Assistant тоже кликабелен — он открывает настройки этой sync group в MA.

Общий вид раздела Configuration с карточками и footer actions

Обновлённый раздел Configuration теперь разбит на пять вкладок:

ВкладкаДля чего нужна
GeneralИмя bridge, timezone, latency, прямой web-порт, base listener port, smooth restart, update policy
DevicesТаблица колонок и сценарии discovery/import
BluetoothАдаптеры, reconnect policy, codec preference
Music AssistantConnection status, token flows, monitor и routing toggles
SecurityLocal auth, session timeout, brute-force settings

Поведение кнопок внизу различается специально:

  • Save сохраняет конфиг без принудительного перезапуска.
  • Save & Restart сразу применяет restart-sensitive изменения и показывает прогресс в шапке.
  • Cancel возвращает последние сохранённые значения формы.
  • Download экспортирует share-safe config.json без чувствительных значений.
  • Upload импортирует config-файл, сохраняя текущие password hash, secret key и MA token на сервере.

Несохранённые изменения включают Cancel, помечают раздел как dirty и вызывают browser warning при попытке уйти со страницы.

Вкладка Devices с основной таблицей speaker fleet и карточкой Discovery and import

Devices разделяет повседневное управление и discovery:

  • Device fleet — основная таблица с enabled, именем, MAC, адаптером, портом, delay и live badge.
  • Discovery & import — отдельная карточка для поиска nearby speakers и импорта already paired устройств.
  • В строках доступны advanced-поля: preferred format, listen_host и keepalive_interval.

Если listen_port не задан, runtime использует BASE_LISTEN_PORT + индекс устройства. Положительные значения keepalive_interval включают keepalive-тишину, всё меньше 30 секунд поднимается до 30, а отдельного current-web-UI-переключателя для старого флага keepalive_silence больше нет. Клик по шестерёнке устройства на dashboard прокручивает страницу сюда, подсвечивает нужную строку и ставит фокус на соответствующее поле.

Вкладка Bluetooth с inventory адаптеров, reconnect policy и codec preference

Bluetooth отвечает за управление адаптерами:

  • Friendly names для адаптеров.
  • Ручные adapter rows, если автоопределения недостаточно.
  • Refresh inventory.
  • Настройку BT check interval и auto-disable threshold.
  • Переключатель Prefer SBC codec для слабого железа.

Глубокие ссылки из dashboard и empty state теперь попадают сразу в эту вкладку и подсвечивают нужную строку адаптера.

Вкладка Music Assistant со статусом соединения, token flows и bridge integration toggles

Music Assistant объединяет статус подключения и инструменты авторизации:

  • Карточка Connection status.
  • Discover находит или подтверждает URL MA.
  • Get token входит через MA credentials, сохраняет long-lived MA_API_TOKEN и не сохраняет пароль.
  • Если прямой MA login получает auth-ошибку на HA-backed экземпляре MA, UI может продолжить через Home Assistant OAuth / MFA.
  • Get token automatically показывается для HA-backed MA. Под HA Ingress сначала пробуется silent auth через browser HA token, а при неудаче используется popup-flow.
  • Ручное поле MA API token.
  • Переключатели WebSocket monitor, Route volume through MA, Route mute through MA.

Empty state без настроенных Bluetooth-устройств с кнопкой Scan for devices

Empty-state действия были приведены в соответствие с новым layout:

  • No Bluetooth devices configuredScan for devices открывает Configuration → Devices → Discovery & import и сразу запускает сканирование.
  • No Bluetooth adapter detectedAdd adapter открывает Configuration → Bluetooth, добавляет пустую строку адаптера и ставит фокус в первое поле.

В standalone-режиме есть отдельная вкладка Security:

  • Enable web UI authentication.
  • Session timeout в часах.
  • Brute-force protection и связанные лимиты.
  • Set password с подтверждением пароля.

Когда auth отключён, интерфейс показывает жёлтый warning-banner со ссылкой прямо в Configuration → Security.

В режиме HA addon доступ всегда контролирует сам Home Assistant, поэтому локальная вкладка безопасности скрыта и auth всегда включена. После изменений auth, session или портов используйте Save & Restart, потому что эти параметры применяются на старте.

Раздел Diagnostics с health summary, routing, bridge devices и advanced runtime данными

Diagnostics — это живой troubleshooting surface, а не просто статический dump. Он показывает:

  • summary по bridge devices и sink routing,
  • состояние Music Assistant и sync groups,
  • адаптеры и активные sinks,
  • runtime-состояние каждого устройства,
  • subprocess и platform details,
  • действия Download diagnostics, Submit bug report и Refresh.

Раздел Logs с фильтрами, runtime log-level controls и downloadable output

В Logs доступны и просмотр, и runtime-управление:

  • фильтр All / Errors / Warnings / Info+ / Debug,
  • Auto-refresh,
  • переключение backend log level между INFO и DEBUG без перезапуска,
  • скачивание текущего лога.

Модалка обновления с текущей версией, целевой версией, release notes и действиями

Клик по update badge открывает модалку, где видны:

  • текущая и целевая версия,
  • короткий фрагмент release notes,
  • runtime-specific действия вроде Update Now, Release Notes или manual update hint.

Ссылка Report в шапке и действие в Diagnostics открывают flow bug-report, который добавляет diagnostics и помогает подготовить GitHub issue.