SqueezeboxRPC: контроллер для медиасервера Logitech по протоколу RPC

SqueezeboxRPC: контроллер для Logitech Media Server через протокол RPC

Текущий релиз
3.0.1
Разработчик
oweitman
Лицензия
MIT

Это альтернативный адаптер, использующийJSON/RPC -протокол для получения данных и отправки команд на медиасервер Logitech/Lyrion ( LMS ) для управления подключенными устройствами, такими как

ОнLMS - Сервер может управлять/предоставлять очень большие музыкальные коллекции на жестких дисках илиNAS подключайтесь к различным потоковым сервисам, например:Spotify ,Deezer ,Soundcloud ,shoutcast ,tunein ,napster ,pandora ,tidal и многое другое

Оглавление

Функции

  • большая часть данных , которыеLMS — Услуги доступны в адаптере.
  • подробная информация о состоянии проигрывателя, названии песни, исполнителе, альбоме, обложке, плейлисте.
  • множество функций управления для воспроизведения, паузы, остановки, перемотки вперед.
    перемотка назад, повтор, перемешивание, воспроизведение любимого, переход ко времени
    (абсолютные и относительные значения), перейти к индексу плейлиста (абсолютные и относительные значения),
    Кнопки включения/выключения и предустановки
  • Все избранные и все подуровни с сервера
  • В компонент iobroker-vis включено множество виджетов .
    Создание собственных пользовательских интерфейсов управления (выбор проигрывателя, выбор избранных треков, управление группами синхронизации, кнопки воспроизведения/паузы, перемотки вперед/назад, выбора режима повтора и режима перемешивания).

Установка

  • Установите пакет
  • Создайте экземпляр
  • Настройте экземпляр, указав IP-адрес медиасервера Logitech/Lyrion и порт (обычно 9000).
  • запустить/перезапустить экземпляр

Конфигурация

Основные настройки

ВариантПо умолчаниюОписание
Сервер LMS0.0.0.0Имя хоста или IP-адрес медиасервера Logitech/Lyrion. Можно выбрать автоматически обнаруженный сервер.
порт LMS9000HTTP-порт, используемый JSON-RPC или экспериментальным плагином WebSocket.
Тип подключенияJSON-RPCИспользует стабильный HTTP JSON-RPC или экспериментальный плагин LMS WebSocket.
URL WebSocketпустойДополнительный независимый URL-адрес веб-сервера для плагина, например.http://192.168.1.87/ .
Порт Telnet LMS9090Порт CLI/Telnet. Используется только с JSON-RPC при включенной сигнализации Telnet.
Имя пользователяпустойИмя пользователя LMS (необязательно).
ПарольпустойПароль LMS (необязательно).

Для работы режима WebSocket требуется экспериментальный плагин LMS WebSocket . Он передает команды и уведомления по одному и тому же соединению, поэтому настройки Telnet в этом режиме игнорируются. Обычный опрос плеера остается включенным в качестве резервного варианта на случай отсутствия или неполноты уведомлений. URL-адреса WebSocket HTTP(S) преобразуются в WS(S), и/ws Добавляется автоматически, если указан только корневой URL-адрес.

Настройки таймера

ВариантПо умолчаниюМинимумОписание
Обновление сервера (в секундах)3015Интервал для обновления информации на сервере LMS.
Обновление проигрывателя (мс)950200Интервал для обновления информации о статусе игрока.
Избранное обновление (минуты)7201Интервал для обновления дерева избранных.
Обновление обнаружения (в секундах)3010Интервал для поиска других серверов 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
macMAC-ID сервера
uuiduuidLMS -пример

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

кнопкаОписание
getFavoritesзапросить все избранные с сервера
cmdGeneralПоле общего назначения для отправки команд на сервер. Каждое поле должно быть заключено в кавычки. Параметры должны быть разделены запятыми. Пример: "playerid or empty",["para1","para2"]

Избранное

Для каждого избранного все атрибуты доступны только для чтения.

СостояниеОписание
NameИмя любимчика
hasitemsуказывает, является ли это каталогом
idидентификатор избранного
imageИзображение/иконка для добавления в избранное, если доступно.
isaudioisaudio
typeПримеры типов: ссылка, текст, аудио, плейлист
urlURL трека

Доступны все подкаталоги (подразделы) избранного.

Игроки

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

СостояниережимОписание
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Имя художника
ArtworkUrlURL-адрес произведения искусства
BitrateБитрейт трека
DurationПродолжительность трека
RadioNameНазвание радиостанции
RateРейтинг песни
titleназвание песни
Typeтип носителя информации (например, MP3-радио)
urlURL трека / потока
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 выбран плеер, который уже находится в
из другой группы он автоматически удаляется из этой группы.

Атрибуты кнопки 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