iobroker.yamaha 2.3.2 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -103,6 +103,10 @@ On the very first contact the adapter asks the receiver which functions it suppo
103
103
  Placeholder for the next version (at the beginning of the line):
104
104
  ### **WORK IN PROGRESS**
105
105
  -->
106
+ ### 2.3.3 (2026-09-03)
107
+
108
+ - (krobipd) New: the menu browser, the MusicCast group, the clock alarm and the disc drive now explain their datapoints too, in eleven languages
109
+
106
110
  ### 2.3.2 (2026-09-03)
107
111
 
108
112
  - (krobipd) Fixed: eight tuner and scene datapoints still showed no explanation on MusicCast and older XML receivers
@@ -130,10 +134,6 @@ On the very first contact the adapter asks the receiver which functions it suppo
130
134
  - (krobipd) Fixed: a play or pause sent from a script or a visualization now reaches the receiver in every case
131
135
  - (krobipd) Improved: each of the 23 input-name datapoints now carries the input it names, instead of all reading the same
132
136
 
133
- ### 2.1.1 (2026-09-02)
134
-
135
- - (krobipd) Fixed: on an updated instance the info datapoints now get the translated names too, instead of keeping the ones an older version had written
136
-
137
137
  [Older changelogs can be found there](CHANGELOG_OLD.md)
138
138
 
139
139
  ## History
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Ob dies der Hauptdienst des Senders ist oder ein Zusatzdienst.",
392
392
  "descTotalStations": "Wie viele Digitalsender der letzte Suchlauf gefunden hat.",
393
393
  "descInitialScanProgress": "Wie weit der erste Sendersuchlauf ist, in Prozent.",
394
- "descTuneAidLevel": "Empfangsstärke — als Hilfe beim Ausrichten der Antenne gedacht."
394
+ "descTuneAidLevel": "Empfangsstärke — als Hilfe beim Ausrichten der Antenne gedacht.",
395
+ "descTransports": "Welche der drei Yamaha-Protokolle gerade mit diesem Gerät sprechen.",
396
+ "descPlayingSource": "Die Quelle, aus der wirklich abgespielt wird — die kann vom gewählten Eingang abweichen.",
397
+ "descScenesNumberTitle": "Die Szenen, die das Gerät meldet — mit Nummer und dem dort angezeigten Namen.",
398
+ "descMenuName": "Titel der Menüebene, die die Netzwerkquelle gerade zeigt.",
399
+ "descMenuLevel": "Wie tief Sie gerade im Menü stehen; 0 ist die oberste Ebene.",
400
+ "descTotalEntries": "Wie viele Einträge die aktuelle Menüebene insgesamt hat.",
401
+ "descCurrentLine": "Welcher Eintrag im aktuellen Menüfenster hervorgehoben ist.",
402
+ "descSelectLineFolderOpensItemPlays": "Wirkt wie die OK-Taste: ein Ordner öffnet sich, ein Titel startet.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Einen Pfad hineinschreiben, und der Adapter läuft den Weg im Menü selbst ab.",
404
+ "descRowsJSON": "Das ganze aktuelle Menüfenster in einem Datenpunkt, für Skripte.",
405
+ "descBusy": "Wahr, solange das Gerät eine Menü-Anfrage noch beantwortet.",
406
+ "descCursorPad": "Die Richtungstasten des Bildschirmmenüs.",
407
+ "descMenuKey": "Öffnet oder schließt das Bildschirmmenü des Receivers.",
408
+ "descLeaveGroup": "Nimmt dieses Gerät aus seiner MusicCast-Gruppe heraus.",
409
+ "descLinkADeviceItsIP": "Die Adresse eines anderen MusicCast-Geräts hineinschreiben, um es der Gruppe hinzuzufügen.",
410
+ "descRecallRecentlyPlayedNumber": "Eine Position aus der Liste der zuletzt gespielten Titel hineinschreiben, um sie erneut zu starten.",
411
+ "descAutomaticTimeSync": "Lässt das Gerät seine Uhr selbst aus dem Netz stellen.",
412
+ "descClockFormat": "Ob das Gerät die Zeit im 12- oder 24-Stunden-Format zeigt.",
413
+ "descClockAlarm": "Der eingebaute Weckruf des Geräts.",
414
+ "descRepeatSnooze": "Wie lange der Weckruf wartet, bevor er erneut ertönt.",
415
+ "descFadeType": "Wie der Weckruf beim Start lauter wird.",
416
+ "descFadeInTime": "Wie lange der Weckruf braucht, bis er die volle Lautstärke erreicht.",
417
+ "descDriveStatus": "Was das Laufwerk gerade tut.",
418
+ "descToggleTray": "Öffnet oder schließt die Laufwerksschublade."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Whether this is the station's main service or a secondary one.",
392
392
  "descTotalStations": "How many digital stations the last scan found.",
393
393
  "descInitialScanProgress": "How far the first station scan has got, as a percentage.",
