Summary
Yamaha ISX18 Series (MusicCast-enabled). Spec covers the Yamaha Extended Control (YXC) "Advanced" HTTP API (Rev. 2.00), focusing on Link distribution and per-zone Link Control/Audio Delay/Audio Quality endpoints. Basic endpoints (power, input, volume, etc.) live in the separate YXC Basic spec and are out of scope here.
Transport
protocols:
- http
- tcp # inferred from "communication protocol sent over Ethernet and Wi-Fi"
addressing:
base_url: "http://{host}/YamahaExtendedControl" # literal from source; {host} = device IP
auth:
type: none # inferred: no auth procedure in source
Traits
routable: true # inferred from Link Control / distribution commands
queryable: true # inferred from getDistributionInfo query example
# powerable, levelable: out of scope for this Advanced spec
Actions
- id: set_link_control
label: Set Link Control (per zone)
kind: action
command: "GET {base_url}/v1/{zone}/setLinkControl?control={control}"
params:
- name: zone
type: string
description: Target zone
enum: [main, zone2, zone3, zone4]
- name: control
type: string
description: Link Control setting; valid values from /system/getFeatures
- id: set_link_audio_delay
label: Set Link Audio Delay (per zone)
kind: action
command: "GET {base_url}/v1/{zone}/setLinkAudioDelay?delay={delay}"
params:
- name: zone
type: string
enum: [main, zone2, zone3, zone4]
- name: delay
type: string
description: Link Audio Delay setting; valid values from /system/getFeatures
notes: "Invalid when Link Control setting is 'Stability Boost'"
- id: set_link_audio_quality
label: Set Link Audio Quality (per zone)
kind: action
command: "GET {base_url}/v1/{zone}/setLinkAudioQuality?mode={mode}"
params:
- name: zone
type: string
enum: [main, zone2, zone3, zone4]
- name: mode
type: string
description: Link Audio Quality setting; valid values from /system/getFeatures
notes: "URI may include /secure prefix per source"
- id: get_distribution_info
label: Get Distribution Info
kind: query
command: "GET {base_url}/v1/dist/getDistributionInfo"
params: []
- id: set_server_info
label: Set Link Server (Master)
kind: action
command: "POST {base_url}/v1/dist/setServerInfo"
params:
- name: group_id
type: string
description: Group ID in 32-digit hex; empty string cancels master
- name: zone
type: string
required: false
enum: [main, zone2, zone3, zone4]
- name: type
type: string
required: false
enum: [add, remove]
- name: client_list
type: array
required: false
description: IP addresses of clients; up to 9
- id: set_client_info
label: Set Link Client
kind: action
command: "POST {base_url}/v1/dist/setClientInfo"
params:
- name: group_id
type: string
description: Group ID in 32-digit hex; empty string cancels client
- name: zone
type: array
required: false
description: Target zone IDs
- name: server_ip_address
type: string
required: false
description: IP address of Link distribution server
- id: start_distribution
label: Start Link Distribution
kind: action
command: "GET {base_url}/v1/dist/startDistribution?num={num}"
params:
- name: num
type: integer
description: Current MusicCast Network distribution number
- id: stop_distribution
label: Stop Link Distribution
kind: action
command: "GET {base_url}/v1/dist/stopDistribution"
params: []
- id: set_group_name
label: Set Group Name
kind: action
command: "POST {base_url}/v1/dist/setGroupName"
params:
- name: name
type: string
description: Group name, UTF-8 within 128 bytes; empty = default
notes: "Group Name stored in volatile memory"
Feedbacks
# All actions return response_code; distribution queries also return these:
- id: distribution_role
type: enum
values: [server, client, none]
- id: distribution_status
type: enum
values: [building, working, deleting]
description: Valid only when role is Server; API 2.00+
- id: distribution_server_zone
type: enum
values: [main, zone2, zone3, zone4]
- id: audio_dropout
type: boolean
description: "Cleared on CONNECT or Network Module reset; not cleared on distribution cancel"
- id: response_code
type: integer
values: [0, 1, 2, 3, 4, 5, 6, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 200, 201]
description: "0 = success. 1=init, 2=internal err, 3=invalid req, 4=invalid param, 5=guarded, 6=timeout, 99=fw updating. 100s=streaming, 200s=distribution"
Variables
# UNRESOLVED: no discrete settable parameters in this Advanced spec beyond the action params above
Events
# Source states: "Events are spread out as UDP unicast. Retrieve necessary information by polling because of UDP packet loss."
# No event subscription/push schema is documented in this source; polling via getDistributionInfo is the documented pattern.
Macros
# Source documents a multi-step "Making a Group" sequence:
# 1. setClientInfo on each client (group_id + zone)
# 2. setServerInfo (add) on master (group_id + zone + client_list)
# 3. startDistribution?num=N on master
# See source section 9.1.2 for full ordering; status reaches "working" on completion.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing in this source
Notes
- API version 2.00 required for this Advanced spec. Backward compatibility with prior versions assured unless noted.
- Multi-zone receivers: each zone cannot join another group discretely; Zone A and B must join as clients together.
- Group creation on 2018+ devices as master can take 2-3 minutes; polling getDistributionInfo.status until "working" is the documented sync pattern.
- 2015-2017 devices need latest firmware to interop with 2018+ devices; see source section 9.1.8 compatibility matrix.
- Group max size = getFeatures.get_max + 1 (API 2.00+); was capped at 10 prior to 2.00.
- Source includes ID lists for Zone / Input / Sound Program in section 7 (not reproduced here as structured YAML — these are reference data, not action interfaces).
Provenance
source_domains:
- community.symcon.de
- community-openhab-org.s3-eu-central-1.amazonaws.com
source_urls:
- https://community.symcon.de/uploads/short-url/vRXaJXAn6vI2DSQYMHF0aqLbdir.pdf
- https://community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/9/931ea88e30cf0f05fcdee79816eb4d3f12dd4d70.pdf
retrieved_at: 2026-06-01T23:52:20.049Z
last_checked_at: 2026-06-04T06:32:27.313Z
Verification Summary
verdict: verified
checked_at: 2026-06-04T06:32:27.313Z
matched_actions: 9
action_count: 9
confidence: medium
summary: "All 9 spec actions matched exactly to source sections 4.1-5.6; transport URL verified; no missing commands. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "basic endpoints (power, input, volume, system/getDeviceInfo, system/getFeatures, system/getStatus, system/getStereoPairInfo) are referenced in application notes but not formally defined in this document"
- "no discrete settable parameters in this Advanced spec beyond the action params above"
- "no safety warnings, interlock procedures, or power-on sequencing in this source"
- "explicit TCP port not stated in source (HTTP default 80 implied by http:// scheme but not declared); system endpoints getDeviceInfo / getFeatures / getStatus / getStereoPairInfo are referenced but their request/response schemas are not defined in this Advanced document; firmware version for ISX18 not stated."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0