iobroker.yamaha 0.5.4 → 1.0.1

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.
Files changed (141) hide show
  1. package/LICENSE +3 -1
  2. package/README.md +124 -77
  3. package/admin/i18n/de.json +40 -0
  4. package/admin/i18n/en.json +40 -0
  5. package/admin/i18n/es.json +40 -0
  6. package/admin/i18n/fr.json +40 -0
  7. package/admin/i18n/it.json +40 -0
  8. package/admin/i18n/nl.json +40 -0
  9. package/admin/i18n/pl.json +40 -0
  10. package/admin/i18n/pt.json +40 -0
  11. package/admin/i18n/ru.json +40 -0
  12. package/admin/i18n/uk.json +40 -0
  13. package/admin/i18n/zh-cn.json +40 -0
  14. package/admin/jsonConfig.json +179 -0
  15. package/admin/yamaha.svg +10 -0
  16. package/build/device-management-helpers.js +84 -0
  17. package/build/device-management-helpers.js.map +7 -0
  18. package/build/device-management.js +241 -0
  19. package/build/device-management.js.map +7 -0
  20. package/build/lib/attempt-device.js +155 -0
  21. package/build/lib/attempt-device.js.map +7 -0
  22. package/build/lib/catalog/build-objects.js +56 -0
  23. package/build/lib/catalog/build-objects.js.map +7 -0
  24. package/build/lib/catalog/groups.js +73 -0
  25. package/build/lib/catalog/groups.js.map +7 -0
  26. package/build/lib/catalog/object-tree-coordinator.js +61 -0
  27. package/build/lib/catalog/object-tree-coordinator.js.map +7 -0
  28. package/build/lib/catalog/owner-policy.js +94 -0
  29. package/build/lib/catalog/owner-policy.js.map +7 -0
  30. package/build/lib/catalog/types.js +75 -0
  31. package/build/lib/catalog/types.js.map +7 -0
  32. package/build/lib/catalog/value-coerce.js +125 -0
  33. package/build/lib/catalog/value-coerce.js.map +7 -0
  34. package/build/lib/controller.js +17 -0
  35. package/build/lib/controller.js.map +7 -0
  36. package/build/lib/device-controller.js +165 -0
  37. package/build/lib/device-controller.js.map +7 -0
  38. package/build/lib/device-type.js +79 -0
  39. package/build/lib/device-type.js.map +7 -0
  40. package/build/lib/discovered-store-deps.js +58 -0
  41. package/build/lib/discovered-store-deps.js.map +7 -0
  42. package/build/lib/discovered-store.js +55 -0
  43. package/build/lib/discovered-store.js.map +7 -0
  44. package/build/lib/discovery.js +63 -0
  45. package/build/lib/discovery.js.map +7 -0
  46. package/build/lib/i18n.js +32 -0
  47. package/build/lib/i18n.js.map +7 -0
  48. package/build/lib/lifecycle/device-supervisor.js +103 -0
  49. package/build/lib/lifecycle/device-supervisor.js.map +7 -0
  50. package/build/lib/lifecycle/multi-transport-handle.js +255 -0
  51. package/build/lib/lifecycle/multi-transport-handle.js.map +7 -0
  52. package/build/lib/lifecycle/reachability-dedup.js +47 -0
  53. package/build/lib/lifecycle/reachability-dedup.js.map +7 -0
  54. package/build/lib/lifecycle/reconnect-strategy.js +53 -0
  55. package/build/lib/lifecycle/reconnect-strategy.js.map +7 -0
  56. package/build/lib/lifecycle/transport-connection-adapter.js +142 -0
  57. package/build/lib/lifecycle/transport-connection-adapter.js.map +7 -0
  58. package/build/lib/network-interfaces.js +42 -0
  59. package/build/lib/network-interfaces.js.map +7 -0
  60. package/build/lib/pure-helpers.js +244 -0
  61. package/build/lib/pure-helpers.js.map +7 -0
  62. package/build/lib/ready-line.js +40 -0
  63. package/build/lib/ready-line.js.map +7 -0
  64. package/build/lib/types.js +17 -0
  65. package/build/lib/types.js.map +7 -0
  66. package/build/lib/util.js +31 -0
  67. package/build/lib/util.js.map +7 -0
  68. package/build/lib/xml/catalog.js +210 -0
  69. package/build/lib/xml/catalog.js.map +7 -0
  70. package/build/lib/xml/command-mapper.js +72 -0
  71. package/build/lib/xml/command-mapper.js.map +7 -0
  72. package/build/lib/xml/device-controller.js +262 -0
  73. package/build/lib/xml/device-controller.js.map +7 -0
  74. package/build/lib/xml/protocol.js +128 -0
  75. package/build/lib/xml/protocol.js.map +7 -0
  76. package/build/lib/xml/xml-client.js +86 -0
  77. package/build/lib/xml/xml-client.js.map +7 -0
  78. package/build/lib/ynca/capability.js +49 -0
  79. package/build/lib/ynca/capability.js.map +7 -0
  80. package/build/lib/ynca/catalog.js +980 -0
  81. package/build/lib/ynca/catalog.js.map +7 -0
  82. package/build/lib/ynca/line-buffer.js +49 -0
  83. package/build/lib/ynca/line-buffer.js.map +7 -0
  84. package/build/lib/ynca/protocol.js +60 -0
  85. package/build/lib/ynca/protocol.js.map +7 -0
  86. package/build/lib/ynca/subunit-cache.js +48 -0
  87. package/build/lib/ynca/subunit-cache.js.map +7 -0
  88. package/build/lib/ynca/ynca-client.js +259 -0
  89. package/build/lib/ynca/ynca-client.js.map +7 -0
  90. package/build/lib/yxc/capability.js +72 -0
  91. package/build/lib/yxc/capability.js.map +7 -0
  92. package/build/lib/yxc/catalog.js +312 -0
  93. package/build/lib/yxc/catalog.js.map +7 -0
  94. package/build/lib/yxc/client-contract.js +17 -0
  95. package/build/lib/yxc/client-contract.js.map +7 -0
  96. package/build/lib/yxc/command-mapper.js +220 -0
  97. package/build/lib/yxc/command-mapper.js.map +7 -0
  98. package/build/lib/yxc/device-controller.js +373 -0
  99. package/build/lib/yxc/device-controller.js.map +7 -0
  100. package/build/lib/yxc/http-client.js +444 -0
  101. package/build/lib/yxc/http-client.js.map +7 -0
  102. package/build/lib/yxc/object-mapper.js +239 -0
  103. package/build/lib/yxc/object-mapper.js.map +7 -0
  104. package/build/lib/yxc/push-receiver.js +138 -0
  105. package/build/lib/yxc/push-receiver.js.map +7 -0
  106. package/build/lib/yxc/push.js +46 -0
  107. package/build/lib/yxc/push.js.map +7 -0
  108. package/build/main.js +593 -0
  109. package/build/main.js.map +7 -0
  110. package/io-package.json +118 -731
  111. package/package.json +67 -54
  112. package/.eslintrc.json +0 -35
  113. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  114. package/.github/auto-merge.yml +0 -17
  115. package/.github/dependabot.yml +0 -18
  116. package/.github/workflows/dependabot-auto-merge.yml +0 -25
  117. package/.github/workflows/test-and-release.yml +0 -147
  118. package/.releaseconfig.json +0 -3
  119. package/admin/admin.d.ts +0 -1
  120. package/admin/i18n/de/translations.json +0 -9
  121. package/admin/i18n/en/translations.json +0 -9
  122. package/admin/i18n/es/translations.json +0 -9
  123. package/admin/i18n/fr/translations.json +0 -9
  124. package/admin/i18n/it/translations.json +0 -9
  125. package/admin/i18n/nl/translations.json +0 -9
  126. package/admin/i18n/pl/translations.json +0 -9
  127. package/admin/i18n/pt/translations.json +0 -9
  128. package/admin/i18n/ru/translations.json +0 -9
  129. package/admin/i18n/zh-cn/translations.json +0 -9
  130. package/admin/index_m.html +0 -117
  131. package/admin/style.css +0 -10
  132. package/admin/tsconfig.json +0 -7
  133. package/admin/words.js +0 -12
  134. package/admin/yamaha.png +0 -0
  135. package/discover.js +0 -215
  136. package/gulpfile.js +0 -337
  137. package/lib/adapter-config.d.ts +0 -16
  138. package/lib/soef.js +0 -1626
  139. package/lib/tools.js +0 -93
  140. package/main.js +0 -809
  141. package/main.test.js +0 -30
