Summary

Sony BRAVIA 2014-series professional TV control via two IP protocols on TCP port 20060. Low-level: 24-byte fixed frame with Four-CC command set (POWR, VOLU, AMUT, CHNN, TCHN, ISRC, INPT, PMUT, PIPI, BADR, MACA, IRCC). High-level: HTTP/JSON-RPC wrapping the same commands. Source: "Sony Simple IP Control Protocol for BRAVIA" v0.6.

Transport

protocols:
  - tcp
  - http  # inferred: high-level WebAPI layer documented as HTTP+JSON-RPC
addressing:
  port: 20060
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable       # inferred from setPowerStatus / getPowerStatus
- levelable       # inferred from setAudioVolume / getAudioVolume
- queryable       # inferred from get* command family
- routable        # inferred from setInput / setInputSource / setChannel

Actions

# Frame layout (24 bytes, ASCII hex):
#   [0..1]   0x2A 0x53  header
#   [2]      type: 0x43 Control | 0x45 Enquiry | 0x41 Answer | 0x4E Notify
#   [3..6]   FourCC (ASCII) function code
#   [7..22]  16-byte parameter block (each byte ASCII '0'..'9','A'..'F','#','.' etc.)
#   [23]     0x0A footer
# All commands below shown as 24-byte frames. Variable params use {} placeholders.

- id: set_ircc_code
  label: Send IR-like code
  kind: action
  command: "2A 53 43 49 52 43 43 {code#16} 0A"
  params:
    - name: code
      type: string
      description: 16-byte ASCII parameter (see IR table 5; pad with '0' on the left)

- id: set_power_status_standby
  label: Power Standby (Off)
  kind: action
  command: "2A 53 43 50 4F 57 52 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"

- id: set_power_status_active
  label: Power Active (On)
  kind: action
  command: "2A 53 43 50 4F 57 52 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 0A"

- id: get_power_status
  label: Power Status Query
  kind: query
  command: "2A 53 45 50 4F 57 52 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_audio_volume
  label: Set Audio Volume
  kind: action
  command: "2A 53 43 56 4F 4C 55 {volume#16} 0A"
  params:
    - name: volume
      type: integer
      description: Volume value, decimal digits, left-padded with '0' to 16 bytes (e.g. 41 = "0000000000000029")

- id: get_audio_volume
  label: Audio Volume Query
  kind: query
  command: "2A 53 45 56 4F 4C 55 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_audio_mute_unmute
  label: Audio Mute Off
  kind: action
  command: "2A 53 43 41 4D 55 54 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"

- id: set_audio_mute_mute
  label: Audio Mute On
  kind: action
  command: "2A 53 43 41 4D 55 54 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 0A"

- id: get_audio_mute
  label: Audio Mute Status Query
  kind: query
  command: "2A 53 45 41 4D 55 54 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_channel
  label: Set Channel (preset)
  kind: action
  command: "2A 53 43 43 48 4E 4E {major#8}.{minor#7} 0A"
  params:
    - name: major
      type: integer
      description: Major channel number, 8 bytes
    - name: minor
      type: integer
      description: Minor channel number, 7 bytes

- id: get_channel
  label: Channel Query
  kind: query
  command: "2A 53 45 43 48 4E 4E 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_triplet_channel
  label: Set Channel (triplet hex)
  kind: action
  command: "2A 53 43 54 43 48 4E {hex#16} 0A"
  params:
    - name: hex
      type: string
      description: 16-byte ASCII hex triplet (e.g. "7FE07FE00400" -> 32736.32736.1024)

- id: get_triplet_channel
  label: Triplet Channel Query
  kind: query
  command: "2A 53 45 54 43 48 4E 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_input_source
  label: Set TV Input Source
  kind: action
  command: "2A 53 43 49 53 52 43 {source#16} 0A"
  params:
    - name: source
      type: string
      description: Source name left-justified, right-padded with '#' (dvbt, dvbc, dvbs, isdbt, isdbbs, isdbcs, antenna, cable, isdbgt)

- id: get_input_source
  label: Input Source Query
  kind: query
  command: "2A 53 45 49 53 52 43 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_input_tv
  label: Set Input TV
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"

- id: set_input_hdmi
  label: Set Input HDMI
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 31 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: HDMI port number, 4 ASCII digits (1-9999)

