Summary

Sony XBRX955 Series smart TV controlled over TCP/IP on port 20060. Simple IP Control protocol uses fixed 24-byte ASCII messages with four-CC command codes. Supports power, volume, mute, input selection, picture mute, scene settings, and IR remote code passthrough.

Transport

protocols:
  - tcp
addressing:
  port: 20060
auth:
  type: none

Traits

powerable: true
levelable: true
routable: true
queryable: true

Actions

- id: setIrccCode
  label: Send IR Code
  kind: action
  params:
    - name: code
      type: integer
      description: IR code number (0-999)

- id: setPowerStatus
  label: Set Power Status
  kind: action
  params:
    - name: power
      type: integer
      enum:
        - 0
        - 1

- id: getPowerStatus
  label: Get Power Status
  kind: query
  params: []

- id: togglePowerStatus
  label: Toggle Power Status
  kind: action
  params: []

- id: setAudioVolume
  label: Set Audio Volume
  kind: action
  params:
    - name: volume
      type: integer
      description: Volume value as decimal digits, zero-padded left (e.g., 0000000000000029)

- id: getAudioVolume
  label: Get Audio Volume
  kind: query
  params: []

- id: setAudioMute
  label: Set Audio Mute
  kind: action
  params:
    - name: mute
      type: integer
      enum:
        - 0
        - 1

- id: getAudioMute
  label: Get Audio Mute
  kind: query
  params: []

- id: setInput
  label: Set Input
  kind: action
  params:
    - name: input
      type: integer
      enum:
        - 1
        - 3
        - 4
        - 5
      description: Input type (1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring)

- id: getInput
  label: Get Input
  kind: query
  params: []

- id: setPictureMute
  label: Set Picture Mute
  kind: action
  params:
    - name: mute
      type: integer
      enum:
        - 0
        - 1

- id: getPictureMute
  label: Get Picture Mute
  kind: query
  params: []

- id: togglePictureMute
  label: Toggle Picture Mute
  kind: action
  params: []

- id: setSceneSetting
  label: Set Scene Setting
  kind: action
  params:
    - name: scene
      type: string
      description: Scene name (auto, auto24pSync, general), case-sensitive, padded right with "#"

- id: getSceneSetting
  label: Get Scene Setting
  kind: query
  params: []

- id: getBroadcastAddress
  label: Get Broadcast Address
  kind: query
  params:
    - name: interface
      type: string
      description: Interface name (e.g., eth0)

- id: getMacAddress
  label: Get MAC Address
  kind: query
  params:
    - name: interface
      type: string
      description: Interface name (e.g., eth0)

Feedbacks

- id: powerStatusAnswer
  type: enum
  values:
    - "0000000000000000"
    - "0000000000000001"
  description: 0=Standby(Off), 1=Active(On)

- id: audioVolumeAnswer
  type: string
  description: Volume value as zero-padded decimal string

- id: audioMuteAnswer
  type: enum
  values:
    - "0000000000000000"
    - "0000000000000001"
  description: 0=Not Muted, 1=Muted

- id: inputAnswer
  type: enum
  values:
    - "000000010000XXXX"
    - "000000030000XXXX"
    - "000000040000XXXX"
    - "000000050000XXXX"
  description: Input type + index (1=HDMI, 3=Composite, 4=Component, 5=Screen Mirroring)

- id: pictureMuteAnswer
  type: enum
  values:
    - "0000000000000000"
    - "0000000000000001"
  description: 0=Disabled, 1=Enabled

- id: sceneSettingAnswer
  type: string
  description: Current scene setting value

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

- id: macAddressAnswer
  type: string
  description: MAC address, right-padded with "#"

- id: commandSuccess
  type: string
  value: "0000000000000000"

- id: commandError
  type: string
  value: "FFFFFFFFFFFFFFFF"

- id: notAvailable
  type: string
  value: "NNNNNNNNNNNNNNNN"
  description: Command not available for current input

- id: notFound
  type: string
  value: "NNNNNNNNNNNNNNNN"
  description: Input not found

Variables

# All settable parameters exposed as actions with get/set pairs above.
# No additional standalone variables.

Events

- id: firePowerChange
  type: notification
  params:
    - name: power
      type: integer
      enum: [0, 1]
  description: Monitor sends when power state changes

- id: fireInputChange
  type: notification
  params:
    - name: input
      type: enum
      values: [1, 3, 4, 5]
    - name: index
      type: integer
  description: Monitor sends when input changes

- id: fireVolumeChange
  type: notification
  params:
    - name: volume
      type: integer
  description: Monitor sends when volume changes

- id: fireMuteChange
  type: notification
  params:
    - name: mute
      type: integer
      enum: [0, 1]
  description: Monitor sends when mute state changes

- id: firePictureMuteChange
  type: notification
  params:
    - name: mute
      type: integer
      enum: [0, 1]
  description: Monitor sends when picture mute changes

Macros

# No explicit macro sequences documented.

Safety

confirmation_required_for: []
interlocks: []

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/reference/
  - https://pro-bravia.sony.net/remote-display-control/
  - https://pro-bravia.sony.net
retrieved_at: 2026-05-26T15:10:29.772Z
last_checked_at: 2026-06-12T19:58:16.094Z

Verification Summary

verdict: verified
checked_at: 2026-06-12T19:58:16.094Z
matched_actions: 17
action_count: 17
confidence: medium
summary: "All 17 spec actions found verbatim in source command table with matching parameters and transport. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "EU RED-DA compliance variations not documented"
- "firmware version compatibility not stated in source"
- "EU RED-DA compliance specification variants not fully documented"
- "voltage/current/power specifications not stated in source"

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