Summary
Sony BRAVIA Professional Displays in the FWXE8001 series (FW-43XE8001, FW-49XE8001, FW-55XE8001) support Simple IP Control (SSIP), a proprietary TCP-based protocol using fixed 24-byte messages. The control listening port is TCP 20060. This spec covers power, volume, mute, input selection, picture mute, scene setting, IR remote emulation, network address queries, and unsolicited event notifications.
Transport
protocols:
- tcp
addressing:
port: 20060
auth:
type: UNRESOLVED # source does not state whether authentication is used
Traits
- powerable # inferred from setPowerStatus / togglePowerStatus commands
- queryable # inferred from getPowerStatus, getAudioVolume, getAudioMute, getInput, getPictureMute, getSceneSetting
- routable # inferred from setInput command with multiple input types
- levelable # inferred from setAudioVolume command
Actions
# All commands use fixed 24-byte SSIP frames: header [*S] (0x2A 0x53), message-type byte,
# 4-char FourCC command, 16-byte parameter field, footer [LF] (0x0A).
- id: set_power_off
label: Power Off (Standby)
kind: action
command: "*SCPOWR0000000000000000"
description: "Set power status to Standby (Off). FourCC POWR, param 0000000000000000."
params: []
- id: set_power_on
label: Power On (Active)
kind: action
command: "*SCPOWR0000000000000001"
description: "Set power status to Active (On). FourCC POWR, param 0000000000000001."
params: []
- id: toggle_power_status
label: Toggle Power Status
kind: action
command: "*SCTPOW################"
description: "Toggles current power status. FourCC TPOW."
params: []
- id: get_power_status
label: Get Power Status
kind: query
command: "*SEPOWR################"
description: "Enquire current power status. Returns 0=Standby(Off), 1=Active(On)."
params: []
- id: set_audio_volume
label: Set Audio Volume
kind: action
command: "*SCVOLU{volume:0>16}"
description: "Set volume. Parameter is decimal volume value left-padded with zeros to 16 digits."
params:
- name: volume
type: integer
description: "Volume level (0-padded decimal, e.g. 0000000000000029)"
- id: get_audio_volume
label: Get Audio Volume
kind: query
command: "*SEVOLU################"
description: "Retrieve current audio volume value."
params: []
- id: set_audio_mute_off
label: Audio Unmute
kind: action
command: "*SCAMUT0000000000000000"
description: "Unmute audio. FourCC AMUT, param 0000000000000000."
params: []
- id: set_audio_mute_on
label: Audio Mute
kind: action
command: "*SCAMUT0000000000000001"
description: "Mute audio. FourCC AMUT, param 0000000000000001."
params: []
- id: get_audio_mute
label: Get Audio Mute Status
kind: query
command: "*SEAMUT################"
description: "Retrieve audio mute status. Returns 0=Not Muted, 1=Muted."
params: []
- id: set_input_hdmi
label: Set Input HDMI
kind: action
command: "*SCINPT000000010000XXXX"
description: "Change input to HDMI. Port number (1-9999) in last 4 param bytes."
params:
- name: port
type: integer
description: "HDMI port number (1-9999)"
- id: set_input_composite
label: Set Input Composite
kind: action
command: "*SCINPT000000030000XXXX"
description: "Change input to Composite. Port number (1-9999) in last 4 param bytes."
params:
- name: port
type: integer
description: "Composite port number (1-9999)"
- id: set_input_component
label: Set Input Component
kind: action
command: "*SCINPT000000040000XXXX"
description: "Change input to Component. Port number (1-9999) in last 4 param bytes."
params:
- name: port
type: integer
description: "Component port number (1-9999)"
- id: set_input_screen_mirroring
label: Set Input Screen Mirroring
kind: action
command: "*SCINPT000000050000XXXX"
description: "Change input to Screen Mirroring. Port number (1-9999) in last 4 param bytes."
params:
- name: port
type: integer
description: "Screen Mirroring port number (1-9999)"
- id: get_input
label: Get Current Input
kind: query
command: "*SEINPT################"
description: "Retrieve current input source. Returns input type code + port number."
params: []
- id: set_picture_mute_off
label: Picture Mute Off
kind: action
command: "*SCPMUT0000000000000000"
description: "Disable picture mute (restore video)."
params: []
- id: set_picture_mute_on
label: Picture Mute On
kind: action
command: "*SCPMUT0000000000000001"
description: "Enable picture mute (black screen)."
params: []
- id: get_picture_mute
label: Get Picture Mute Status
kind: query
command: "*SEPMUT################"
description: "Check if picture mute is enabled. Returns 0=Disabled, 1=Enabled."
params: []
- id: toggle_picture_mute
label: Toggle Picture Mute
kind: action
command: "*SCTPMU################"
description: "Toggles picture mute state. FourCC TPMU."
params: []
- id: set_scene_setting
label: Set Scene Setting
kind: action
command: "*SCSCEN{scene:pad16#}"
description: "Change scene setting. Parameter string is case-sensitive, right-padded with '#'."
params:
- name: scene
type: string
description: "Scene mode - auto, auto24pSync, general (case-sensitive, padded with #)"
- id: get_scene_setting
label: Get Scene Setting
kind: query
command: "*SESCEN################"
description: "Retrieve current scene setting."
params: []
- id: set_ircc_code_display
label: IR Command - Display
kind: action
command: "*SCIRCC0000000000000005"
description: "Send IR Display command via setIrccCode."
params: []
- id: set_ircc_code_home
label: IR Command - Home
kind: action
command: "*SCIRCC0000000000000006"
description: "Send IR Home command via setIrccCode."
params: []
- id: set_ircc_code_options
label: IR Command - Options
kind: action
command: "*SCIRCC0000000000000007"
description: "Send IR Options command via setIrccCode."
params: []
- id: set_ircc_code_return
label: IR Command - Return
kind: action
command: "*SCIRCC0000000000000008"
description: "Send IR Return command via setIrccCode."
params: []
- id: set_ircc_code_up
label: IR Command - Up
kind: action
command: "*SCIRCC0000000000000009"
description: "Send IR Up command via setIrccCode."
params: []
- id: set_ircc_code_down
label: IR Command - Down
kind: action
command: "*SCIRCC0000000000000010"
description: "Send IR Down command via setIrccCode."
params: []
- id: set_ircc_code_right
label: IR Command - Right
kind: action
command: "*SCIRCC0000000000000011"
description: "Send IR Right command via setIrccCode."
params: []
- id: set_ircc_code_left
label: IR Command - Left
kind: action
command: "*SCIRCC0000000000000012"
description: "Send IR Left command via setIrccCode."
params: []
- id: set_ircc_code_confirm
label: IR Command - Confirm
kind: action
command: "*SCIRCC0000000000000013"
description: "Send IR Confirm command via setIrccCode."
params: []
- id: set_ircc_code_red
label: IR Command - Red
kind: action
command: "*SCIRCC0000000000000014"
description: "Send IR Red button command via setIrccCode."
params: []
- id: set_ircc_code_green
label: IR Command - Green
kind: action
command: "*SCIRCC0000000000000015"
description: "Send IR Green button command via setIrccCode."
params: []
- id: set_ircc_code_yellow
label: IR Command - Yellow
kind: action
command: "*SCIRCC0000000000000016"
description: "Send IR Yellow button command via setIrccCode."
params: []
- id: set_ircc_code_blue
label: IR Command - Blue
kind: action
command: "*SCIRCC0000000000000017"
description: "Send IR Blue button command via setIrccCode."
params: []
- id: set_ircc_code_num1
label: IR Command - Num1
kind: action
command: "*SCIRCC0000000000000018"
params: []
- id: set_ircc_code_num2
label: IR Command - Num2
kind: action
command: "*SCIRCC0000000000000019"
params: []
- id: set_ircc_code_num3
label: IR Command - Num3
kind: action
command: "*SCIRCC0000000000000020"
params: []
- id: set_ircc_code_num4
label: IR Command - Num4
kind: action
command: "*SCIRCC0000000000000021"
params: []
- id: set_ircc_code_num5
label: IR Command - Num5
kind: action
command: "*SCIRCC0000000000000022"
params: []
- id: set_ircc_code_num6
label: IR Command - Num6
kind: action
command: "*SCIRCC0000000000000023"
params: []
- id: set_ircc_code_num7
label: IR Command - Num7
kind: action
command: "*SCIRCC0000000000000024"
params: []
- id: set_ircc_code_num8
label: IR Command - Num8
kind: action
command: "*SCIRCC0000000000000025"
params: []
- id: set_ircc_code_num9
label: IR Command - Num9
kind: action
command: "*SCIRCC0000000000000026"
params: []
- id: set_ircc_code_num0
label: IR Command - Num0
kind: action
command: "*SCIRCC0000000000000027"
params: []
- id: set_ircc_code_volume_up
label: IR Command - Volume Up
kind: action
command: "*SCIRCC0000000000000030"
params: []
- id: set_ircc_code_volume_down
label: IR Command - Volume Down
kind: action
command: "*SCIRCC0000000000000031"
params: []
- id: set_ircc_code_mute
label: IR Command - Mute
kind: action
command: "*SCIRCC0000000000000032"
params: []
- id: set_ircc_code_channel_up
label: IR Command - Channel Up
kind: action
command: "*SCIRCC0000000000000033"
params: []
- id: set_ircc_code_channel_down
label: IR Command - Channel Down
kind: action
command: "*SCIRCC0000000000000034"
params: []
- id: set_ircc_code_subtitle
label: IR Command - Subtitle
kind: action
command: "*SCIRCC0000000000000035"
params: []
- id: set_ircc_code_dot
label: IR Command - DOT
kind: action
command: "*SCIRCC0000000000000038"
params: []
- id: set_ircc_code_picture_off
label: IR Command - Picture Off
kind: action
command: "*SCIRCC0000000000000050"
params: []
- id: set_ircc_code_wide
label: IR Command - Wide
kind: action
command: "*SCIRCC0000000000000061"
params: []
- id: set_ircc_code_jump
label: IR Command - Jump
kind: action
command: "*SCIRCC0000000000000062"
params: []
- id: set_ircc_code_sync_menu
label: IR Command - Sync Menu
kind: action
command: "*SCIRCC0000000000000076"
params: []
- id: set_ircc_code_forward
label: IR Command - Forward
kind: action
command: "*SCIRCC0000000000000077"
params: []
- id: set_ircc_code_play
label: IR Command - Play
kind: action
command: "*SCIRCC0000000000000078"
params: []
- id: set_ircc_code_rewind
label: IR Command - Rewind
kind: action
command: "*SCIRCC0000000000000079"
params: []
- id: set_ircc_code_prev
label: IR Command - Prev
kind: action
command: "*SCIRCC0000000000000080"
params: []
- id: set_ircc_code_stop
label: IR Command - Stop
kind: action
command: "*SCIRCC0000000000000081"
params: []
- id: set_ircc_code_next
label: IR Command - Next
kind: action
command: "*SCIRCC0000000000000082"
params: []
- id: set_ircc_code_pause
label: IR Command - Pause
kind: action
command: "*SCIRCC0000000000000084"
params: []
- id: set_ircc_code_flash_plus
label: IR Command - Flash Plus
kind: action
command: "*SCIRCC0000000000000086"
params: []
- id: set_ircc_code_flash_minus
label: IR Command - Flash Minus
kind: action
command: "*SCIRCC0000000000000087"
params: []
- id: set_ircc_code_tv_power
label: IR Command - TV Power
kind: action
command: "*SCIRCC0000000000000098"
params: []
- id: set_ircc_code_audio
label: IR Command - Audio
kind: action
command: "*SCIRCC0000000000000099"
params: []
- id: set_ircc_code_input
label: IR Command - Input
kind: action
command: "*SCIRCC0000000000000101"
params: []
- id: set_ircc_code_sleep
label: IR Command - Sleep
kind: action
command: "*SCIRCC0000000000000104"
params: []
- id: set_ircc_code_sleep_timer
label: IR Command - Sleep Timer
kind: action
command: "*SCIRCC0000000000000105"
params: []
- id: set_ircc_code_video2
label: IR Command - Video 2
kind: action
command: "*SCIRCC0000000000000108"
params: []
- id: set_ircc_code_picture_mode
label: IR Command - Picture Mode
kind: action
command: "*SCIRCC0000000000000110"
params: []
- id: set_ircc_code_demo_surround
label: IR Command - Demo Surround
kind: action
command: "*SCIRCC0000000000000121"
params: []
- id: set_ircc_code_hdmi1
label: IR Command - HDMI 1
kind: action
command: "*SCIRCC0000000000000124"
params: []
- id: set_ircc_code_hdmi2
label: IR Command - HDMI 2
kind: action
command: "*SCIRCC0000000000000125"
params: []
- id: set_ircc_code_hdmi3
label: IR Command - HDMI 3
kind: action
command: "*SCIRCC0000000000000126"
params: []
- id: set_ircc_code_hdmi4
label: IR Command - HDMI 4
kind: action
command: "*SCIRCC0000000000000127"
params: []
- id: set_ircc_code_action_menu
label: IR Command - Action Menu
kind: action
command: "*SCIRCC0000000000000129"
params: []
- id: set_ircc_code_help
label: IR Command - Help
kind: action
command: "*SCIRCC0000000000000130"
params: []
- id: get_broadcast_address
label: Get Broadcast Address
kind: query
command: "*SEBADReth0############"
description: "Retrieve broadcast IPv4 address for specified interface. Interface param e.g. eth0."
params:
- name: interface
type: string
description: "Network interface name (e.g. eth0), padded with #"
- id: get_mac_address
label: Get MAC Address
kind: query
command: "*SEMADReth0############"
description: "Retrieve MAC address for specified interface. Interface param e.g. eth0."
params:
- name: interface
type: string
description: "Network interface name (e.g. eth0), padded with #"
Feedbacks
- id: power_state
type: enum
values: [off, on]
description: "Power status from getPowerStatus answer. 0000000000000000=Off, 0000000000000001=On."
- id: audio_volume
type: integer
description: "Current volume level from getAudioVolume answer."
- id: audio_mute_state
type: enum
values: [unmuted, muted]
description: "Audio mute status from getAudioMute answer. 0000000000000000=Not Muted, 0000000000000001=Muted."
- id: input_source
type: string
description: "Current input source from getInput answer. Includes type code (1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring) plus port number."
- id: picture_mute_state
type: enum
values: [disabled, enabled]
description: "Picture mute status from getPictureMute answer. 0000000000000000=Disabled, 0000000000000001=Enabled."
- id: scene_setting
type: string
description: "Current scene setting from getSceneSetting answer."
- id: command_success
type: enum
values: [success, error]
description: "Generic answer ACK. 0000000000000000=Success, FFFFFFFFFFFFFFFF=Error."
Variables
- id: volume
type: integer
min: 0
# UNRESOLVED: max volume value not stated in source
description: "Audio volume level, set via setAudioVolume."
- id: input_type
type: enum
values: [hdmi, composite, component, screen_mirroring]
description: "Current input type, set via setInput."
- id: scene_mode
type: string
description: "Scene setting mode - auto, auto24pSync, general."
Events
- id: power_change
description: "Unsolicited notify (N-type) when power state changes. FourCC POWR."
payload:
type: enum
values: [off, on]
- id: input_change
description: "Unsolicited notify (N-type) when input changes. FourCC INPT."
payload:
type: string
description: "Input type code + port (same format as setInput/getInput)."
- id: volume_change
description: "Unsolicited notify (N-type) when volume changes. FourCC VOLU."
payload:
type: integer
description: "New volume level."
- id: mute_change
description: "Unsolicited notify (N-type) when mute state changes. FourCC AMUT."
payload:
type: enum
values: [unmuted, muted]
- id: picture_mute_change
description: "Unsolicited notify (N-type) when picture mute changes. FourCC PMUT."
payload:
type: enum
values: [enabled, disabled]
Macros
# UNRESOLVED: no multi-step sequences described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not describe safety warnings, interlock procedures, or
# power-on sequencing requirements.
Notes
- SSIP protocol uses fixed 24-byte frames: 2-byte header (
*S= 0x2A 0x53), 1-byte message type (C=control,E=enquiry,A=answer,N=notify), 4-byte FourCC command, 16-byte parameter field, 1-byte footer (LF= 0x0A). - Monitor must be on the same network (wired or wireless LAN). Remote Device Control and Simple IP Control must both be enabled in monitor settings.
- EU area models have 3 specification variants based on RED-DA compliance; settings and available commands differ per variant. See https://pro-bravia.sony.net/setup/device-settings/red-da/ for details.
- Answer messages:
0000000000000000= success,FFFFFFFFFFFFFFFF= error. Some commands also returnNNNNNNNNNNNNNNNN= "Not Found" or "Not available." - IR commands use a single FourCC (IRCC) with the specific IR code in the parameter field. All IR commands are listed as separate actions per source row.
- Input type codes: 1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring. Port range 1-9999 per type.
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/serial-control/command/
- https://pro-bravia.sony.net/remote-display-control/serial-control/
- https://pro-bravia.sony.net/remote-display-control/rest-api/
- https://pro-bravia.sony.net/remote-display-control/
retrieved_at: 2026-05-26T19:01:23.248Z
last_checked_at: 2026-10-07T11:04:20.118Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T11:04:20.118Z
matched_actions: 79
action_count: 79
confidence: medium
summary: "All 79 actions (22 core commands plus 57 IR codes) match the source and port 20060 is verified. Source events are covered by spec Events. Applicability is generic BRAVIA Pro. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "exact model list within series not fully enumerated in source; source references \"BRAVIA Professional Displays\" generically"
- "firmware version compatibility not stated"
- "EU-area RED-DA model variants may have different commands; details linked but not included in source"
- "max volume value not stated in source"
- "no multi-step sequences described in source"
- "source does not describe safety warnings, interlock procedures, or"
- "max volume level not stated in source"
- "complete list of supported models within FWXE8001 series not stated"
- "EU RED-DA variant command differences not specified in source"
- "connection limits, concurrent session behavior not stated"
- "command rate limits or timing constraints not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0