- id: set_input_scart
  label: Set Input SCART
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 32 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: SCART port number, 4 ASCII digits (1-9999)

- id: set_input_composite
  label: Set Input Composite
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 33 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: Composite port number, 4 ASCII digits (1-9999)

- id: set_input_component
  label: Set Input Component
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 34 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: Component port number, 4 ASCII digits (1-9999)

- id: set_input_screen_mirroring
  label: Set Input Screen Mirroring
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 35 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: Screen Mirroring index, 4 ASCII digits (1-9999)

- id: set_input_pc_rgb
  label: Set Input PC RGB
  kind: action
  command: "2A 53 43 49 4E 50 54 30 30 30 30 30 30 30 36 30 30 30 30 {num#4} 0A"
  params:
    - name: num
      type: integer
      description: PC RGB input index, 4 ASCII digits (1-9999)

- id: get_input
  label: Current Input Query
  kind: query
  command: "2A 53 45 49 4E 50 54 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_picture_mute_off
  label: Picture Mute Off
  kind: action
  command: "2A 53 43 50 4D 55 54 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"

- id: set_picture_mute_on
  label: Picture Mute On (screen black)
  kind: action
  command: "2A 53 43 50 4D 55 54 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 0A"

- id: get_picture_mute
  label: Picture Mute Status Query
  kind: query
  command: "2A 53 45 50 4D 55 54 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: toggle_picture_mute
  label: Toggle Picture Mute
  kind: action
  command: "2A 53 43 54 50 4D 55 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: set_pip_off
  label: PIP Off
  kind: action
  command: "2A 53 43 50 49 50 49 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"

- id: set_pip_on
  label: PIP On
  kind: action
  command: "2A 53 43 50 49 50 49 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 0A"

- id: get_pip
  label: PIP Status Query
  kind: query
  command: "2A 53 45 50 49 50 49 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: toggle_pip
  label: Toggle PIP
  kind: action
  command: "2A 53 43 54 50 49 50 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: toggle_pip_position
  label: Cycle PIP Position
  kind: action
  command: "2A 53 43 54 50 50 50 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0A"

- id: get_broadcast_address
  label: Broadcast IPv4 Address Query
  kind: query
  command: "2A 53 45 42 41 44 52 65 74 68 30 23 23 23 23 23 23 23 23 23 23 23 0A"
  notes: Source example response is "192.168.0.14" right-padded with '#' to 16 bytes.

- id: get_mac_address
  label: MAC Address Query
  kind: query
  command: "2A 53 45 4D 41 44 52 65 74 68 30 23 23 23 23 23 23 23 23 23 23 23 0A"

