Summary
Sony BRAVIA KJX85 Series supports Sony Simple IP Control over TCP using a fixed-size 24-byte message format. The protocol includes control, enquiry, answer, and notify messages, with TCP port 20060 and 30-second idle disconnection.
Transport
protocols:
- tcp
addressing:
port: 20060
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from setPowerStatus and getPowerStatus
- routable # inferred from channel and input routing commands
- queryable # inferred from enquiry commands returning values
- levelable # inferred from audio volume command
Actions
- id: set_ircc_code
label: Send IR-like remote-control code
kind: action
command: "I R C C {ir_code}"
params:
- name: ir_code
type: string
description: 16-byte IR command parameter from source Table 5
- id: power_off
label: Power Off
kind: action
command: "P O W R 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
params: []
- id: power_on
label: Power On
kind: action
command: "P O W R 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01"
params: []
- id: get_power_status
label: Get Power Status
kind: query
command: "P O W R ################"
params: []
- id: set_audio_volume
label: Set Audio Volume
kind: action
command: "V O L U {volume}"
params:
- name: volume
type: string
description: 16-byte decimal volume value, left-padded with 0
- id: get_audio_volume
label: Get Audio Volume
kind: query
command: "V O L U ################"
params: []
- id: audio_unmute
label: Audio Unmute
kind: action
command: "A M U T 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
params: []
- id: audio_mute
label: Audio Mute
kind: action
command: "A M U T 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01"
params: []
- id: get_audio_mute
label: Get Audio Mute
kind: query
command: "A M U T ################"
params: []
- id: set_channel
label: Set Preset Channel
kind: action
command: "C H N N {channel}"
params:
- name: channel
type: string
description: 16-byte preset channel value, such as 00000050.1000000
- id: get_channel
label: Get Preset Channel
kind: query
command: "C H N N ################"
params: []
- id: set_triplet_channel
label: Set Triplet Channel
kind: action
command: "T C H N {triplet}"
params:
- name: triplet
type: string
description: Triplet channel value in hexadecimal
- id: get_triplet_channel
label: Get Triplet Channel
kind: query
command: "T C H N ################"
params: []
- id: set_input_source
label: Set TV Input Source
kind: action
command: "I S R C {source}"
params:
- name: source
type: string
description: Source value padded on right with #; documented values include dvbt, dvbc, dvbs, isdbt, isdbbs, isdbcs, antenna, cable, and isdbgt
- id: get_input_source
label: Get TV Input Source
kind: query
command: "I S R C ################"
params: []
- id: set_input_tv
label: Select TV Input
kind: action
command: "I N P T 0000000000000000"
params: []
- id: set_input_hdmi
label: Select HDMI Input
kind: action
command: "I N P T 000000100000{input}"
params:
- name: input
type: integer
description: HDMI input number, 1-9999
- id: set_input_scart
label: Select SCART Input
kind: action
command: "I N P T 000000200000{input}"
params:
- name: input
type: integer
description: SCART input number, 1-9999
- id: set_input_composite
label: Select Composite Input
kind: action
command: "I N P T 000000300000{input}"
params:
- name: input
type: integer
description: Composite input number, 1-9999
- id: set_input_component
label: Select Component Input
kind: action
command: "I N P T 000000400000{input}"
params:
- name: input
type: integer
description: Component input number, 1-9999
- id: set_input_screen_mirroring
label: Select Screen Mirroring Input
kind: action
command: "I N P T 000000500000{input}"
params:
- name: input
type: integer
description: Screen Mirroring input number, 1-9999
- id: set_input_pc_rgb
label: Select PC RGB Input
kind: action
command: "I N P T 000000600000{input}"
params:
- name: input
type: integer
description: PC RGB input number, 1-9999
- id: get_input
label: Get Current Input
kind: query
command: "I N P T ################"
params: []
- id: picture_mute_off
label: Disable Picture Mute
kind: action
command: "P M U T 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
params: []
- id: picture_mute_on
label: Enable Picture Mute
kind: action
command: "P M U T 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01"
params: []
- id: get_picture_mute
label: Get Picture Mute
kind: query
command: "P M U T ################"
params: []
- id: toggle_picture_mute
label: Toggle Picture Mute
kind: action
command: "T P M U ################"
params: []
- id: pip_off
label: Disable PIP
kind: action
command: "P I P I 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
params: []
- id: pip_on
label: Enable PIP
kind: action
command: "P I P I 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01"
params: []
- id: get_pip
label: Get PIP Status
kind: query
command: "P I P I ################"
params: []
- id: toggle_pip
label: Toggle PIP
kind: action
command: "T P I P ################"
params: []
- id: toggle_pip_position
label: Toggle PIP Position
kind: action
command: "T P P P ################"
params: []
- id: get_broadcast_address
label: Get Broadcast IPv4 Address
kind: query
command: "B A D R eth0###########"
params: []
- id: get_mac_address
label: Get MAC Address
kind: query
command: "M A D R eth0###########"
params: []
Feedbacks
- id: power_state
type: enum
values: [on, off]
- id: audio_volume
type: string
description: 16-byte audio volume value
- id: audio_mute_state
type: enum
values: [muted, unmuted]
- id: channel
type: string
description: Current preset channel number
- id: triplet_channel
type: string
description: Current triplet channel number
- id: input_source
type: string
description: Current TV input source
- id: input
type: enum
values: [tv, hdmi, scart, composite, component, screen_mirroring, pc_rgb]
- id: picture_mute_state
type: enum
values: [enabled, disabled]
- id: pip_state
type: enum
values: [enabled, disabled]
- id: broadcast_address
type: string
description: Broadcast IPv4 address
- id: mac_address
type: string
description: MAC address
Variables
# UNRESOLVED: no additional non-discrete settable variables documented in source
Events
- id: power_changed
type: notification
command: "P O W R {state}"
description: Sent when powering on or off
- id: channel_changed
type: notification
command: "C H N N {channel}"
description: Sent when channel changes
- id: input_changed
type: notification
command: "I N P T {input}"
description: Sent when input changes
- id: volume_changed
type: notification
command: "V O L U {volume}"
description: Sent when volume changes
- id: mute_changed
type: notification
command: "A M U T {state}"
description: Sent when muting or unmuting
- id: pip_changed
type: notification
command: "P I P I {state}"
description: Sent when PIP changes
- id: picture_mute_changed
type: notification
command: "P M U T {state}"
description: Sent when picture mute changes
Macros
# UNRESOLVED: no multi-step sequences explicitly documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing requirements documented in source
Notes
Protocol must be enabled through Network > Home Network Setup > IP Control > Simple IP Control, or through Hotel/Pro Mode > IP Control > Simple IP Control. TCP messages use fixed 24-byte format: header 0x2A 0x53, one-byte type, four-byte FourCC function, sixteen-byte parameter, footer 0x0A. Connections remain open between requests and server disconnects after 30 seconds without command.
Provenance
source_domains:
- aca.im
source_urls:
- "https://aca.im/driver_docs/Sony/sony%20bravia%20simple%20ip%20control.pdf"
retrieved_at: 2026-07-22T01:29:16.999Z
last_checked_at: 2026-07-22T07:51:18.218Z
Verification Summary
verdict: verified
checked_at: 2026-07-22T07:51:18.218Z
matched_actions: 34
action_count: 34
confidence: medium
summary: "All 34 actions matched source FourCC commands one-to-one at spec granularity; transport verified. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source identifies protocol for BRAVIA 2014 models, but does not explicitly confirm KJX85 Series compatibility."
- "no additional non-discrete settable variables documented in source"
- "no multi-step sequences explicitly documented in source"
- "no safety warnings, interlock procedures, or power-on sequencing requirements documented in source"
- "source does not provide exact complete serialized payload notation for every message; command fields preserve documented FourCC and parameter patterns."
- "source does not state whether Sony KJX85 Series specifically supports this BRAVIA 2014 protocol."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0