394
- "descTuneAidLevel": "Reception strength, meant as an aid while aiming the aerial."
394
+ "descTuneAidLevel": "Reception strength, meant as an aid while aiming the aerial.",
395
+ "descTransports": "Which of the three Yamaha protocols are talking to this device right now.",
396
+ "descPlayingSource": "The source the receiver is actually playing from, which can differ from the selected input.",
397
+ "descScenesNumberTitle": "The scenes the device declares, with their number and the name shown on it.",
398
+ "descMenuName": "Title of the menu level currently shown by the network source.",
399
+ "descMenuLevel": "How deep in the menu you currently are; 0 is the top.",
400
+ "descTotalEntries": "How many entries the current menu level holds in total.",
401
+ "descCurrentLine": "Which entry of the current menu window is highlighted.",
402
+ "descSelectLineFolderOpensItemPlays": "Acts like the OK key: a folder opens, an item starts playing.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Write a path and the adapter walks the menu there by itself.",
404
+ "descRowsJSON": "The whole current menu window in one datapoint, for scripts.",
405
+ "descBusy": "True while the device is still answering a menu request.",
406
+ "descCursorPad": "The direction keys of the on-screen menu.",
407
+ "descMenuKey": "Opens or closes the receiver's on-screen menu.",
408
+ "descLeaveGroup": "Takes this device out of its MusicCast group.",
409
+ "descLinkADeviceItsIP": "Write another MusicCast device's address to add it to this group.",
410
+ "descRecallRecentlyPlayedNumber": "Write a position from the recently played list to start it again.",
411
+ "descAutomaticTimeSync": "Lets the device set its clock from the network by itself.",
412
+ "descClockFormat": "Whether the device shows the time in 12- or 24-hour form.",
413
+ "descClockAlarm": "The device's own wake-up alarm.",
414
+ "descRepeatSnooze": "How long the alarm waits before sounding again.",
415
+ "descFadeType": "How the alarm gets louder when it starts.",
416
+ "descFadeInTime": "How long the alarm takes to reach its full volume.",
417
+ "descDriveStatus": "What the disc drive is doing right now.",
418
+ "descToggleTray": "Opens or closes the disc tray."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Si este es el servicio principal de la emisora o uno secundario.",
392
392
  "descTotalStations": "Cuántas emisoras digitales encontró la última búsqueda.",
393
393
  "descInitialScanProgress": "Hasta dónde llegó la primera búsqueda de emisoras, en porcentaje.",
394
- "descTuneAidLevel": "Intensidad de recepción, como ayuda al orientar la antena."
394
+ "descTuneAidLevel": "Intensidad de recepción, como ayuda al orientar la antena.",
395
+ "descTransports": "Cuáles de los tres protocolos Yamaha hablan ahora con el aparato.",
396
+ "descPlayingSource": "La fuente de la que realmente se reproduce, que puede diferir de la entrada elegida.",
397
+ "descScenesNumberTitle": "Las escenas que declara el aparato, con número y el nombre mostrado.",
398
+ "descMenuName": "Título del nivel de menú que muestra la fuente de red.",
399
+ "descMenuLevel": "A qué profundidad está en el menú; 0 es el nivel superior.",
400
+ "descTotalEntries": "Cuántas entradas tiene en total el nivel de menú actual.",
401
+ "descCurrentLine": "Qué entrada de la ventana de menú está resaltada.",
402
+ "descSelectLineFolderOpensItemPlays": "Actúa como la tecla OK: una carpeta se abre, un tema empieza.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Escriba una ruta y el adaptador recorre el menú por sí mismo.",
404
+ "descRowsJSON": "Toda la ventana de menú actual en un punto de datos, para scripts.",
405
+ "descBusy": "Verdadero mientras el aparato aún responde a una petición de menú.",
406
+ "descCursorPad": "Las teclas de dirección del menú en pantalla.",
407
+ "descMenuKey": "Abre o cierra el menú en pantalla del receptor.",
408
+ "descLeaveGroup": "Saca este aparato de su grupo MusicCast.",
409
+ "descLinkADeviceItsIP": "Escriba la dirección de otro aparato MusicCast para añadirlo al grupo.",
410
+ "descRecallRecentlyPlayedNumber": "Escriba una posición de la lista de reproducidos recientemente para reiniciarla.",
411
+ "descAutomaticTimeSync": "Deja que el aparato ponga su reloj desde la red.",
412
+ "descClockFormat": "Si el aparato muestra la hora en formato de 12 o 24 horas.",
413
+ "descClockAlarm": "La alarma de despertador del propio aparato.",
414
+ "descRepeatSnooze": "Cuánto espera la alarma antes de volver a sonar.",
415
+ "descFadeType": "Cómo sube el volumen la alarma al empezar.",
416
+ "descFadeInTime": "Cuánto tarda la alarma en alcanzar el volumen completo.",
417
+ "descDriveStatus": "Qué está haciendo ahora la unidad de disco.",
418
+ "descToggleTray": "Abre o cierra la bandeja del disco."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "S'il s'agit du service principal de la station ou d'un service secondaire.",
392
392
  "descTotalStations": "Combien de stations numériques le dernier balayage a trouvées.",
393
393
  "descInitialScanProgress": "Où en est le premier balayage des stations, en pourcentage.",
