iobroker.yamaha 2.3.0 → 2.3.2
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 +8 -21
- package/admin/i18n/de.json +21 -1
- package/admin/i18n/en.json +21 -1
- package/admin/i18n/es.json +21 -1
- package/admin/i18n/fr.json +21 -1
- package/admin/i18n/it.json +21 -1
- package/admin/i18n/nl.json +21 -1
- package/admin/i18n/pl.json +21 -1
- package/admin/i18n/pt.json +21 -1
- package/admin/i18n/ru.json +21 -1
- package/admin/i18n/uk.json +21 -1
- package/admin/i18n/zh-cn.json +21 -1
- package/build/lib/catalog/types.js.map +2 -2
- package/build/lib/xml/catalog.js +60 -11
- package/build/lib/xml/catalog.js.map +2 -2
- package/build/lib/xml/device-controller.js +20 -2
- package/build/lib/xml/device-controller.js.map +2 -2
- package/build/lib/yxc/catalog.js +196 -26
- package/build/lib/yxc/catalog.js.map +2 -2
- package/build/lib/yxc/command-mapper.js +56 -14
- package/build/lib/yxc/command-mapper.js.map +2 -2
- package/build/lib/yxc/object-mapper.js +69 -8
- package/build/lib/yxc/object-mapper.js.map +2 -2
- package/io-package.json +27 -27
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -103,6 +103,14 @@ 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.2 (2026-09-03)
|
|
107
|
+
|
|
108
|
+
- (krobipd) Fixed: eight tuner and scene datapoints still showed no explanation on MusicCast and older XML receivers
|
|
109
|
+
|
|
110
|
+
### 2.3.1 (2026-09-03)
|
|
111
|
+
|
|
112
|
+
- (krobipd) Fixed: the new datapoint explanations were missing on MusicCast and older XML devices, so those users saw an empty description where the receiver has one
|
|
113
|
+
|
|
106
114
|
### 2.3.0 (2026-09-03)
|
|
107
115
|
|
|
108
116
|
- (krobipd) New: every datapoint and every folder now carries a short explanation in eleven languages, so the object tree tells you what a value actually means
|
|
@@ -126,27 +134,6 @@ On the very first contact the adapter asks the receiver which functions it suppo
|
|
|
126
134
|
|
|
127
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
|
|
128
136
|
|
|
129
|
-
### 2.1.0 (2026-09-02)
|
|
130
|
-
|
|
131
|
-
- (krobipd) New: every datapoint name is now shown in your ioBroker language, in eleven languages; a name you changed yourself stays untouched
|
|
132
|
-
- (krobipd) Fixed: the empty "Media server" folder left behind by the 2.0.0 object tree is removed, together with any other folder that no longer holds a datapoint
|
|
133
|
-
- (krobipd) Fixed: the menu view starts empty after a restart instead of still showing the menu from the last time you browsed
|
|
134
|
-
- (krobipd) Fixed: a receiver that gets a new address from your router is found again and reconnected there, instead of staying offline for good
|
|
135
|
-
- (krobipd) Fixed: deleting an automatically found receiver now really removes it — the connection is closed, its datapoints are gone, and the next search does not bring it back
|
|
136
|
-
- (krobipd) Fixed: the DAB date, the audio signal fields and the tuner preset list no longer show the receiver's own placeholder text — they stay empty, and only stored presets are listed
|
|
137
|
-
- (krobipd) Fixed: on a receiver with both an analogue and a DAB tuner the AM band stays selectable and every band change reaches the right tuner
|
|
138
|
-
- (krobipd) Fixed: a hiccup of the ioBroker database while the adapter starts no longer stops the instance — it says so in the log and keeps the receivers running
|
|
139
|
-
|
|
140
|
-
### 2.0.4 (2026-09-02)
|
|
141
|
-
|
|
142
|
-
- (krobipd) Fixed: a short outage of the ioBroker database no longer restarts the adapter — a failed write is logged once and the next value is written normally
|
|
143
|
-
- (krobipd) Fixed: the protocol badges on the device card are reset when a device starts and when the adapter stops, so a crash no longer leaves a green badge next to a red dot
|
|
144
|
-
- (krobipd) Fixed: stopping or restarting the adapter while it is still searching the network now stops it completely — it no longer keeps working half-started until the next restart
|
|
145
|
-
- (krobipd) Fixed: the scene list keeps its titles on MusicCast receivers that also answer over XML or YNCA — the title-less MusicCast list no longer replaces it at startup
|
|
146
|
-
- (krobipd) Fixed: a timeout while probing an older receiver for scenes or menus is asked again on the next connect instead of being remembered as "none" until the next restart
|
|
147
|
-
- (krobipd) Fixed: writing one equalizer band before the receiver reported all three no longer sends zeros for the other two — the zone status is fetched first
|
|
148
|
-
- (krobipd) Improved: a receiver that is off for a while is retried no later than the configured maximum wait, and an oversized answer from a wrong host can no longer eat the adapter's memory
|
|
149
|
-
|
|
150
137
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
151
138
|
|
|
152
139
|
## History
|
package/admin/i18n/de.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "Der Netzwerk-Port, auf dem der Receiver Steuerbefehle entgegennimmt.",
|
|
372
372
|
"descVolumeInterlock": "Ob ein AirPlay-Gerät die Lautstärke dieses Receivers ändern darf.",
|
|
373
373
|
"descElapsedTime": "In Sekunden, damit man damit rechnen kann; die lesbare Form steht daneben.",
|
|
374
|
-
"descTotalTime": "In Sekunden, damit man damit rechnen kann; die lesbare Form steht daneben."
|
|
374
|
+
"descTotalTime": "In Sekunden, damit man damit rechnen kann; die lesbare Form steht daneben.",
|
|
375
|
+
"descVolumeDB": "Dieselbe Lautstärke, wie sie das Display des Receivers zeigt, in Dezibel.",
|
|
376
|
+
"descVolumeDisplayMode": "Ob der Receiver die Lautstärke in Dezibel oder als schlichte Zahl anzeigt.",
|
|
377
|
+
"descAudioSelect": "Welchen Toneingang der gewählten Quelle der Receiver abhört.",
|
|
378
|
+
"descLinkControl": "Wägt Stabilität gegen Verzögerung ab, wenn an verbundene Geräte gestreamt wird.",
|
|
379
|
+
"descLinkAudioDelay": "Ob verbundene Geräte auf Lippensynchronität oder gleichen Ton achten.",
|
|
380
|
+
"descLinkAudioQuality": "Tonqualität, mit der an verbundene Geräte gestreamt wird.",
|
|
381
|
+
"descClearVoice": "Hebt Sprache aus dem Klangbild heraus — für Soundbars gedacht.",
|
|
382
|
+
"descBassExtension": "Dehnt den Bassbereich nach unten — bei kompakten Lautsprechern.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Lässt den Raumklang-Effekt der eingestellten Lautstärke folgen.",
|
|
384
|
+
"descSurround3D": "Erweitert das Klangfeld nach oben, für eine höhere Bühne.",
|
|
385
|
+
"descEqualizerMode": "Ob der Equalizer automatisch arbeitet oder mit Ihren eigenen Werten.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Ob diese Zone an andere MusicCast-Geräte streamen darf.",
|
|
387
|
+
"descYpaoVolume": "Hält die von der automatischen Einmessung gefundene Balance auch bei leiser Wiedergabe.",
|
|
388
|
+
"descDabStatus": "Wie weit das Digitalradio mit Einstellen oder Suchlauf ist.",
|
|
389
|
+
"descSignalQuality": "Wie sauber der Digitalsender empfangen wird.",
|
|
390
|
+
"descDabPlus": "Wahr, wenn der Sender das neuere, sparsamere Digitalformat nutzt.",
|
|
391
|
+
"descServiceCategory": "Ob dies der Hauptdienst des Senders ist oder ein Zusatzdienst.",
|
|
392
|
+
"descTotalStations": "Wie viele Digitalsender der letzte Suchlauf gefunden hat.",
|
|
393
|
+
"descInitialScanProgress": "Wie weit der erste Sendersuchlauf ist, in Prozent.",
|
|
394
|
+
"descTuneAidLevel": "Empfangsstärke — als Hilfe beim Ausrichten der Antenne gedacht."
|
|
375
395
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "The network port the receiver listens on for control commands.",
|
|
372
372
|
"descVolumeInterlock": "Whether an AirPlay device may change this receiver's volume.",
|
|
373
373
|
"descElapsedTime": "In seconds, so it can be calculated with; a readable form sits next to it.",
|
|
374
|
-
"descTotalTime": "In seconds, so it can be calculated with; a readable form sits next to it."
|
|
374
|
+
"descTotalTime": "In seconds, so it can be calculated with; a readable form sits next to it.",
|
|
375
|
+
"descVolumeDB": "The same volume as the receiver's own display shows it, in decibels.",
|
|
376
|
+
"descVolumeDisplayMode": "Whether the receiver shows volume in decibels or as a plain number.",
|
|
377
|
+
"descAudioSelect": "Which audio input of the selected source the receiver listens to.",
|
|
378
|
+
"descLinkControl": "Trades stability against delay when streaming to linked devices.",
|
|
379
|
+
"descLinkAudioDelay": "Whether linked devices favour lip sync or perfectly aligned audio.",
|
|
380
|
+
"descLinkAudioQuality": "Sound quality used when streaming to linked devices.",
|
|
381
|
+
"descClearVoice": "Lifts speech out of the mix, aimed at soundbars.",
|
|
382
|
+
"descBassExtension": "Stretches the low end downwards on compact speakers.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Lets the surround effect follow the volume setting.",
|
|
384
|
+
"descSurround3D": "Adds height to the surround field for a taller sound stage.",
|
|
385
|
+
"descEqualizerMode": "Whether the equalizer runs automatically or on your own settings.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Whether this zone is allowed to stream to other MusicCast devices.",
|
|
387
|
+
"descYpaoVolume": "Keeps the balance measured by the automatic room calibration at low volume.",
|
|
388
|
+
"descDabStatus": "How far the digital radio is with tuning or scanning.",
|
|
389
|
+
"descSignalQuality": "How cleanly the digital station is being received.",
|
|
390
|
+
"descDabPlus": "True when the station uses the newer, more efficient digital format.",
|
|
391
|
+
"descServiceCategory": "Whether this is the station's main service or a secondary one.",
|
|
392
|
+
"descTotalStations": "How many digital stations the last scan found.",
|
|
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."
|
|
375
395
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "El puerto de red en el que el receptor recibe órdenes de control.",
|
|
372
372
|
"descVolumeInterlock": "Si un aparato AirPlay puede cambiar el volumen de este receptor.",
|
|
373
373
|
"descElapsedTime": "En segundos, para poder calcular; la forma legible está al lado.",
|
|
374
|
-
"descTotalTime": "En segundos, para poder calcular; la forma legible está al lado."
|
|
374
|
+
"descTotalTime": "En segundos, para poder calcular; la forma legible está al lado.",
|
|
375
|
+
"descVolumeDB": "El mismo volumen que muestra la pantalla del receptor, en decibelios.",
|
|
376
|
+
"descVolumeDisplayMode": "Si el receptor muestra el volumen en decibelios o como número.",
|
|
377
|
+
"descAudioSelect": "Qué entrada de audio de la fuente elegida escucha el receptor.",
|
|
378
|
+
"descLinkControl": "Equilibra estabilidad y retardo al transmitir a aparatos enlazados.",
|
|
379
|
+
"descLinkAudioDelay": "Si los aparatos enlazados priorizan el sincronismo labial o el audio alineado.",
|
|
380
|
+
"descLinkAudioQuality": "Calidad de sonido al transmitir a aparatos enlazados.",
|
|
381
|
+
"descClearVoice": "Destaca la voz de la mezcla, pensado para barras de sonido.",
|
|
382
|
+
"descBassExtension": "Extiende los graves hacia abajo en altavoces compactos.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Hace que el efecto envolvente siga al volumen ajustado.",
|
|
384
|
+
"descSurround3D": "Añade altura al campo sonoro, para un escenario más alto.",
|
|
385
|
+
"descEqualizerMode": "Si el ecualizador funciona automáticamente o con sus ajustes.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Si esta zona puede transmitir a otros aparatos MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Mantiene el equilibrio de la calibración automática también a bajo volumen.",
|
|
388
|
+
"descDabStatus": "En qué punto está la radio digital con la sintonía o la búsqueda.",
|
|
389
|
+
"descSignalQuality": "Con qué limpieza se recibe la emisora digital.",
|
|
390
|
+
"descDabPlus": "Verdadero cuando la emisora usa el formato digital más reciente.",
|
|
391
|
+
"descServiceCategory": "Si este es el servicio principal de la emisora o uno secundario.",
|
|
392
|
+
"descTotalStations": "Cuántas emisoras digitales encontró la última búsqueda.",
|
|
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."
|
|
375
395
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "Le port réseau sur lequel l'ampli reçoit les commandes de pilotage.",
|
|
372
372
|
"descVolumeInterlock": "Si un appareil AirPlay peut modifier le volume de cet ampli.",
|
|
373
373
|
"descElapsedTime": "En secondes, pour pouvoir calculer ; la forme lisible est à côté.",
|
|
374
|
-
"descTotalTime": "En secondes, pour pouvoir calculer ; la forme lisible est à côté."
|
|
374
|
+
"descTotalTime": "En secondes, pour pouvoir calculer ; la forme lisible est à côté.",
|
|
375
|
+
"descVolumeDB": "Le même volume que l'afficheur de l'ampli, en décibels.",
|
|
376
|
+
"descVolumeDisplayMode": "Si l'ampli affiche le volume en décibels ou en nombre simple.",
|
|
377
|
+
"descAudioSelect": "Quelle entrée audio de la source choisie l'ampli écoute.",
|
|
378
|
+
"descLinkControl": "Arbitre entre stabilité et latence lors de la diffusion vers les appareils liés.",
|
|
379
|
+
"descLinkAudioDelay": "Si les appareils liés privilégient la synchro labiale ou l'audio aligné.",
|
|
380
|
+
"descLinkAudioQuality": "Qualité sonore utilisée pour la diffusion vers les appareils liés.",
|
|
381
|
+
"descClearVoice": "Détache la voix du mixage, prévu pour les barres de son.",
|
|
382
|
+
"descBassExtension": "Étend le grave vers le bas sur des enceintes compactes.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Fait suivre l'effet surround au niveau de volume réglé.",
|
|
384
|
+
"descSurround3D": "Ajoute de la hauteur au champ sonore, pour une scène plus haute.",
|
|
385
|
+
"descEqualizerMode": "Si l'égaliseur fonctionne automatiquement ou selon vos réglages.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Si cette zone est autorisée à diffuser vers d'autres appareils MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Conserve l'équilibre du calibrage automatique même à bas volume.",
|
|
388
|
+
"descDabStatus": "Où en est la radio numérique dans l'accord ou le balayage.",
|
|
389
|
+
"descSignalQuality": "Avec quelle propreté la station numérique est reçue.",
|
|
390
|
+
"descDabPlus": "Vrai quand la station utilise le format numérique plus récent.",
|
|
391
|
+
"descServiceCategory": "S'il s'agit du service principal de la station ou d'un service secondaire.",
|
|
392
|
+
"descTotalStations": "Combien de stations numériques le dernier balayage a trouvées.",
|
|
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."
|
|
375
395
|
}
|
package/admin/i18n/it.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "La porta di rete su cui il ricevitore riceve i comandi di controllo.",
|
|
372
372
|
"descVolumeInterlock": "Se un apparecchio AirPlay può cambiare il volume di questo ricevitore.",
|
|
373
373
|
"descElapsedTime": "In secondi, così è calcolabile; la forma leggibile è accanto.",
|
|
374
|
-
"descTotalTime": "In secondi, così è calcolabile; la forma leggibile è accanto."
|
|
374
|
+
"descTotalTime": "In secondi, così è calcolabile; la forma leggibile è accanto.",
|
|
375
|
+
"descVolumeDB": "Lo stesso volume mostrato dal display del ricevitore, in decibel.",
|
|
376
|
+
"descVolumeDisplayMode": "Se il ricevitore mostra il volume in decibel o come numero.",
|
|
377
|
+
"descAudioSelect": "Quale ingresso audio della sorgente scelta ascolta il ricevitore.",
|
|
378
|
+
"descLinkControl": "Bilancia stabilità e ritardo nello streaming verso apparecchi collegati.",
|
|
379
|
+
"descLinkAudioDelay": "Se gli apparecchi collegati privilegiano il sincronismo labiale o l'audio allineato.",
|
|
380
|
+
"descLinkAudioQuality": "Qualità audio usata nello streaming verso apparecchi collegati.",
|
|
381
|
+
"descClearVoice": "Stacca il parlato dal missaggio, pensato per le soundbar.",
|
|
382
|
+
"descBassExtension": "Estende i bassi verso il basso su diffusori compatti.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Fa seguire l'effetto surround al volume impostato.",
|
|
384
|
+
"descSurround3D": "Aggiunge altezza al campo sonoro, per un palco più alto.",
|
|
385
|
+
"descEqualizerMode": "Se l'equalizzatore lavora in automatico o con i vostri valori.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Se questa zona può trasmettere ad altri apparecchi MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Mantiene l'equilibrio della taratura automatica anche a basso volume.",
|
|
388
|
+
"descDabStatus": "A che punto è la radio digitale con sintonia o ricerca.",
|
|
389
|
+
"descSignalQuality": "Con quanta pulizia viene ricevuta la stazione digitale.",
|
|
390
|
+
"descDabPlus": "Vero quando la stazione usa il formato digitale più recente.",
|
|
391
|
+
"descServiceCategory": "Se questo è il servizio principale della stazione o uno secondario.",
|
|
392
|
+
"descTotalStations": "Quante stazioni digitali ha trovato l'ultima ricerca.",
|
|
393
|
+
"descInitialScanProgress": "A che punto è la prima ricerca delle stazioni, in percentuale.",
|
|
394
|
+
"descTuneAidLevel": "Intensità di ricezione, come aiuto nell'orientare l'antenna."
|
|
375
395
|
}
|
package/admin/i18n/nl.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "De netwerkpoort waarop de receiver stuurcommando's ontvangt.",
|
|
372
372
|
"descVolumeInterlock": "Of een AirPlay-apparaat het volume van deze receiver mag wijzigen.",
|
|
373
373
|
"descElapsedTime": "In seconden, zodat ermee gerekend kan worden; de leesbare vorm staat ernaast.",
|
|
374
|
-
"descTotalTime": "In seconden, zodat ermee gerekend kan worden; de leesbare vorm staat ernaast."
|
|
374
|
+
"descTotalTime": "In seconden, zodat ermee gerekend kan worden; de leesbare vorm staat ernaast.",
|
|
375
|
+
"descVolumeDB": "Hetzelfde volume als op het display van de receiver, in decibel.",
|
|
376
|
+
"descVolumeDisplayMode": "Of de receiver het volume in decibel of als getal toont.",
|
|
377
|
+
"descAudioSelect": "Naar welke geluidsingang van de gekozen bron de receiver luistert.",
|
|
378
|
+
"descLinkControl": "Weegt stabiliteit tegen vertraging af bij streamen naar gekoppelde apparaten.",
|
|
379
|
+
"descLinkAudioDelay": "Of gekoppelde apparaten lipsynchroon of gelijk geluid verkiezen.",
|
|
380
|
+
"descLinkAudioQuality": "Geluidskwaliteit bij streamen naar gekoppelde apparaten.",
|
|
381
|
+
"descClearVoice": "Tilt spraak uit het geluidsbeeld, bedoeld voor soundbars.",
|
|
382
|
+
"descBassExtension": "Rekt het laag naar beneden bij compacte luidsprekers.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Laat het surroundeffect het ingestelde volume volgen.",
|
|
384
|
+
"descSurround3D": "Voegt hoogte toe aan het klankbeeld, voor een hoger podium.",
|
|
385
|
+
"descEqualizerMode": "Of de equalizer automatisch werkt of op uw eigen instellingen.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Of deze zone naar andere MusicCast-apparaten mag streamen.",
|
|
387
|
+
"descYpaoVolume": "Behoudt de balans van de automatische inmeting ook bij laag volume.",
|
|
388
|
+
"descDabStatus": "Hoe ver de digitale radio is met afstemmen of zoeken.",
|
|
389
|
+
"descSignalQuality": "Hoe schoon de digitale zender wordt ontvangen.",
|
|
390
|
+
"descDabPlus": "Waar wanneer de zender het nieuwere, zuinigere formaat gebruikt.",
|
|
391
|
+
"descServiceCategory": "Of dit de hoofddienst van de zender is of een nevendienst.",
|
|
392
|
+
"descTotalStations": "Hoeveel digitale zenders de laatste zoekactie vond.",
|
|
393
|
+
"descInitialScanProgress": "Hoe ver de eerste zenderzoekactie is, in procent.",
|
|
394
|
+
"descTuneAidLevel": "Ontvangststerkte, als hulp bij het richten van de antenne."
|
|
375
395
|
}
|
package/admin/i18n/pl.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "Port sieciowy, na którym amplituner przyjmuje polecenia sterujące.",
|
|
372
372
|
"descVolumeInterlock": "Czy urządzenie AirPlay może zmieniać głośność tego amplitunera.",
|
|
373
373
|
"descElapsedTime": "W sekundach, by dało się liczyć; czytelna forma obok.",
|
|
374
|
-
"descTotalTime": "W sekundach, by dało się liczyć; czytelna forma obok."
|
|
374
|
+
"descTotalTime": "W sekundach, by dało się liczyć; czytelna forma obok.",
|
|
375
|
+
"descVolumeDB": "Ta sama głośność co na wyświetlaczu amplitunera, w decybelach.",
|
|
376
|
+
"descVolumeDisplayMode": "Czy amplituner pokazuje głośność w decybelach, czy jako liczbę.",
|
|
377
|
+
"descAudioSelect": "Którego wejścia audio wybranego źródła słucha amplituner.",
|
|
378
|
+
"descLinkControl": "Równoważy stabilność i opóźnienie przy przesyłaniu do połączonych urządzeń.",
|
|
379
|
+
"descLinkAudioDelay": "Czy połączone urządzenia stawiają na synchronizację z obrazem, czy równy dźwięk.",
|
|
380
|
+
"descLinkAudioQuality": "Jakość dźwięku przy przesyłaniu do połączonych urządzeń.",
|
|
381
|
+
"descClearVoice": "Wydobywa mowę z miksu, z myślą o soundbarach.",
|
|
382
|
+
"descBassExtension": "Rozciąga niskie tony w dół w małych głośnikach.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Sprawia, że efekt przestrzenny podąża za ustawioną głośnością.",
|
|
384
|
+
"descSurround3D": "Dodaje wysokości scenie dźwiękowej.",
|
|
385
|
+
"descEqualizerMode": "Czy korektor działa automatycznie, czy na własnych ustawieniach.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Czy ta strefa może przesyłać do innych urządzeń MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Utrzymuje balans automatycznej kalibracji także przy małej głośności.",
|
|
388
|
+
"descDabStatus": "Na jakim etapie strojenia lub wyszukiwania jest radio cyfrowe.",
|
|
389
|
+
"descSignalQuality": "Jak czysto odbierana jest stacja cyfrowa.",
|
|
390
|
+
"descDabPlus": "Prawda, gdy stacja używa nowszego, oszczędniejszego formatu.",
|
|
391
|
+
"descServiceCategory": "Czy to główna usługa stacji, czy dodatkowa.",
|
|
392
|
+
"descTotalStations": "Ile stacji cyfrowych znalazło ostatnie wyszukiwanie.",
|
|
393
|
+
"descInitialScanProgress": "Jak daleko zaszło pierwsze wyszukiwanie stacji, w procentach.",
|
|
394
|
+
"descTuneAidLevel": "Siła odbioru, jako pomoc przy ustawianiu anteny."
|
|
375
395
|
}
|
package/admin/i18n/pt.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "A porta de rede em que o recetor recebe comandos de controlo.",
|
|
372
372
|
"descVolumeInterlock": "Se um aparelho AirPlay pode alterar o volume deste recetor.",
|
|
373
373
|
"descElapsedTime": "Em segundos, para poder calcular; a forma legível está ao lado.",
|
|
374
|
-
"descTotalTime": "Em segundos, para poder calcular; a forma legível está ao lado."
|
|
374
|
+
"descTotalTime": "Em segundos, para poder calcular; a forma legível está ao lado.",
|
|
375
|
+
"descVolumeDB": "O mesmo volume que o visor do recetor mostra, em decibéis.",
|
|
376
|
+
"descVolumeDisplayMode": "Se o recetor mostra o volume em decibéis ou como número simples.",
|
|
377
|
+
"descAudioSelect": "Que entrada de áudio da fonte escolhida o recetor escuta.",
|
|
378
|
+
"descLinkControl": "Equilibra estabilidade e atraso ao transmitir para aparelhos ligados.",
|
|
379
|
+
"descLinkAudioDelay": "Se os aparelhos ligados privilegiam o sincronismo labial ou o áudio alinhado.",
|
|
380
|
+
"descLinkAudioQuality": "Qualidade de som usada na transmissão para aparelhos ligados.",
|
|
381
|
+
"descClearVoice": "Destaca a fala da mistura, pensado para barras de som.",
|
|
382
|
+
"descBassExtension": "Estende os graves para baixo em colunas compactas.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Faz o efeito surround acompanhar o volume definido.",
|
|
384
|
+
"descSurround3D": "Acrescenta altura ao campo sonoro, para um palco mais alto.",
|
|
385
|
+
"descEqualizerMode": "Se o equalizador funciona automaticamente ou com os seus valores.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Se esta zona pode transmitir para outros aparelhos MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Mantém o equilíbrio da calibração automática também em volume baixo.",
|
|
388
|
+
"descDabStatus": "Em que ponto está o rádio digital na sintonia ou na busca.",
|
|
389
|
+
"descSignalQuality": "Com que limpeza a estação digital é recebida.",
|
|
390
|
+
"descDabPlus": "Verdadeiro quando a estação usa o formato digital mais recente.",
|
|
391
|
+
"descServiceCategory": "Se este é o serviço principal da estação ou um secundário.",
|
|
392
|
+
"descTotalStations": "Quantas estações digitais a última busca encontrou.",
|
|
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."
|
|
375
395
|
}
|
package/admin/i18n/ru.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "Сетевой порт, на котором ресивер принимает команды управления.",
|
|
372
372
|
"descVolumeInterlock": "Может ли устройство AirPlay менять громкость этого ресивера.",
|
|
373
373
|
"descElapsedTime": "В секундах, чтобы с этим можно было считать; читаемая форма рядом.",
|
|
374
|
-
"descTotalTime": "В секундах, чтобы с этим можно было считать; читаемая форма рядом."
|
|
374
|
+
"descTotalTime": "В секундах, чтобы с этим можно было считать; читаемая форма рядом.",
|
|
375
|
+
"descVolumeDB": "Та же громкость, что показывает дисплей ресивера, в децибелах.",
|
|
376
|
+
"descVolumeDisplayMode": "Показывает ли ресивер громкость в децибелах или простым числом.",
|
|
377
|
+
"descAudioSelect": "Какой аудиовход выбранного источника слушает ресивер.",
|
|
378
|
+
"descLinkControl": "Баланс стабильности и задержки при передаче на связанные устройства.",
|
|
379
|
+
"descLinkAudioDelay": "Что важнее связанным устройствам: синхрон с картинкой или ровный звук.",
|
|
380
|
+
"descLinkAudioQuality": "Качество звука при передаче на связанные устройства.",
|
|
381
|
+
"descClearVoice": "Выделяет речь из общего звучания — для саундбаров.",
|
|
382
|
+
"descBassExtension": "Расширяет низы вниз на компактных колонках.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Позволяет эффекту объёма следовать за громкостью.",
|
|
384
|
+
"descSurround3D": "Добавляет высоту звуковому полю — сцена становится выше.",
|
|
385
|
+
"descEqualizerMode": "Работает ли эквалайзер автоматически или по вашим настройкам.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Разрешено ли этой зоне вещать на другие устройства MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Сохраняет баланс автокалибровки комнаты и на малой громкости.",
|
|
388
|
+
"descDabStatus": "На каком этапе настройки или поиска находится цифровое радио.",
|
|
389
|
+
"descSignalQuality": "Насколько чисто принимается цифровая станция.",
|
|
390
|
+
"descDabPlus": "Истина, если станция использует более новый экономичный формат.",
|
|
391
|
+
"descServiceCategory": "Основная это служба станции или дополнительная.",
|
|
392
|
+
"descTotalStations": "Сколько цифровых станций нашёл последний поиск.",
|
|
393
|
+
"descInitialScanProgress": "Насколько продвинулся первый поиск станций, в процентах.",
|
|
394
|
+
"descTuneAidLevel": "Уровень приёма — в помощь при наведении антенны."
|
|
375
395
|
}
|
package/admin/i18n/uk.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "Мережевий порт, на якому ресивер приймає команди керування.",
|
|
372
372
|
"descVolumeInterlock": "Чи може пристрій AirPlay змінювати гучність цього ресивера.",
|
|
373
373
|
"descElapsedTime": "У секундах, щоб можна було рахувати; зручна форма поруч.",
|
|
374
|
-
"descTotalTime": "У секундах, щоб можна було рахувати; зручна форма поруч."
|
|
374
|
+
"descTotalTime": "У секундах, щоб можна було рахувати; зручна форма поруч.",
|
|
375
|
+
"descVolumeDB": "Та сама гучність, що на дисплеї ресивера, у децибелах.",
|
|
376
|
+
"descVolumeDisplayMode": "Чи показує ресивер гучність у децибелах, чи простим числом.",
|
|
377
|
+
"descAudioSelect": "Який аудіовхід обраного джерела слухає ресивер.",
|
|
378
|
+
"descLinkControl": "Баланс стабільності та затримки при передачі на пов'язані пристрої.",
|
|
379
|
+
"descLinkAudioDelay": "Що важливіше пов'язаним пристроям: синхрон із зображенням чи рівний звук.",
|
|
380
|
+
"descLinkAudioQuality": "Якість звуку при передачі на пов'язані пристрої.",
|
|
381
|
+
"descClearVoice": "Виділяє мовлення із загального звучання — для саундбарів.",
|
|
382
|
+
"descBassExtension": "Розширює низи вниз на компактних колонках.",
|
|
383
|
+
"descAdaptiveDSPLevel": "Дає ефекту об'ємного звуку слідувати за гучністю.",
|
|
384
|
+
"descSurround3D": "Додає висоти звуковому полю — сцена стає вищою.",
|
|
385
|
+
"descEqualizerMode": "Чи працює еквалайзер автоматично, чи за вашими налаштуваннями.",
|
|
386
|
+
"descMultiroomStreamingEnabled": "Чи дозволено цій зоні транслювати на інші пристрої MusicCast.",
|
|
387
|
+
"descYpaoVolume": "Зберігає баланс автокалібрування кімнати й на малій гучності.",
|
|
388
|
+
"descDabStatus": "На якому етапі налаштування чи пошуку цифрове радіо.",
|
|
389
|
+
"descSignalQuality": "Наскільки чисто приймається цифрова станція.",
|
|
390
|
+
"descDabPlus": "Істина, коли станція використовує новіший, ощадливіший формат.",
|
|
391
|
+
"descServiceCategory": "Чи це основна служба станції, чи додаткова.",
|
|
392
|
+
"descTotalStations": "Скільки цифрових станцій знайшов останній пошук.",
|
|
393
|
+
"descInitialScanProgress": "Наскільки просунувся перший пошук станцій, у відсотках.",
|
|
394
|
+
"descTuneAidLevel": "Сила прийому — на допомогу при наведенні антени."
|
|
375
395
|
}
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -371,5 +371,25 @@
|
|
|
371
371
|
"descYncaControlPort": "功放接收控制命令所监听的网络端口。",
|
|
372
372
|
"descVolumeInterlock": "AirPlay 设备是否可以改变本功放的音量。",
|
|
373
373
|
"descElapsedTime": "以秒为单位便于计算;易读形式在旁边。",
|
|
374
|
-
"descTotalTime": "以秒为单位便于计算;易读形式在旁边。"
|
|
374
|
+
"descTotalTime": "以秒为单位便于计算;易读形式在旁边。",
|
|
375
|
+
"descVolumeDB": "与功放显示屏一致的音量,单位分贝。",
|
|
376
|
+
"descVolumeDisplayMode": "功放以分贝还是普通数字显示音量。",
|
|
377
|
+
"descAudioSelect": "功放监听所选音源的哪一路音频输入。",
|
|
378
|
+
"descLinkControl": "向联动设备串流时在稳定性与延迟之间取舍。",
|
|
379
|
+
"descLinkAudioDelay": "联动设备优先唇形同步还是音频对齐。",
|
|
380
|
+
"descLinkAudioQuality": "向联动设备串流时使用的音质。",
|
|
381
|
+
"descClearVoice": "把人声从整体声音中突出出来,面向回音壁。",
|
|
382
|
+
"descBassExtension": "在紧凑型音箱上向下延伸低频。",
|
|
383
|
+
"descAdaptiveDSPLevel": "让环绕效果随音量设置变化。",
|
|
384
|
+
"descSurround3D": "为环绕声场增加高度,营造更高的声场。",
|
|
385
|
+
"descEqualizerMode": "均衡器是自动运行,还是按您的设定。",
|
|
386
|
+
"descMultiroomStreamingEnabled": "本分区是否允许向其他 MusicCast 设备串流。",
|
|
387
|
+
"descYpaoVolume": "在低音量下仍保持自动房间校准得出的平衡。",
|
|
388
|
+
"descDabStatus": "数字广播的调谐或搜台进行到哪一步。",
|
|
389
|
+
"descSignalQuality": "数字电台的接收纯净程度。",
|
|
390
|
+
"descDabPlus": "电台使用更新、更高效的数字格式时为真。",
|
|
391
|
+
"descServiceCategory": "这是电台的主服务还是附属服务。",
|
|
392
|
+
"descTotalStations": "上次搜台找到的数字电台数量。",
|
|
393
|
+
"descInitialScanProgress": "首次搜台的进度百分比。",
|
|
394
|
+
"descTuneAidLevel": "接收强度,用于辅助调整天线方向。"
|
|
375
395
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/lib/catalog/types.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ValueSpec } from \"./value-coerce\";\nimport type { I18nKey } from \"../i18n\";\n\n/**\n * One catalogued device function \u2192 one ioBroker state. The catalog is\n * device-agnostic: it lists every function a protocol can expose; the\n * per-device mapper picks the entries the device actually reports.\n *\n * **Single source rule.** Each protocol catalog extends this with its own\n * protocol key (YNCA: the subunit function name; YXC: the getStatus field +\n * write method; XML: the Basic_Status field + PUT builder). The init sweep, the\n * device\u2192state read-back and the user-write encode are all derived from that one\n * extended list \u2014 never a second state\u2194function table beside the catalog (the\n * `AMP_STATES` vs `STATE_MAPPINGS` split this rewrite removes). `catalogToObjects`\n * reads only the object fields below and ignores the protocol key.\n */\nexport interface CatalogEntry {\n /** State id relative to the device \u2014 dotted for a channel (e.g. `power`, `sound.bass`, `zone2.power`). */\n id: string;\n /**\n * The object's display name, as its translation KEY (the English text, which is also the key\n * in `admin/i18n`). The catalogs are module-level constants, built before the adapter starts\n * \u2014 so they carry the key and {@link catalogToObjects} resolves it into all eleven languages.\n */\n nameKey: I18nKey;\n /**\n * Values substituted into the name key's `%s` placeholders, in order. Lets a family of\n * datapoints built in a loop carry distinguishable names (the assignable input names)\n * instead of all sharing the family's label.\n */\n nameArgs?: Array<string | number>;\n /**\n * The datapoint's EXPLANATION, as its translation key (fleet standard\n * `feedback_beschreibung_ist_erklaerung`): one short sentence saying what the value means,\n * never the protocol identifier and never the name again. Deliberately OPTIONAL \u2014 where a\n * datapoint explains itself (`power`, `volume`, `artist`) an invented sentence would be\n * noise, and the standard asks for an empty field rather than filler. What must never\n * happen is a SILENT gap, so every catalog entry without a key is listed by name in\n * `SELF_EXPLANATORY` and the manifest test refuses an entry that is in neither.\n */\n descKey?: I18nKey;\n /** Value semantics \u2014 drives type/role/states/range via {@link ValueSpec}. */\n spec: ValueSpec;\n /** Whether the user can write this state. */\n write: boolean;\n /** Explicit ioBroker role; when omitted it is derived from the spec kind. */\n role?: string;\n}\n\n/** An object to create in the device tree: a state or a channel. */\nexport interface ObjectDef {\n /** Object id relative to the device. */\n id: string;\n /** Object kind. */\n type: \"state\" | \"channel\";\n /** ioBroker common part. */\n common: {\n /** Resolved to all admin languages \u2014 never a plain string (state-role gate). */\n name: ioBroker.StringOrTranslated;\n type?: \"boolean\" | \"number\" | \"string\";\n role?: string;\n read?: boolean;\n write?: boolean;\n unit?: string;\n min?: number;\n max?: number;\n step?: number;\n states?: Record<string, string>;\n };\n}\n\n/**\n * Display names for the channel ids the catalogs use. A channel id not listed\n * here falls back to its capitalised segment, so a new channel still renders \u2014 but\n * every channel a catalog actually creates is named here, so nothing shows a raw id\n * like \"Pc\" or \"Ipod\" in the object browser. Keys match the real channel segments\n * (verified against the built catalogs); do not add speculative entries.\n */\n/**\n * Explanations for the channel ids that need one \u2014 the folders whose purpose is not obvious\n * from their name. Same rule as {@link CatalogEntry.descKey}: a folder that explains itself\n * (`sound`, `tuner`, a source name like `spotify`) stays out, because the fleet standard wants\n * an empty description rather than filler. Keys are the identifiers in `admin/i18n`.\n */\nexport const CHANNEL_DESC_KEYS: Record<string, I18nKey> = {\n info: \"descChannelInfo\",\n zoneB: \"descChannelZoneB\",\n advanced: \"descChannelAdvanced\",\n speakers: \"descChannelSpeakers\",\n scene: \"descChannelScene\",\n remote: \"descChannelRemote\",\n inputNames: \"descChannelInputNames\",\n initialVolume: \"descChannelInitialVolume\",\n equalizer: \"descChannelEqualizer\",\n signal: \"descChannelSignal\",\n dab: \"descChannelDab\",\n player: \"descChannelPlayer\",\n multiroom: \"descChannelMultiroom\",\n group: \"descChannelGroup\",\n musicCastLink: \"descChannelMusicCastLink\",\n browse: \"descChannelBrowse\",\n};\n\nexport const CHANNEL_NAME_KEYS: Record<string, I18nKey> = {\n // Device info (metadata beside the per-device connection indicator)\n info: \"info\",\n // Zones\n zone2: \"zone2\",\n zone3: \"zone3\",\n zone4: \"zone4\",\n zoneB: \"zoneB\",\n // Amplifier groups\n sound: \"sound\",\n advanced: \"advanced\",\n hdmi: \"hdmi\",\n speakers: \"speakers\",\n scene: \"scenes\",\n remote: \"remoteControl\",\n inputNames: \"inputNames\",\n initialVolume: \"initialVolume\",\n equalizer: \"equalizer\",\n signal: \"audioSignal\",\n // Tuner\n tuner: \"tuner\",\n dab: \"dab\",\n // Media player container + multiroom\n player: \"mediaPlayer\",\n multiroom: \"multiroom\",\n // The MusicCast-Link folder under multiroom \u2014 a group of linked DEVICES, not zones.\n group: \"musiccastGroupLinkedDevices\",\n // Media player sources\n netRadio: \"netRadio\",\n server: \"mediaServer\",\n usb: \"usb\",\n spotify: \"spotify\",\n deezer: \"deezer\",\n tidal: \"tidal\",\n napster: \"napster\",\n pandora: \"pandora\",\n rhapsody: \"rhapsody\",\n sirius: \"siriusxm\",\n airplay: \"airplay\",\n bluetooth: \"bluetooth\",\n pc: \"pc\",\n musicCastLink: \"musiccastLink\",\n ipod: \"iPod\",\n ipodUsb: \"ipodUSB\",\n // YXC/XML media channels\n cd: \"cd\",\n netPlayer: \"networkPlayer\",\n clock: \"clock\",\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import type { ValueSpec } from \"./value-coerce\";\nimport type { I18nKey } from \"../i18n\";\n\n/**\n * One catalogued device function \u2192 one ioBroker state. The catalog is\n * device-agnostic: it lists every function a protocol can expose; the\n * per-device mapper picks the entries the device actually reports.\n *\n * **Single source rule.** Each protocol catalog extends this with its own\n * protocol key (YNCA: the subunit function name; YXC: the getStatus field +\n * write method; XML: the Basic_Status field + PUT builder). The init sweep, the\n * device\u2192state read-back and the user-write encode are all derived from that one\n * extended list \u2014 never a second state\u2194function table beside the catalog (the\n * `AMP_STATES` vs `STATE_MAPPINGS` split this rewrite removes). `catalogToObjects`\n * reads only the object fields below and ignores the protocol key.\n */\nexport interface CatalogEntry {\n /** State id relative to the device \u2014 dotted for a channel (e.g. `power`, `sound.bass`, `zone2.power`). */\n id: string;\n /**\n * The object's display name, as its translation KEY (the English text, which is also the key\n * in `admin/i18n`). The catalogs are module-level constants, built before the adapter starts\n * \u2014 so they carry the key and {@link catalogToObjects} resolves it into all eleven languages.\n */\n nameKey: I18nKey;\n /**\n * Values substituted into the name key's `%s` placeholders, in order. Lets a family of\n * datapoints built in a loop carry distinguishable names (the assignable input names)\n * instead of all sharing the family's label.\n */\n nameArgs?: Array<string | number>;\n /**\n * The datapoint's EXPLANATION, as its translation key (fleet standard\n * `feedback_beschreibung_ist_erklaerung`): one short sentence saying what the value means,\n * never the protocol identifier and never the name again. Deliberately OPTIONAL \u2014 where a\n * datapoint explains itself (`power`, `volume`, `artist`) an invented sentence would be\n * noise, and the standard asks for an empty field rather than filler. What must never\n * happen is a SILENT gap, so every catalog entry without a key is listed by name in\n * `SELF_EXPLANATORY` and the manifest test refuses an entry that is in neither.\n */\n descKey?: I18nKey;\n /** Value semantics \u2014 drives type/role/states/range via {@link ValueSpec}. */\n spec: ValueSpec;\n /** Whether the user can write this state. */\n write: boolean;\n /** Explicit ioBroker role; when omitted it is derived from the spec kind. */\n role?: string;\n}\n\n/** An object to create in the device tree: a state or a channel. */\nexport interface ObjectDef {\n /** Object id relative to the device. */\n id: string;\n /** Object kind. */\n type: \"state\" | \"channel\";\n /** ioBroker common part. */\n common: {\n /** Resolved to all admin languages \u2014 never a plain string (state-role gate). */\n name: ioBroker.StringOrTranslated;\n /**\n * The datapoint's explanation, resolved to all admin languages. Absent where the datapoint\n * explains itself \u2014 the fleet standard wants an empty field there, not invented prose.\n * The field was MISSING from this type until 2026-09-03, which is why the tuner and scene\n * datapoints built directly by the MusicCast and XML controllers could never carry one:\n * the catalogs had the key, the object type had nowhere to put it.\n */\n desc?: ioBroker.StringOrTranslated;\n type?: \"boolean\" | \"number\" | \"string\";\n role?: string;\n read?: boolean;\n write?: boolean;\n unit?: string;\n min?: number;\n max?: number;\n step?: number;\n states?: Record<string, string>;\n };\n}\n\n/**\n * Display names for the channel ids the catalogs use. A channel id not listed\n * here falls back to its capitalised segment, so a new channel still renders \u2014 but\n * every channel a catalog actually creates is named here, so nothing shows a raw id\n * like \"Pc\" or \"Ipod\" in the object browser. Keys match the real channel segments\n * (verified against the built catalogs); do not add speculative entries.\n */\n/**\n * Explanations for the channel ids that need one \u2014 the folders whose purpose is not obvious\n * from their name. Same rule as {@link CatalogEntry.descKey}: a folder that explains itself\n * (`sound`, `tuner`, a source name like `spotify`) stays out, because the fleet standard wants\n * an empty description rather than filler. Keys are the identifiers in `admin/i18n`.\n */\nexport const CHANNEL_DESC_KEYS: Record<string, I18nKey> = {\n info: \"descChannelInfo\",\n zoneB: \"descChannelZoneB\",\n advanced: \"descChannelAdvanced\",\n speakers: \"descChannelSpeakers\",\n scene: \"descChannelScene\",\n remote: \"descChannelRemote\",\n inputNames: \"descChannelInputNames\",\n initialVolume: \"descChannelInitialVolume\",\n equalizer: \"descChannelEqualizer\",\n signal: \"descChannelSignal\",\n dab: \"descChannelDab\",\n player: \"descChannelPlayer\",\n multiroom: \"descChannelMultiroom\",\n group: \"descChannelGroup\",\n musicCastLink: \"descChannelMusicCastLink\",\n browse: \"descChannelBrowse\",\n};\n\nexport const CHANNEL_NAME_KEYS: Record<string, I18nKey> = {\n // Device info (metadata beside the per-device connection indicator)\n info: \"info\",\n // Zones\n zone2: \"zone2\",\n zone3: \"zone3\",\n zone4: \"zone4\",\n zoneB: \"zoneB\",\n // Amplifier groups\n sound: \"sound\",\n advanced: \"advanced\",\n hdmi: \"hdmi\",\n speakers: \"speakers\",\n scene: \"scenes\",\n remote: \"remoteControl\",\n inputNames: \"inputNames\",\n initialVolume: \"initialVolume\",\n equalizer: \"equalizer\",\n signal: \"audioSignal\",\n // Tuner\n tuner: \"tuner\",\n dab: \"dab\",\n // Media player container + multiroom\n player: \"mediaPlayer\",\n multiroom: \"multiroom\",\n // The MusicCast-Link folder under multiroom \u2014 a group of linked DEVICES, not zones.\n group: \"musiccastGroupLinkedDevices\",\n // Media player sources\n netRadio: \"netRadio\",\n server: \"mediaServer\",\n usb: \"usb\",\n spotify: \"spotify\",\n deezer: \"deezer\",\n tidal: \"tidal\",\n napster: \"napster\",\n pandora: \"pandora\",\n rhapsody: \"rhapsody\",\n sirius: \"siriusxm\",\n airplay: \"airplay\",\n bluetooth: \"bluetooth\",\n pc: \"pc\",\n musicCastLink: \"musiccastLink\",\n ipod: \"iPod\",\n ipodUsb: \"ipodUSB\",\n // YXC/XML media channels\n cd: \"cd\",\n netPlayer: \"networkPlayer\",\n clock: \"clock\",\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4FO,MAAM,oBAA6C;AAAA,EACxD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,MAAM,oBAA6C;AAAA;AAAA,EAExD,MAAM;AAAA;AAAA,EAEN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA;AAAA,EAEP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,EACP,KAAK;AAAA;AAAA,EAEL,QAAQ;AAAA,EACR,WAAW;AAAA;AAAA,EAEX,OAAO;AAAA;AAAA,EAEP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,MAAM;AAAA,EACN,SAAS;AAAA;AAAA,EAET,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,OAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/lib/xml/catalog.js
CHANGED
|
@@ -59,31 +59,52 @@ const XML_AMP_CATALOG = [
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
state: "soundProgram",
|
|
62
|
-
common: {
|
|
62
|
+
common: {
|
|
63
|
+
nameKey: "soundProgram",
|
|
64
|
+
descKey: "descSoundProgram",
|
|
65
|
+
type: "string",
|
|
66
|
+
role: "state",
|
|
67
|
+
read: true,
|
|
68
|
+
write: true
|
|
69
|
+
},
|
|
63
70
|
statusField: "soundProgram",
|
|
64
71
|
toInner: (value) => `<Surround><Program_Sel><Current><Sound_Program>${(0, import_entities.escapeXmlText)(value)}</Sound_Program></Current></Program_Sel></Surround>`
|
|
65
72
|
},
|
|
66
73
|
{
|
|
67
74
|
state: "sound.pureDirect",
|
|
68
|
-
common: {
|
|
75
|
+
common: {
|
|
76
|
+
nameKey: "pureDirect",
|
|
77
|
+
descKey: "descPureDirect",
|
|
78
|
+
type: "boolean",
|
|
79
|
+
role: "switch",
|
|
80
|
+
read: true,
|
|
81
|
+
write: true
|
|
82
|
+
},
|
|
69
83
|
statusField: "pureDirect",
|
|
70
84
|
toInner: (value) => `<Sound_Video><Pure_Direct><Mode>${value ? "On" : "Off"}</Mode></Pure_Direct></Sound_Video>`
|
|
71
85
|
},
|
|
72
86
|
{
|
|
73
87
|
state: "sound.straight",
|
|
74
|
-
common: { nameKey: "straight", type: "boolean", role: "switch", read: true, write: true },
|
|
88
|
+
common: { nameKey: "straight", descKey: "descStraight", type: "boolean", role: "switch", read: true, write: true },
|
|
75
89
|
statusField: "straight",
|
|
76
90
|
toInner: (value) => `<Surround><Program_Sel><Current><Straight>${value ? "On" : "Off"}</Straight></Current></Program_Sel></Surround>`
|
|
77
91
|
},
|
|
78
92
|
{
|
|
79
93
|
state: "sound.direct",
|
|
80
|
-
common: { nameKey: "direct", type: "boolean", role: "switch", read: true, write: true },
|
|
94
|
+
common: { nameKey: "direct", descKey: "descDirect", type: "boolean", role: "switch", read: true, write: true },
|
|
81
95
|
statusField: "direct",
|
|
82
96
|
toInner: (value) => `<Sound_Video><Direct><Mode>${value ? "On" : "Off"}</Mode></Direct></Sound_Video>`
|
|
83
97
|
},
|
|
84
98
|
{
|
|
85
99
|
state: "sound.adaptiveDrc",
|
|
86
|
-
common: {
|
|
100
|
+
common: {
|
|
101
|
+
nameKey: "adaptiveDRC",
|
|
102
|
+
descKey: "descAdaptiveDRC",
|
|
103
|
+
type: "string",
|
|
104
|
+
role: "state",
|
|
105
|
+
read: true,
|
|
106
|
+
write: true
|
|
107
|
+
},
|
|
87
108
|
statusField: "adaptiveDrc",
|
|
88
109
|
toInner: (value) => `<Sound_Video><Adaptive_DRC>${(0, import_entities.escapeXmlText)(value)}</Adaptive_DRC></Sound_Video>`
|
|
89
110
|
},
|
|
@@ -91,7 +112,14 @@ const XML_AMP_CATALOG = [
|
|
|
91
112
|
// Read-only: openHAB reads the Dialogue_Lvl path, but the write value structure
|
|
92
113
|
// (Val/Exp/Unit vs bare) is not confirmed by a reference, so no write is offered.
|
|
93
114
|
state: "sound.dialogueLevel",
|
|
94
|
-
common: {
|
|
115
|
+
common: {
|
|
116
|
+
nameKey: "dialogueLevel",
|
|
117
|
+
descKey: "descDialogueLevel",
|
|
118
|
+
type: "number",
|
|
119
|
+
role: "value",
|
|
120
|
+
read: true,
|
|
121
|
+
write: false
|
|
122
|
+
},
|
|
95
123
|
statusField: "dialogueLevel"
|
|
96
124
|
},
|
|
97
125
|
{
|
|
@@ -156,13 +184,27 @@ const XML_AMP_CATALOG = [
|
|
|
156
184
|
},
|
|
157
185
|
{
|
|
158
186
|
state: "sound.extraBass",
|
|
159
|
-
common: {
|
|
187
|
+
common: {
|
|
188
|
+
nameKey: "extraBass",
|
|
189
|
+
descKey: "descExtraBass",
|
|
190
|
+
type: "boolean",
|
|
191
|
+
role: "switch",
|
|
192
|
+
read: true,
|
|
193
|
+
write: true
|
|
194
|
+
},
|
|
160
195
|
statusField: "extraBass",
|
|
161
196
|
toInner: (value) => `<Sound_Video><Extra_Bass>${value ? "Auto" : "Off"}</Extra_Bass></Sound_Video>`
|
|
162
197
|
},
|
|
163
198
|
{
|
|
164
199
|
state: "sound.ypaoVolume",
|
|
165
|
-
common: {
|
|
200
|
+
common: {
|
|
201
|
+
nameKey: "ypaoVolume",
|
|
202
|
+
descKey: "descYpaoVolume",
|
|
203
|
+
type: "boolean",
|
|
204
|
+
role: "switch",
|
|
205
|
+
read: true,
|
|
206
|
+
write: true
|
|
207
|
+
},
|
|
166
208
|
statusField: "ypaoVolume",
|
|
167
209
|
toInner: (value) => `<Sound_Video><YPAO_Volume>${value ? "Auto" : "Off"}</YPAO_Volume></Sound_Video>`
|
|
168
210
|
},
|
|
@@ -190,7 +232,7 @@ const XML_AMP_CATALOG = [
|
|
|
190
232
|
// predecessor's blind `Scene_Load` is gone; nothing ever proved it worked (#615).
|
|
191
233
|
{
|
|
192
234
|
state: "hdmiOut1",
|
|
193
|
-
common: { nameKey: "hdmiOUT1", type: "boolean", role: "switch", read: true, write: true },
|
|
235
|
+
common: { nameKey: "hdmiOUT1", descKey: "descHdmiOUT1", type: "boolean", role: "switch", read: true, write: true },
|
|
194
236
|
statusField: "hdmiOut1",
|
|
195
237
|
mainOnly: true,
|
|
196
238
|
writeZone: "System",
|
|
@@ -198,7 +240,7 @@ const XML_AMP_CATALOG = [
|
|
|
198
240
|
},
|
|
199
241
|
{
|
|
200
242
|
state: "hdmiOut2",
|
|
201
|
-
common: { nameKey: "hdmiOUT2", type: "boolean", role: "switch", read: true, write: true },
|
|
243
|
+
common: { nameKey: "hdmiOUT2", descKey: "descHdmiOUT2", type: "boolean", role: "switch", read: true, write: true },
|
|
202
244
|
statusField: "hdmiOut2",
|
|
203
245
|
mainOnly: true,
|
|
204
246
|
writeZone: "System",
|
|
@@ -206,7 +248,14 @@ const XML_AMP_CATALOG = [
|
|
|
206
248
|
},
|
|
207
249
|
{
|
|
208
250
|
state: "multiroom.party",
|
|
209
|
-
common: {
|
|
251
|
+
common: {
|
|
252
|
+
nameKey: "partyModeAllZones",
|
|
253
|
+
descKey: "descPartyModeAllZones",
|
|
254
|
+
type: "boolean",
|
|
255
|
+
role: "switch",
|
|
256
|
+
read: true,
|
|
257
|
+
write: true
|
|
258
|
+
},
|
|
210
259
|
statusField: "party",
|
|
211
260
|
mainOnly: true,
|
|
212
261
|
writeZone: "System",
|