This adapter controls networked Yamaha audio devices from ioBroker: AV receivers, stereo receivers, MusicCast speakers and soundbars, and CD receivers — from roughly 2008 onwards.
It replaces the two discontinued adapters yamaha and musiccast and speaks all three
Yamaha network protocols at once, so one device shows up as one device no matter how many
of them it happens to answer.
Which devices work
| Device class | Examples | How it is controlled |
|---|---|---|
| AV receiver | RX-V, RX-A, RX-S, TSR, HTR, CX-A | YNCA, on MusicCast models additionally MusicCast |
| Stereo receiver / network amplifier | R-N, WXA, WXC, A-S | MusicCast, on older models YNCA |
| Wireless speaker | MusicCast 20/50, WX, ISX | MusicCast |
| Soundbar | YSP, YAS, ATS, SR-B | MusicCast |
| CD receiver / network player | CRX, MCR, CD-NT | MusicCast |
| Receiver from before 2010 | RX-V from about 2008 | XML |
You do not have to know which protocol your device speaks. The adapter tries all three and uses everything that answers.
Setting it up
- Install the adapter and create an instance.
- Open the instance settings. The Devices section lists your receivers as cards.
- Leave the list empty and the adapter searches the network by itself and runs whatever it finds — or press + and enter the IP address of a receiver. You can do both: devices you entered and devices the search found run side by side.
Every card shows a speaker symbol for the volume: a speaker with a percent sign and the main zone's current volume under it while Volume as 0–100 % is on, the plain speaker otherwise. Every card can be edited, found ones included — give a found device the fixed address you assigned the receiver, and it becomes one of your entered devices.
A receiver from before 2010 does not answer a network search and always has to be added by hand. The same is true for any device your router keeps in a different network segment.
Give the receiver a fixed address. The adapter recognises a device by its identity, not by its address, and follows it when the address changes — but a device that moves while the adapter is not running is only found again by the next network search.
Settings
- Search the network for devices — Automatically searches while the device list is empty, which is what the adapter has always done. Always keeps searching next to the devices you entered. Never runs your list alone and opens no listener on UDP port 1900. A device that was found earlier and is not searched for any more keeps its datapoints — they are simply marked offline. Only the delete button on its card removes a device for good. A list holding only the row carried over from the previous adapter (its name is an IP address) counts as empty: nobody typed that address, so the search stays on and follows that receiver to a new address.
- Network Interface — keep "all addresses" (0.0.0.0) and the adapter uses every network card of your ioBroker machine. Set it if your server sits in several networks: the search, every connection to a receiver and the MusicCast event port then use only this address. An address the machine does not have is ignored with one warning in the log.
- MusicCast event port — shown, not editable: MusicCast devices push their changes to UDP port 41100, the protocol fixes it. It is there so the Admin can warn you when a second instance on the same host would take the port.
- XML query interval — how often a receiver from before 2010 is asked for its state. Those models cannot report changes by themselves. 60 seconds is a sensible default; a shorter interval means more network traffic for little gain.
- Data points — see below.
On each device card
-
Volume as 0–100 % — off, that receiver's volume datapoints carry the scale it shows itself: decibels, or its own step count. On, they carry 0–100 % instead, the main zone and every other zone of that receiver — the range most VIS widgets expect. The adapter converts in both directions, so the receiver always gets the value it expects.
It belongs to the device, not to the instance: one receiver wanting percent says nothing about the others. You set it where you set the device's name and address: in the add/edit dialog on its card — and while it is on, the card's speaker symbol carries a percent sign, so you can see what a receiver's volume carries without opening anything.
What you get in the object tree
Each receiver becomes one device. Under it:
- info — whether the device is connected, its model, firmware, address, and which of the three protocols is live right now.
- power, volume, mute, input, soundProgram, sleep — the amplifier core. It cannot be switched off; a device gets those it has (a speaker has no sound program).
- player — what is playing right now: source, artist, album, track, cover, elapsed and total time, repeat and shuffle, and the transport buttons. One block per zone.
- tuner — band, frequency in kilohertz, preset, RDS, and the DAB detail where the device has DAB.
- multiroom — everything that spans zones or devices: zones 2 to 4 with their own volume and input, master power, party mode, and the MusicCast group.
- scene — recall a scene by number or by its name, plus the list of scenes the device declares.
- remote — the on-screen remote: a cursor pad, and the menu keys where the receiver has them.
- sound, hdmi, advanced — tone controls, equalizer, signal information, HDMI outputs, speaker settings, the assignable input names. On MusicCast devices the device-wide settings join them: automatic standby and display brightness. Numeric datapoints carry the limits the device itself declares, so a slider offers exactly the range the receiver accepts.
Only what your device actually reports is created. A soundbar gets no zone 4, a stereo receiver no surround decoder.
Playback times come in two forms
player.elapsedTime and player.totalTime are a number in seconds — that is the form
the ioBroker media-player widget, Alexa and Google need, and the form you can calculate with.
Right next to them, player.elapsedTimeText and player.totalTimeText carry the same value
as readable text (1:23), for a visualization that just wants to show it.
Switching datapoint groups off
Seven groups can be switched off in the settings: playback, tuner, multiroom, HDMI, scenes, sound and advanced, plus the clock on devices that have one. The menu and the on-screen remote belong to the playback group. Switching a group off removes its datapoints — the adapter does not leave empty leftovers behind. Switching it on again recreates them at the next connection.
Using it
Switch on and choose a source
setState("yamaha.0.rx-v6a-1a2b.power", true);
setState("yamaha.0.rx-v6a-1a2b.input", "HDMI1");
Set the volume — in the scale the receiver shows (decibels or its own steps), within the
limits of its volume datapoint; with Volume as 0–100 % on, in percent. On a receiver
that shows decibels:
setState("yamaha.0.rx-v6a-1a2b.volume", -35.5);
Recall a scene — by number or by the name shown on the device:
setState("yamaha.0.rx-v6a-1a2b.scene.recall", "Movie Viewing");
Press a key on the on-screen remote — up, down, left, right, select, return,
home:
setState("yamaha.0.rx-v6a-1a2b.remote.cursor", "left");
The words are the same on all three protocols, so a script keeps working when you replace the receiver. A device only offers the keys it really has: older models know no menu keys, and their cursor works on the menu that is open.
Browse the menu of a network source. player.browse.source opens a source, the eight
line1 … line8 datapoints show the current window, selectLine acts like the OK key, and
pageUp/pageDown/back/home navigate. For scripts there is path: write
Bookmarks>Radio Paradise and the adapter walks there by itself.
Things worth knowing
The first contact takes a while. On the very first connection the adapter asks the receiver which functions it has — up to half a minute on a YNCA device. The answers are remembered per device and survive a restart, so every later start brings the device up in seconds and refreshes the values in the background. A firmware update or a different device at the same address is noticed and asked again.
MusicCast updates need UDP port 41100. MusicCast devices send their updates to port 41100
on your ioBroker machine, and only one program can hold it. If the old musiccast adapter is
still installed and running, it holds that port. The updates also stay away when ioBroker runs
in Docker without that UDP port published, or when a second MusicCast program on the same
machine registers for them. The adapter notices a change that came without an update: after
two of them it says so once in the log, reads every write back and asks for everything every
five minutes. YNCA devices are unaffected. Free or publish the port to get instant updates
back — the log says so when they arrive again.
Zone 2 is a full zone. It has its own volume, input, player block and scenes under
multiroom.zone2. Recalling a favourite switches the zone that is listening to that source,
not always the main zone.
A device's object ID is its model and the end of its serial number — for example
yamaha.0.rx-v6a-1a2b. Two devices of the same model therefore get two object trees, and a
device keeps its ID whatever you or the app call it: the name next to the ID comes from the
device and can be changed on its card. Should two devices of one model share the last four
characters, the second one gets the whole serial number. A device that reports no serial number
— a YNCA receiver whose XML control does not answer — is known by its model: rx-v473,
rx-v473-2. A device you add by hand while it is switched off starts under the name you typed;
once it has answered, its objects move to its model ID at the next start.
A receiver is known by its serial number, not by its address. The adapter learns the serial (and the MAC) from the receiver itself — from its network announcement, from MusicCast, from the XML control. A device that gets a new IP address or a new name keeps its objects: found devices and the row carried over from the previous adapter are moved to the new address, usually within seconds, because a receiver announces itself when it comes up — and at the latest by the search a lost connection triggers. A device you entered by hand stays at the address you typed; when the search sees it answering elsewhere, the log says so once — edit the card to move it. The listener shares port 1900 with other UPnP services on your machine; if it cannot use the port, one warning says so and the adapter falls back to searching periodically.
Deleting is final. The delete button on a card asks first and tells you what goes with the device: all of its datapoints, their history and every visualisation binding. A device the network search found is not added again — it is on the exclusion list until you either add it by hand or tick it in Excluded devices… above the device list, which lets the next search take it back.
A refused command shows up in the log. If a receiver rejects something — a scene its
generation does not support, a function that is unavailable in standby — you will find it as
a warning in the adapter log instead of nothing happening silently. A MusicCast device's answer
comes with its meaning, e.g. Guarded for "not possible in the current state". The datapoint
then shows the device's value again.
When something does not work
- The device is not found. Older devices answer no search — add them by IP. Otherwise check that ioBroker and the receiver are in the same network segment, and try setting the network interface explicitly.
- The device stays offline. Check the address, and whether the receiver is reachable at
all (its own web page usually answers on
http://<address>). The adapter retries by itself, with growing pauses. If the receiver got a new address, a found device follows it on its own; a device you entered by hand has to be edited — the log names the new address. - I deleted a device and it came back / I want it back. A deleted device stays out of the search until you let it back in: add it by hand, or open Excluded devices… above the list and tick it.
- A datapoint stays empty. The device does not report that value — the adapter only creates what it was told about, so an empty datapoint usually means the feature exists on other models but not on yours.
- Nothing updates any more. Look for the MusicCast port message above, and check
info.connectionon the device.
For anything else, create a diagnostics report: in the instance settings, open the Expert tab, pick the device and press Create diagnostics report. The adapter reads the receiver over every protocol it speaks — read only, nothing on the receiver changes — which takes up to a minute, and your browser saves one file: what the receiver can do and what it answered, its datapoints, the adapter's recent log lines (debug lines included, even with the log level at info) and whether the musiccast adapter is installed, switched on and running. Addresses, serial numbers, network, room, device and input names are replaced by markers — also when the receiver is off —, and the adapter writes nothing to disk — it holds the report in memory only until your browser has it. If the instance is not running, the tab says so instead of waiting. Attach the file to a device report on GitHub.
Changelog
3.3.0 (2026-10-14)
- (krobipd) New: Diagnostics report on the new Expert tab, with a "Report a device" issue form for it
- (krobipd) New: Names you change in the receiver or the MusicCast app reach the input, scene and sound program dropdowns while the adapter runs
- (krobipd) Changed: YNCA, MusicCast and XML datapoints now share names, roles and value lists
- (krobipd) Changed: The YNCA input dropdown shows your input names; advanced.inputNames.* is removed
- (krobipd) Changed: sound.adaptiveDrc is a switch on every receiver; writing "Auto" still works
- (krobipd) Changed: On MusicCast-only devices, sleep is a dropdown and bass and treble are in dB
- (krobipd) Changed: The Zone B name moves from multiroom.zoneB.name to multiroom.zoneB.zoneName
- (krobipd) Changed: The network interface setting applies to every connection of the adapter
- (krobipd) Fixed: info.model and info.firmware are filled on devices without YNCA
- (krobipd) Fixed: Scene, tuner and playback commands work on more receivers
- (krobipd) Fixed: Empty or invalid values written to scene.recall or a preset no longer recall anything
- (krobipd) Fixed: A tuner frequency written right after the band goes to the new band
- (krobipd) Fixed: Switches on 2008–2017 receivers no longer show an On/Standby list
- (krobipd) Fixed: The on-screen remote works over XML on the 2012 entry class (RX-V473 …)
- (krobipd) Fixed: A YNCA receiver that did not answer at one start is read in full at the next
- (krobipd) Fixed: Editing a device card no longer restarts the instance, and deleted receivers stay deleted
- (krobipd) Fixed: Zones on Main Zone Sync show the main zone's playback; zones without a media input get no player datapoints
- (krobipd) Fixed: MusicCast link groups, favourites and volume right after power-on on soundbars work reliably
- (krobipd) Fixed: Receivers with a CD drive and MusicCast get their CD datapoints
- (krobipd) Fixed: Scenes without a title show as "Scene 1", "Scene 2" … in the scene dropdown instead of a bare number
- (krobipd) Fixed: Menu paths find entries on later pages, and XML menus are no longer hidden after a "not now" answer
- (krobipd) Fixed: A powered-off XML receiver goes offline in seconds
- (krobipd) Fixed: A MusicCast-only device that loses power goes offline within three minutes instead of fifteen
3.2.0 (2026-10-02)
- (krobipd) Fixed: Dropdown lists such as sound program, sleep timer and Adaptive DRC no longer go empty when the receiver loses power; lists emptied that way come back
- (krobipd) Changed: Your datapoints stay exactly as they are while the adapter runs, also when a receiver goes offline; they change only after an adapter or firmware update
- (krobipd) New: A command the receiver refuses over one protocol, or one sent while that protocol is offline, goes out over another protocol that understands it
- (krobipd) New: A firmware update of the receiver is noticed and logged; the adapter reads the receiver again and reports it ready once that is done
- (krobipd) Fixed: Datapoints of found receivers are no longer deleted at adapter start when the receiver list cannot be read or an entered receiver has the same address
3.1.3 (2026-10-02)
- (krobipd) Fixed: Menu lines fill again after switching player.browse.source, also on receivers that were in standby when the adapter started
- (krobipd) Fixed: On receivers that offer their menus only over XML (models from before 2010), the menu lines no longer stay empty after a source switch
- (krobipd) Changed: A new instance starts switched off and waits until you have set it up; existing instances keep their own setting
3.1.2 (2026-09-30)
- (krobipd) Fixed: The sleep timer lists the receiver's own values again (Off, 30 min …) instead of MusicCast's minutes, so a picked value is one the receiver accepts
3.1.1 (2026-09-30)
- (krobipd) Fixed: A receiver that replaces another at the same address is asked again whether zones 2 and 3 have an on-screen remote, instead of inheriting the old answer
License
The MIT License (MIT)
Copyright (c) 2015-2024 soef soef@gmx.net
Copyright (c) 2026 iobroker-community-adapters iobroker-community-adapters@gmx.de
Copyright (c) 2026 krobi krobi@power-dreams.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.