394
- "descTuneAidLevel": "Force de réception, en aide au pointage de l'antenne."
394
+ "descTuneAidLevel": "Force de réception, en aide au pointage de l'antenne.",
395
+ "descTransports": "Lesquels des trois protocoles Yamaha dialoguent actuellement avec l'appareil.",
396
+ "descPlayingSource": "La source réellement lue, qui peut différer de l'entrée sélectionnée.",
397
+ "descScenesNumberTitle": "Les scènes déclarées par l'appareil, avec leur numéro et le nom affiché.",
398
+ "descMenuName": "Titre du niveau de menu affiché par la source réseau.",
399
+ "descMenuLevel": "À quelle profondeur du menu vous êtes ; 0 est le sommet.",
400
+ "descTotalEntries": "Combien d'entrées compte le niveau de menu actuel.",
401
+ "descCurrentLine": "Quelle entrée de la fenêtre de menu est sélectionnée.",
402
+ "descSelectLineFolderOpensItemPlays": "Agit comme la touche OK : un dossier s'ouvre, un titre démarre.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Écrivez un chemin et l'adaptateur parcourt le menu tout seul.",
404
+ "descRowsJSON": "Toute la fenêtre de menu actuelle en un point de données, pour les scripts.",
405
+ "descBusy": "Vrai tant que l'appareil répond encore à une requête de menu.",
406
+ "descCursorPad": "Les touches de direction du menu à l'écran.",
407
+ "descMenuKey": "Ouvre ou ferme le menu à l'écran de l'ampli.",
408
+ "descLeaveGroup": "Retire cet appareil de son groupe MusicCast.",
409
+ "descLinkADeviceItsIP": "Écrivez l'adresse d'un autre appareil MusicCast pour l'ajouter au groupe.",
410
+ "descRecallRecentlyPlayedNumber": "Écrivez une position de la liste des lectures récentes pour la relancer.",
411
+ "descAutomaticTimeSync": "Laisse l'appareil régler son horloge depuis le réseau.",
412
+ "descClockFormat": "Si l'appareil affiche l'heure au format 12 ou 24 heures.",
413
+ "descClockAlarm": "Le réveil intégré de l'appareil.",
414
+ "descRepeatSnooze": "Combien de temps le réveil attend avant de resonner.",
415
+ "descFadeType": "Comment le réveil monte en volume au démarrage.",
416
+ "descFadeInTime": "Le temps que met le réveil pour atteindre son volume maximal.",
417
+ "descDriveStatus": "Ce que fait le lecteur de disque en ce moment.",
418
+ "descToggleTray": "Ouvre ou ferme le tiroir de disque."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Se questo è il servizio principale della stazione o uno secondario.",
392
392
  "descTotalStations": "Quante stazioni digitali ha trovato l'ultima ricerca.",
393
393
  "descInitialScanProgress": "A che punto è la prima ricerca delle stazioni, in percentuale.",
394
- "descTuneAidLevel": "Intensità di ricezione, come aiuto nell'orientare l'antenna."
394
+ "descTuneAidLevel": "Intensità di ricezione, come aiuto nell'orientare l'antenna.",
395
+ "descTransports": "Quali dei tre protocolli Yamaha stanno parlando con questo apparecchio.",
396
+ "descPlayingSource": "La sorgente da cui si riproduce davvero, che può differire dall'ingresso scelto.",
397
+ "descScenesNumberTitle": "Le scene dichiarate dall'apparecchio, con numero e nome mostrato.",
398
+ "descMenuName": "Titolo del livello di menu mostrato dalla sorgente di rete.",
399
+ "descMenuLevel": "Quanto in profondità siete nel menu; 0 è il livello più alto.",
400
+ "descTotalEntries": "Quante voci contiene in tutto il livello di menu attuale.",
401
+ "descCurrentLine": "Quale voce della finestra di menu è evidenziata.",
402
+ "descSelectLineFolderOpensItemPlays": "Agisce come il tasto OK: una cartella si apre, un brano parte.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Scrivete un percorso e l'adattatore percorre il menu da solo.",
404
+ "descRowsJSON": "L'intera finestra di menu attuale in un solo datapoint, per gli script.",
405
+ "descBusy": "Vero finché l'apparecchio sta ancora rispondendo a una richiesta di menu.",
406
+ "descCursorPad": "I tasti direzionali del menu a schermo.",
407
+ "descMenuKey": "Apre o chiude il menu a schermo del ricevitore.",
408
+ "descLeaveGroup": "Toglie questo apparecchio dal suo gruppo MusicCast.",
409
+ "descLinkADeviceItsIP": "Scrivete l'indirizzo di un altro apparecchio MusicCast per aggiungerlo al gruppo.",
410
+ "descRecallRecentlyPlayedNumber": "Scrivete una posizione dell'elenco dei brani recenti per riavviarla.",
411
+ "descAutomaticTimeSync": "Lascia che l'apparecchio regoli l'orologio dalla rete.",
412
+ "descClockFormat": "Se l'apparecchio mostra l'ora in formato 12 o 24 ore.",
413
+ "descClockAlarm": "La sveglia integrata dell'apparecchio.",
414
+ "descRepeatSnooze": "Quanto attende la sveglia prima di suonare di nuovo.",
415
+ "descFadeType": "Come la sveglia aumenta di volume all'avvio.",
416
+ "descFadeInTime": "Quanto impiega la sveglia a raggiungere il volume pieno.",
417
+ "descDriveStatus": "Cosa sta facendo ora il lettore dischi.",
418
+ "descToggleTray": "Apre o chiude il cassetto del disco."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Of dit de hoofddienst van de zender is of een nevendienst.",
392
392
  "descTotalStations": "Hoeveel digitale zenders de laatste zoekactie vond.",
393
393
  "descInitialScanProgress": "Hoe ver de eerste zenderzoekactie is, in procent.",
