Summary
The LG 49SK8000PUA is a SmartTV supporting external control via RS-232C serial and TCP/IP (telnet). Both interfaces provide power, picture, audio, channel tuning, input selection, and 3D control. The serial protocol uses ASCII format [Command1][Command2] [SetID] [Data][CR] at 9600 baud. The TCP/IP interface connects via telnet on port 9761 using plain-text keyword commands with OK/NG responses. IP Control must first be enabled in the TV's setup menu.
Transport
protocols:
- tcp
- serial
addressing:
port: 9761
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: null # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no per-connection login; IP Control Setup menu password (default 828) is a one-time TV configuration step, not transport auth
Traits
traits:
- powerable # power on/off via POWER / ka commands; WOL support mentioned
- levelable # volume, contrast, brightness, color, tint, sharpness, bass, treble, balance, backlight, color temperature
- queryable # RS-232: send FF as data to read current status; IP: OK response includes state
- routable # input select and channel tune commands
Actions
# TCP/IP (telnet port 9761) commands documented below.
# RS-232 equivalent uses format: [cmd1][cmd2] [SetID] [Data][CR]
# RS-232 query: send FF as Data to read current value.
# RS-232 ack OK: [cmd2] [SetID] OK[Data]x
# RS-232 ack NG: [cmd2] [SetID] NG[Data]x
# === Power ===
- id: power_off
label: Power Off
kind: action
transport: tcp
command: "POWER off"
params: []
notes: RS-232 equivalent is `ka [SetID] 00`
- id: power_on
label: Power On
kind: action
transport: tcp
command: "POWER on"
params: []
notes: RS-232 equivalent is `ka [SetID] 01`. WOL also supported when Mobile TV On is enabled.
# === Aspect Ratio ===
- id: aspect_ratio
label: Aspect Ratio
kind: action
transport: tcp
command: "ASPECT_RATIO {mode}"
params:
- name: mode
type: enum
values: [4by3, 16by9, setbyoriginal]
description: Screen format
notes: RS-232 equivalent is `kc [SetID] [Data]` (01=Normal, 02=Wide, 04=Zoom, 05=Zoom2, 06=SetByProgram, 09=JustScan, 0B=FullWide, 10-1F=CinemaZoom 1-16)
# === Screen Mute ===
- id: screen_mute
label: Screen Mute
kind: action
transport: tcp
command: "SCREEN_MUTE {mode}"
params:
- name: mode
type: enum
values: [screenmuteon, videomuteon, allmuteoff]
description: Screen/video mute mode
notes: RS-232 equivalent is `kd [SetID] [Data]` (00=off, 01=screen mute on, 10=video mute on)
# === Volume Mute ===
- id: volume_mute
label: Volume Mute
kind: action
transport: tcp
command: "VOLUME_MUTE {state}"
params:
- name: state
type: enum
values: [on, off]
description: "on = mute on (volume off), off = mute off (volume on)"
notes: RS-232 equivalent is `ke [SetID] [Data]` (00=mute on, 01=mute off)
# === Volume Control ===
- id: volume_control
label: Volume Control
kind: action
transport: tcp
command: "VOLUME_CONTROL {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Volume level (decimal)
notes: RS-232 equivalent is `kf [SetID] [Data]` (00-64 hex)
# === Contrast ===
- id: contrast
label: Contrast
kind: action
transport: tcp
command: "PICTURE_CONTRAST {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Contrast level (decimal)
notes: RS-232 equivalent is `kg [SetID] [Data]` (00-64 hex)
# === Brightness ===
- id: brightness
label: Brightness
kind: action
transport: tcp
command: "PICTURE_BRIGHTNESS {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Brightness level (decimal)
notes: RS-232 equivalent is `kh [SetID] [Data]` (00-64 hex)
# === Color ===
- id: color
label: Color
kind: action
transport: tcp
command: "PICTURE_COLOUR {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Color level (decimal)
notes: RS-232 equivalent is `ki [SetID] [Data]` (00-64 hex)
# === Tint ===
- id: tint
label: Tint
kind: action
transport: tcp
command: "PICTURE_TINT {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Tint level (decimal)
notes: RS-232 equivalent is `kj [SetID] [Data]` (00-64 hex, 00=Red, 64=Green)
# === Sharpness ===
- id: sharpness
label: Sharpness
kind: action
transport: tcp
command: "PICTURE_SHARPNESS {level}"
params:
- name: level
type: integer
min: 0
max: 50
description: Sharpness level (decimal)
notes: RS-232 equivalent is `kk [SetID] [Data]` (00-32 hex)
# === OSD Select ===
- id: osd_select
label: OSD Select
kind: action
transport: tcp
command: "OSD_SELECT {state}"
params:
- name: state
type: enum
values: [on, off]
description: Enable or disable on-screen display
notes: RS-232 equivalent is `kl [SetID] [Data]` (00=off, 01=on)
# === Remote Control Lock ===
- id: remote_lock
label: Remote Control Lock
kind: action
transport: tcp
command: "REMOTECONTROLER_LOCK {state}"
params:
- name: state
type: enum
values: [on, off]
description: Lock or unlock front panel and remote control
notes: RS-232 equivalent is `km [SetID] [Data]` (00=off, 01=on). Lock is released on main power cycle (plug-off/plug-in after 20-30s).
# === Balance ===
- id: balance
label: Audio Balance
kind: action
transport: tcp
command: "AUDIO_BALANCE {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Balance level (decimal)
notes: RS-232 equivalent is `kt [SetID] [Data]` (00-64 hex)
# === Color Temperature ===
- id: color_temperature
label: Color Temperature
kind: action
transport: tcp
command: "PICTURE_COLOUR_TEMPERATURE {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Color temperature level (decimal)
notes: RS-232 equivalent is `xu [SetID] [Data]` (00-64 hex)
# === Equalizer ===
- id: equalizer
label: Equalizer
kind: action
transport: tcp
command: "AUDIO_EQUALIZER {band} {step}"
params:
- name: band
type: integer
min: 1
max: 5
description: Frequency band (1-5)
- name: step
type: integer
min: 0
max: 20
description: EQ step value (decimal)
notes: Precondition: sound mode must be set to EQ adjustable. RS-232 equivalent is `jv [SetID] [Data]` with encoded band/step.
# === Energy Saving ===
- id: energy_saving
label: Energy Saving
kind: action
transport: tcp
command: "ENERGY_SAVING {mode}"
params:
- name: mode
type: enum
values: [screenoff, maximum, medium, minimum, off]
description: Energy saving mode
notes: RS-232 equivalent is `jq [SetID] [Data]` (00=off, 01=minimum, 02=medium, 03=maximum, 04=auto, 05=screen off)
# === Tune Channel (ATSC ATV) ===
- id: tune_atsc_atv
label: Tune ATSC Analog Channel
kind: action
transport: tcp
command: "CHANNEL_SETTING_ATSC_ATV {channel} {source}"
params:
- name: channel
type: integer
description: Channel number
- name: source
type: enum
values: [antenna, cable]
description: Input source
notes: RS-232 equivalent is `ma [SetID] [Data00] [Data01] [Data02]`
# === Tune Channel (ATSC DTV) ===
- id: tune_atsc_dtv
label: Tune ATSC Digital Channel
kind: action
transport: tcp
command: "CHANNEL_SETTING_ATSC_DTV {major} {minor} {source}"
params:
- name: major
type: integer
description: Major channel number
- name: minor
type: integer
description: Minor channel number
- name: source
type: enum
values: [antennanotphy, cablenotphy]
description: Input source (physical channel not used)
notes: Also supports `CHANNEL_SETTING_ATSC_DTV [Channel Number] cablenotphy` for cable without physical. RS-232 has extensive tune options including physical/major/minor with source codes.
# === Channel Add/Delete ===
- id: channel_add_delete
label: Channel Add/Delete
kind: action
transport: tcp
command: "CHANNEL_ADD_DELETE {action}"
params:
- name: action
type: enum
values: [add, delete]
description: Add or delete/skip current channel
notes: RS-232 equivalent is `mb [SetID] [Data]` (00=del/skip, 01=add)
# === Key Action ===
- id: key_action
label: Key Action (IR Remote Simulation)
kind: action
transport: tcp
command: "KEY_ACTION {key}"
params:
- name: key
type: enum
values:
- exit
- channelup
- channeldown
- volumeup
- volumedown
- arrowright
- arrowleft
- volumemute
- deviceinput
- sleepreserve
- livetv
- previouschannel
- favoritechannel
- teletext
- teletextoption
- returnback
- avmode
- captionsubtitle
- arrowup
- arrowdown
- myapp
- settingmenu
- ok
- quickmenu
- videomode
- audiomode
- channellist
- bluebutton
- yellowbutton
- greenbutton
- redbutton
- aspectratio
- audiodescription
- programmorder
- userguide
- smarthome
- simplelink
- fastforward
- rewind
- programminfo
- programguide
- play
- slowplay
- soccerscreen
- record
- 3d
- autoconfig
- app
- screenbright
- number0
- number1
- number2
- number3
- number4
- number5
- number6
- number7
- number8
- number9
description: Simulated IR remote key code
notes: RS-232 equivalent is `mc [SetID] [Data]` using hex key codes (see Key Codes table in source).
# === Backlight ===
- id: backlight
label: Backlight Control
kind: action
transport: tcp
command: "PICTURE_BACKLIGHT {level}"
params:
- name: level
type: integer
min: 0
max: 100
description: Backlight level (decimal)
notes: Precondition: Energy Saving must be off. RS-232 equivalent is `mg [SetID] [Data]` (00-64 hex).
# === Input Select ===
- id: input_select
label: Input Select
kind: action
transport: tcp
command: "INPUT_SELECT {source}"
params:
- name: source
type: enum
values: [dtv, atv, cadtv, catv, avav1, component1, hdmi1, hdmi2, hdmi3]
description: Input source for main picture
notes: RS-232 equivalent is `xb [SetID] [Data]` with extended codes (00=DTV, 01=CADTV, 10=ATV, 20=AV, 40=Component1, 60=RGB, 90=HDMI1, 91=HDMI2, 92=HDMI3, 93=HDMI4)
# === 3D Mode ===
- id: 3d_off
label: 3D Off
kind: action
transport: tcp
command: "PICTURE_3D off"
params: []
- id: 3d_3dto2d
label: 3D to 2D
kind: action
transport: tcp
command: "PICTURE_3D 3dto2d"
params: []
- id: 3d_2dto3d
label: 2D to 3D
kind: action
transport: tcp
command: "PICTURE_3D 2dto3d {direction} {depth}"
params:
- name: direction
type: enum
values: [righttoleft, lefttoright]
description: 3D direction
- name: depth
type: integer
min: 0
max: 20
description: 3D depth effect
- id: 3d_on
label: 3D On
kind: action
transport: tcp
command: "PICTURE_3D on {pattern} {direction} {depth}"
params:
- name: pattern
type: enum
values: [topandbottom, sidebyside, checkboard, framesequential, columninterleaving, rowinterleaving]
description: 3D pattern type
- name: direction
type: enum
values: [righttoleft, lefttoright]
description: 3D direction
- name: depth
type: integer
min: 0
max: 20
description: 3D depth effect
notes: Only on 3D-capable models. RS-232 equivalent is `xt [SetID] [Data00] [Data01] [Data02] [Data03]`.
# === Extended 3D ===
- id: 3d_extension
label: Extended 3D Options
kind: action
transport: tcp
command: "PICTURE_3D_EXTENSION {option} {value}"
params:
- name: option
type: enum
values: [picturecorrection, colorcorrection, sound, normal, depth, viewpoint, genre]
description: 3D option to adjust
- name: value
type: string
description: "Varies by option: picturecorrection/colorcorrection/sound/normal [0-1], depth/viewpoint [0-20], genre [0-5=Standard/Sport/Cinema/Extreme/Manual/Auto]"
notes: Precondition: 3D must be active. RS-232 equivalent is `xv [SetID] [Data00] [Data01]`.
# === RS-232 ONLY commands (no TCP/IP equivalent documented) ===
- id: treble
label: Treble
kind: action
transport: serial
command: "kr [SetID] [Data]"
params:
- name: data
type: integer
min: 0
max: 100
description: Treble level (hex 00-64)
notes: RS-232 only. No TCP/IP equivalent documented.
- id: bass
label: Bass
kind: action
transport: serial
command: "ks [SetID] [Data]"
params:
- name: data
type: integer
min: 0
max: 100
description: Bass level (hex 00-64)
notes: RS-232 only. No TCP/IP equivalent documented.
- id: auto_configure
label: Auto Configure
kind: action
transport: serial
command: "ju [SetID] 01"
params: []
notes: RS-232 only. Adjusts picture position in RGB (PC) mode. No TCP/IP equivalent documented.
- id: ism_method
label: ISM Method
kind: action
transport: serial
command: "jp [SetID] [Data]"
params:
- name: data
type: enum
values: [02, 08, 20]
description: "02=Orbiter, 08=Normal, 20=Color Wash"
notes: RS-232 only, Plasma TV only. No TCP/IP equivalent documented.
- id: panel_light
label: Control Panel Light
kind: action
transport: serial
command: "mg [SetID] [Data]"
params:
- name: data
type: integer
min: 0
max: 100
description: Panel light level (hex 00-64)
notes: RS-232 only. Shares command code `mg` with backlight. No TCP/IP equivalent documented.
Feedbacks
# TCP/IP: each command returns "OK" (success) or "NG" (failure) as plain text.
# RS-232: acknowledgment format varies by command:
# OK: [cmd2] [SetID] OK[Data]x
# NG: [cmd2] [SetID] NG[Data]x (Data 00 = Illegal Code)
# RS-232 query: send FF as Data to read current status.
- id: command_ack
type: enum
values: [OK, NG]
description: Acknowledgement returned after every command
- id: power_state
type: enum
values: [on, off]
transport: serial
description: Current power state (query via `ka [SetID] FF`)
- id: volume_level
type: integer
transport: serial
description: Current volume level (query via `kf [SetID] FF`)
- id: input_source
type: enum
transport: serial
description: Current input source (query via `xb [SetID] FF`)
- id: mute_state
type: enum
values: [on, off]
transport: serial
description: Current mute state (query via `ke [SetID] FF`)
# UNRESOLVED: IP control does not document a query/status read mechanism beyond OK/NG ack
Variables
# UNRESOLVED: no distinct settable variables beyond the actions above; all parameters are passed inline with commands
Events
# UNRESOLVED: no unsolicited notification/event mechanism documented
Macros
# UNRESOLVED: no multi-step macros documented in source
Safety
confirmation_required_for: []
interlocks:
- "During media playback or recording, all commands except Power (ka/POWER) and Key (mc/KEY_ACTION) are rejected as NG"
- "RS-232 with USB-to-Serial converter: ka (power) command only works when TV is on; direct RS-232C cable works in both power-on and power-off states"
- "Remote control lock is released on main power cycle (plug-off/plug-in after 20-30 seconds)"
- "With key lock on in standby, TV will not turn on via IR or local key power button"
# UNRESOLVED: no explicit safety warnings or interlock procedures beyond operational constraints noted above
Notes
- Dual protocol support: TV supports both RS-232C serial and TCP/IP (telnet) control. RS-232 uses
[cmd1][cmd2] [SetID] [Data][CR]format; TCP/IP uses plain-text keyword commands on port 9761. - Set ID (RS-232): Adjustable 1-99 via TV menu. Set ID 0 broadcasts to all connected sets. Displayed as decimal in menu but transmitted as hex in protocol.
- IP Control Setup: Must be enabled on TV first (Settings > hold 5s on Live TV > enter password 828 > Network IP Control > On > reboot). Default password is 828.
- Wake-on-LAN: TV can be powered on via WOL when "Mobile TV On" (Settings > Mobile TV On) is enabled.
- Communication code: ASCII for RS-232; plain text over telnet for TCP/IP.
- RS-232 cable: Crossed (reverse) cable required. Supports DE9 (D-Sub 9pin) and phone jack connectors. USB-to-Serial converter must use PL2303 chip (VID 0x0557, PID 0x2008).
- Data ranges differ between protocols: RS-232 uses hexadecimal ranges (e.g., volume 00-64), TCP/IP uses decimal (e.g., volume 0-100).
- RS-232 power-off control limitation: USB-to-Serial converter cable only supports power commands when TV is on; direct RS-232C cable works in standby.
- 3D commands: Only on 3D-capable models. Extended 3D requires active 3D mode as precondition.
- Equalizer: Only adjustable when sound mode is set to EQ-adjustable mode.
Provenance
source_domains:
- webostv.developer.lge.com
- knowledge.tiffinmotorhomes.com
- proaudioinc.com
source_urls:
- https://webostv.developer.lge.com/develop/references/luna-service-introduction
- https://knowledge.tiffinmotorhomes.com/Owner_Hub/Allegro_Bus/Allegro_Bus_Component_Manuals/2027_Allegro_Bus_Component_Manuals/LG_External_Control_Device_Setup
- https://www.proaudioinc.com/Dealer_Area/RS232C_EN_160526.pdf
retrieved_at: 2026-06-02T22:09:05.496Z
last_checked_at: 2026-06-02T22:09:05.496Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:09:05.496Z
matched_actions: 33
action_count: 33
confidence: medium
summary: "All 33 spec actions traced to source (dip-safe re-verify). (13 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated"
- "maximum concurrent connection count for IP control not stated"
- "flow control not stated in source"
- "IP control does not document a query/status read mechanism beyond OK/NG ack"
- "no distinct settable variables beyond the actions above; all parameters are passed inline with commands"
- "no unsolicited notification/event mechanism documented"
- "no multi-step macros documented in source"
- "no explicit safety warnings or interlock procedures beyond operational constraints noted above"
- "maximum concurrent TCP/IP connections not stated"
- "command rate limiting or minimum interval not stated"
- "connection timeout / keepalive behavior not stated"
- "whether IP control query commands exist beyond OK/NG acknowledgement"
- "protocol version number not stated"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0