# IR-like codes via setIrccCode - each row in source Table 5.
- id: ir_power_off
  label: IR Power Off
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A"
- id: ir_input
  label: IR Input
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 0A"
- id: ir_gguide
  label: IR GGuide
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 0A"
- id: ir_epg
  label: IR EPG
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 0A"
- id: ir_favorites
  label: IR Favorites
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 0A"
- id: ir_display
  label: IR Display
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 0A"
- id: ir_home
  label: IR Home
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 0A"
- id: ir_options
  label: IR Options
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 0A"
- id: ir_return
  label: IR Return
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 0A"
- id: ir_up
  label: IR Up
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 0A"
- id: ir_down
  label: IR Down
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 30 0A"
- id: ir_right
  label: IR Right
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 31 0A"
- id: ir_left
  label: IR Left
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 32 0A"
- id: ir_confirm
  label: IR Confirm
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 33 0A"
- id: ir_red
  label: IR Red
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 34 0A"
- id: ir_green
  label: IR Green
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 35 0A"
- id: ir_yellow
  label: IR Yellow
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 36 0A"
- id: ir_blue
  label: IR Blue
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 37 0A"
- id: ir_num1
  label: IR Num1
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 38 0A"
- id: ir_num2
  label: IR Num2
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 39 0A"
- id: ir_num3
  label: IR Num3
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 0A"
- id: ir_num4
  label: IR Num4
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 31 0A"
- id: ir_num5
  label: IR Num5
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 32 0A"
- id: ir_num6
  label: IR Num6
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 33 0A"
- id: ir_num7
  label: IR Num7
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 34 0A"
- id: ir_num8
  label: IR Num8
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 35 0A"
- id: ir_num9
  label: IR Num9
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 36 0A"
- id: ir_num0
  label: IR Num0
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 37 0A"
- id: ir_num11
  label: IR Num11
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 38 0A"
- id: ir_num12
  label: IR Num12
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 39 0A"
- id: ir_volume_up
  label: IR Volume Up
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 30 0A"
- id: ir_volume_down
  label: IR Volume Down
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 31 0A"
- id: ir_mute
  label: IR Mute
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 32 0A"
- id: ir_channel_up
  label: IR Channel Up
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 33 0A"
- id: ir_channel_down
  label: IR Channel Down
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 34 0A"
- id: ir_subtitle
  label: IR Subtitle
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 35 0A"
- id: ir_closed_caption
  label: IR Closed Caption
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 36 0A"
- id: ir_enter
  label: IR Enter
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 37 0A"
- id: ir_dot
  label: IR DOT
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 38 0A"
- id: ir_analog
  label: IR Analog
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 39 0A"
- id: ir_teletext
  label: IR Teletext
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 30 0A"
- id: ir_exit
  label: IR Exit
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 31 0A"
- id: ir_analog2
  label: IR Analog2
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 32 0A"
- id: ir_ad
  label: IR *AD
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 33 0A"
- id: ir_digital
  label: IR Digital
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 34 0A"
- id: ir_analog_q
  label: IR Analog?
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 35 0A"
- id: ir_bs
  label: IR BS
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 36 0A"
- id: ir_cs
  label: IR CS
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 37 0A"
- id: ir_bs_cs
  label: IR BS/CS
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 38 0A"
- id: ir_ddata
  label: IR Ddata
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 34 39 0A"
- id: ir_pic_off
  label: IR Pic Off
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 30 0A"
- id: ir_tv_radio
  label: IR Tv_Radio
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 31 0A"
- id: ir_theater
  label: IR Theater
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 32 0A"
- id: ir_sen
  label: IR SEN
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 33 0A"
- id: ir_internet_widgets
  label: IR Internet Widgets
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 34 0A"
- id: ir_internet_video
  label: IR Internet Video
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 35 0A"
- id: ir_netflix
  label: IR Netflix
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 36 0A"
- id: ir_scene_select
  label: IR Scene Select
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 37 0A"
- id: ir_mode3d
  label: IR Mode3D
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 38 0A"
- id: ir_imanual
  label: IR iManual
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 35 39 0A"
- id: ir_audio
  label: IR Audio
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 30 0A"
- id: ir_wide
  label: IR Wide
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 31 0A"
- id: ir_jump
  label: IR Jump
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 32 0A"
- id: ir_pap
  label: IR PAP
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 33 0A"
- id: ir_myepg
  label: IR MyEPG
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 34 0A"
- id: ir_program_description
  label: IR Program Description
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 35 0A"
- id: ir_write_chapter
  label: IR Write Chapter
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 36 0A"
- id: ir_trackid
  label: IR TrackID
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 37 0A"
- id: ir_ten_key
  label: IR Ten Key
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 38 0A"
- id: ir_applicast
  label: IR AppliCast
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 36 39 0A"
- id: ir_actvila
  label: IR acTVila
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 30 0A"
- id: ir_delete_video
  label: IR Delete Video
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 31 0A"
- id: ir_photo_frame
  label: IR Photo Frame
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 32 0A"
- id: ir_tv_pause
  label: IR TV Pause
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 33 0A"
- id: ir_keypad
  label: IR KeyPad
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 34 0A"
- id: ir_media
  label: IR Media
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 35 0A"
- id: ir_sync_menu
  label: IR Sync Menu
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 36 0A"
- id: ir_forward
  label: IR Forward
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 37 0A"
- id: ir_play
  label: IR Play
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 38 0A"
- id: ir_rewind
  label: IR Rewind
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 37 39 0A"
- id: ir_prev
  label: IR Prev
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 30 0A"
- id: ir_stop
  label: IR Stop
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 31 0A"
- id: ir_next
  label: IR Next
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 32 0A"
- id: ir_rec
  label: IR Rec
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 33 0A"
- id: ir_pause
  label: IR Pause
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 34 0A"
- id: ir_eject
  label: IR Eject
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 35 0A"
- id: ir_flash_plus
  label: IR Flash Plus
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 36 0A"
- id: ir_flash_minus
  label: IR Flash Minus
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 37 0A"
- id: ir_topmenu
  label: IR TopMenu
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 38 0A"
- id: ir_popupmenu
  label: IR PopupMenu
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 38 39 0A"
- id: ir_rakuraku_start
  label: IR Rakuraku Start
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 30 0A"
- id: ir_one_touch_time_rec
  label: IR One Touch Time Rec
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 31 0A"
- id: ir_one_touch_view
  label: IR One Touch View
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 32 0A"
- id: ir_one_touch_rec
  label: IR One Touch Rec
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 33 0A"
- id: ir_one_touch_stop
  label: IR One Touch Stop
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 34 0A"
- id: ir_dux
  label: IR DUX
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 35 0A"
- id: ir_football_mode
  label: IR Football Mode
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 36 0A"
- id: ir_social
  label: IR Social
  kind: action
  command: "2A 53 43 49 52 43 43 30 30 30 30 30 30 30 30 30 30 30 30 30 30 39 37 0A"