394
- "descTuneAidLevel": "Ontvangststerkte, als hulp bij het richten van de antenne."
394
+ "descTuneAidLevel": "Ontvangststerkte, als hulp bij het richten van de antenne.",
395
+ "descTransports": "Welke van de drie Yamaha-protocollen nu met dit apparaat praten.",
396
+ "descPlayingSource": "De bron waaruit echt wordt afgespeeld; die kan van de gekozen ingang afwijken.",
397
+ "descScenesNumberTitle": "De scènes die het apparaat meldt, met nummer en de daar getoonde naam.",
398
+ "descMenuName": "Titel van het menuniveau dat de netwerkbron nu toont.",
399
+ "descMenuLevel": "Hoe diep u nu in het menu zit; 0 is bovenaan.",
400
+ "descTotalEntries": "Hoeveel items het huidige menuniveau in totaal heeft.",
401
+ "descCurrentLine": "Welk item in het huidige menuvenster is gemarkeerd.",
402
+ "descSelectLineFolderOpensItemPlays": "Werkt als de OK-toets: een map opent, een item start.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Schrijf een pad en de adapter loopt het menu zelf af.",
404
+ "descRowsJSON": "Het hele huidige menuvenster in één datapunt, voor scripts.",
405
+ "descBusy": "Waar zolang het apparaat nog op een menuverzoek antwoordt.",
406
+ "descCursorPad": "De richtingstoetsen van het schermmenu.",
407
+ "descMenuKey": "Opent of sluit het schermmenu van de receiver.",
408
+ "descLeaveGroup": "Haalt dit apparaat uit zijn MusicCast-groep.",
409
+ "descLinkADeviceItsIP": "Schrijf het adres van een ander MusicCast-apparaat om het toe te voegen.",
410
+ "descRecallRecentlyPlayedNumber": "Schrijf een positie uit de lijst van recent afgespeelde om die opnieuw te starten.",
411
+ "descAutomaticTimeSync": "Laat het apparaat zijn klok zelf via het netwerk zetten.",
412
+ "descClockFormat": "Of het apparaat de tijd in 12- of 24-uursvorm toont.",
413
+ "descClockAlarm": "Het eigen wekalarm van het apparaat.",
414
+ "descRepeatSnooze": "Hoe lang het alarm wacht voor het opnieuw afgaat.",
415
+ "descFadeType": "Hoe het alarm bij de start luider wordt.",
416
+ "descFadeInTime": "Hoe lang het alarm doet over het bereiken van vol volume.",
417
+ "descDriveStatus": "Wat de discspeler nu doet.",
418
+ "descToggleTray": "Opent of sluit de disclade."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Czy to główna usługa stacji, czy dodatkowa.",
392
392
  "descTotalStations": "Ile stacji cyfrowych znalazło ostatnie wyszukiwanie.",
393
393
  "descInitialScanProgress": "Jak daleko zaszło pierwsze wyszukiwanie stacji, w procentach.",
394
- "descTuneAidLevel": "Siła odbioru, jako pomoc przy ustawianiu anteny."
394
+ "descTuneAidLevel": "Siła odbioru, jako pomoc przy ustawianiu anteny.",
395
+ "descTransports": "Które z trzech protokołów Yamaha rozmawiają teraz z urządzeniem.",
396
+ "descPlayingSource": "Źródło, z którego faktycznie trwa odtwarzanie; może różnić się od wybranego wejścia.",
397
+ "descScenesNumberTitle": "Sceny zgłaszane przez urządzenie, z numerem i wyświetlaną nazwą.",
398
+ "descMenuName": "Tytuł poziomu menu pokazywanego przez źródło sieciowe.",
399
+ "descMenuLevel": "Jak głęboko jesteś w menu; 0 to najwyższy poziom.",
400
+ "descTotalEntries": "Ile pozycji ma łącznie bieżący poziom menu.",
401
+ "descCurrentLine": "Która pozycja bieżącego okna menu jest podświetlona.",
402
+ "descSelectLineFolderOpensItemPlays": "Działa jak klawisz OK: folder się otwiera, utwór startuje.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Wpisz ścieżkę, a adapter sam przejdzie przez menu.",
404
+ "descRowsJSON": "Całe bieżące okno menu w jednym punkcie danych, dla skryptów.",
405
+ "descBusy": "Prawda, dopóki urządzenie wciąż odpowiada na żądanie menu.",
406
+ "descCursorPad": "Klawisze kierunkowe menu ekranowego.",
407
+ "descMenuKey": "Otwiera lub zamyka menu ekranowe amplitunera.",
408
+ "descLeaveGroup": "Usuwa to urządzenie z jego grupy MusicCast.",
409
+ "descLinkADeviceItsIP": "Wpisz adres innego urządzenia MusicCast, aby dodać je do grupy.",
410
+ "descRecallRecentlyPlayedNumber": "Wpisz pozycję z listy ostatnio odtwarzanych, aby uruchomić ją ponownie.",
411
+ "descAutomaticTimeSync": "Pozwala urządzeniu samodzielnie ustawiać zegar z sieci.",
412
+ "descClockFormat": "Czy urządzenie pokazuje czas w formacie 12- czy 24-godzinnym.",
413
+ "descClockAlarm": "Wbudowany budzik urządzenia.",
414
+ "descRepeatSnooze": "Jak długo budzik czeka przed ponownym sygnałem.",
415
+ "descFadeType": "Jak budzik narasta na głośności przy starcie.",
416
+ "descFadeInTime": "Ile czasu budzik potrzebuje do pełnej głośności.",
417
+ "descDriveStatus": "Co robi teraz napęd płyt.",
418
+ "descToggleTray": "Otwiera lub zamyka szufladę napędu."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Se este é o serviço principal da estação ou um secundário.",
392
392
  "descTotalStations": "Quantas estações digitais a última busca encontrou.",
393
393
  "descInitialScanProgress": "Até onde chegou a primeira busca de estações, em percentagem.",
