Yamaha

Control Yamaha AV receivers and MusicCast devices over the network

Current Release
2.9.2
Developer
krobi, soef, iobroker-community-adapters
License
MIT

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 classExamplesHow it is controlled
AV receiverRX-V, RX-A, RX-S, TSR, HTR, CX-AYNCA, on MusicCast models additionally MusicCast
Stereo receiver / network amplifierR-N, WXA, WXC, A-SMusicCast, on older models YNCA
Wireless speakerMusicCast 20/50, WX, ISXMusicCast
SoundbarYSP, YAS, ATS, SR-BMusicCast
CD receiver / network playerCRX, MCR, CD-NTMusicCast
Receiver from before 2010RX-V from about 2008XML

You do not have to know which protocol your device speaks. The adapter tries all three and uses everything that answers.

Setting it up

  1. Install the adapter and create an instance.
  2. Open the instance settings. The Devices tab lists your receivers as cards.
  3. 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 carries a small icon for where its address came from: a pencil for one you entered, a magnifier for one the search found. A found device can be edited too — give it 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 devicesAutomatically 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. 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.
  • Network interface — leave it empty and the search leaves through every network card of your ioBroker machine. Only set it if your server sits in several networks and the search should use a particular one. It has no effect on the receivers themselves.
  • 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.
  • Poll interval (older devices) — 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.
  • Datapoint groups — 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 shows a small 0–100 % badge next to the protocol labels, 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. Always present, cannot be switched off.
  • 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.living.power", true);
setState("yamaha.0.living.input", "HDMI1");

Set the volume — in decibels, exactly as the receiver shows it:

setState("yamaha.0.living.volume", -35.5);

Recall a scene — by number or by the name shown on the device:

setState("yamaha.0.living.scene.recall", "Movie Viewing");

Press a key on the on-screen remoteup, down, left, right, select, return, home:

setState("yamaha.0.living.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 line1line8 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.

The MusicCast port can only belong to one program. 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, and this adapter falls back to asking every five minutes instead of being told. YNCA devices are unaffected. Uninstall or stop the old adapter to get instant updates back.

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 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.

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.
  • 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.connection on the device.

For anything else, switch the instance log level to debug for a moment — the adapter says what it asks, what it gets, and what it refuses to send.

Changelog

2.10.0 (2026-09-15)

  • (krobipd) Fixed: A receiver the search found is searched for again after it moved to another address — until now that only worked for receivers found at start-up
  • (krobipd) Fixed: A receiver that is unplugged or switched off at the mains now shows as disconnected within about 90 seconds instead of staying green for many minutes
  • (krobipd) Fixed: A MusicCast device that stops answering a command is checked right away and shown as disconnected — until now that took up to 15 minutes
  • (krobipd) Fixed: On receivers without live updates, a value you write is confirmed as soon as the receiver took it, instead of up to five minutes later
  • (krobipd) Fixed: A zone name you changed on an older receiver stays after a reconnect — until now the previous name came back
  • (krobipd) Fixed: Deleting a device from its card while it is still connecting no longer leaves parts of its object tree behind
  • (krobipd) Fixed: Writing false, off or 0 to a switch datapoint now switches it off — until now any text, even the word false, switched it on
  • (krobipd) Improved: The history of a datapoint only records values the receiver actually changed — a restart or a lost connection no longer adds identical entries
  • (krobipd) Improved: MusicCast live updates now start on their own once a port another program held at start-up becomes free — before, only a restart helped
  • (krobipd) New: Device pictograms in the object tree and on the device cards — receiver, stereo receiver, speaker, soundbar or CD system, readable in every theme, also for a device that is off
  • (krobipd) Changed: The device card shows a speaker symbol; with the percent switch on it also shows the current volume as a percentage. The pencil and magnifier markers are gone
  • (krobipd) Fixed: The adapter logo is readable in the Admin's dark themes as well — until now its dark strokes vanished on a dark background
  • (krobipd) Changed: The instance settings show the fixed MusicCast event port, so the Admin warns when a second instance on the same host would take it

2.9.2 (2026-09-12)

  • (krobipd) New: The device card shows a 0–100 % badge while that receiver's volume is in percent, so you can tell the two scales apart at a glance
  • (krobipd) Fixed: The percent setting is made in one place again — the device's edit dialog; the extra switch on the card showed the wrong position and is gone

2.9.1 (2026-09-12)

  • (krobipd) Fixed: A receiver the network search found keeps its datapoints when you add a device by hand — they stay with their history and are marked offline instead of deleted

2.9.0 (2026-09-12)

  • (krobipd) New: Devices you enter by hand and devices the network search finds now run side by side — entering one receiver no longer takes every found one out of the instance
  • (krobipd) New: Setting "Search the network for devices" — automatically while your device list is empty (as before), always next to it, or never
  • (krobipd) New: Every device card can be edited. Give a found receiver the fixed address you assigned it and it becomes one of your entered devices, keeping its whole object tree
  • (krobipd) New: Each card shows where its address came from, and "Volume as 0–100 %" is now set per device instead of once for the whole instance — every receiver keeps what it had
  • (krobipd) Fixed: hdmi.aspect and hdmi.resolution were missing on every receiver from 2012 on — the models moved those settings to another subunit and the adapter only ever asked the old one
  • (krobipd) Fixed: Receivers from 2010/2011 were offered a 4K video resolution their model does not support
  • (krobipd) Fixed: A write to a receiver could be dropped without a trace while another of its protocols was reconnecting
  • (krobipd) Fixed: Deleting a device and adding the same one again left it with the wrong icon until the next restart, and a pending write could recreate the deleted device object
  • (krobipd) Changed: A MusicCast receiver's datapoints now update only when their value really changed — automations tied to them stop firing for no reason

2.8.0 (2026-09-11)

  • (krobipd) Fixed: A volume written to a MusicCast receiver now arrives exactly — the adapter reads the receiver's own step declaration instead of guessing a ratio (#623)
  • (krobipd) Fixed: Every zone of a receiver now carries the same volume scale — a third zone used to show a raw 0…161 count next to decibels in the other two
  • (krobipd) Changed: The volume datapoint now carries the minimum, maximum and step the receiver reports for that zone — a receiver whose zones differ gets a different range per zone
  • (krobipd) New: Setting "Volume as 0–100 %" turns every volume datapoint, in every zone, into a percentage — what most VIS widgets expect. Off by default; the receiver's own scale stays the truth
  • (krobipd) Changed: The datapoints actualVolume, actualVolumeMode and inputText are gone — volume and input carry the same information
  • (krobipd) Changed: After this update every receiver is asked about its abilities once more, so the first start takes a little longer than usual
  • (krobipd) Fixed: A DAB receiver no longer logs a warning on every tuner poll — the frequency datapoint was limited to the FM band while the receiver reported DAB frequencies

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.