package/LICENSE CHANGED
@@ -1,6 +1,8 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2024 soef <soef@gmx.net>
3
+ Copyright (c) 2015-2024 soef <soef@gmx.net>
4
+ Copyright (c) 2026 iobroker-community-adapters <iobroker-community-adapters@gmx.de>
5
+ Copyright (c) 2026 krobi <krobi@power-dreams.com>
4
6
 
5
7
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
8
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,118 +1,162 @@
1
- ![Logo](admin/yamaha.png)
2
- ## ioBroker.yamaha
1
+ # <img src="https://cdn.jsdelivr.net/gh/iobroker-community-adapters/ioBroker.yamaha@master/admin/yamaha.svg" width="48" align="top" /> ioBroker.yamaha
3
2
 
4
- ![Number of Installations](http://iobroker.live/badges/yamaha-installed.svg)
5
- ![Number of Installations](http://iobroker.live/badges/yamaha-stable.svg)
6
- [![NPM version](http://img.shields.io/npm/v/iobroker.yamaha.svg)](https://www.npmjs.com/package/iobroker.yamaha)
3
+ **Release:** [![npm version](https://img.shields.io/npm/v/iobroker.yamaha)](https://www.npmjs.com/package/iobroker.yamaha) ![stable](https://iobroker.live/badges/yamaha-stable.svg) ![Installations](https://iobroker.live/badges/yamaha-installed.svg) [![npm downloads](https://img.shields.io/npm/dt/iobroker.yamaha)](https://www.npmjs.com/package/iobroker.yamaha)
7
4
 
8
- ![Test and Release](https://github.com/iobroker-community-adapters/ioBroker.yamaha/workflows/Test%20and%20Release/badge.svg)
9
- [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/yamaha/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
- [![Downloads](https://img.shields.io/npm/dm/iobroker.yamaha.svg)](https://www.npmjs.com/package/iobroker.yamaha)
5
+ **Build:** [![Test and Release](https://github.com/iobroker-community-adapters/ioBroker.yamaha/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.yamaha/actions/workflows/test-and-release.yml) ![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen) ![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
11
6
 
12
- **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
7
+ **Support:** [![Ko-fi](https://img.shields.io/badge/Ko--fi-Support-ff5e5b?logo=ko-fi)](https://ko-fi.com/krobipd) [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/krobipd)
13
8
 
14
- #### Description
9
+ Controls [Yamaha](https://www.yamaha.com/) AV receivers and MusicCast devices from
10
+ ioBroker over the local network. It unites the three protocols Yamaha speaks —
11
+ YNCA (the text control protocol of the networked receivers), MusicCast / Yamaha
12
+ Extended Control (the richer JSON protocol of the MusicCast generation), and the
13
+ legacy XML protocol of the oldest pre-2010 models — behind one object tree.
15
14
 
16
- Adapter for Yamaha AV receivers
15
+ ## Features
17
16
 
18
- Discussion please at github or at https://forum.iobroker.net/topic/53174/weiterentwicklung-yamaha-adapter
17
+ - **Three protocols, one adapter** — YNCA, MusicCast (Yamaha Extended Control) and the legacy XML protocol of the pre-2010 models
18
+ - **Protocols run in parallel** — a MusicCast receiver combines YNCA amplifier control with MusicCast multiroom, equalizer and media on one object tree
19
+ - **Instant updates** — MusicCast pushes its changes, YNCA reports over its live connection
20
+ - **Self-healing connections** — an offline receiver joins once it answers; a single protocol reconnects on its own while the others keep running
21
+ - **Typed datapoints** — booleans, dropdowns and numbers with unit and range instead of raw text
22
+ - **Capability-driven** — states are generated from what each device reports, no hardcoded model list
23
+ - **Automatic discovery** — an empty device list finds and sets up MusicCast devices at startup
24
+ - **Device manager** — receivers as admin cards with model, address, live protocol indicators and a device-type icon (receiver, stereo, speaker, soundbar, CD)
19
25
 
20
- ### Initial Creation
21
- This adapter was initialy created by @soef at https://github.com/soef/ioBroker.yamaha but not maintained any more, so we moved it to iobroker-community so that bugs could be fixed. thanks @soef for his work.
26
+ ## Requirements
22
27
 
23
- #### Configuration
24
- Currently without autodiscover, you have to enter the IP of your receiver
28
+ - Node.js >= 22
29
+ - js-controller >= 7.2.2
30
+ - admin >= 7.8.23
25
31
 
26
- #### Installation
27
- via ioBroker Admin.
32
+ ## Ports
28
33
 
29
- Otherweise execute the following command in the iobroker root directory (e.g. in /opt/iobroker)
30
- ``
31
- npm install iobroker.yamaha
32
- iobroker upload yamaha
33
- ``
34
+ - **UDP 41100 (listening)** — MusicCast devices push their change events to this port on the ioBroker host. If another MusicCast application occupies it, the adapter still works and falls back to polling.
35
+ - **UDP 1900 (multicast, outgoing)** — the SSDP discovery search at startup.
36
+ - **TCP 50000 (outgoing)** — the YNCA control connection to each receiver.
37
+ - **TCP 80 (outgoing)** — the MusicCast and XML protocol requests to each device.
34
38
 
35
- #### Realtime
36
- The states will be created, when they occur. I.e. use your ir-remote and change something and you will see the new states.
37
- Only one connection is accepted by yamaha devices.
39
+ ## Configuration
38
40
 
39
- #### Requirements
40
- Yamaha Receiver
41
+ Devices are managed in the admin as cards. **Leave the list empty** and the adapter finds MusicCast devices on the network by itself at startup, or add devices by IP via the **"+" dialog** to run only those. Discovery searches on every network interface by default; the optional **network interface** selector confines it to one.
41
42
 
42
- You have to enable "network standby" function in the configuration of your receiver
43
+ Older Yamaha receivers (before ~2010, the XML protocol) do not announce themselves on the network and must be added manually. The **XML query interval** sets how often they are polled (default 60 seconds).
43
44
 
45
+ The **Data points** section switches whole groups of datapoints on or off — **Playback**, **Tuner**, **Multiroom**, **HDMI**, **Scenes**, **Sound** and **Advanced**. A switched-off group is removed from the tree and not even queried, which also speeds up the startup; the amplifier core (power, volume, mute, input, sound program, sleep) always stays on.
46
+
47
+ ## State Tree
48
+
49
+ Each receiver becomes one device node with themed groups — the same groups the
50
+ **Data points** switches control. Only what your device reports is created.
51
+
52
+ - **Amplifier core** (always on) — power, volume, mute, input, sound program, sleep, plus the device info with model, firmware and connection.
53
+ - **`player`** — one channel per playback source (Spotify, USB, server, net radio, CD, …) with playback state, artist, album, track, cover art and the transport buttons.
54
+ - **`tuner`** — AM/FM and DAB radio including RDS texts and frequency.
55
+ - **`multiroom`** — zones 2–4, Zone B, the all-zones switches (master power, party mode) and the MusicCast device group in its own `multiroom.group` folder.
56
+ - **`hdmi`** — the HDMI outputs and lip sync.
57
+ - **`scene`** — the receiver's scene names and a scene recall.
58
+ - **`sound`** — tone and sound processing: bass/treble, DSP modes, enhancer, equalizer, ….
59
+ - **`advanced`** — setup-level datapoints: maximum/initial volume, speaker configuration, input names.
60
+
61
+ ## Troubleshooting
62
+
63
+ ### Upgrading from 0.5.x
64
+
65
+ Version 1.0.0 is a complete rebuild. On the first start after the update the old datapoints (`volume`, `power`, `Commands.*`, `Realtime.*`, …) are removed and your receiver is recreated as a device; its IP address is carried over automatically. Point scripts and visualizations at the new paths — for example `yamaha.0.<device>.power` instead of `yamaha.0.power`.
66
+
67
+ ### Receiver is not found automatically
68
+
69
+ Only MusicCast devices announce themselves on the network — older receivers must be added manually via the **"+" dialog**. If discovery comes up empty on a host with several network interfaces, check the **network interface** setting.
70
+
71
+ ### Datapoints are missing
72
+
73
+ Check the group's toggle in the **Data points** settings, and remember the tree only carries what your device reports. Zone datapoints sit under `multiroom`, not at the top level.
74
+
75
+ ### Values update slowly
76
+
77
+ If MusicCast changes only refresh every few minutes, another application is occupying UDP port 41100 and the adapter fell back to polling — the startup log notes this.
78
+
79
+ ### First start takes a while
80
+
81
+ On the first connect the adapter asks the receiver which functions it supports — up to half a minute per YNCA device. The result is remembered, later starts are faster.
44
82
 
45
83
  ## Changelog
46
- ### 0.5.4 (2024-06-14)
47
- * (foxriver76) updated packages
48
84
 
49
- ### 0.5.3 (2022-06-17)
50
- * (Apollon77) Fix crash cases reported by Sentry
85
+ <!--
86
+ Placeholder for the next version (at the beginning of the line):
87
+ ### **WORK IN PROGRESS**
88
+ -->
89
+ ### 1.0.1 (2026-08-22)
51
90
 
52
- ### 0.5.2 (2022-04-23)
53
- * (Apollon77) Fix crash cases reported by Sentry
91
+ - (krobipd) Complete rebuild: one adapter now speaks YNCA, MusicCast and the legacy XML protocol — every protocol a device answers runs in parallel on one object tree.
92
+ - (krobipd) New object tree with typed datapoints built from what your device reports. Old datapoints are removed automatically, the address is carried over — point scripts at the new paths.
93
+ - (krobipd) Instant updates: MusicCast push events and the live YNCA connection replace polling; connections heal themselves, and one protocol's hiccup reconnects just that protocol.
94
+ - (krobipd) Auto-discovery sets up MusicCast devices by itself when the device list is empty, and the admin shows every receiver as a card with model, address and protocol indicators.
95
+ - (krobipd) Whole datapoint groups such as playback sources, tuner, multiroom or scenes can be switched off in the admin — and are then not even queried from the device.
96
+ - (krobipd) The multiroom folder tells the scope at a glance: switches that affect all zones say so in their name, and the MusicCast device group has its own `multiroom.group` folder.
97
+ - (krobipd) Every device shows a type icon — receiver, stereo receiver, speaker, soundbar or CD system, detected from the reported model — in the object tree and on its admin card; the adapter logo now stays readable in light and dark mode.
98
+ - (krobipd) Upgrading from 0.5.x shows a one-time notice explaining the new object tree before the update installs.
99
+ - (mcm1957) version has been rebuilt due to deploy problems
54
100
 
55
- ### 0.5.1 (2022-03-29)
56
- * (Apollon77) Fix crash cases reported by Sentry
57
- * (Sneak-L8) fix type of pureDirect
101
+ ### 0.5.4 (2024-06-14) — stable
102
+
103
+ - (foxriver76) updated packages
104
+
105
+ ### 0.5.3 (2022-06-17)
58
106
 
59
- ### 0.5.0 (2022-03-08)
60
- * IMPORTANT: js-controller 2.0 is needed at least
61
- * (Apollon77) Add Sentry for crash reporting
107
+ - (Apollon77) Fix crash cases reported by Sentry
62
108
 
63
- ### 0.4.1
64
- * (Sneak-L8) "toggleMute" now toggle mute state (instead of always muting)
109
+ ### 0.5.2 (2022-04-23)
110
+
111
+ - (Apollon77) Fix crash cases reported by Sentry
65
112
 
66
- ### 0.4.0
67
- * (Garfonso) added admin 3 compatibility and more meta-data stuff.
68
- * (Garfonso) added compact mode support.
113
+ ### 0.5.1 (2022-03-29)
69
114
 
70
- ### 0.3.20
71
- * (Garfonso) adjusted local copy of soef.js to js-controller 3.0
72
- * (Garfonso) updated meta information (links etc) to iobroker-community-adapters
115
+ - (Apollon77) Fix crash cases reported by Sentry
116
+ - (Apollon77) fix type of pureDirect
73
117
 
74
- ### 0.3.19
75
- * (soef) Changelog added to readme
76
118
 
77
- ### 0.3.18
78
- * (Apollon77) Update utils.js and usage, CI Testing and deps
79
119
 
80
- ### 0.3.17
81
- * (Apollon77) update basic package-file testing
82
120
 
83
- ### 0.3.16
84
- * (soef) node 0.12 removed from testing
121
+ [Older changelogs can be found there](CHANGELOG_OLD.md)
85
122
 
86
- ### 0.3.15
87
- * (soef) Enhance CI testing
123
+ ## History
88
124
 
89
- ### 0.3.14
90
- * (soef) Possible exception in reconnect fixed
125
+ The yamaha adapter has a long lineage on ioBroker, and this version continues it —
126
+ for existing users it is simply a new version of the same adapter:
91
127
 
92
- ### 0.3.12
93
- * (soef) Version incr. for npm
128
+ - **[soef](https://github.com/soef)** created the adapter in 2015 and built the
129
+ original control over Yamaha's XML network protocol, with realtime state updates
130
+ and multi-zone support.
131
+ - **[Garfonso](https://github.com/Garfonso)**, **[Sneak-L8](https://github.com/Sneak-L8)**
132
+ and **[Apollon77](https://github.com/Apollon77)** contributed over the following
133
+ years — admin compatibility, fixes and Sentry crash reporting.
134
+ - The **[ioBroker Community Adapters](https://github.com/iobroker-community-adapters)**
135
+ team — notably [foxriver76](https://github.com/foxriver76) and
136
+ [mcm1957](https://github.com/mcm1957) — maintained the adapter from 2020 to 2026,
137
+ releasing versions up to 0.5.4.
138
+ - Since 2026, [krobi](https://github.com/krobipd) maintains the adapter in the community
139
+ organisation and rebuilt it from the ground up, uniting the YNCA, MusicCast (YXC)
140
+ and legacy XML protocols behind one object tree.
94
141
 
95
- ### 0.3.11
96
- * (soef) reconnect overworked
142
+ ## Support
97
143
 
98
- ### 0.3.10
99
- * (soef) realtime Ping now configurable
144
+ - [ioBroker Forum](https://forum.iobroker.net/)
145
+ - [GitHub Issues](https://github.com/iobroker-community-adapters/ioBroker.yamaha/issues)
100
146
 
101
- ### 0.3.8
102
- * (soef) realtime states optimized
147
+ ### Support Development
103
148
 
104
- ### 0.3.7
105
- * (soef) fix typo in creating realtime states
149
+ This adapter is free and open source. If you find it useful, consider buying me a coffee:
106
150
 
107
- ### 0.3.6
108
- * (soef) timeout to connect reduced
151
+ [![Ko-fi](https://img.shields.io/badge/Ko--fi-Support%20me-ff5e5b?logo=ko-fi)](https://ko-fi.com/krobipd) [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/krobipd)
109
152
 
110
- <!--
153
+ ## License
111
154
 
112
- ### License
113
155
  The MIT License (MIT)
114
156
 
115
- Copyright (c) 2015-2024 soef <soef@gmx.net>
157
+ Copyright (c) 2015-2024 soef <soef@gmx.net>
158
+ Copyright (c) 2026 iobroker-community-adapters <iobroker-community-adapters@gmx.de>
159
+ Copyright (c) 2026 krobi <krobi@power-dreams.com>
116
160
 
117
161
  Permission is hereby granted, free of charge, to any person obtaining a copy
118
162
  of this software and associated documentation files (the "Software"), to deal
@@ -131,4 +175,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
131
175
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
132
176
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
133
177
  THE SOFTWARE.
134
- -->
178
+
179
+ ---
180
+
181
+ _Developed with assistance from Claude.ai_
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Geräte",
3
+ "introText": "Lass die Tabelle leer, dann findet der Adapter MusicCast-Geräte beim Start selbst im Netzwerk — nichts einzutragen. Trage Geräte (Name + IP) ein, um stattdessen nur diese zu nutzen. Ältere Receiver (vor ~2010, XML-Protokoll) melden sich nicht im Netzwerk und müssen hier immer manuell eingetragen werden.",
4
+ "devicesTable": "Yamaha-Geräte",
5
+ "columnName": "Name",
6
+ "columnIp": "IP-Adresse",
7
+ "label_xmlPollInterval": "XML-Abfrageintervall (Sekunden)",
8
+ "tooltip_xmlPollInterval": "Wie oft der Adapter Receiver mit dem alten XML-Protokoll abfragt (Modelle vor ~2010). Diese Geräte melden Änderungen nicht von selbst. Ohne Wirkung auf YNCA- oder MusicCast-Geräte.",
9
+ "supportHeader": "Entwicklung unterstützen",
10
+ "aboutInfo": "Wenn dir dieser Adapter nützt, kannst du seine Entwicklung unterstützen:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Ungültige IP-Adresse",
14
+ "duplicateDevice": "Ein Gerät mit dieser IP-Adresse oder diesem Namen existiert bereits",
15
+ "invalidName": "Dieser Name kann nicht verwendet werden",
16
+ "networkInterfaceLabel": "Netzwerk-Interface",
17
+ "networkInterfaceTooltip": "Netzwerk-Interface für LAN-Discovery und -Steuerung. Standard (0.0.0.0 = alle Interfaces) beibehalten, außer dieser Host hat mehrere Netzwerk-Interfaces.",
18
+ "dmAdd": "Yamaha-Gerät hinzufügen",
19
+ "dmEdit": "Bearbeiten",
20
+ "dmDelete": "Löschen",
21
+ "dmEditTitle": "Yamaha-Gerät bearbeiten",
22
+ "dmDeleteConfirm": "Das Yamaha-Gerät „%s“ löschen?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Datenpunkte",
25
+ "datapointsHint": "Wähle, welche Funktionsgruppen als Datenpunkte angelegt werden. Eine ausgeschaltete Gruppe wird nicht erstellt und bestehende Objekte werden entfernt.",
26
+ "group_player": "Wiedergabe",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth und die weiteren Quellen",
28
+ "group_tuner": "Tuner",
29
+ "group_tuner_help": "FM/DAB, Frequenz, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "MusicCast-Gruppen (verbinden, trennen, Rolle), Party-Modus, Zone 2/3/4, Zone B und der Alle-Zonen-Ein/Aus-Schalter",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "HDMI-Ausgänge und Lippensynchron-Versatz, für jede Zone",
34
+ "group_scene": "Szenen",
35
+ "group_scene_help": "Gespeicherte Szenen abrufen",
36
+ "group_sound": "Klang",
37
+ "group_sound_help": "Klangmodi, Klangregler, Subwoofer, Balance und Equalizer",
38
+ "group_advanced": "Erweitert",
39
+ "group_advanced_help": "Anfangslautstärke, Maximallautstärke, Lautsprechermuster und die 23 Eingangsnamen"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Devices",
3
+ "introText": "Leave the table empty and the adapter finds MusicCast devices on the network by itself at startup — nothing to enter. Add devices (name + IP) to use only those instead. Older receivers (before ~2010, XML protocol) do not announce themselves on the network and must always be added here manually.",
4
+ "devicesTable": "Yamaha devices",
5
+ "columnName": "Name",
6
+ "columnIp": "IP address",
7
+ "label_xmlPollInterval": "XML query interval (seconds)",
8
+ "tooltip_xmlPollInterval": "How often the adapter polls receivers that use the old XML protocol (models before ~2010). These devices do not report changes on their own. Has no effect on YNCA or MusicCast devices.",
9
+ "supportHeader": "Support development",
10
+ "aboutInfo": "If this adapter is useful to you, you can support its development:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Invalid IP address",
14
+ "duplicateDevice": "A device with this IP address or name already exists",
15
+ "invalidName": "This name cannot be used",
16
+ "networkInterfaceLabel": "Network Interface",
17
+ "networkInterfaceTooltip": "Select the network interface for LAN discovery and control. Keep the default (0.0.0.0 = all interfaces) unless this host has multiple network interfaces.",
18
+ "dmAdd": "Add Yamaha device",
19
+ "dmEdit": "Edit",
20
+ "dmDelete": "Delete",
21
+ "dmEditTitle": "Edit Yamaha device",
22
+ "dmDeleteConfirm": "Delete the Yamaha device \"%s\"?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Data points",
25
+ "datapointsHint": "Choose which function groups are created as data points. A switched-off group is not created and existing objects are removed.",
26
+ "group_player": "Playback",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth and the other sources",
28
+ "group_tuner": "Tuner",
29
+ "group_tuner_help": "FM/DAB, frequency, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "MusicCast groups (join, leave, role), party mode, zones 2/3/4, Zone B and the all-zones power switch",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "HDMI outputs and lip-sync offset, for every zone",
34
+ "group_scene": "Scenes",
35
+ "group_scene_help": "Recall saved scenes",
36
+ "group_sound": "Sound",
37
+ "group_sound_help": "Sound-processing modes, tone controls, subwoofer, balance and equalizer",
38
+ "group_advanced": "Advanced",
39
+ "group_advanced_help": "Initial volume, maximum volume, speaker patterns and the 23 input name labels"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Dispositivos",
3
+ "introText": "Deja la tabla vacía y el adaptador encuentra por sí mismo los dispositivos MusicCast en la red al iniciar — nada que introducir. Añade dispositivos (nombre + IP) para usar solo esos. Los receptores antiguos (antes de ~2010, protocolo XML) no se anuncian en la red y siempre se añaden aquí manualmente.",
4
+ "devicesTable": "Dispositivos Yamaha",
5
+ "columnName": "Nombre",
6
+ "columnIp": "Dirección IP",
7
+ "label_xmlPollInterval": "Intervalo de consulta XML (segundos)",
8
+ "tooltip_xmlPollInterval": "Con qué frecuencia el adaptador consulta receptores con el antiguo protocolo XML (modelos anteriores a ~2010). Estos equipos no comunican cambios por sí mismos. Sin efecto en YNCA o MusicCast.",
9
+ "supportHeader": "Apoyar el desarrollo",
10
+ "aboutInfo": "Si este adaptador te resulta útil, puedes apoyar su desarrollo:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Dirección IP no válida",
14
+ "duplicateDevice": "Ya existe un dispositivo con esta dirección IP o este nombre",
15
+ "invalidName": "Este nombre no se puede utilizar",
16
+ "networkInterfaceLabel": "Interfaz de red",
17
+ "networkInterfaceTooltip": "Selecciona la interfaz de red para el descubrimiento y control LAN. Mantén el valor predeterminado (0.0.0.0 = todas) salvo que este host tenga varias interfaces.",
18
+ "dmAdd": "Añadir dispositivo Yamaha",
19
+ "dmEdit": "Editar",
20
+ "dmDelete": "Eliminar",
21
+ "dmEditTitle": "Editar dispositivo Yamaha",
22
+ "dmDeleteConfirm": "¿Eliminar el dispositivo Yamaha «%s»?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Puntos de datos",
25
+ "datapointsHint": "Elige qué grupos de funciones se crean como puntos de datos. Un grupo desactivado no se crea y los objetos existentes se eliminan.",
26
+ "group_player": "Reproducción",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth y las demás fuentes",
28
+ "group_tuner": "Sintonizador",
29
+ "group_tuner_help": "FM/DAB, frecuencia, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "Grupos MusicCast (unir, salir, rol), modo fiesta, zonas 2/3/4, Zona B y el interruptor de encendido de todas las zonas",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "Salidas HDMI y desfase de sincronización labial, para cada zona",
34
+ "group_scene": "Escenas",
35
+ "group_scene_help": "Recuperar escenas guardadas",
36
+ "group_sound": "Sonido",
37
+ "group_sound_help": "Modos de procesamiento de sonido, control de tono, subwoofer, balance y ecualizador",
38
+ "group_advanced": "Avanzado",
39
+ "group_advanced_help": "Volumen inicial, volumen máximo, patrones de altavoces y los 23 nombres de entrada"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Appareils",
3
+ "introText": "Laissez le tableau vide et l'adaptateur trouve lui-même les appareils MusicCast sur le réseau au démarrage — rien à saisir. Ajoutez des appareils (nom + IP) pour n'utiliser que ceux-là. Les récepteurs anciens (avant ~2010, protocole XML) ne s'annoncent pas sur le réseau et doivent toujours être ajoutés ici manuellement.",
4
+ "devicesTable": "Appareils Yamaha",
5
+ "columnName": "Nom",
6
+ "columnIp": "Adresse IP",
7
+ "label_xmlPollInterval": "Intervalle d'interrogation XML (secondes)",
8
+ "tooltip_xmlPollInterval": "Fréquence d'interrogation des amplis utilisant l'ancien protocole XML (modèles avant ~2010). Ces appareils ne signalent pas les changements d'eux-mêmes. Sans effet sur YNCA ou MusicCast.",
9
+ "supportHeader": "Soutenir le développement",
10
+ "aboutInfo": "Si cet adaptateur vous est utile, vous pouvez soutenir son développement :",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Adresse IP invalide",
14
+ "duplicateDevice": "Un appareil avec cette adresse IP ou ce nom existe déjà",
15
+ "invalidName": "Ce nom ne peut pas être utilisé",
16
+ "networkInterfaceLabel": "Interface réseau",
17
+ "networkInterfaceTooltip": "Sélectionnez l'interface réseau pour la découverte et le contrôle LAN. Conservez la valeur par défaut (0.0.0.0 = toutes) sauf si cet hôte possède plusieurs interfaces.",
18
+ "dmAdd": "Ajouter un appareil Yamaha",
19
+ "dmEdit": "Modifier",
20
+ "dmDelete": "Supprimer",
21
+ "dmEditTitle": "Modifier l'appareil Yamaha",
22
+ "dmDeleteConfirm": "Supprimer l'appareil Yamaha « %s » ?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Points de données",
25
+ "datapointsHint": "Choisissez les groupes de fonctions créés comme points de données. Un groupe désactivé n'est pas créé et les objets existants sont supprimés.",
26
+ "group_player": "Lecture",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth et les autres sources",
28
+ "group_tuner": "Tuner",
29
+ "group_tuner_help": "FM/DAB, fréquence, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "Groupes MusicCast (rejoindre, quitter, rôle), mode fête, zones 2/3/4, Zone B et l'interrupteur d'alimentation de toutes les zones",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "Sorties HDMI et décalage de synchronisation labiale, pour chaque zone",
34
+ "group_scene": "Scènes",
35
+ "group_scene_help": "Rappeler les scènes enregistrées",
36
+ "group_sound": "Son",
37
+ "group_sound_help": "Modes de traitement du son, réglages de tonalité, caisson de basses, balance et égaliseur",
38
+ "group_advanced": "Avancé",
39
+ "group_advanced_help": "Volume initial, volume maximal, motifs d'enceintes et les 23 noms d'entrée"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Dispositivi",
3
+ "introText": "Lascia la tabella vuota e l'adattatore trova da solo i dispositivi MusicCast sulla rete all'avvio — niente da inserire. Aggiungi dispositivi (nome + IP) per usare solo quelli. I ricevitori più vecchi (prima del ~2010, protocollo XML) non si annunciano sulla rete e vanno sempre aggiunti qui manualmente.",
4
+ "devicesTable": "Dispositivi Yamaha",
5
+ "columnName": "Nome",
6
+ "columnIp": "Indirizzo IP",
7
+ "label_xmlPollInterval": "Intervallo di interrogazione XML (secondi)",
8
+ "tooltip_xmlPollInterval": "Con quale frequenza l'adattatore interroga i ricevitori con il vecchio protocollo XML (modelli prima del ~2010). Questi dispositivi non segnalano da soli le modifiche. Nessun effetto su YNCA o MusicCast.",
9
+ "supportHeader": "Sostieni lo sviluppo",
10
+ "aboutInfo": "Se questo adattatore ti è utile, puoi sostenere il suo sviluppo:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Indirizzo IP non valido",
14
+ "duplicateDevice": "Esiste già un dispositivo con questo indirizzo IP o nome",
15
+ "invalidName": "Questo nome non può essere utilizzato",
16
+ "networkInterfaceLabel": "Interfaccia di rete",
17
+ "networkInterfaceTooltip": "Seleziona l'interfaccia di rete per il rilevamento e il controllo LAN. Mantieni il valore predefinito (0.0.0.0 = tutte) a meno che questo host non abbia più interfacce.",
18
+ "dmAdd": "Aggiungi dispositivo Yamaha",
19
+ "dmEdit": "Modifica",
20
+ "dmDelete": "Elimina",
21
+ "dmEditTitle": "Modifica dispositivo Yamaha",
22
+ "dmDeleteConfirm": "Eliminare il dispositivo Yamaha «%s»?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Punti dati",
25
+ "datapointsHint": "Scegli quali gruppi di funzioni vengono creati come punti dati. Un gruppo disattivato non viene creato e gli oggetti esistenti vengono rimossi.",
26
+ "group_player": "Riproduzione",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth e le altre sorgenti",
28
+ "group_tuner": "Sintonizzatore",
29
+ "group_tuner_help": "FM/DAB, frequenza, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "Gruppi MusicCast (unisci, esci, ruolo), modalità festa, zone 2/3/4, Zona B e l'interruttore di accensione di tutte le zone",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "Uscite HDMI e sfasamento lip-sync, per ogni zona",
34
+ "group_scene": "Scene",
35
+ "group_scene_help": "Richiama le scene salvate",
36
+ "group_sound": "Audio",
37
+ "group_sound_help": "Modalità di elaborazione audio, toni, subwoofer, bilanciamento ed equalizzatore",
38
+ "group_advanced": "Avanzate",
39
+ "group_advanced_help": "Volume iniziale, volume massimo, schemi diffusori e i 23 nomi degli ingressi"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Apparaten",
3
+ "introText": "Laat de tabel leeg en de adapter vindt bij het opstarten zelf MusicCast-apparaten op het netwerk — niets in te voeren. Voeg apparaten (naam + IP) toe om alleen die te gebruiken. Oudere receivers (van vóór ~2010, XML-protocol) melden zich niet op het netwerk en moeten hier altijd handmatig worden toegevoegd.",
4
+ "devicesTable": "Yamaha-apparaten",
5
+ "columnName": "Naam",
6
+ "columnIp": "IP-adres",
7
+ "label_xmlPollInterval": "XML-opvraaginterval (seconden)",
8
+ "tooltip_xmlPollInterval": "Hoe vaak de adapter receivers met het oude XML-protocol opvraagt (modellen van vóór ~2010). Deze apparaten melden wijzigingen niet zelf. Geen effect op YNCA- of MusicCast-apparaten.",
9
+ "supportHeader": "Ontwikkeling steunen",
10
+ "aboutInfo": "Als deze adapter nuttig voor je is, kun je de ontwikkeling steunen:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Ongeldig IP-adres",
14
+ "duplicateDevice": "Er bestaat al een apparaat met dit IP-adres of deze naam",
15
+ "invalidName": "Deze naam kan niet worden gebruikt",
16
+ "networkInterfaceLabel": "Netwerkinterface",
17
+ "networkInterfaceTooltip": "Selecteer de netwerkinterface voor LAN-detectie en -besturing. Behoud de standaard (0.0.0.0 = alle interfaces), tenzij deze host meerdere netwerkinterfaces heeft.",
18
+ "dmAdd": "Yamaha-apparaat toevoegen",
19
+ "dmEdit": "Bewerken",
20
+ "dmDelete": "Verwijderen",
21
+ "dmEditTitle": "Yamaha-apparaat bewerken",
22
+ "dmDeleteConfirm": "Het Yamaha-apparaat „%s“ verwijderen?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Datapunten",
25
+ "datapointsHint": "Kies welke functiegroepen als datapunten worden aangemaakt. Een uitgeschakelde groep wordt niet aangemaakt en bestaande objecten worden verwijderd.",
26
+ "group_player": "Weergave",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth en de andere bronnen",
28
+ "group_tuner": "Tuner",
29
+ "group_tuner_help": "FM/DAB, frequentie, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "MusicCast-groepen (koppelen, verlaten, rol), feestmodus, zone 2/3/4, Zone B en de alle-zones-aan/uit-schakelaar",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "HDMI-uitgangen en lip-sync-offset, voor elke zone",
34
+ "group_scene": "Scènes",
35
+ "group_scene_help": "Opgeslagen scènes oproepen",
36
+ "group_sound": "Geluid",
37
+ "group_sound_help": "Geluidsmodi, klankregeling, subwoofer, balans en equalizer",
38
+ "group_advanced": "Geavanceerd",
39
+ "group_advanced_help": "Beginvolume, maximumvolume, luidsprekerpatronen en de 23 ingangsnamen"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Urządzenia",
3
+ "introText": "Pozostaw tabelę pustą, a adapter sam znajdzie urządzenia MusicCast w sieci przy starcie — nic nie trzeba wpisywać. Dodaj urządzenia (nazwa + IP), aby używać tylko ich. Starsze amplitunery (sprzed ~2010, protokół XML) nie zgłaszają się w sieci i zawsze dodaje się je tutaj ręcznie.",
4
+ "devicesTable": "Urządzenia Yamaha",
5
+ "columnName": "Nazwa",
6
+ "columnIp": "Adres IP",
7
+ "label_xmlPollInterval": "Interwał odpytywania XML (sekundy)",
8
+ "tooltip_xmlPollInterval": "Jak często adapter odpytuje amplitunery ze starym protokołem XML (modele sprzed ~2010). Te urządzenia nie zgłaszają zmian samodzielnie. Bez wpływu na urządzenia YNCA i MusicCast.",
9
+ "supportHeader": "Wesprzyj rozwój",
10
+ "aboutInfo": "Jeśli ten adapter jest dla Ciebie przydatny, możesz wesprzeć jego rozwój:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Nieprawidłowy adres IP",
14
+ "duplicateDevice": "Urządzenie o tym adresie IP lub nazwie już istnieje",
15
+ "invalidName": "Ta nazwa nie może być użyta",
16
+ "networkInterfaceLabel": "Interfejs sieciowy",
17
+ "networkInterfaceTooltip": "Wybierz interfejs sieciowy do wykrywania i sterowania LAN. Pozostaw domyślny (0.0.0.0 = wszystkie), chyba że ten host ma wiele interfejsów.",
18
+ "dmAdd": "Dodaj urządzenie Yamaha",
19
+ "dmEdit": "Edytuj",
20
+ "dmDelete": "Usuń",
21
+ "dmEditTitle": "Edytuj urządzenie Yamaha",
22
+ "dmDeleteConfirm": "Usunąć urządzenie Yamaha „%s“?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Punkty danych",
25
+ "datapointsHint": "Wybierz, które grupy funkcji są tworzone jako punkty danych. Wyłączona grupa nie jest tworzona, a istniejące obiekty są usuwane.",
26
+ "group_player": "Odtwarzanie",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth i pozostałe źródła",
28
+ "group_tuner": "Tuner",
29
+ "group_tuner_help": "FM/DAB, częstotliwość, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "Grupy MusicCast (dołącz, opuść, rola), tryb imprezowy, strefy 2/3/4, Strefa B i przełącznik zasilania wszystkich stref",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "Wyjścia HDMI i przesunięcie synchronizacji ust, dla każdej strefy",
34
+ "group_scene": "Sceny",
35
+ "group_scene_help": "Przywoływanie zapisanych scen",
36
+ "group_sound": "Dźwięk",
37
+ "group_sound_help": "Tryby przetwarzania dźwięku, tony, subwoofer, balans i korektor",
38
+ "group_advanced": "Zaawansowane",
39
+ "group_advanced_help": "Głośność początkowa, głośność maksymalna, wzorce głośników i 23 nazwy wejść"
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "header_devices": "Dispositivos",
3
+ "introText": "Deixe a tabela vazia e o adaptador encontra sozinho os dispositivos MusicCast na rede ao arrancar — nada a introduzir. Adicione dispositivos (nome + IP) para usar apenas esses. Recetores antigos (antes de ~2010, protocolo XML) não se anunciam na rede e devem ser sempre adicionados aqui manualmente.",
4
+ "devicesTable": "Dispositivos Yamaha",
5
+ "columnName": "Nome",
6
+ "columnIp": "Endereço IP",
7
+ "label_xmlPollInterval": "Intervalo de consulta XML (segundos)",
8
+ "tooltip_xmlPollInterval": "Com que frequência o adaptador consulta recetores com o antigo protocolo XML (modelos anteriores a ~2010). Estes aparelhos não comunicam alterações por si. Sem efeito em YNCA ou MusicCast.",
9
+ "supportHeader": "Apoiar o desenvolvimento",
10
+ "aboutInfo": "Se este adaptador lhe é útil, pode apoiar o seu desenvolvimento:",
11
+ "donateKofi": "Ko-fi",
12
+ "donatePaypal": "PayPal",
13
+ "invalidIp": "Endereço IP inválido",
14
+ "duplicateDevice": "Já existe um dispositivo com este endereço IP ou nome",
15
+ "invalidName": "Este nome não pode ser usado",
16
+ "networkInterfaceLabel": "Interface de rede",
17
+ "networkInterfaceTooltip": "Selecione a interface de rede para descoberta e controlo LAN. Mantenha o padrão (0.0.0.0 = todas) a menos que este host tenha várias interfaces.",
18
+ "dmAdd": "Adicionar dispositivo Yamaha",
19
+ "dmEdit": "Editar",
20
+ "dmDelete": "Eliminar",
21
+ "dmEditTitle": "Editar dispositivo Yamaha",
22
+ "dmDeleteConfirm": "Eliminar o dispositivo Yamaha «%s»?",
23
+ "ipLabel": "IP",
24
+ "datapointsHeader": "Pontos de dados",
25
+ "datapointsHint": "Escolha quais grupos de funções são criados como pontos de dados. Um grupo desligado não é criado e os objetos existentes são removidos.",
26
+ "group_player": "Reprodução",
27
+ "group_player_help": "Spotify, Net Radio, USB, Bluetooth e as outras fontes",
28
+ "group_tuner": "Sintonizador",
29
+ "group_tuner_help": "FM/DAB, frequência, RDS",
30
+ "group_multiroom": "Multiroom",
31
+ "group_multiroom_help": "Grupos MusicCast (entrar, sair, função), modo festa, zonas 2/3/4, Zona B e o interruptor de ligar todas as zonas",
32
+ "group_hdmi": "HDMI",
33
+ "group_hdmi_help": "Saídas HDMI e desvio de sincronização labial, para cada zona",
34
+ "group_scene": "Cenas",
35
+ "group_scene_help": "Recuperar cenas guardadas",
36
+ "group_sound": "Som",
37
+ "group_sound_help": "Modos de processamento de som, controlo de tom, subwoofer, balanço e equalizador",
38
+ "group_advanced": "Avançado",
39
+ "group_advanced_help": "Volume inicial, volume máximo, padrões de altifalantes e os 23 nomes de entrada"
40
+ }