394
- "descTuneAidLevel": "Força de receção, como ajuda ao orientar a antena."
394
+ "descTuneAidLevel": "Força de receção, como ajuda ao orientar a antena.",
395
+ "descTransports": "Quais dos três protocolos Yamaha falam agora com este aparelho.",
396
+ "descPlayingSource": "A fonte de que se está mesmo a reproduzir, que pode diferir da entrada escolhida.",
397
+ "descScenesNumberTitle": "As cenas que o aparelho declara, com número e o nome nele mostrado.",
398
+ "descMenuName": "Título do nível de menu que a fonte de rede mostra agora.",
399
+ "descMenuLevel": "A que profundidade está no menu; 0 é o topo.",
400
+ "descTotalEntries": "Quantas entradas tem no total o nível de menu atual.",
401
+ "descCurrentLine": "Que entrada da janela de menu atual está realçada.",
402
+ "descSelectLineFolderOpensItemPlays": "Age como a tecla OK: uma pasta abre, um item começa a tocar.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Escreva um caminho e o adaptador percorre o menu sozinho.",
404
+ "descRowsJSON": "Toda a janela de menu atual num só ponto de dados, para scripts.",
405
+ "descBusy": "Verdadeiro enquanto o aparelho ainda responde a um pedido de menu.",
406
+ "descCursorPad": "As teclas de direção do menu no ecrã.",
407
+ "descMenuKey": "Abre ou fecha o menu no ecrã do recetor.",
408
+ "descLeaveGroup": "Retira este aparelho do seu grupo MusicCast.",
409
+ "descLinkADeviceItsIP": "Escreva o endereço de outro aparelho MusicCast para o juntar ao grupo.",
410
+ "descRecallRecentlyPlayedNumber": "Escreva uma posição da lista de reproduções recentes para a iniciar de novo.",
411
+ "descAutomaticTimeSync": "Deixa o aparelho acertar o relógio pela rede sozinho.",
412
+ "descClockFormat": "Se o aparelho mostra a hora em formato de 12 ou 24 horas.",
413
+ "descClockAlarm": "O alarme de despertar do próprio aparelho.",
414
+ "descRepeatSnooze": "Quanto tempo o alarme espera antes de tocar de novo.",
415
+ "descFadeType": "Como o alarme aumenta de volume ao começar.",
416
+ "descFadeInTime": "Quanto tempo o alarme leva a atingir o volume total.",
417
+ "descDriveStatus": "O que a unidade de disco está a fazer agora.",
418
+ "descToggleTray": "Abre ou fecha a gaveta do disco."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Основная это служба станции или дополнительная.",
392
392
  "descTotalStations": "Сколько цифровых станций нашёл последний поиск.",
393
393
  "descInitialScanProgress": "Насколько продвинулся первый поиск станций, в процентах.",
394
- "descTuneAidLevel": "Уровень приёма — в помощь при наведении антенны."
394
+ "descTuneAidLevel": "Уровень приёма — в помощь при наведении антенны.",
395
+ "descTransports": "Какие из трёх протоколов Yamaha сейчас общаются с устройством.",
396
+ "descPlayingSource": "Источник, из которого идёт воспроизведение; может отличаться от выбранного входа.",
397
+ "descScenesNumberTitle": "Сцены, о которых сообщает устройство: номер и отображаемое имя.",
398
+ "descMenuName": "Заголовок текущего уровня меню сетевого источника.",
399
+ "descMenuLevel": "Насколько глубоко вы сейчас в меню; 0 — верхний уровень.",
400
+ "descTotalEntries": "Сколько всего записей на текущем уровне меню.",
401
+ "descCurrentLine": "Какая запись текущего окна меню выделена.",
402
+ "descSelectLineFolderOpensItemPlays": "Действует как кнопка OK: папка открывается, запись начинает играть.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Впишите путь — адаптер сам пройдёт по меню.",
404
+ "descRowsJSON": "Всё текущее окно меню в одном датапоинте — для скриптов.",
405
+ "descBusy": "Истина, пока устройство ещё отвечает на запрос меню.",
406
+ "descCursorPad": "Клавиши направления экранного меню.",
407
+ "descMenuKey": "Открывает или закрывает экранное меню ресивера.",
408
+ "descLeaveGroup": "Выводит устройство из его группы MusicCast.",
409
+ "descLinkADeviceItsIP": "Впишите адрес другого устройства MusicCast, чтобы добавить его в группу.",
410
+ "descRecallRecentlyPlayedNumber": "Впишите позицию из списка недавно игравшего, чтобы запустить снова.",
411
+ "descAutomaticTimeSync": "Позволяет устройству самому выставлять часы из сети.",
412
+ "descClockFormat": "Показывает ли устройство время в 12- или 24-часовом формате.",
413
+ "descClockAlarm": "Собственный будильник устройства.",
414
+ "descRepeatSnooze": "Сколько будильник ждёт перед повторным сигналом.",
415
+ "descFadeType": "Как будильник нарастает по громкости при старте.",
416
+ "descFadeInTime": "За сколько будильник выходит на полную громкость.",
417
+ "descDriveStatus": "Что сейчас делает дисковод.",
418
+ "descToggleTray": "Открывает или закрывает лоток дисковода."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "Чи це основна служба станції, чи додаткова.",
392
392
  "descTotalStations": "Скільки цифрових станцій знайшов останній пошук.",
393
393
  "descInitialScanProgress": "Наскільки просунувся перший пошук станцій, у відсотках.",
