Summary
Simple IP Control protocol for Sony BRAVIA Professional Displays (KDX8501 Series). Uses fixed24-byte TCP messages on port 20060. Supports power, volume, mute, picture mute, input selection, scene setting, IR-emulation commands, and broadcast/MAC address queries over a local network.
Transport
protocols:
- tcp
addressing:
port: 20060
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable
- levelable
- routable
- queryable
Actions
# Each command is a fixed 24-byte message: header "*S" (0x2A 0x53) +
# message type char (C=Control, E=Enquiry, A=Answer, N=Notify) +
# FourCC command (4 ASCII chars) + 16-byte parameter field +
# footer0x0A (LF). Parameters are zero-padded ASCII unless noted.
- id: set_power_status
label: Set Power Status
kind: action
command: "*SCPOWR000000000000000{0|1}\n" # 0=Standby, 1=Active
params:
- name: state
type: integer
enum: [0, 1]
description: 0 = Standby (Off), 1 = Active (On)
- id: get_power_status
label: Get Power Status
kind: query
command: "*SEPOWR################\n"
params: []
- id: toggle_power_status
label: Toggle Power Status
kind: action
command: "* SCTPOW################\n"
params: []
- id: set_audio_volume
label: Set Audio Volume
kind: action
command: "*SCVOLU{volume_padded}\n" # 16 ASCII digits, left-padded with 0; e.g. 0000000000000029
params:
- name: volume
type: integer
description: Volume value as16-digit left-zero-padded decimal in parameter field
- id: get_audio_volume
label: Get Audio Volume
kind: query
command: "*SEVOLU################\n"
params: []
- id: set_audio_mute
label: Set Audio Mute
kind: action
command: "*SCAMUT000000000000000{0|1}\n" # 0=Unmute, 1=Mute
params:
- name: state
type: integer
enum: [0, 1]
description: 0 = Unmute, 1 = Mute
- id: get_audio_mute
label: Get Audio Mute
kind: query
command: "*SEAMUT################\n"
params: []
- id: set_input
label: Set Input
kind: action
command: "*SCINPT00000000{src_type}000{port}\n" # src_type 1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring; port 1-9999
params:
- name: source_type
type: integer
enum: [1, 3, 4, 5]
description: 1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring
- name: port
type: integer
description: Port number 1-9999
- id: get_input
label: Get Input
kind: query
command: "*SEINPT################\n"
params: []
- id: set_picture_mute
label: Set Picture Mute
kind: action
command: "*SCPMUT000000000000000{0|1}\n" # 0=Disabled, 1=Enabled (screen black)
params:
- name: state
type: integer
enum: [0, 1]
description: 0 = Picture mute off, 1 = Picture mute on (screen black)
- id: get_picture_mute
label: Get Picture Mute
kind: query
command: "*SEPMUT################\n"
params: []
- id: toggle_picture_mute
label: Toggle Picture Mute
kind: action
command: "*SCTPMU################\n"
params: []
- id: set_scene_setting
label: Set Scene Setting
kind: action
command: "*SCSCEN{scene_padded}\n" # 16-char right-padded with "#"; values: auto, auto24pSync, general (case-sensitive)
params:
- name: scene
type: string
enum: [auto, auto24pSync, general]
description: Scene name, right-padded to16 chars with "#"; case-sensitive
- id: get_scene_setting
label: Get Scene Setting
kind: query
command: "*SESCEN################\n"
params: []
- id: set_ircc_code
label: Send IR Code kind: action
command: "*SCIRCC{ir_code_padded}\n" # 16-digit parameter; see IR Commands table for codes
params:
- name: ir_code
type: string
description: Two-digit IR code from the IR Commands table, left-padded with 0s to 16 digits
- id: get_broadcast_address
label: Get Broadcast Address
kind: query
command: "*SEBADR{interface_padded}\n" # e.g. "eth0##############" (right-padded with #)
params:
- name: interface
type: string
description: Interface name (e.g. "eth0"), right-padded to 16 chars with "#"
- id: get_mac_address
label: Get MAC Address
kind: query
command: "*SEMADR{interface_padded}\n" # e.g. "eth0##############" (right-padded with #)
params:
- name: interface
type: string
description: Interface name (e.g. "eth0"), right-padded to 16 chars with "#"
Feedbacks
- id: power_state
type: enum
values: [off, on]
description: Returned by get_power_status; 0=Standby, 1=Active
- id: audio_volume
type: integer
description: Returned by get_audio_volume as 16-digit left-zero-padded decimal
- id: audio_mute_state
type: enum
values: [unmuted, muted]
description: Returned by get_audio_mute; 0=Not Muted, 1=Muted
- id: current_input
type: object
description: Returned by get_input; source_type (1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring) and port (1-9999)
- id: picture_mute_state
type: enum
values: [disabled, enabled]
description: Returned by get_picture_mute; 0=Disabled, 1=Enabled
- id: scene_setting
type: string
description: Returned by get_scene_setting (e.g. auto, auto24pSync, general)
- id: broadcast_address
type: string
description: Returned by get_broadcast_address; IPv4 address padded right with "#"
- id: mac_address
type: string
description: Returned by get_mac_address; MAC padded right with "#"
- id: ack_success
type: enum
values: [success]
description: Answer "A" message with all-zero parameter field (16 ASCII "0")
- id: ack_error
type: enum
values: [error]
description: Answer "A" message with all-"F" parameter field (16 ASCII "F") - invalid parameters / failure- id: not_available
type: enum
values: [not_available]
description: Answer "A" message with all-"N" parameter field (16 ASCII "N") - e.g. Scene Setting not available for current input
- id: not_found
type: enum
values: [not_found]
description: Answer "A" message returned by setInput when input not found
Variables
# UNRESOLVED: source documents fixed parameter slots rather than named variables
# outside of action params. No independent settable variables beyond action parameters.
Events
# All "N" (Notify) messages from monitor to client. Each carries the same
# FourCC + parameter format as the corresponding control, but with the
# message type byte set to 0x4E [N].
- id: fire_power_change
fourcc: POWR
description: Sent when power changes; 0=powering off, 1=powering on
- id: fire_input_change
fourcc: INPT
description: Sent when input changes; same encoding as setInput params
- id: fire_volume_change
fourcc: VOLU
description: Sent when volume changes; same encoding as setAudioVolume params
- id: fire_mute_change
fourcc: AMUT
description: Sent when mute state changes; 0=unmuting, 1=muting
- id: fire_picture_mute_change
fourcc: PMUT
description: Sent when picture mute changes; 0=enabled, 1=disabled
Macros
# UNRESOLVED: source does not define multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlocks, or power-on sequencing requirements.
# Note: EU RED-DA compliance may restrict which commands are available; operators must check
# regional spec variant before issuing commands.
Notes
- Protocol frame is exactly 24 bytes: header
*S(0x2A 0x53) + msg type (C/E/A/N) + FourCC + 16-byte param + LF (0x0A). - Parameter fields are 16 ASCII characters. Numeric values are zero-padded; strings are right-padded with "#" (case-sensitive).
- Source documents 3 EU specification variants under RED-DA compliance with differing settings/commands.
- TCP listen port 20060; no authentication required.
- Both wired and wireless LAN supported.
- Required monitor settings: Settings → Network & Internet → Remote device settings → Control remotely, AND Settings → Network & Internet → Home network → IP control → Simple IP control.
- getBroadcastAddress / getMacAddress marked "* EU models Note": availability may vary by region/spec.
Provenance
source_domains:
- pro-bravia.sony.net
source_urls:
- https://pro-bravia.sony.net/remote-display-control/simple-ip-control/
- https://pro-bravia.sony.net/remote-display-control/rest-api/
- https://pro-bravia.sony.net/remote-display-control/ircc-ip/
- https://pro-bravia.sony.net/remote-display-control/
- https://pro-bravia.sony.net/samples-and-documentation/
retrieved_at: 2026-09-02T17:43:36.454Z
last_checked_at: 2026-09-22T11:43:05.881Z
Verification Summary
verdict: verified
checked_at: 2026-09-22T11:43:05.881Z
matched_actions: 17
action_count: 17
confidence: medium
summary: "All 17 spec actions map1:1 to source commands (POWR, VOLU, AMUT, INPT, PMUT, SCEN, IRCC, BADR, MADR plus toggle variants); TCP 20060 verified. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "EU RED-DA variants may differ in available commands and settings."
- "source documents fixed parameter slots rather than named variables"
- "source does not define multi-step sequences."
- "source contains no safety warnings, interlocks, or power-on sequencing requirements."
- "firmware version compatibility not stated in source."
- "exact list of RED-DA spec variants and their command restrictions — referenced as external link."
- "IR command codes beyond the table excerpt are not enumerated here in full (42 codes listed in source)."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0