Это альтернативный адаптер, использующийJSON/RPC -протокол для получения данных и отправки команд на медиасервер Logitech/Lyrion ( LMS ) для управления подключенными устройствами, такими как
- нативный Squeezebox ,
- Raspberry Pi с дополнительным аудиомодулем и небольшими прошивками на базе Linux, такими как PicorePlayer или Max2Play .
- WiiM Multiroom Audio ( может взаимодействовать с сервером LMS/Lyrion )
- с плагинами Chromecast, AirPlay или
UPnP/DLNA-Устройства
ОнLMS - Сервер может управлять/предоставлять очень большие музыкальные коллекции на жестких дисках илиNAS подключайтесь к различным потоковым сервисам, например:Spotify ,Deezer ,Soundcloud ,shoutcast ,tunein ,napster ,pandora ,tidal и многое другое
Оглавление
Функции
- большая часть данных , которые
LMS— Услуги доступны в адаптере. - подробная информация о состоянии проигрывателя, названии песни, исполнителе, альбоме, обложке, плейлисте.
- множество функций управления для воспроизведения, паузы, остановки, перемотки вперед.
перемотка назад, повтор, перемешивание, воспроизведение любимого, переход ко времени
(абсолютные и относительные значения), перейти к индексу плейлиста (абсолютные и относительные значения),
Кнопки включения/выключения и предустановки - Все избранные и все подуровни с сервера
- В компонент iobroker-vis включено множество виджетов .
Создание собственных пользовательских интерфейсов управления (выбор проигрывателя, выбор избранных треков, управление группами синхронизации, кнопки воспроизведения/паузы, перемотки вперед/назад, выбора режима повтора и режима перемешивания).
Установка
- Установите пакет
- Создайте экземпляр
- Настройте экземпляр, указав IP-адрес медиасервера Logitech/Lyrion и порт (обычно 9000).
- запустить/перезапустить экземпляр
Конфигурация
Основные настройки
| Вариант | По умолчанию | Описание |
|---|---|---|
| Сервер LMS | 0.0.0.0 | Имя хоста или IP-адрес медиасервера Logitech/Lyrion. Можно выбрать автоматически обнаруженный сервер. |
| порт LMS | 9000 | HTTP-порт, используемый JSON-RPC или экспериментальным плагином WebSocket. |
| Тип подключения | JSON-RPC | Использует стабильный HTTP JSON-RPC или экспериментальный плагин LMS WebSocket. |
| URL WebSocket | пустой | Дополнительный независимый URL-адрес веб-сервера для плагина, например.http://192.168.1.87/ . |
| Порт Telnet LMS | 9090 | Порт CLI/Telnet. Используется только с JSON-RPC при включенной сигнализации Telnet. |
| Имя пользователя | пустой | Имя пользователя LMS (необязательно). |
| Пароль | пустой | Пароль LMS (необязательно). |
Для работы режима WebSocket требуется экспериментальный плагин LMS WebSocket . Он передает команды и уведомления по одному и тому же соединению, поэтому настройки Telnet в этом режиме игнорируются. Обычный опрос плеера остается включенным в качестве резервного варианта на случай отсутствия или неполноты уведомлений. URL-адреса WebSocket HTTP(S) преобразуются в WS(S), и/ws Добавляется автоматически, если указан только корневой URL-адрес.
Настройки таймера
| Вариант | По умолчанию | Минимум | Описание |
|---|---|---|---|
| Обновление сервера (в секундах) | 30 | 15 | Интервал для обновления информации на сервере LMS. |
| Обновление проигрывателя (мс) | 950 | 200 | Интервал для обновления информации о статусе игрока. |
| Избранное обновление (минуты) | 720 | 1 | Интервал для обновления дерева избранных. |
| Обновление обнаружения (в секундах) | 30 | 10 | Интервал для поиска других серверов LMS в локальной сети. |
Короткие интервалы обновления увеличивают количество запросов, отправляемых в систему управления обучением (LMS).
Настройки производительности
| Вариант | По умолчанию | Описание |
|---|---|---|
| Предоставьте информацию о плейлисте. | включено | Создает и обновляетPlaylist JSON-состояние для каждого игрока. |
| Поиск других серверов LMS | включено | Позволяет обнаруживать другие серверы LMS в локальной сети. |
| Используйте сигнализацию Telnet. | неполноценный | При использовании JSON-RPC применяется LMS CLI/Telnet для дополнительной сигнализации о подключении и отключении игроков. |
| Запросить избранное | включено | Периодически получает дерево избранных элементов из системы управления обучением (LMS). |
Отключите ненужную информацию, чтобы уменьшить количество запросов к LMS и обработку адаптера.
Настройки объявлений
| Вариант | По умолчанию | Описание |
|---|---|---|
| URL-адрес веб-сайта ioBroker | пустой | Например, базовый URL веб-экземпляра ioBroker.http://192.168.1.10:8082 Требуется только для объявлений из локальных файлов. |
| Том объявлений | 50 | Уровень громкости, используемый во время воспроизведения объявления. Допустимый диапазон: от 0 до 100. |
| Используйте FadeTools | неполноценный | Использует дополнительный плагин LMS FadeTools до и после объявлений. |
| Длительность затухания | 2 с | Прошли целые секундыfadeout stop Допустимый диапазон: от 1 до 60 секунд. |
| Длительность плавного появления | 2 с | Прошли целые секундыfadein play Допустимый диапазон: от 1 до 60 секунд. |
Для локальных файлов объявлений LMS должна иметь доступ к настроенному веб-адресу ioBroker. URL-адреса объявлений HTTP(S) передаются непосредственно в LMS и не требуют этой настройки. Команды FadeTools отправляются только при включении этой опции. Без FadeTools все значения громкости устанавливаются напрямую и проверяются с помощью LMS.
Настройки отладки
| Вариант | По умолчанию | Описание |
|---|---|---|
| Отладочный вывод игрока | неполноценный | Включает дополнительные отладочные сообщения для обработки проигрывателем. |
| Нелепый вывод игрока | неполноценный | Включает возможность отправки очень подробных сообщений игроку. |
| Вывод отладки сервера | неполноценный | Включает дополнительные отладочные сообщения для обработки на сервере LMS. |
| Сервер выдает нелепый результат | неполноценный | Позволяет отправлять очень подробные сообщения на LMS-сервер. |
Отладка, и особенно бессмысленное логирование, как правило, должны оставаться отключенными и включаться только во время диагностики проблемы.
Обновлять
- После установки или обновления иногда может потребоваться
Для выполнения следующей команды, если возникли проблемы в vis-1, выполните следующую команду.
iobroker upload squeezeboxrpc
Поиск неисправностей
Игроки SLIMP3
Сообщается, что старые версии плееров SLIMP3 могут не подключаться к серверу, пока адаптер ищет новые серверы. Отключение поиска в разделе «Конфигурация экземпляра -> Настройки производительности -> Поиск других серверов LMS» должно позволить плееру подключиться.
При наличии штатов
Сервер
| Состояние | Описание |
|---|---|
LastScan | метка времени последнего сканирования музыки |
PlayerCount | Количество известных игроков |
PlayerCountOther | Количество известных других игроков |
PlayerCountSN | Количество известных игроков SN |
TotalAlbums | Количество всех известных альбомов |
TotalArtists | Число всех известных художников |
TotalDuration | Суммарное время звучания всех песен |
TotalGenres | Число всех известных жанров |
TotalSongs | Количество всех известных песен |
SyncGroups | Существующие группы синхронизации |
Version | Версия LMS |
mac | MAC-ID сервера |
uuid | uuidLMS -пример |
дополнительно предусмотрена кнопка для обновления избранного.
| кнопка | Описание |
|---|---|
getFavorites | запросить все избранные с сервера |
cmdGeneral | Поле общего назначения для отправки команд на сервер. Каждое поле должно быть заключено в кавычки. Параметры должны быть разделены запятыми. Пример: "playerid or empty",["para1","para2"] |
Избранное
Для каждого избранного все атрибуты доступны только для чтения.
| Состояние | Описание |
|---|---|
Name | Имя любимчика |
hasitems | указывает, является ли это каталогом |
id | идентификатор избранного |
image | Изображение/иконка для добавления в избранное, если доступно. |
isaudio | isaudio |
type | Примеры типов: ссылка, текст, аудио, плейлист |
url | URL трека |
Доступны все подкаталоги (подразделы) избранного.
Игроки
Для каждого игрока в режиме отображается возможность изменения значения. Выполненное действие описывается в атрибуте.
| Состояние | режим | Описание |
|---|---|---|
Alarms | Р/- | Все зарегистрированные сигналы тревоги для этого игрока в формате JSON. |
Album | Р/- | Название текущего альбома |
Announce | -/В | Воспроизведите аудиофайл по абсолютному пути или HTTP(S) URL, затем восстановите воспроизведение и громкость. Для локальных файлов требуется указанный веб-адрес ioBroker (например,http://192.168.1.10:8082 ). |
Artist | Р/- | Имя художника |
ArtworkUrl | Р/- | URL-адрес произведения искусства |
Bitrate | Р/- | Битрейт трека |
Connected | Р/- | connectionstate игрока (0/1) |
Duration | Р/- | Продолжительность трека |
Genre | Р/- | жанр трека |
IP | Р/- | IP-адрес игрока |
Mode | Р/- | воспроизведение / пауза / остановка |
Playername | Р/- | Имя игрока |
PlayerID | Р/- | Идентификатор игрока |
Playlist | Р/- | Сам плейлист в формате JSON. |
PlaylistCurrentIndex | Р/В | Для указания абсолютного положения используйте trackindex, а для относительного — знак + или - в начале. Пример: 10, -3, +2 |
PlaylistRepeat | Р/В | Повторить песню(1)/плейлист(2)/не повторять(0) |
PlaylistShuffle | Р/В | перемешивать плейлист(1)/перемешивать альбом(2)/не перемешивать(0) |
Power | Р/В | Получить/установить состояние питания игрока: выключено (0)/включено (1) |
RadioName | Р/- | Название радиостанции |
Rate | Р/- | Рейтинг песни |
Remote | Р/- | Если удаленный поток (1) |
SyncMaster | Р/- | ID/MAC Syncmaster |
SyncSlaves | Р/- | Идентификатор/MAC-адрес игроков в группе синхронизации |
Time | Р/- | прошедшее время песни |
Title | Р/- | название песни |
Type | Р/- | тип носителя информации (например, MP3-радио) |
Url | Р/- | URL трека / потока |
Volume | Р/В | Установить/получить громкость проигрывателя (0-100) |
state | Р/В | получить/установить состояние воспроизведения: pause(0), play(1), stop(2) |
Плейлист фактически предоставляет следующие атрибуты, если они доступны.LMS Некоторые атрибуты зависят от типа песен (поток/файл/...). Все атрибуты доступны только для чтения.
| Атрибут | Описание |
|---|---|
Album | Название текущего альбома |
Artist | Имя художника |
ArtworkUrl | URL-адрес произведения искусства |
Bitrate | Битрейт трека |
Duration | Продолжительность трека |
RadioName | Название радиостанции |
Rate | Рейтинг песни |
title | название песни |
Type | тип носителя информации (например, MP3-радио) |
url | URL трека / потока |
index | указатель песни в плейлисте |
id | идентификатор песни |
дополнительные определенные кнопки:
| Кнопка | Описание |
|---|---|
btnForward | Следующая песня |
btnRewind | Предыдущая песня |
btnPreset\_\* | 1-6 кнопок для определения параметров игрока или сервера |
cmdGeneral | Поле общего назначения для отправки команд игроку. Каждое поле должно быть заключено в кавычки. Параметры должны быть разделены запятыми. Пример: "play","1" |
cmdPlayFavorite | Чтобы выбрать любимую игру, укажите её идентификатор. |
cmdPlayUrl | Для воспроизведения URL-адреса. Например: " http://50.7.77.114:8101/ " |
cmdGoTime | Переход к абсолютному положению путем указания количества секунд или к относительному положению с помощью знаков + или - в начале секунд. Пример: 100, -50, +50 |
Настройки объявления определяют его громкость и, при необходимости, интеграцию с плагином LMS FadeTools . При включении адаптер отправляетfadeout stop ожидает заданную длительность затухания, а затем возобновляет воспроизведение, используяfadein play При отключении этой функции автоматически устанавливаются предыдущие и анонсирующие тома. Для локальных файлов необходимо настроить базовый URL-адрес веб-экземпляра ioBroker (например,http://192.168.1.10:8082 Хост LMS должен иметь доступ к этому URL-адресу. Удаленные потоки восстанавливаются без перемотки, поскольку они, как правило, не поддерживают позицию воспроизведения.
Примечания к точкам данных в зависимости от настройки TPE2 в LMS.
В зависимости от настроек, точкам данных передаются разные MP3-теги. Названия, написанные заглавными буквами, — это названия MP3-тегов.
| Настройка TPE2 в LMS | Художник | Альбумартис | Трекартист | Группа |
|---|---|---|---|---|
| как группа | ХУДОЖНИК | пустой | ИСПОЛНИТЕЛЬ ТРЕКА | АЛЬБОМИСТ |
| в качестве исполнителей альбома | АЛЬБОМИСТ | АЛЬБОМИСТ | пустой | пустой |
Следует также отметить, что после изменения системы управления обучением (LMS) необходимо обновить всю библиотеку.
Поиск и индексация должны быть выполнены заново, а песню необходимо остановить и перезапустить.
прежде чем система управления обучением (LMS) предоставит другие данные.
Дополнительная документация по API
Для получения более подробной информации посетите документацию по интерфейсу командной строки:
https://github.com/oweitman/LMS-CLI-Documentation/blob/master/LMS-CLI.md
Виджеты
Адаптер включает в себя соответствующие наборы виджетов для обоих поколений визуализации. Каждый виджет содержит информацию о своем назначении, изображение предварительного просмотра, все параметры конфигурации, поддерживаемые кодом, и соответствующие примечания во время выполнения:
Оба набора виджетов используют виджет «Плееры» в качестве центрального источника выбора. Сначала настройте этот виджет, затем выберите его в элементах управления, отображении значений, избранном, плейлисте, подробной информации о плейлисте, браузере и группе синхронизации. Ссылки VIS 2 могут работать в разных представлениях.
Legacy widget overview retained for existing links
Панель кнопок игрока

Можно выбрать все проигрыватели, интегрированные в ваш медиасервер Logitech/Lyrion.
с помощью этого виджета. После выбораsqueezerpc.? например, доступный
Игроки отображаются в виджете.
Атрибуты
| Группа | Атрибут | Описание |
|---|---|---|
| Экземпляр SqueezeboxRPC | Общая группа | Выберите экземпляр адаптера squeezeboxrpc. Здесь в качестве допустимых распознаются только эти экземпляры. |
| Формат виджета | Общая группа | Здесь можно выбрать тип виджета. Виджет типа "formatbutton" обладает полным набором функций и работает также с виджетом SyncGroup. Виджет типа "formatselect" представляет собой простое поле выбора. В качестве имени используется имя игрока или отдельный текст. |
| Отобразить указатель | Общая группа | Отдельные кнопки можно скрыть или отобразить в другом порядке, удалив индекс кнопки. Чтобы скрыть их, просто удалите соответствующую позицию индекса, включая запятую. В режиме редактирования, если включена справка по режиму редактирования, номера индексов отображаются на соответствующей кнопке. |
| Разрыв строки в CamelCase | Общая группа | Если имя игрока написано в стиле CamelCase, здесь можно активировать перенос строки, чтобы имя игрока отображалось на кнопке крупнее. |
| Справка по режиму редактирования | Общая группа | Если эта справка активирована, на соответствующей кнопке отображаются порядковые номера, а параметр «прозрачность» в настройках кнопки не оказывает никакого эффекта. |
| ширина изображения | настройки кнопки | Ширина изображения кнопки |
| высота изображения | настройки кнопки | высота изображения кнопки |
| Прозрачность | настройки кнопки | Если кнопка не активирована, она скрыта на фоне. 0 = Невидима, 1 = Полностью видна. |
| ширина границы | настройки кнопки | Ширина границы кнопки в пикселях |
| Граничное отображение | настройки кнопки | Тип отображения границы, например, сплошная, пунктирная. |
| Обычный цвет границы | настройки кнопки | Если кнопка не активирована, она отображается этим цветом. |
| Цвет границы активен | настройки кнопки | Если кнопка активирована, это отображается этим цветом. |
| радиус границы | настройки кнопки | Здесь можно указать радиус в пикселях для закругленных углов границы. |
| Цвет фона | настройки кнопки | Цвет фона для текста |
| Изображение | кнопка[x] | Здесь можно задать изображение отдельно. Изображение имеет приоритет над текстом. |
| Текст | кнопка[x] | Здесь можно задать текст отдельно. Изображение имеет приоритет над текстом. |
Панель кнопок «Избранное»

С помощью этого виджета вы можете выбрать все избранные элементы.
Создано на вашем медиасервере Logitech/Lyrion. После выбора виджета «Плеер» в виджете отобразятся доступные избранные элементы.
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выберите виджет «Плеер». |
| Отобразить указатель | Общая группа | Отдельные кнопки можно скрыть или отобразить в другом порядке с помощью индекса. |
| Справка по режиму редактирования | Общая группа | Если эта функция справки активирована, на каждой соответствующей кнопке отображаются порядковые номера. |
| ширина изображения | настройки кнопки | Ширина изображения кнопки |
| высота изображения | настройки кнопки | высота изображения кнопки |
| Прозрачность | настройки кнопки | Если кнопка не активирована, она скрыта на фоне. 0 = Невидима, 1 = Полностью видна. |
| ширина границы | настройки кнопки | Ширина границы кнопки в пикселях |
| Граничное отображение | настройки кнопки | Тип отображения границы, например, сплошная, пунктирная. |
| Обычный цвет границы | настройки кнопки | Если кнопка не активирована, она отображается этим цветом. |
| Цвет границы активен | настройки кнопки | Если кнопка активирована, она отображается этим цветом. |
| радиус границы | настройки кнопки | Здесь можно указать радиус в пикселях для закругленных углов границы. |
| Цвет фона | настройки кнопки | Цвет фона для текста |
| Изображение | кнопка[x] | Здесь можно задать изображение отдельно. Изображение имеет приоритет над текстом. |
| Текст | кнопка[x] | Здесь можно задать текст по отдельности. Изображение имеет приоритет над текстом. |
Кнопка воспроизведения
Кнопка воспроизведения запускает или останавливает воспроизведение музыки на выбранном плеере.
Для подготовки необходимо подключить кнопку к виджету проигрывателя.
Кнопка имеет собственное графическое изображение (SVG).
В качестве альтернативы вы также можете выбрать собственную графику.
Атрибуты кнопки «Воспроизвести»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| Пауза изображения | Общая группа | Изображение для паузы |
| Воспроизвести изображение | Общая группа | Изображение для игры |
| Стоп-изображение | Общая группа | Изображение для остановки |
| цвет заливки | Группа настроек SVG | Цвет заливки кнопки |
| цвет штриха | Группа настроек SVG | Цвет для рамки |
| ширина хода | Группа настроек SVG | Ширина границы в пикселях |
Вперед
Виджет «Вперед» позволяет перематывать текущий трек вперед.
Кнопку можно настроить на пропуск определенного количества секунд вперед.
по времени, если игрок поддерживает эту функцию.
Атрибуты кнопки «Вперед»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета «Плеер». |
| Размер шага | Общая группа | Указывает количество секунд, на которое нужно перемотать вперед. |
| Метка кнопки | Общая группа | Настраиваемая надпись для кнопки. |
| Значок кнопки | Общая группа | Выбор значка для кнопки, например, для перехода вперед. |
Перемотка назад
Виджет «Перемотка назад» позволяет вернуться к текущему треку.
Аналогично виджету «Пересылка», можно установить временной период.
Атрибуты кнопки «Перемотка назад»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета «Плеер». |
| Размер шага | Общая группа | Указывает период времени в секундах, на который следует вернуться назад. |
| Метка кнопки | Общая группа | Настраиваемая надпись для кнопки. |
| Символ кнопки | Общая группа | Выбор символа для кнопки, например, для возврата назад. |
Повторить
Виджет «Повтор» позволяет активировать или деактивировать функцию повтора.
для текущего трека или плейлиста, если эта функция поддерживается плеером.
Атрибуты кнопки «Повтор»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета «Плеер». |
| Метка кнопки | Общая группа | Настраиваемая надпись для кнопки. |
| Символ кнопки | Общая группа | Выбор символа для кнопки, например, для повтора. |
| Режим повтора | Общая группа | Здесь можно выбрать режим, например, повтор одного трека или повтор списка (плейлист). |
Перетасовка
Виджет «Перемешать» включает или отключает перемешивание для текущего плейлиста.
если эта функция поддерживается плеером.
Атрибуты кнопки «Перемешать»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета «Плеер». |
| Метка кнопки | Общая группа | Настраиваемая надпись для кнопки. |
| Значок кнопки | Общая группа | Выбор значка для кнопки, например, для режима перемешивания. |
| Состояние включено | Общая группа | Цвет или стиль кнопки при включенном режиме перемешивания. |
Объем

Виджет «Громкость» отображает текущий уровень громкости проигрывателя.
позволяет регулировать громкость.
Атрибуты кнопки регулировки громкости
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета «Плеер». |
| шаг изменения объема | Общая группа | Задает шаг увеличения или уменьшения громкости. |
| Максимальный объем | Общая группа | Устанавливает максимальное значение громкости, например, 100. |
| основной цвет ползунка громкости | Общая группа | Раскрасьте область полосы, которая соответствует текущему объему. |
| цвет фона полосы громкости | Общая группа | Цвет для той части полосы, которая не покрыта объемом. |
| Значок кнопки | Общая группа | Выбор значка для регулятора громкости. |
Панель кнопок SyncGroup

Этот виджет можно использовать совместно с виджетом проигрывателя для управления
Синхронизация игроков друг с другом. Большая часть настроек количества кнопок, меток или изображений уже задана.
Рядом с виджетом плеера. Для подготовки необходимо подключить кнопку к виджету плеера. После выбора плеера в виджете плеера, текущая синхронизация
Статус синхронизации отображается в виджете SyncGroup. Он показывается с помощью различных настраиваемых цветов. Плеер, выбранный в виджете плеера, нельзя выбрать в виджете SyncGroup. Если в виджете SyncGroup выбран плеер, который уже находится в
из другой группы он автоматически удаляется из этой группы.
Атрибуты кнопки SyncGroup
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| ширина границы | настройки кнопки | Ширина границы кнопки в пикселях. |
| Граничное отображение | настройки кнопки | Тип отображения границы, например, сплошная, пунктирная. |
| Цвет границы - Не в группе | настройки кнопки | Если игрок не состоит в группе, кнопка получает рамку этого цвета. |
| Цвет границы - В группе | настройки кнопки | Если игрок находится в группе с выбранным игроком, кнопка получает рамку этого цвета. |
| Цвет границы - В другой группе | настройки кнопки | Если игрок находится в другой группе, кнопка получает рамку этого цвета. |
| радиус границы | настройки кнопки | Здесь можно указать радиус в пикселях для закругленных углов границы. |
| Цвет фона | настройки кнопки | Цвет фона для текста. |
Игровой бар

Индикатор времени воспроизведения визуально отображает ход воспроизведения текущей песни.
при условии, что сервер предоставит информацию об общем времени выполнения (длительности).
В случае с онлайн-трансляциями это обычно не так. Ширина полосы
Это соответствует 100% времени воспроизведения песни. Нажатие на точку на
С помощью этой полосы вы можете перейти к нужному месту в песне.
Для подготовки необходимо подключить кнопку к виджету проигрывателя.
Атрибуты для панели «Время игры»
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| Основной цвет бара | Общая группа | Цвет фона полосы для времени, которое ещё не было сыграно. |
| Цвет времени игры | Общая группа | Цвет полосы, отображающей количество сыгранных матчей. |
| Ширина рамки | Общая группа | Ширина рамки/ширина границы в пикселях вокруг кнопки. |
| Граничное отображение | Общая группа | Тип отображения границы, например, сплошная, пунктирная. |
| цвет границы | Общая группа | Цвет рамки вокруг полосы. |
| радиус границы | Общая группа | Здесь можно указать радиус в пикселях для закругленных углов. |
Строка/символьная строка

Отображение строк символов, специфичных для каждого игрока. Для подготовки необходимо подключиться.
кнопка для виджета проигрывателя.
Атрибуты для строки
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| Атрибут игрока | Общая группа | Вывод списка всех доступных атрибутов игрока. |
| Тестовый текст | Общая группа | Текст, который должен отображаться в редакторе в целях тестирования. |
Число

Отображение чисел с дополнительными параметрами форматирования. Для подготовки,
Необходимо подключить кнопку к виджету плеера.
Атрибуты для числа
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| Атрибут игрока | Общая группа | Вывод списка всех доступных атрибутов игрока. |
| Добавить HTML в начало | Общая группа | Текст или HTML-код, размещаемый перед числом. |
| Добавить HTML | Общая группа | Текст или HTML-код, добавляемый к числу. |
| Тестовый текст | Общая группа | Текст, который должен отображаться в редакторе в целях тестирования. |
| Символ после запятой | Расширенные настройки | Количество знаков после запятой. |
| Запятая в качестве разделителя | Расширенные настройки | Запятая используется для разделения десятичных знаков. |
| Разделитель тысяч | Расширенные настройки | Для больших чисел разделитель вставляется через каждые 3 знака. |
Плейлист

Отобразить плейлист с сервера. При нажатии на запись плейлист загружается, и плеер запускается. Виджет не обновляется автоматически, вам нужно нажать кнопку обновления.
Атрибуты для плейлиста
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
Сам виджет имеет очень мало форматирования. Для самоформатирования используются некоторые предопределенные CSS-классы:
| CSS-класс | описание |
|---|---|
| plcontainer | Имя класса, присвоенное ul-тегу |
| много | Название класса, присвоенное тегу li |
| plrefresh | Имя класса, присвоенное тегу refresh-li |
| плтекст | Название класса, присвоенное названию плейлиста |
В качестве примера можно привести следующий CSS-код для вкладки vis-css:
Темный режим
.plentry {
border: 1px #505050 groove;
margin: 1px 0px;
padding: 5px;
background-color: #202020;
}
.plrefresh {
padding: 5px;
}
.plentry:hover {
background-color: #404040;
}
.plrefresh svg {
color: #cccccc;
}
.plrefresh svg:hover {
color: #ffffff;
filter: drop-shadow(0px 0px 1px #87ceeb);
}
Световой режим
.plentry {
border: 1px #b0b0b0 groove;
margin: 1px 0px;
padding: 5px;
background-color: #c0c0c0;
}
.plrefresh {
padding: 5px;
}
.plentry:hover {
background-color: #e0e0e0;
}
.plrefresh svg {
color: #444444;
}
.plrefresh svg:hover {
color: #000000;
filter: drop-shadow(0px 0px 1px #87ceeb);
}
Браузер
Отображает музыку, альбомы, исполнителей, радиостанции, приложения и т.д. с сервера. Щелкнув по элементу, вы перейдете к более глубокой иерархии. Доступные команды отображаются с помощью дополнительных кнопок. Вы можете подняться на один уровень выше, щелкнув по пути, отображаемому вверху.
Атрибуты для браузера
| Группа | Атрибут | Описание |
|---|---|---|
| Виджет плеера | Общая группа | Выбор виджета проигрывателя. |
| отлаживать | Общая группа | Включите дополнительную отладку (справочник функций) в консоли браузера. |
| debugwithfetchresults | Общая группа | Включите дополнительную отладку (ссылки на объекты) в консоли браузера. |
Сам виджет имеет довольно ограниченное форматирование. Для самоформатирования используются некоторые предопределенные CSS-классы:
| CSS-класс | описание |
|---|---|
| sqbrowser-list-container | контейнер для виджета |
| sqbrowser-parent-directory | элемент для отображения родительского каталога |
| sqbrowser-btn-svg | Класс для всех SVG-кнопок |
| sqbrowser-btn-svg-menu | Класс для SVG-меню |
| sqbrowser-scrollable-area | Класс для контейнера прокрутки |
| sqbrowser-list-item | Класс для отдельного элемента |
| sqbrowser-list-item-content | Класс для заголовка элемента |
| sqbrowser-button-group | Класс для группы кнопок в элементе списка |
| sqbrowser-btn-svg sqbrowser-btn-svg-action | Кнопка "Класс действий" |
Примечание о состоянии альфа-канала этого виджета:
- Внедрение LMS/Lyrion для веб-серфинга — это сущий ад.
- В качестве технической модели для этого виджета используется плагин темы "Material" на сервере LMS/Lyrion.
- В настоящее время реализованы не все функции.
- Не все типы полей ввода пока доступны.
- Возможно, были реализованы не все типы элементов.
- Для анализа добавлена возможность вывода расширенной отладочной информации (опционально).
- Вывод ссылки на функцию: Все имена функций выводятся в консоли браузера в порядке их следования.
- Вывод данных: Выводятся все данные, запрошенные и возвращенные сервером.
Если тестировщики обнаружат ошибки/проблемы или отсутствие необходимых реализаций, пожалуйста, предоставьте как можно более подробное описание:
- Откуда берутся данные в LMS/Lyrion (из уже встроенного сервиса/дополнительно установленного плагина)?
- Какие шаги/клики были предприняты для создания проблемы?
- Что представляют собой ссылки на функции и ссылки на данные?
Команды SendTo
getPlayerNames
Возвращает имена всех игроков, зарегистрированных в данный момент в адаптере. Возвращаемые имена — это отредактированные имена, использованные ниже.squeezeboxrpc.<instance>.Players .
async function main() {
const playerNames = await sendToAsync('squeezeboxrpc.0', 'getPlayerNames', {});
console.log(JSON.stringify(playerNames));
}
main();
Пример результата:
["Living_room", "Kitchen"]
cmdGeneral
Эта команда может использоваться для отправки любой команды на сервер LMS для получения ответа.
Пример:
Все плейлисты:
async function main() {
let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
playerid: '',
cmdArray: ['playlists', '0', '999', 'tags:us'],
});
console.log(JSON.stringify(data));
}
main();
Все избранные:
Эта команда используется адаптером внутри системы для загрузки избранных элементов.
async function main() {
let data = await sendToAsync('squeezeboxrpc.0', 'cmdGeneral', {
playerid: '',
cmdArray: ['favorites', 'items', '0', '999', 'want_url:1', 'item_id:'],
});
console.log(JSON.stringify(data));
}
main();
Дополнительные параметры и подробное описание возможностей интерфейса командной строки (CLI) приведены в следующей документации:
Разработка
вис-1
- запустить dev-сервер с помощью
dev-server watch --noStart - Запуск адаптера с конфигурацией запуска "Запуск адаптера ioBroker по умолчанию"
- Запустите скрипт отслеживания в каталоге виджетов с помощью
npm run watch - открыть редактор vis-1 или среду выполнения
- Если вы внесете изменения в виджет vis-1, подождите несколько секунд, пока изменения будут загружены на dev-сервер.
- В vis-1 перезагрузите страницу vis-1.
- Если в файле squeeboxrpc.html произошли изменения, необходимо перезапустить адаптер vis-1.
вис-2
- Для отладки виджета vis-2 необходимо запустить vis-2 во втором окне vis-2.
- Для установки и запуска следуйте инструкциям по адресу https://github.com/ioBroker/ioBroker.vis-2#development-and-debugging
- Запуск адаптера с конфигурацией запуска "Запуск адаптера ioBroker по умолчанию"
- Запустите сервер разработки Vite в каталоге src-widgets с помощью
npm run start - В административной панели iobroker, во вкладке «Объекты», в экспертном режиме отредактируйте объект.
system.adapter.squeezeboxrpc.0 - Измените common.visWidgets.vis2vis-squeezeboxrpc.url с vis2squeezeboxrpc/customWidgets.js на http://localhost:4173/customWidgets.js — это адрес сервера VITE.
- Откройте vis в режиме редактирования или выполнения с помощью конфигурации запуска "vis2 edit 3000" или "vis2 runtime 3000".
- Если вы внесете изменения в код виджета vis-2, произойдет автоматическая перезагрузка страницы или вы нажмете клавишу F5 в браузере.
финальный тест времени выполнения
- останавливаться
dev-serverи ваш адаптер в VS Code - Создайте производственную сборку и загрузите её на сервер разработки с помощью команды сборки.
dev-server upload - запустить iobroker с помощью
npm run start - Отмените изменение в параметре system.adapter.squeezeboxrpc.0 до исходного значения.
- Откройте vis-1 или vis-2 в режиме редактирования или во время выполнения.
дополнительное тестирование на реальном сервере iobroker
- В корневом каталоге создайте файл пакета npm, содержащий следующее:
npm pack - В iobroker на вкладке admin/adapter в экспертном режиме нажмите кнопку cat.
- В диалоговом окне выберите вкладку
from file - выберите созданный файл пакета
- нажмите установить
- Если что-то не работает, при запуске оболочки.
iobroker upload all
Все
- добавить виджет круговой ручки, управляемый игроком
Игра перестанет воспроизводиться, если кнопка «Избранное» будет нажата повторно. Не реализовано.дополнительное тестирование/исправлениеДополнительные возможности настройки для включения/выключения функций с целью повышения эффективности использования памяти и производительности.добавить виджет плейлистадобавить виджет просмотра для просмотра вLMS-Менюуменьшить зависимость от других пакетов (squeezenode)cmdGeneral für Server.Добавить возможность подключения по Telnet для получения push-уведомлений от сервера с цельюоптимизации опроса.Реализовать состояние команд для передачи индивидуальных команд пользователю (через JSON)на сервер и плеер.Реализуйте больше функций управления (выбор позиции воспроизведения в плейлисте, перемотка вперед, перемотка назад,переход к определенной временной позиции в песне, повтор песни, воспроизведение в случайном порядке).Добавить плейлист в playerdata в виде массива JSON.Добавить обложку (логотип станции/обложку плейлиста) для избранныхдобавить больше уровней (подкаталогов) избранногоавтообнаружение медиасервера Logitech
Changelog
3.0.1 (2026-09-08)
- fix little regressions
3.0.0 (2026-09-07)
- complete rework of the LMS API
- add experimental websocket support, only usable with LMS 9.2 build after 5.9.2026
2.0.2 (2026-09-07)
- fix io-package.json
2.0.1 (2026-09-05)
- fix package-lock
- fix tests
2.0.0 (2026-09-05)
- power/connected state fixed
- players button font size fixed
- bring back fade in/out for Announcement with additional LMS plugin
Older entries are in CHANGELOG_OLD.md.
License
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2019-2026 oweitman