394
- "descTuneAidLevel": "Сила прийому — на допомогу при наведенні антени."
394
+ "descTuneAidLevel": "Сила прийому — на допомогу при наведенні антени.",
395
+ "descTransports": "Які з трьох протоколів Yamaha зараз спілкуються з пристроєм.",
396
+ "descPlayingSource": "Джерело, з якого справді відтворюється; може відрізнятися від обраного входу.",
397
+ "descScenesNumberTitle": "Сцени, які повідомляє пристрій: номер і показувана назва.",
398
+ "descMenuName": "Заголовок рівня меню, який показує мережеве джерело.",
399
+ "descMenuLevel": "Наскільки глибоко ви в меню; 0 — верхній рівень.",
400
+ "descTotalEntries": "Скільки всього записів на поточному рівні меню.",
401
+ "descCurrentLine": "Який запис поточного вікна меню виділено.",
402
+ "descSelectLineFolderOpensItemPlays": "Діє як клавіша OK: тека відкривається, запис починає грати.",
403
+ "descNavigatePathEGBookmarksRadioParadise": "Впишіть шлях — адаптер сам пройде меню.",
404
+ "descRowsJSON": "Усе поточне вікно меню в одному датапоінті — для скриптів.",
405
+ "descBusy": "Істина, доки пристрій ще відповідає на запит меню.",
406
+ "descCursorPad": "Клавіші напрямку екранного меню.",
407
+ "descMenuKey": "Відкриває або закриває екранне меню ресивера.",
408
+ "descLeaveGroup": "Виводить цей пристрій з його групи MusicCast.",
409
+ "descLinkADeviceItsIP": "Впишіть адресу іншого пристрою MusicCast, щоб додати його до групи.",
410
+ "descRecallRecentlyPlayedNumber": "Впишіть позицію зі списку нещодавно відтвореного, щоб запустити знову.",
411
+ "descAutomaticTimeSync": "Дозволяє пристрою самому виставляти годинник з мережі.",
412
+ "descClockFormat": "Чи показує пристрій час у 12- чи 24-годинному форматі.",
413
+ "descClockAlarm": "Власний будильник пристрою.",
414
+ "descRepeatSnooze": "Скільки будильник чекає перед повторним сигналом.",
415
+ "descFadeType": "Як будильник наростає за гучністю на старті.",
416
+ "descFadeInTime": "Скільки будильник виходить на повну гучність.",
417
+ "descDriveStatus": "Що зараз робить дисковод.",
418
+ "descToggleTray": "Відкриває або закриває лоток дисковода."
395
419
  }
@@ -391,5 +391,29 @@
391
391
  "descServiceCategory": "这是电台的主服务还是附属服务。",
392
392
  "descTotalStations": "上次搜台找到的数字电台数量。",
393
393
  "descInitialScanProgress": "首次搜台的进度百分比。",
394
- "descTuneAidLevel": "接收强度,用于辅助调整天线方向。"
394
+ "descTuneAidLevel": "接收强度,用于辅助调整天线方向。",
395
+ "descTransports": "当前有哪些 Yamaha 协议在与本设备通信。",
396
+ "descPlayingSource": "实际播放所用的音源,可能与所选输入不同。",
397
+ "descScenesNumberTitle": "设备声明的场景,含编号与其上显示的名称。",
398
+ "descMenuName": "网络音源当前显示的菜单层级标题。",
399
+ "descMenuLevel": "当前处于菜单的第几层;0 为最上层。",
400
+ "descTotalEntries": "当前菜单层级共有多少条目。",
401
+ "descCurrentLine": "当前菜单窗口中哪一条被选中。",
402
+ "descSelectLineFolderOpensItemPlays": "等同于 OK 键:文件夹会打开,条目会开始播放。",
403
+ "descNavigatePathEGBookmarksRadioParadise": "写入一个路径,适配器会自行在菜单中导航过去。",
404
+ "descRowsJSON": "把当前整个菜单窗口放在一个数据点里,便于脚本使用。",
405
+ "descBusy": "设备仍在响应菜单请求时为真。",
406
+ "descCursorPad": "屏幕菜单的方向键。",
407
+ "descMenuKey": "打开或关闭功放的屏幕菜单。",
408
+ "descLeaveGroup": "将本设备移出其 MusicCast 组。",
409
+ "descLinkADeviceItsIP": "写入另一台 MusicCast 设备的地址即可将其加入本组。",
410
+ "descRecallRecentlyPlayedNumber": "写入最近播放列表中的位置即可重新播放。",
411
+ "descAutomaticTimeSync": "让设备自行通过网络校准时钟。",
412
+ "descClockFormat": "设备以 12 小时还是 24 小时制显示时间。",
413
+ "descClockAlarm": "设备自带的闹钟。",
414
+ "descRepeatSnooze": "闹钟再次响起前等待多久。",
415
+ "descFadeType": "闹钟开始时如何逐渐增大音量。",
416
+ "descFadeInTime": "闹钟达到最大音量所需的时间。",
417
+ "descDriveStatus": "光驱当前的状态。",
418
+ "descToggleTray": "打开或关闭光驱托盘。"
395
419
  }