Feedbacks

- id: power_state
  type: enum
  values: [standby, active]
- id: audio_mute_state
  type: enum
  values: [unmuted, muted]
- id: picture_mute_state
  type: enum
  values: [disabled, enabled]
- id: pip_state
  type: enum
  values: [disabled, enabled]
- id: answer_success
  type: enum
  values: [success, error]
  notes: "16 '0' bytes = success, 16 'F' bytes = error"

Variables

# Channel and volume values returned by enquiry/notify.
- id: volume
  type: integer
  description: Audio volume level (0..255 implied, exact range not stated in source)
- id: channel_major
  type: integer
  description: Major preset channel number
- id: channel_minor
  type: integer
  description: Minor preset channel number
- id: triplet_channel
  type: string
  description: Hex triplet string, e.g. "7FE07FE00400"
- id: input_source
  type: enum
  values: [dvbt, dvbc, dvbs, isdbt, isdbbs, isdbcs, antenna, cable, isdbgt]
- id: input_kind
  type: enum
  values: [tv, hdmi, scart, composite, component, screen_mirroring, pc_rgb]
- id: broadcast_address
  type: string
  description: IPv4 address returned by getBroadcastAddress
- id: mac_address
  type: string
  description: MAC address returned by getMacAddress

Events

# Type 0x4E (Notify) frames. Server pushes when state changes.
- id: power_change
  type: enum
  values: [standby, active]
  fourcc: POWR
  notes: Sent on power-off / power-on transition.
- id: channel_change
  type: string
  fourcc: CHNN
  notes: Sent on channel change; payload = preset channel.
- id: input_change
  type: enum
  values: [tv, hdmi, scart, composite, component, screen_mirroring, pc_rgb]
  fourcc: INPT
  notes: Sent on input change.
- id: volume_change
  type: integer
  fourcc: VOLU
  notes: Sent on volume change.
- id: mute_change
  type: enum
  values: [unmuted, muted]
  fourcc: AMUT
- id: pip_change
  type: enum
  values: [disabled, enabled]
  fourcc: PIPI
- id: picture_mute_change
  type: enum
  values: [disabled, enabled]
  fourcc: PMUT

Macros

# UNRESOLVED: source describes no multi-step sequences

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements.

Notes

Provenance

source_domains:
  - aca.im
  - raw.githubusercontent.com
source_urls:
  - "https://aca.im/driver_docs/Sony/sony%20bravia%20simple%20ip%20control.pdf"
  - https://raw.githubusercontent.com/xiaolaba/bravia_console_sony/master/Sony_Simple_IP_Control_Protocol_for_BRAVIA.pdf
retrieved_at: 2026-06-08T14:44:08.743Z
last_checked_at: 2026-06-09T07:17:42.401Z

Verification Summary

verdict: verified
checked_at: 2026-06-09T07:17:42.401Z
matched_actions: 132
action_count: 132
confidence: medium
summary: "All 132 spec actions—34 command families plus 98 IR codes—have literal FourCC and parameter matches in source Table 4 and Table 5; transport parameters confirmed. (3 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "protocol doc version 0.6, but device-specific firmware constraints not stated."
- "source describes no multi-step sequences"
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements."

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