Summary

Sony BRAVIA Professional Display. Simple IP Control over TCP port 20060. Fixed 24-byte SSIP commands for power, volume, mute, input routing, picture mute, scene settings, IR code transmission, and network interface queries. EU RED-DA models have variant command sets (see Notes).

Transport

protocols:
  - tcp
addressing:
  port: 20060
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable
- queryable
- levelable
- routable

Actions

# 24-byte SSIP message format:
#   Byte[0-1]   Header: 0x2A 0x53 ("*S")
#   Byte[2]     Message Type: C (0x43) / E (0x45) / A (0x41) / N (0x4E)
#   Byte[3-6]   FourCC command
#   Byte[7-22]  16-char ASCII parameter (left-pad "0" or right-pad "#")
#   Byte[23]    Footer: 0x0A (LF)
# Each command template below is a literal 24-byte payload verbatim from the source.

- id: setPowerStatus
  label: Set Power Status
  kind: action
  command: "*SCPOWR0000000000000000"  # Standby (Off)
  params:
    - name: power
      type: integer
      description: 0 = Standby (Off), 1 = Active (On). Encoded at Byte[22] of the 16-char parameter.

- id: getPowerStatus
  label: Get Power Status
  kind: query
  command: "*SEPOWR################"
  params: []

- id: togglePowerStatus
  label: Toggle Power Status
  kind: action
  command: "*SCTPOW################"
  params: []

- id: setAudioVolume
  label: Set Audio Volume
  kind: action
  command: "*SCVOLU0000000000000000"  # example payload, volume digits at Byte[7-22]
  params:
    - name: volume
      type: string
      description: Decimal digit string, left-padded with "0" to 16 chars. e.g., "0000000000000029"

- id: getAudioVolume
  label: Get Audio Volume
  kind: query
  command: "*SEVOLU################"
  params: []

- id: setAudioMute
  label: Set Audio Mute
  kind: action
  command: "*SCAMUT0000000000000000"  # Unmute
  params:
    - name: mute
      type: integer
      description: 0 = Unmute, 1 = Mute. Encoded at Byte[22].

- id: getAudioMute
  label: Get Audio Mute
  kind: query
  command: "*SEAMUT################"
  params: []

- id: setInput
  label: Set Input
  kind: action
  command: "*SCINPT0000000100000001"  # example: HDMI 1 (input_type=1 at Byte[14], input_id=0001 at Byte[19-22])
  params:
    - name: input_type
      type: integer
      description: 1 = HDMI, 3 = Composite, 4 = Component, 5 = Screen Mirroring. Encoded at Byte[14].
    - name: input_id
      type: integer
      description: Input number (1-9999). Encoded at Byte[19-22], left-padded "0".

- id: getInput
  label: Get Current Input
  kind: query
  command: "*SEINPT################"
  params: []

- id: setPictureMute
  label: Set Picture Mute
  kind: action
  command: "*SCPMUT0000000000000000"  # Disabled
  params:
    - name: mute
      type: integer
      description: 0 = Disabled (picture mute off), 1 = Enabled (screen black). Encoded at Byte[22].

- id: getPictureMute
  label: Get Picture Mute
  kind: query
  command: "*SEPMUT################"
  params: []

- id: togglePictureMute
  label: Toggle Picture Mute
  kind: action
  command: "*SCTPMU################"
  params: []

- id: setSceneSetting
  label: Set Scene Setting
  kind: action
  command: "*SCSCENauto24pSync#####"  # example payload
  params:
    - name: scene
      type: string
      description: "auto", "auto24pSync", or "general" - case-sensitive, right-padded with "#"

- id: getSceneSetting
  label: Get Scene Setting
  kind: query
  command: "*SESCEN################"
  params: []

- id: setIrccCode
  label: Send IR Command
  kind: action
  command: "*SCIRCC0000000000000000"  # example: Display (code 0x05) at Byte[22]
  params:
    - name: ircc_code
      type: string
      description: |
        IR code parameter (16-char, zero-padded hex table index):
        05=Display, 06=Home, 07=Options, 08=Return, 09=Up, 10=Down,
        11=Right, 12=Left, 13=Confirm, 14=Red, 15=Green, 16=Yellow, 17=Blue,
        18=Num1, 19=Num2, 20=Num3, 21=Num4, 22=Num5, 23=Num6, 24=Num7, 25=Num8,
        26=Num9, 27=Num0, 30=Volume Up, 31=Volume Down, 32=Mute,
        33=Channel Up, 34=Channel Down, 35=Subtitle, 38=DOT, 50=Picture Off,
        61=Wide, 62=Jump, 76=Sync Menu, 77=Forward, 78=Play, 79=Rewind,
        80=Prev, 81=Stop, 82=Next, 84=Pause, 86=Flash Plus, 87=Flash Minus,
        98=TV Power, 99=Audio, 101=Input, 104=Sleep, 105=Sleep Timer,
        108=Video 2, 110=Picture Mode, 121=Demo Surround,
        124=HDMI 1, 125=HDMI 2, 126=HDMI 3, 127=HDMI 4, 129=Action Menu, 130=Help

- id: getBroadcastAddress
  label: Get Broadcast Address
  kind: query
  command: "*SEBADReth0############"  # example: eth0
  params:
    - name: interface
      type: string
      description: Interface name, e.g., "eth0". Right-padded with "#" in Byte[10-22].