@@ -44,22 +44,50 @@ function browseObjectDefs(sources) {
44
44
  {
45
45
  id: "player.browse.menuName",
46
46
  type: "state",
47
- common: { name: (0, import_i18n.tName)("menuName"), type: "string", role: "text", read: true, write: false }
47
+ common: {
48
+ name: (0, import_i18n.tName)("menuName"),
49
+ desc: (0, import_i18n.tName)("descMenuName"),
50
+ type: "string",
51
+ role: "text",
52
+ read: true,
53
+ write: false
54
+ }
48
55
  },
49
56
  {
50
57
  id: "player.browse.layer",
51
58
  type: "state",
52
- common: { name: (0, import_i18n.tName)("menuLevel"), type: "number", role: "value", read: true, write: false }
59
+ common: {
60
+ name: (0, import_i18n.tName)("menuLevel"),
61
+ desc: (0, import_i18n.tName)("descMenuLevel"),
62
+ type: "number",
63
+ role: "value",
64
+ read: true,
65
+ write: false
66
+ }
53
67
  },
54
68
  {
55
69
  id: "player.browse.totalItems",
56
70
  type: "state",
57
- common: { name: (0, import_i18n.tName)("totalEntries"), type: "number", role: "value", read: true, write: false }
71
+ common: {
72
+ name: (0, import_i18n.tName)("totalEntries"),
73
+ desc: (0, import_i18n.tName)("descTotalEntries"),
74
+ type: "number",
75
+ role: "value",
76
+ read: true,
77
+ write: false
78
+ }
58
79
  },
59
80
  {
60
81
  id: "player.browse.currentLine",
61
82
  type: "state",
62
- common: { name: (0, import_i18n.tName)("currentLine"), type: "number", role: "value", read: true, write: false }
83
+ common: {
84
+ name: (0, import_i18n.tName)("currentLine"),
85
+ desc: (0, import_i18n.tName)("descCurrentLine"),
86
+ type: "number",
87
+ role: "value",
88
+ read: true,
89
+ write: false
90
+ }
63
91
  },
64
92
  ...[1, 2, 3, 4, 5, 6, 7, 8].map(line),
65
93
  {
@@ -67,6 +95,7 @@ function browseObjectDefs(sources) {
67
95
  type: "state",
68
96
  common: {
69
97
  name: (0, import_i18n.tName)("selectLineFolderOpensItemPlays"),
98
+ desc: (0, import_i18n.tName)("descSelectLineFolderOpensItemPlays"),
70
99
  type: "number",
71
100
  role: "level",
72
101
  read: true,
@@ -85,6 +114,7 @@ function browseObjectDefs(sources) {
85
114
  type: "state",
86
115
  common: {
87
116
  name: (0, import_i18n.tName)("navigatePathEGBookmarksRadioParadise"),
117
+ desc: (0, import_i18n.tName)("descNavigatePathEGBookmarksRadioParadise"),
88
118
  type: "string",
89
119
  role: "text",
90
120
  read: true,
@@ -94,12 +124,26 @@ function browseObjectDefs(sources) {
94
124
  {
95
125
  id: "player.browse.rows",
96
126
  type: "state",
97
- common: { name: (0, import_i18n.tName)("rowsJSON"), type: "string", role: "json", read: true, write: false }
127
+ common: {
128
+ name: (0, import_i18n.tName)("rowsJSON"),
129
+ desc: (0, import_i18n.tName)("descRowsJSON"),
130
+ type: "string",
131
+ role: "json",
132
+ read: true,
133
+ write: false
134
+ }
98
135
  },
99
136
  {
100
137
  id: "player.browse.busy",
101
138
  type: "state",
102
- common: { name: (0, import_i18n.tName)("busy"), type: "boolean", role: "indicator", read: true, write: false }
139
+ common: {
140
+ name: (0, import_i18n.tName)("busy"),
141
+ desc: (0, import_i18n.tName)("descBusy"),
142
+ type: "boolean",
143
+ role: "indicator",
144
+ read: true,
145
+ write: false
146
+ }
103
147
  }
104
148
  ];
105
149
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/browse/objects.ts"],
4
- "sourcesContent": ["import type { ObjectDef } from \"../catalog/types\";\nimport { tName } from \"../i18n\";\n\n/**\n * The object tree of the browsing surface. Every capable transport contributes the\n * SAME ids, so the object-tree coordinator dedups them and modernity picks the one\n * owner (YXC > YNCA > XML) \u2014 no owner override needed. The ids live under\n * `player.browse.*`, so the existing \"Playback & browsing\" admin group switch and\n * the `player` folder gate them like every other playback datapoint.\n *\n * @param sources the selectable sources (state value \u2192 display label)\n * @returns the channel and state definitions, parents first\n */\nexport function browseObjectDefs(sources: Record<string, string>): ObjectDef[] {\n const line = (n: number): ObjectDef => ({\n id: `player.browse.line${n}`,\n type: \"state\",\n common: { name: tName(\"line\", n), type: \"string\", role: \"text\", read: true, write: false },\n });\n const button = (id: string, name: ioBroker.StringOrTranslated): ObjectDef => ({\n id: `player.browse.${id}`,\n type: \"state\",\n common: { name, type: \"boolean\", role: \"button\", read: false, write: true },\n });\n return [\n { id: \"player\", type: \"channel\", common: { name: tName(\"mediaPlayer\") } },\n { id: \"player.browse\", type: \"channel\", common: { name: tName(\"browse\") } },\n {\n id: \"player.browse.source\",\n type: \"state\",\n common: { name: tName(\"source\"), type: \"string\", role: \"state\", read: true, write: true, states: sources },\n },\n {\n id: \"player.browse.menuName\",\n type: \"state\",\n common: { name: tName(\"menuName\"), type: \"string\", role: \"text\", read: true, write: false },\n },\n {\n id: \"player.browse.layer\",\n type: \"state\",\n common: { name: tName(\"menuLevel\"), type: \"number\", role: \"value\", read: true, write: false },\n },\n {\n id: \"player.browse.totalItems\",\n type: \"state\",\n common: { name: tName(\"totalEntries\"), type: \"number\", role: \"value\", read: true, write: false },\n },\n {\n id: \"player.browse.currentLine\",\n type: \"state\",\n common: { name: tName(\"currentLine\"), type: \"number\", role: \"value\", read: true, write: false },\n },\n ...[1, 2, 3, 4, 5, 6, 7, 8].map(line),\n {\n id: \"player.browse.selectLine\",\n type: \"state\",\n common: {\n name: tName(\"selectLineFolderOpensItemPlays\"),\n type: \"number\",\n role: \"level\",\n read: true,\n write: true,\n min: 1,\n max: 8,\n step: 1,\n },\n },\n button(\"pageUp\", tName(\"pageUp\")),\n button(\"pageDown\", tName(\"pageDown\")),\n button(\"back\", tName(\"back\")),\n button(\"home\", tName(\"menuRoot\")),\n {\n id: \"player.browse.path\",\n type: \"state\",\n common: {\n name: tName(\"navigatePathEGBookmarksRadioParadise\"),\n type: \"string\",\n role: \"text\",\n read: true,\n write: true,\n },\n },\n {\n id: \"player.browse.rows\",\n type: \"state\",\n common: { name: tName(\"rowsJSON\"), type: \"string\", role: \"json\", read: true, write: false },\n },\n {\n id: \"player.browse.busy\",\n type: \"state\",\n common: { name: tName(\"busy\"), type: \"boolean\", role: \"indicator\", read: true, write: false },\n },\n ];\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { ObjectDef } from \"../catalog/types\";\nimport { tName } from \"../i18n\";\n\n/**\n * The object tree of the browsing surface. Every capable transport contributes the\n * SAME ids, so the object-tree coordinator dedups them and modernity picks the one\n * owner (YXC > YNCA > XML) \u2014 no owner override needed. The ids live under\n * `player.browse.*`, so the existing \"Playback & browsing\" admin group switch and\n * the `player` folder gate them like every other playback datapoint.\n *\n * @param sources the selectable sources (state value \u2192 display label)\n * @returns the channel and state definitions, parents first\n */\nexport function browseObjectDefs(sources: Record<string, string>): ObjectDef[] {\n const line = (n: number): ObjectDef => ({\n id: `player.browse.line${n}`,\n type: \"state\",\n common: { name: tName(\"line\", n), type: \"string\", role: \"text\", read: true, write: false },\n });\n const button = (id: string, name: ioBroker.StringOrTranslated): ObjectDef => ({\n id: `player.browse.${id}`,\n type: \"state\",\n common: { name, type: \"boolean\", role: \"button\", read: false, write: true },\n });\n return [\n { id: \"player\", type: \"channel\", common: { name: tName(\"mediaPlayer\") } },\n { id: \"player.browse\", type: \"channel\", common: { name: tName(\"browse\") } },\n {\n id: \"player.browse.source\",\n type: \"state\",\n common: { name: tName(\"source\"), type: \"string\", role: \"state\", read: true, write: true, states: sources },\n },\n {\n id: \"player.browse.menuName\",\n type: \"state\",\n common: {\n name: tName(\"menuName\"),\n desc: tName(\"descMenuName\"),\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n },\n {\n id: \"player.browse.layer\",\n type: \"state\",\n common: {\n name: tName(\"menuLevel\"),\n desc: tName(\"descMenuLevel\"),\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n },\n {\n id: \"player.browse.totalItems\",\n type: \"state\",\n common: {\n name: tName(\"totalEntries\"),\n desc: tName(\"descTotalEntries\"),\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n },\n {\n id: \"player.browse.currentLine\",\n type: \"state\",\n common: {\n name: tName(\"currentLine\"),\n desc: tName(\"descCurrentLine\"),\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n },\n ...[1, 2, 3, 4, 5, 6, 7, 8].map(line),\n {\n id: \"player.browse.selectLine\",\n type: \"state\",\n common: {\n name: tName(\"selectLineFolderOpensItemPlays\"),\n desc: tName(\"descSelectLineFolderOpensItemPlays\"),\n type: \"number\",\n role: \"level\",\n read: true,\n write: true,\n min: 1,\n max: 8,\n step: 1,\n },\n },\n button(\"pageUp\", tName(\"pageUp\")),\n button(\"pageDown\", tName(\"pageDown\")),\n button(\"back\", tName(\"back\")),\n button(\"home\", tName(\"menuRoot\")),\n {\n id: \"player.browse.path\",\n type: \"state\",\n common: {\n name: tName(\"navigatePathEGBookmarksRadioParadise\"),\n desc: tName(\"descNavigatePathEGBookmarksRadioParadise\"),\n type: \"string\",\n role: \"text\",\n read: true,\n write: true,\n },\n },\n {\n id: \"player.browse.rows\",\n type: \"state\",\n common: {\n name: tName(\"rowsJSON\"),\n desc: tName(\"descRowsJSON\"),\n type: \"string\",\n role: \"json\",\n read: true,\n write: false,\n },\n },\n {\n id: \"player.browse.busy\",\n type: \"state\",\n common: {\n name: tName(\"busy\"),\n desc: tName(\"descBusy\"),\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n },\n ];\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -170,7 +170,14 @@ class YncaDeviceController {
170
170
  await this.deps.upsertObject(`${this.deviceId}.scene.list`, {
171
171
  id: "scene.list",
172
172
  type: "state",
173
- common: { name: (0, import_i18n.tName)("scenesNumberTitle"), type: "string", role: "json", read: true, write: false }
173
+ common: {
174
+ name: (0, import_i18n.tName)("scenesNumberTitle"),
175
+ desc: (0, import_i18n.tName)("descScenesNumberTitle"),
176
+ type: "string",
177
+ role: "json",
178
+ read: true,
179
+ write: false
180
+ }
174
181
  });
175
182
  this.deps.setStateAck(`${this.deviceId}.scene.list`, JSON.stringify(this.sceneTitles));
176
183
  }
@@ -490,7 +497,14 @@ class YncaDeviceController {
490
497
  const sourceDef = (id) => ({
491
498
  id,
492
499
  type: "state",
493
- common: { name: (0, import_i18n.tName)("playingSource"), type: "string", role: "text", read: true, write: false }
500
+ common: {
501
+ name: (0, import_i18n.tName)("playingSource"),
502
+ desc: (0, import_i18n.tName)("descPlayingSource"),
503
+ type: "string",
504
+ role: "text",
505
+ read: true,
506
+ write: false
507
+ }
494
508
  });
495
509
  await this.deps.upsertObject(`${this.deviceId}.player.source`, sourceDef("player.source"));
496
510
  this.playerZones = ["main"];