- id: getMacAddress
  label: Get MAC Address
  kind: query
  command: "*SEMADReth0############"  # example: eth0
  params:
    - name: interface
      type: string
      description: Interface name, e.g., "eth0". Right-padded with "#" in Byte[10-22].

Feedbacks

- id: powerStatus
  type: enum
  values:
    - "0"  # Standby (Off)
    - "1"  # Active (On)
    - "FFFFFFFFFFFFFFFF"  # Error

- id: audioVolume
  type: string
  description: 16-char decimal string

- id: audioMute
  type: enum
  values:
    - "0"  # Not Muted
    - "1"  # Muted
    - "FFFFFFFFFFFFFFFF"  # Error

- id: currentInput
  type: enum
  values:
    - "000000010000XXXX"  # HDMI (XXXX = input number)
    - "000000030000XXXX"  # Composite (XXXX = input number)
    - "000000040000XXXX"  # Component (XXXX = input number)
    - "000000050000XXXX"  # Screen Mirroring (XXXX = input number)
    - "NNNNNNNNNNNNNNNN"  # Not Found

- id: pictureMute
  type: enum
  values:
    - "0"  # Disabled (Picture mute off)
    - "1"  # Enabled (Picture mute on)
    - "FFFFFFFFFFFFFFFF"  # Error

- id: sceneSetting
  type: string
  description: "auto", "auto24pSync", or "general" (right-padded "#"), or "NNNNNNNNNNNNNNNN" (Not available)

- id: broadcastAddress
  type: string
  description: IPv4 address string, right-padded with "#"

- id: macAddress
  type: string
  description: MAC address string (XX:XX:XX:XX:XX:XX), right-padded with "#"

Variables

# UNRESOLVED: no discrete settable parameters beyond actions above

Events

- id: firePowerChange
  description: Monitor sends when power state changes
  command: "*SNPOWR0000000000000000"  # example: power off
  params:
    - name: power
      type: integer
      description: 0 = powering off, 1 = powering on. Encoded at Byte[22].

- id: fireInputChange
  description: Monitor sends when input changes
  command: "*SNINPT0000000000000000"  # example: cleared input
  params:
    - name: input_type
      type: integer
      description: 1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring. Encoded at Byte[14].
    - name: input_id
      type: integer
      description: Input number (1-9999). Encoded at Byte[19-22], left-padded "0".

- id: fireVolumeChange
  description: Monitor sends when volume changes
  command: "*SNVOLU0000000000000000"  # example payload
  params:
    - name: volume
      type: string
      description: 16-char decimal volume value

- id: fireMuteChange
  description: Monitor sends when mute state changes
  command: "*SNAMUT0000000000000000"  # example: unmuting
  params:
    - name: mute
      type: integer
      description: 0 = unmuting, 1 = muting. Encoded at Byte[22].

- id: firePictureMuteChange
  description: Monitor sends when picture mute changes
  command: "*SNPMUT0000000000000000"  # example: picture mute enabled
  params:
    - name: mute
      type: integer
      description: 0 = picture mute enabled, 1 = picture mute disabled. Encoded at Byte[22].

Macros

# UNRESOLVED: no explicit macro sequences defined in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

SSIP protocol — 24-byte fixed message length. Header: 0x2A 0x53 (*S). Footer: 0x0A (LF). Message types: C=Control, E=Enquiry, A=Answer, N=Notify. Commands use FourCC ASCII at bytes 3–6. Parameters at bytes 7–22.

Prerequisite settings: [Settings] → [Network & Internet] → [Remote device settings] → [Control remotely], then [Settings] → [Network & Internet] → [Home network] → [IP control] → [Simple IP control].

EU RED-DA: EU area models ship in 3 RED-DA spec variants; settings and available commands differ per variant. Refer to https://pro-bravia.sony.net/setup/device-settings/red-da/ for the per-variant command list.

Power-off example (verbatim from source): request *SCPOWR0000000000000000 → responses *SAPOWR0000000000000000 (accept) and *SNPOWR0000000000000000 (current power off).


---

Changes rev2→rev3:
- **Fixed `setInput`**: input_type byte position `Byte[15]`→`Byte[14]`; example payload `*SCINPT0000000001000000`→`*SCINPT0000000100000001` (1 was 2 positions off; source param row + own Feedback section both confirm Byte[14])
- **Fixed `fireInputChange`**: same `Byte[15]`→`Byte[14]` correction in param description
- Bumped revision 2→3, updated `created_at`

All 22 source commands already present — no missing commands found. Coverage complete.

## Provenance

```yaml
source_domains:
  - pro-bravia.sony.net
  - aca.im
source_urls:
  - https://pro-bravia.sony.net/remote-display-control/simple-ip-control/
  - "https://aca.im/driver_docs/Sony/sony%20bravia%20simple%20ip%20control.pdf"
  - https://pro-bravia.sony.net/remote-display-control/
retrieved_at: 2026-05-26T05:42:40.892Z
last_checked_at: 2026-07-22T01:23:57.459Z

Verification Summary

verdict: verified
checked_at: 2026-07-22T01:23:57.459Z
matched_actions: 17
action_count: 17
confidence: medium
summary: "All 17 Actions matched literally to source C/E commands; transport verified; the 5 N-type notifications are documented in the spec Events section. (6 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "EU RED-DA compliance variants have different command sets"
- "no discrete settable parameters beyond actions above"
- "no explicit macro sequences defined in source"
- "no safety warnings or interlock procedures in source"
- "EU RED-DA compliance command differences not documented here"
- "IP control authentication not described in source — no auth required"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0