Summary
The Extron SMP 300 Series (SMP 351, SMP 351 3G-SDI, SMP 352, SMP 352 3G-SDI) are streaming media processors with recording, encoding, and streaming capabilities. Control is via the Simple Instruction Set (SIS) protocol over RS-232 serial, Telnet (TCP port 23), or USB. SIS commands are ASCII-based, case-insensitive, and terminated with CR/LF.
Transport
protocols:
- tcp
- serial
addressing:
port: 23 # Telnet default; configurable via SIS or web UI
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: password # optional: device can operate with no password set
# Two levels: administrator and user. If no password set, device accepts
# commands immediately after connection. Password max 128 chars (alphanumeric,
# no pipe or space).
Traits
- powerable # inferred: reboot command present
- queryable # inferred: extensive query commands returning device state
- levelable # inferred: audio level, brightness, contrast, color, tint controls
- routable # inferred: input selection per channel
Actions
# System
- id: reboot_system
label: Reboot System
kind: action
command: "E1BOOT}"
response: "Boot1]"
- id: restart_network
label: Restart Network
kind: action
command: "E2BOOT}"
response: "Boot2]"
- id: reset_flash
label: Reset Flash
kind: action
command: "EZFFF}"
response: "Zpf]"
- id: factory_reset
label: System Reset (Factory Defaults)
kind: action
command: "EZXXX}"
response: "Zpx]"
- id: full_reset_delete_recordings
label: Full Reset (Delete Recordings)
kind: action
command: "EZY}"
response: "Zpy]"
- id: absolute_reset
label: Absolute Reset
kind: action
command: "EZQQQ}"
response: "Zpq]"
- id: clear_alarms
label: Clear Active Alarms
kind: action
command: "ECALRM}"
response: "Alrm C]"
- id: set_unit_name
label: Set Unit Name
kind: action
params:
- name: name
type: string
description: "Device name, max 63 chars, must comply with internet host name standards"
command: "E {name}CN}"
response: "Ipn{name}]"
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
params:
- name: mode
type: integer
description: "0=clear/none, 1=verbose, 2=tagged responses, 3=verbose+tagged"
command: "E {mode}CV}"
response: "Vrb{mode}]"
# Executive mode
- id: set_executive_mode
label: Set Executive Mode
kind: action
params:
- name: mode
type: integer
description: "0=off, 1=complete lockout, 2=menu lockout, 3=recording controls only"
command: "{mode}X"
response: "Exe{mode}]"
# Port configuration
- id: set_telnet_port
label: Set Telnet Port
kind: action
params:
- name: port
type: integer
description: "Port number (1024+, or 23 for default, or 0 to disable)"
command: "E {port}MT}"
response: "Pmt{port}]"
- id: set_web_port
label: Set Web Port
kind: action
params:
- name: port
type: integer
description: "Port number (1024+, or 80 for default, or 0 to disable)"
command: "E {port}MH}"
response: "Pmh{port}]"
# IP configuration
- id: set_dhcp
label: Set DHCP Mode
kind: action
params:
- name: enabled
type: integer
description: "1=on, 0=off"
command: "E{enabled}DH}"
response: "Idh{enabled}]"
- id: set_ip_address
label: Set IP Address
kind: action
params:
- name: ip
type: string
description: "IP address in dotted decimal notation"
command: "E {ip}CI}"
response: "Ipi {ip}]"
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
params:
- name: mask
type: string
description: "Subnet mask in dotted decimal notation"
command: "E {mask}CS}"
response: "Ips {mask}]"
- id: set_gateway
label: Set Gateway IP Address
kind: action
params:
- name: gateway
type: string
description: "Gateway IP address in dotted decimal notation"
command: "E {gateway}CG}"
response: "Ipg {gateway}]"
- id: set_dns_server
label: Set DNS Server IP Address
kind: action
params:
- name: dns
type: string
description: "DNS server IP address in dotted decimal notation"
command: "E {dns}DI}"
response: "Ipd {dns}]"
- id: set_datetime
label: Set Date and Time
kind: action
params:
- name: datetime
type: string
description: "Format MM/DD/YY-HH:MM:SS"
command: "E {datetime} CT}"
response: "Ipt {datetime}]"
# Serial port configuration
- id: configure_serial_port
label: Configure Serial Port
kind: action
params:
- name: baud_rate
type: integer
description: "9600, 19200, 38400, 57600, or 115200"
- name: parity
type: string
description: "O=odd, E=even, N=none, M=mark, S=space"
- name: data_bits
type: integer
description: "7 or 8"
- name: stop_bits
type: integer
description: "1 or 2"
command: "E1*{baud_rate},{parity},{data_bits},{stop_bits}CP}"
response: "Cpn 01 Ccp{baud_rate},{parity},{data_bits},{stop_bits}]"
# Password management
- id: set_admin_password
label: Set Administrator Password
kind: action
params:
- name: password
type: string
description: "Max 128 chars, alphanumeric, no pipe or space"
command: "E {password}CA}"
response: "Ipa {password}]"
- id: set_user_password
label: Set User Password
kind: action
params:
- name: password
type: string
description: "Max 128 chars, alphanumeric, no pipe or space"
command: "E {password}CU}"
response: "Ipu {password}]"
- id: reset_admin_password
label: Reset Administrator Password
kind: action
command: "E •CA}"
response: "Ipa]"
- id: reset_user_password
label: Reset User Password
kind: action
command: "E •CU}"
response: "Ipu]"
# Backup/Restore
- id: save_configuration
label: Save Configuration
kind: action
params:
- name: type
type: integer
description: "0=IP config (ip.cfg), 2=box parameters (box.cfg)"
command: "E1*{type}XF}"
response: "Cfg1*{type}]"
- id: restore_configuration
label: Restore Configuration
kind: action
params:
- name: type
type: integer
description: "0=IP config (ip.cfg), 2=box parameters (box.cfg)"
command: "E0*{type}XF}"
response: "Cfg0*{type}]"
# Input selection
- id: select_input
label: Select Input
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: channel
type: integer
description: "Output channel: 1=A (inputs 1-2), 2=B (inputs 3-5)"
command: "{input}*{channel}!"
response: "In {input}*{channel}]"
- id: set_input_name
label: Set Input Name
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: name
type: string
description: "Input name, max 16 chars"
command: "E {input},{name} NI}"
response: "Nmi {input},{name}]"
- id: set_input_format
label: Set Input Video Format
kind: action
params:
- name: format
type: integer
description: "1=YUVp/HDTV, 2=YUVi, 3=Composite, 4=3G-SDI, 5=HD-SDI, 6=SDI, 7=Auto-SDI"
command: "3* {format}"
response: "Typ 03*{format}]"
- id: set_input_aspect_ratio
label: Set Input Aspect Ratio
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: mode
type: integer
description: "1=fill, 2=follow, 3=fit (zoom)"
command: "E {input}*{mode}ASPR}"
response: "Aspr {input}*{mode}]"
# Recording
- id: start_recording
label: Start Recording
kind: action
command: "E Y1 RCDR}"
response: "RcdrY1]"
- id: stop_recording
label: Stop Recording
kind: action
command: "E Y0 RCDR}"
response: "RcdrY0]"
- id: pause_recording
label: Pause Recording
kind: action
command: "E Y2 RCDR}"
response: "RcdrY2]"
- id: extend_record_time
label: Extend Record Time
kind: action
params:
- name: minutes
type: integer
description: "Additional minutes, 1-60"
command: "E E {minutes} RCDR}"
response: "RcdrE {minutes}]"
- id: add_chapter_marker
label: Add Chapter Marker
kind: action
command: "E B RCDR}"
response: "RcdrB]"
- id: set_record_destination
label: Set Record Destination
kind: action
params:
- name: destination
type: integer
description: "0=Auto, 1=Internal, 2=USBFront, 3=USBRear, 11=Internal+Auto, 12=Internal+USBFront, 13=Internal+USBRear, 14=Internal+USBRCP"
command: "E D {destination} RCDR}"
response: "RcdrD {destination}]"
- id: execute_swap
label: Swap Channel A and B
kind: action
command: "% Tke"
response: "Swap]"
# Video mute
- id: video_mute_on
label: Mute Video Output
kind: action
params:
- name: channel
type: integer
description: "Output channel number"
command: "{channel}* 1B Vmt"
response: "{channel}*01]"
- id: video_mute_off
label: Unmute Video Output
kind: action
params:
- name: channel
type: integer
description: "Output channel number"
command: "{channel}* 0B Vmt"
response: "{channel}*00]"
# HDMI video mute
- id: hdmi_video_blank_on
label: Enable HDMI Blanking
kind: action
command: "99* 1B Vmt"
response: "99*1]"
- id: hdmi_video_blank_off
label: Disable HDMI Blanking
kind: action
command: "99* 0B Vmt"
response: "99*0]"
# Audio mute
- id: audio_mute
label: Mute Audio Channel
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID (e.g. 40000=Analog A Left, 40001=Analog A Right, etc.)"
command: "E M {channel}*1AU}"
response: "DsM {channel}*1]"
- id: audio_unmute
label: Unmute Audio Channel
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID"
command: "E M {channel}*0AU}"
response: "DsM {channel}*0]"
- id: set_audio_level
label: Set Audio Level
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID"
- name: level
type: integer
description: "Level in 0.1 dB steps, -180 to 240 (-18.0 to +24.0 dB)"
command: "E G {channel}*{level} AU}"
response: "DsG {channel}* {level}]"
- id: set_audio_delay
label: Set Audio Delay
kind: action
params:
- name: delay_ms
type: integer
description: "Delay in milliseconds, 0-999"
command: "E 1* {delay_ms} ADLY}"
response: "Adly1* {delay_ms}]"
- id: set_audio_format
label: Set Audio Input Format
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: format
type: integer
description: "0=disable, 1=analog, 2=PLCM 2 CH"
command: "E I {input}* {format} AFMT}"
response: "Afmt {input}* {format}]"
# Encoder settings
- id: set_encoder_profile
label: Set Encoder Profile
kind: action
params:
- name: stream
type: integer
description: "Stream selection (1=Archive ChA, 2=Archive ChB, 3=Confidence)"
- name: profile
type: integer
description: "1=Base, 2=Main, 3=High"
command: "E {stream}* {profile} EPRO}"
response: "Epro{stream}* {profile}]"
- id: set_encoding_mode
label: Set Encoding Mode
kind: action
params:
- name: mode
type: integer
description: "0=composite mode, 1=dual channel mode"
command: "E 1* {mode} ENCM}"
response: "Encm 1*{mode}]"
- id: set_output_mode
label: Set Output Mode
kind: action
params:
- name: mode
type: integer
description: "1=video and audio, 2=video only"
command: "E1*{mode} SMOD}"
response: "Smod1* {mode}]"
- id: set_record_resolution
label: Set Record Resolution
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: resolution
type: integer
description: "1=480p, 2=720p, 3=1080p, 4=WCIF, 5=XGA, 6=SXGA, 99=Custom"
command: "E {stream}* {resolution} VRES}"
response: "Vres{stream}*{resolution}]"
- id: set_record_frame_rate
label: Set Record Frame Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: rate
type: integer
description: "1=30, 2=25, 3=24, 4=15, 5=12.5, 6=12, 7=10, 8=5"
command: "E {stream}* {rate} VFRM}"
response: "Vfrm{stream}*{rate}]"
- id: set_video_bitrate
label: Set Video Bit Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: bitrate
type: integer
description: "200 to 10000"
command: "E V {stream}* {bitrate} BITR}"
response: "BitrV {stream}* {bitrate}]"
- id: set_audio_bitrate
label: Set Audio Bit Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: bitrate
type: integer
description: "80, 96, 128, 192, 256, or 320"
command: "E A {stream}* {bitrate} BITR}"
response: "BitrA {stream}* {bitrate}]"
- id: set_gop_length
label: Set GOP Length
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: length
type: integer
description: "1 to 30"
command: "E {stream}* {length} GOPL}"
response: "Gopl{stream}*{length}]"
- id: set_bitrate_control
label: Set Bit Rate Control Type
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: type
type: integer
description: "0=VBR, 1=CVBR, 2=CBR"
command: "E {stream}* {type} BRCT}"
response: "Brct{stream}* {type}]"
- id: set_preview_refresh_rate
label: Set Preview Output Refresh Rate
kind: action
params:
- name: rate
type: integer
description: "1=60 Hz, 2=50 Hz"
command: "E {rate} RATE}"
response: "Rate {rate}]"
# RTMP streaming
- id: set_rtmp_url
label: Set RTMP Destination URL
kind: action
params:
- name: slot
type: integer
description: "1=primary, 2=backup"
- name: stream
type: integer
description: "Stream selection"
- name: url
type: string
description: "RTMP URL string"
command: "E U{slot}*{stream}*{url}RTMP}"
response: "RtmpU{slot}*{stream}*{url}]"
- id: enable_rtmp_push
label: Enable/Disable RTMP Push
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: enabled
type: integer
description: "1=enable, 0=disable"
command: "E E {stream}*{enabled} RTMP}"
response: "RtmpE {stream}*{enabled}]"
- id: stream_enable
label: Enable/Disable Stream
kind: action
params:
- name: stream
type: integer
description: "Stream selection (1=Archive ChA, 2=Archive ChB, 3=Confidence)"
- name: enabled
type: integer
description: "1=enable, 0=disable"
command: "E {stream}*{enabled} STRC}"
response: "Strc{stream}*{enabled}]"
# Stream name
- id: set_stream_name
label: Set Stream Name
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: name
type: string
description: "Stream name"
command: "EN {stream}* {name} STRC}"
response: "StrcN {stream}* {name}]"
# Presets
- id: recall_user_preset
label: Recall User Preset
kind: action
params:
- name: channel
type: integer
description: "Output channel (1=A, 2=B)"
- name: preset
type: integer
description: "Preset number 1-32"
command: "1*{channel}*{preset}."
response: "1Rpr{channel}*{preset}]"
- id: save_user_preset
label: Save User Preset
kind: action
params:
- name: channel
type: integer
description: "Output channel (1=A, 2=B)"
- name: preset
type: integer
description: "Preset number 1-32"
command: "1*{channel}*{preset},"
response: "1Spr{channel}*{preset}]"
- id: recall_input_preset
label: Recall Input Preset
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: preset
type: integer
description: "Preset number 1-128"
command: "2*{input}*{preset}."
response: "2Rpr{input}*{preset}]"
- id: save_input_preset
label: Save Input Preset
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: preset
type: integer
description: "Preset number 1-128"
command: "2*{input}*{preset},"
response: "2Spr{input}*{preset}]"
- id: recall_layout_preset
label: Recall Layout Preset
kind: action
params:
- name: preset
type: integer
description: "Preset number 1-32"
command: "7*{preset}."
response: "7Rpr{preset}]"
- id: save_layout_preset
label: Save Layout Preset
kind: action
params:
- name: preset
type: integer
description: "Preset number 1-32"
command: "7*{preset},"
response: "7Spr{preset}]"
- id: recall_encoder_preset
label: Recall Encoder Preset
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: preset
type: integer
description: "Encoder preset number 1-32"
command: "4*{stream}* {preset}."
response: "4Rpr {stream}*{preset}]"
- id: recall_streaming_preset
label: Recall Streaming Preset
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: preset
type: integer
description: "Streaming preset number 1-16"
command: "3*{stream}*{preset}."
response: "3Rpr {stream}*{preset}]"
# Picture adjustments
- id: set_brightness
label: Set Brightness
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} BRIT}"
response: "Brit {channel}*{value}]"
- id: set_contrast
label: Set Contrast
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} CONT}"
response: "Cont {channel}*{value}]"
- id: set_color
label: Set Color
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value}COLR}"
response: "Colr {channel}*{value}]"
- id: set_tint
label: Set Tint
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} TINT}"
response: "Tint {channel}*{value}]"
# Auto-image
- id: toggle_auto_image
label: Enable/Disable Auto-Image
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: enabled
type: integer
description: "0=disabled, 1=enabled"
command: "{input}*{enabled}A Img}"
response: "{input}*{enabled}]"
# Overscan
- id: set_overscan
label: Set Overscan Mode
kind: action
params:
- name: input_type
type: integer
description: "Input video format"
- name: mode
type: integer
description: "0=0%, 1=2.5%, 2=5.0%"
command: "E {input_type}*{mode}OSCN}"
response: "Oscn{input_type}*{mode}]"
# Test pattern
- id: set_test_pattern
label: Set Test Pattern
kind: action
params:
- name: pattern
type: integer
description: "0=off, 1=color bars, 2=AR 1.33, 3=AR 1.78, 4=AR 1.85, 5=crop, 6=pulse, 7=timestamp, 8=universal OSD"
command: "E {pattern}TEST}"
response: "Test{pattern}]"
# HDCP
- id: set_hdcp_authorization
label: Set HDCP Authorization
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: enabled
type: integer
description: "1=on, 0=off"
command: "E E{enabled}*{input}HDCP}"
response: "HdcpE {input}*{enabled}]"
- id: set_hdcp_notification
label: Set HDCP Notification
kind: action
params:
- name: enabled
type: integer
description: "1=on (green notification), 0=off (mute to black)"
command: "E N{enabled}HDCP}"
response: "HdcpN{enabled}]"
# EDID
- id: assign_edid
label: Assign EDID to Input
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: edid
type: integer
description: "EDID value (see EDID table)"
command: "E A {input}*{edid}EDID}"
response: "EdidA {input}*{edid}]"
# USB ejection
- id: eject_usb
label: Safely Eject USB Storage
kind: action
params:
- name: port
type: integer
description: "0=all USB, 2=USBFront, 3=USBRear, 4=USBRCP"
command: "E {port}USBE}"
response: "USBE{port}]"
# SNMP
- id: set_snmp_contact
label: Set SNMP Contact
kind: action
params:
- name: contact
type: string
description: "Contact name, max 64 chars"
command: "E C {contact} SNMP}"
response: "SnmpC* {contact}]"
- id: set_snmp_location
label: Set SNMP Location
kind: action
params:
- name: location
type: string
description: "Location, max 64 chars"
command: "E L {location} SNMP}"
response: "Snmp L* {location}]"
- id: enable_snmp
label: Enable SNMP Access
kind: action
command: "E E1SNMP}"
response: "SnmpE*1]"
- id: disable_snmp
label: Disable SNMP Access
kind: action
command: "E E0SNMP}"
response: "SnmpE*0]"
# File operations
- id: change_directory
label: Change Directory
kind: action
params:
- name: path
type: string
description: "Directory path"
command: "E {path} CJ}"
response: "Dirl {path}]"
- id: list_files
label: List Files
kind: action
command: "E LF}"
response: "path/filename date/time length ]"
# HDMI output
- id: set_hdmi_output
label: Set HDMI Output Mode
kind: action
params:
- name: mode
type: integer
description: "0=Channel A full screen, 1=Channel B full screen, 2=Confidence layout"
command: "E {mode} OMOD}"
response: "Omod {mode}]"
# Dual channel archive recording
- id: set_archive_chA_recording
label: Set Archive Channel A Recording
kind: action
params:
- name: enabled
type: integer
description: "0=disable, 1=enable"
command: "E X1* {enabled}RCDR}"
response: "Rcdr X1*{enabled}]"
# Folder share
- id: enable_folder_share
label: Enable Folder Share on SMD
kind: action
command: "E E1 * 1SHRF}"
response: "ShrfE1*1]"
- id: disable_folder_share
label: Disable Folder Share on SMD
kind: action
command: "E E1 * 0SHRF}"
response: "ShrfE1 *0]"
# Metadata
- id: set_metadata
label: Set Output Metadata
kind: action
params:
- name: parameter
type: integer
description: "Writable parameters: 0=Contributor, 1=Coverage, 2=Presenter, 4=Description, 5=Format, 7=Language, 8=Publisher, 9=Relation, 10=Rights, 11=Source, 12=Subject, 13=Title, 14=Type, 15=SystemName, 16=Course; 3=Date and 6=Identifier are view only"
- name: value
type: string
description: "Metadata value, max 127 chars"
command: "EM{parameter}*{value}RCDR}"
response: "RcdrM{parameter}*{value}]"
# Delete recording
- id: delete_recording
label: Delete Recording Event and Files
kind: action
params:
- name: db_id
type: integer
description: "Valid DB_ID number"
command: "E Z {db_id}RCDR}"
response: "RcdrZ{db_id}]"
- id: set_snmp_port
label: Set SNMP Port
kind: action
params:
- name: port
type: integer
command: "E A{port}PMAP}"
- id: set_ssh_port
label: Set SSH Port
kind: action
params:
- name: port
type: integer
command: "E B{port}PMAP}"
- id: set_ssl_port
label: Set SSL Port
kind: action
params:
- name: port
type: integer
command: "E S{port}PMAP}"
- id: set_edid_import
label: Import EDID to User Location
kind: action
params:
- name: location
type: integer
- name: filename
type: string
command: "E I {location},{filename}EDID}"
- id: set_edid_export
label: Export EDID in Binary Format
kind: action
params:
- name: edid
type: integer
- name: filename
type: string
command: "E E {edid}{filename}EDID}"
- id: set_background_image
label: Select Background Image Filename
kind: action
params:
- name: filename
type: string
command: "E {filename}RF}"
- id: mute_background_image
label: Mute Background Image
kind: action
params: []
command: "E0RF}"
- id: set_hctr
label: Set Horizontal Centering
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} HCTR}"
- id: set_hsiz
label: Set Horizontal Size
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} HSIZ}"
- id: set_vctr
label: Set Vertical Centering
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} VCTR}"
- id: set_vsiz
label: Set Vertical Size
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} VSIZ}"
- id: set_phas
label: Set Pixel Phase
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} PHAS}"
- id: set_tpix
label: Set Total Pixels
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} TPIX}"
- id: set_hsrt
label: Set Horizontal Start
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} HSRT}"
- id: set_alin
label: Set Active Lines
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} ALIN}"
- id: set_apix
label: Set Active Pixels
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} APIX}"
- id: hdmi_audio_mute
label: Mute HDMI Audio
kind: action
params: []
command: "99* 1Z Amt"
- id: hdmi_audio_unmute
label: Unmute HDMI Audio
kind: action
params: []
command: "99* 0Z Amt"
- id: set_snmp_public_community
label: Set SNMP Public Community String
kind: action
params:
- name: community
type: string
command: "E P {community}SNMP}"
# Additional documented commands; source symbols are retained literally.
- id: reset_unit_name
label: Reset Unit Name
kind: action
command: "E CN}"
response: "IpnX10)]"
- id: reset_snmp_contact
label: Reset SNMP Contact
kind: action
command: "E C • SNMP}"
response: "SnmpC*Not•Specified]"
- id: reset_snmp_location
label: Reset SNMP Location
kind: action
command: "E L•SNMP}"
response: "SnmpL*Not•Specified]"
- id: reset_snmp_public_community
label: Reset SNMP Public Community String
kind: action
command: "E P•SNMP}"
response: "SnmpP*public]"
- id: set_snmp_private_community
label: Set SNMP Private Community String
kind: action
params:
- name: community
type: string
description: "X62$: SNMP private community string, up to 64 characters (default = private). SNMP names and community strings can be up to 64 alphanumeric characters including hyphens, underscores and periods."
command: "E X X62$SNMP}"
response: "SnmpX* X62$]"
- id: reset_snmp_private_community
label: Reset SNMP Private Community String
kind: action
command: "E X•SNMP}"
response: "SnmpX*private]"
- id: set_time_zone
label: Set Time Zone
kind: action
params:
- name: time_zone
type: string
description: "X1$: Time zone acronym (2 to 6 letters)"
command: "E X1$* TZON}"
response: "Tzon • X1$*X1%]"
- id: set_ip_address_subnet_gateway
label: Set IP Address Subnet Mask and Gateway
kind: action
params:
- name: ip
type: string
description: "First X1^: IP address in dotted decimal notation"
- name: mask
type: string
description: "X1&: Subnet mask. Default: 255.255.0.0 (no padding)"
- name: gateway
type: string
description: "Second X1^: IP address in dotted decimal notation. Default gateway IP address: 0.0.0.0"
command: "E1*X1^*X1&*X1^CISG}"
response: "Cisg1*IP**/**subnet bits*gateway]"
- id: set_serial_receive_timeout
label: Set Serial Port Receive Timeout
kind: action
params:
- name: first_character_timeout
type: integer
description: "X1(: Time in tens of milliseconds to wait for characters coming into a serial port before terminating (min = 0, max = 32767, default = 10 = 100 ms). The response is returned with leading zeros."
- name: inter_character_timeout
type: integer
description: "X2): Time in tens of milliseconds to wait between characters coming into a serial port before terminating (min = 0, max = 32767, default = 2 = 20 ms). The response is returned with leading zeros. Commands using both X1( and X2) must have both values = 0 or both set to non-zero."
- name: priority
type: integer
description: "X2@: Priority status for receiving timeouts — 0 = Use Send data string command parameters (if they exist) (default). 1 = Use Configure receive timeout command parameters instead."
- name: length_or_delimiter
type: string
description: "X2!: Parameter to set either Length of message to receive or Delimiter value. L = # = byte count (min = 0, max = 32767, default = 0L = 0 byte count). D = Decimal value for ASCII character. (min = 0, max = 00255, default = 00000L). Value is placed prior to parameter: 3 byte length = 3L and ASCII 0A delimiter is 10D. The parameter is case sensitive, and must use capital D or capital L. The response is returned with leading zeros."
command: "E1*X1(*X2)*X2@*X2! CE}"
response: "Cpn01•CceX1(,X2),X2@,X2!]"
- id: set_current_port_timeout
label: Set Current Port Timeout
kind: action
params:
- name: timeout
type: integer
description: "X6(: Port timeout in tens of seconds (zero padded. Default: 00030 = 300 seconds). UNRESOLVED: permitted range."
command: "E0 *X6(TC}"
response: "Pti 0 *X6(]"
- id: set_global_ip_port_timeout
label: Set Global IP Port Timeout
kind: action
params:
- name: timeout
type: integer
description: "X6(: Port timeout in tens of seconds (zero padded. Default: 00030 = 300 seconds). UNRESOLVED: permitted range."
command: "E1*X6(TC}"
response: "Pti1 *X6(]"
- id: erase_current_directory_files
label: Erase Current Directory and Files
kind: action
command: "E /EF}"
response: "Ddl]"
- id: erase_current_directory_subdirectories
label: Erase Current Directory and Subdirectories
kind: action
command: "E //EF}"
response: "Ddl]"
- id: perform_auto_image
label: Perform Auto-Image to Current Output
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "X50@ A Img}"
response: "X50@]"
- id: enable_auto_memory
label: Enable Auto Memory
kind: action
command: "E 1AMEM}"
response: "Amem1]"
- id: disable_auto_memory
label: Disable Auto Memory
kind: action
command: "E 0AMEM}"
response: "Amem0]"
- id: enable_audio_only_recording
label: Enable Audio-Only Recording
kind: action
command: "E A1 * 1RCDR}"
response: "RcdrA1 *1]"
- id: disable_audio_only_recording
label: Disable Audio-Only Recording
kind: action
command: "E A1 * 0RCDR}"
response: "RcdrA1 *0]"
- id: enable_rcp_executive_mode
label: Enable RCP 101 Executive Mode
kind: action
command: "99 * 1X"
response: "Exe99*1]"
- id: disable_rcp_executive_mode
label: Disable RCP 101 Executive Mode
kind: action
command: "99 * 0X"
response: "Exe99*0]"
- id: set_user_preset_name
label: Set User Preset Name
kind: action
params:
- name: preset
type: integer
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding)"
- name: name
type: string
description: "X53!: Preset name — Up to 16 characters"
command: "E1*X53),X53!PNAM}"
response: "Pnam1*X53),X53!]"
- id: set_input_preset_name
label: Set Input Preset Name
kind: action
params:
- name: preset
type: integer
description: "X53@: Input preset number — 1 to 128"
- name: name
type: string
description: "X53!: Preset name — Up to 16 characters"
command: "E2*X53@,X53!PNAM}"
response: "Pnam2*X53@,X53!]"
- id: delete_input_preset
label: Delete Input Preset
kind: action
params:
- name: preset
type: integer
description: "X53@: Input preset number — 1 to 128"
command: "EX2*X53@PRST}"
response: "PrstX2*X53@]"
- id: recall_layout_preset_without_inputs
label: Recall Layout Preset Without Input Selections
kind: action
params:
- name: preset
type: integer
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding)"
command: "8*X53)."
response: "8RprX53)]"
- id: set_layout_preset_name
label: Set Layout Preset Name
kind: action
params:
- name: preset
type: integer
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding)"
- name: name
type: string
description: "X53!: Preset name — Up to 16 characters"
command: "E7*X53),X53!PNAM}"
response: "Pnam7*X53),X53!]"
- id: reset_layout_preset
label: Reset Layout Preset to Defaults
kind: action
params:
- name: preset
type: integer
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding)"
command: "EX7 *X53)PRST}"
response: "PrstX7*X53)]"
- id: recall_confidence_layout_preset
label: Recall Layout Preset for Confidence
kind: action
params:
- name: preset
type: integer
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding)"
command: "9 * 3* X53)."
response: "9Rpr3 *X53)]"
- id: save_encoder_preset
label: Save Encoder Preset
kind: action
params:
- name: stream
type: integer
description: "X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence"
- name: preset
type: integer
description: "X56#: Encoder Presets — 1 to 32"
command: "4* X50) * X56# ,"
response: "4Spr X50) * X56#]"
- id: set_encoder_preset_name
label: Set Encoder Preset Name
kind: action
params:
- name: preset
type: integer
description: "X56#: Encoder Presets — 1 to 32"
- name: name
type: string
description: "X51$: Input name, up to 16 characters"
command: "E 4* X56# ,X51$ PNAM}"
response: "Pnam4* X56# , X51$]"
- id: reset_encoder_preset
label: Reset Encoder Preset to Default
kind: action
params:
- name: preset
type: integer
description: "X56#: Encoder Presets — 1 to 32"
command: "E X4* X56# PRST}"
response: "PrstX4*X56#]"
- id: save_streaming_preset
label: Save Streaming Preset
kind: action
params:
- name: stream
type: integer
description: "X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence"
- name: preset
type: integer
description: "UNRESOLVED: the command uses X53), defined as User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding), while Streaming preset is defined as X53# — 1 to 16 (two-digit response — 0 padding)."
command: "3* X50) * X53) ,"
response: "3Spr X50) * X53)]"
- id: set_streaming_preset_name
label: Set Streaming Preset Name
kind: action
params:
- name: preset
type: integer
description: "UNRESOLVED: the command uses X53), defined as User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding), while Streaming preset is defined as X53# — 1 to 16 (two-digit response — 0 padding)."
- name: name
type: string
description: "X51$: Input name, up to 16 characters"
command: "E 3* X53) ,X51$ PNAM}"
response: "Pnam3* X53) , X51$]"
- id: delete_streaming_preset
label: Delete or Clear Streaming Preset
kind: action
params:
- name: preset
type: integer
description: "UNRESOLVED: the command uses X53), defined as User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding), while Streaming preset is defined as X53# — 1 to 16 (two-digit response — 0 padding)."
command: "E X3* X53) PRST}"
response: "PrstX3*X53)]"
- id: increment_pixel_phase
label: Increment Pixel Phase
kind: action
command: "E 3 + PHAS}"
response: "Phas03 * X60#]"
- id: decrement_pixel_phase
label: Decrement Pixel Phase
kind: action
command: "E 3 - PHAS}"
response: "Phas03 * X60#]"
- id: increment_total_pixels
label: Increment Total Pixels
kind: action
command: "E 3 + TPIX}"
response: "Tpix 03 * X60%]"
- id: decrement_total_pixels
label: Decrement Total Pixels
kind: action
command: "E 3 - TPIX}"
response: "Tpix 03 * X60%]"
- id: increment_horizontal_start
label: Increment Horizontal Start
kind: action
command: "E 3 + HSRT}"
response: "Hsrt 03 * X60$]"
- id: decrement_horizontal_start
label: Decrement Horizontal Start
kind: action
command: "E 3 - HSRT}"
response: "Hsrt 03 * X60$]"
- id: set_vertical_start
label: Set Vertical Start
kind: action
params:
- name: value
type: integer
description: "X60$: Horizontal and vertical start — 0 to 255 (default = 128)"
command: "E 3 * X60$ VSRT}"
response: "Vsrt 03 * X60$]"
- id: increment_vertical_start
label: Increment Vertical Start
kind: action
command: "E 3 + VSRT}"
response: "Vsrt 03 * X60$]"
- id: decrement_vertical_start
label: Decrement Vertical Start
kind: action
command: "E 3 - VSRT}"
response: "Vsrt 03 * X60$]"
- id: increment_active_pixels
label: Increment Active Pixels
kind: action
command: "E 3 + APIX}"
response: "Apix03 * X60&]"
- id: decrement_active_pixels
label: Decrement Active Pixels
kind: action
command: "E 3 - APIX}"
response: "Apix03 * X60&]"
- id: increment_active_lines
label: Increment Active Lines
kind: action
command: "E 3 + ALIN}"
response: "Alin03 * X60^]"
- id: decrement_active_lines
label: Decrement Active Lines
kind: action
command: "E 3 - ALIN}"
response: "Alin03 * X60^]"
- id: increment_color
label: Increment Color
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E X50@ + COLR}"
response: "Colr X50@*X60*]"
- id: increment_tint
label: Increment Tint
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E X50@ + TINT}"
response: "Tint X50@ *X60*]"
- id: increment_contrast
label: Increment Contrast
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E X50@ + CONT}"
response: "Cont X50@ *X60*]"
- id: increment_brightness
label: Increment Brightness
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E X50@ + BRIT}"
response: "Brit X50@ *X60*]"
- id: increment_horizontal_centering
label: Increment Horizontal Centering
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E 1*X50@ + HCTR}"
response: "Hctr X50@*X60(]"
- id: increment_horizontal_size
label: Increment Horizontal Size
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E 1*X50@ + HSIZ}"
response: "Hsiz X50@*X61@]"
- id: increment_vertical_centering
label: Increment Vertical Centering
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E 1*X50@ + VCTR}"
response: "VctrX50@*X61!]"
- id: increment_vertical_size
label: Increment Vertical Size
kind: action
params:
- name: channel
type: integer
description: "X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5)"
command: "E 1*X50@ + VSIZ}"
response: "Vsiz X50@*X61#]"
- id: enable_secondary_recording
label: Enable Secondary Recording
kind: action
command: "E X1*2RCDR}"
response: "Rcdr X1*2]"
- id: set_archive_chb_recording
label: Set Archive Channel B Recording
kind: action
params:
- name: enabled
type: integer
description: "X(: 0 = Disabled/unassigned/off/unmuted (default), 1 = Enabled/assigned/on/muted"
command: "E X2* X(RCDR}"
response: "Rcdr X2*X(]"
- id: set_recording_thumbnail_size
label: Set Recording Thumbnail Size
kind: action
params:
- name: value
type: integer
description: "UNRESOLVED: the command uses X54%, defined as 1 = Single recording enabled, 2 = Dual recording enabled, while Thumbnail size is defined as X54^: 0 = Normal (default), 1 = Follows archive resolution."
command: "E T X54% RCDR}"
response: "RcdrT X54%]"
- id: enable_single_recording
label: Enable Single Recording in Composite Mode
kind: action
command: "E X1*1RCDR}"
response: "Rcdr X1*1]"
- id: disable_composite_recording
label: Disable Recording in Composite Mode
kind: action
command: "E X1*0 RCDR}"
response: "Rcdr X1*0]"
- id: return_to_root_directory
label: Return to Root Directory
kind: action
command: "E / CJ}"
response: "Dirl/]"
- id: up_one_directory
label: Up One Directory
kind: action
command: "E ../ CJ}"
response: "Dirl path/directory/]"
- id: reset_serial_port
label: Reset Serial Port
kind: action
command: "E1*9600,n,8,1CP}"
response: "Cpn 01•CcpX2%,X2^,X2&,X2*]"
Feedbacks
- id: firmware_version
type: string
query: "Q"
query_command: "Q"
response: "X1!]"
description: "Firmware version to 2 decimal places"
- id: firmware_build_version
type: string
query: "*Q"
query_command: "*Q"
response: "X1!]"
description: "Firmware version plus build number"
- id: model_name
type: string
query: "1I"
query_command: "1I"
description: "Model name (e.g. SMP 351)"
- id: part_number
type: string
query: "N"
query_command: "N"
description: "Part number (e.g. 60-1324-01)"
- id: unit_name
type: string
query: "ECN}"
query_command: "ECN}"
description: "Configured unit name"
- id: verbose_mode
type: integer
query: "ECV}"
query_command: "ECV}"
description: "Current verbose mode (0-3)"
- id: active_alarms
type: string
query: "39I"
query_command: "39I"
description: "Active alarms or 'None active'"
- id: telnet_connections
type: integer
query: "ECC}"
query_command: "ECC}"
description: "Number of active IP connections"
- id: telnet_port
type: integer
query: "E MT}"
query_command: "E MT}"
description: "Current Telnet port assignment"
- id: web_port
type: integer
query: "E MH}"
query_command: "E MH}"
description: "Current web port assignment"
- id: selected_input
type: string
query: "X50@!"
query_command: "X50@!"
description: "Selected input for given channel"
- id: input_selection_channel
type: string
query: "32I"
query_command: "32I"
description: "ChA and ChB input selections"
- id: record_status
type: enum
values: [stopped, recording, paused]
query: "E Y RCDR}"
query_command: "E Y RCDR}"
description: "Current recording status"
- id: record_destination
type: string
query: "E D RCDR}"
query_command: "E D RCDR}"
description: "Current recording destination"
- id: recording_duration
type: string
query: "35I"
query_command: "35I"
description: "Recording elapsed time HH:MM:SS"
- id: record_time_remaining
type: string
query: "36I"
query_command: "36I"
description: "Time remaining for current recording"
- id: video_mute_status
type: boolean
query: "X50@B"
query_command: "X50@B"
description: "Video mute status for given output channel"
- id: audio_mute_status
type: boolean
query: "E M X50^ AU}"
query_command: "E M X50^ AU}"
description: "Audio mute status for given audio channel"
- id: audio_level
type: integer
query: "E G X50^ AU}"
query_command: "E G X50^ AU}"
description: "Audio level in 0.1 dB steps"
- id: front_panel_audio_levels
type: string
query: "34I"
query_command: "34I"
description: "Left*Right audio level indicators"
- id: ip_address
type: string
query: "ECI}"
query_command: "ECI}"
description: "Current IP address"
- id: subnet_mask
type: string
query: "ECS}"
query_command: "ECS}"
description: "Current subnet mask"
- id: gateway_address
type: string
query: "ECG}"
query_command: "ECG}"
description: "Current gateway IP address"
- id: mac_address
type: string
query: "ECH}"
query_command: "ECH}"
description: "Hardware MAC address"
- id: dns_server
type: string
query: "EDI}"
query_command: "EDI}"
description: "Current DNS server IP address"
- id: dhcp_mode
type: boolean
query: "EDH}"
query_command: "EDH}"
description: "DHCP enabled/disabled"
- id: datetime
type: string
query: "ECT}"
query_command: "ECT}"
description: "Current date and time"
- id: serial_port_settings
type: string
query: "E1CP}"
query_command: "E1CP}"
description: "Serial port baud,parity,data bits,stop bits"
- id: executive_mode
type: integer
query: "X5!"
query_command: "X5!"
description: "Executive mode status (0-3)"
- id: session_security_level
type: integer
query: "ECK}"
query_command: "ECK}"
description: "11=User, 12=Administrator"
- id: internal_storage
type: string
query: "55I"
query_command: "55I"
description: "Storage usage: used, total, free, recording time, active"
- id: system_memory_usage
type: string
query: "3I"
query_command: "3I"
description: "Bytes used out of total KBytes"
- id: eth0_link_status
type: string
query: "13I"
query_command: "13I"
description: "Link state, speed (MB), mode (full/half)"
- id: hdcp_status
type: integer
query: "E I X50!HDCP}"
query_command: "E I X50!HDCP}"
description: "0=no sink/source, 1=HDCP detected, 2=detected no HDCP"
- id: encoder_profile
type: integer
query: "E X50) EPRO}"
query_command: "E X50) EPRO}"
description: "Encoder profile (1=Base, 2=Main, 3=High)"
- id: encoding_mode
type: integer
query: "E 1ENCM}"
query_command: "E 1ENCM}"
description: "0=composite, 1=dual channel"
- id: record_resolution
type: integer
query: "E X50)VRES}"
query_command: "E X50)VRES}"
description: "Current record resolution setting"
- id: record_frame_rate
type: integer
query: "E X50)VFRM}"
query_command: "E X50)VFRM}"
description: "Current record frame rate setting"
- id: video_bitrate
type: integer
query: "E V X50)BITR}"
query_command: "E V X50)BITR}"
description: "Current video bit rate"
- id: audio_bitrate
type: integer
query: "E A X50)BITR}"
query_command: "E A X50)BITR}"
description: "Current audio bit rate"
- id: gop_length
type: integer
query: "E X50)GOPL}"
query_command: "E X50)GOPL}"
description: "Current GOP length"
- id: stream_status
type: boolean
query: "E X50)STRC}"
query_command: "E X50)STRC}"
description: "Stream enabled/disabled"
- id: rtmp_push_status
type: boolean
query: "E E X50)RTMP}"
query_command: "E E X50)RTMP}"
description: "RTMP push enabled/disabled"
- id: rtmp_status_primary
type: integer
query: "E S1*X50) RTMP}"
query_command: "E S1*X50) RTMP}"
description: "Primary RTMP connection status"
- id: overscan_mode
type: integer
query: "E X50$OSCN}"
query_command: "E X50$OSCN}"
description: "Current overscan setting"
- id: test_pattern
type: integer
query: "ETEST}"
query_command: "ETEST}"
description: "Current test pattern"
- id: output_refresh_rate
type: integer
query: "E RATE}"
query_command: "E RATE}"
description: "Preview output refresh rate"
- id: hdmi_output_mode
type: integer
query: "E OMOD}"
query_command: "E OMOD}"
description: "HDMI output mode (0=ChA, 1=ChB, 2=Confidence)"
- id: auto_memory
type: boolean
query: "E AMEM}"
query_command: "E AMEM}"
description: "Auto memory enabled/disabled"
- id: input_name
type: string
query: "E X50! NI}"
query_command: "E X50! NI}"
description: "Name assigned to input"
- id: input_aspect_ratio
type: integer
query: "E X50!ASPR}"
query_command: "E X50!ASPR}"
description: "Aspect ratio setting (01=fill, 02=follow, 03=fit)"
- id: brightness
type: integer
query: "E X50@ BRIT}"
query_command: "E X50@ BRIT}"
description: "Brightness value 0-127"
- id: contrast
type: integer
query: "E X50@ CONT}"
query_command: "E X50@ CONT}"
description: "Contrast value 0-127"
- id: color
type: integer
query: "E X50@ COLR}"
query_command: "E X50@ COLR}"
description: "Color value 0-127"
- id: tint
type: integer
query: "E X50@ TINT}"
query_command: "E X50@ TINT}"
description: "Tint value 0-127"
- id: selected_input_status
type: string
query: "42I"
query_command: "42I"
description: "Per-channel input number, name, resolution, frame rate, live status"
- id: recording_info
type: string
query: "1*I"
query_command: "1*I"
description: "Current recording configuration (composite mode)"
- id: record_resolution_framerate
type: string
query: "33I"
query_command: "33I"
description: "Horizontal x Vertical resolution and frame rate"
- id: encoder_preset_name
type: string
query: "E 4* X56# PNAM}"
query_command: "E 4* X56# PNAM}"
description: "Encoder preset name"
- id: streaming_preset_name
type: string
query: "E 3* X53) PNAM}"
query_command: "E 3* X53) PNAM}"
description: "Streaming preset name"
- id: rtmp_url
type: string
query: "E U1*X50)RTMP}"
query_command: "E U1*X50)RTMP}"
description: "Primary RTMP URL"
- id: verbose_version_info
type: string
query: "0Q"
query_command: "0Q"
response: "Sum of 2Q-3Q-4Q]"
description: "Show bootstrap, factory-installed, and updated firmware version."
- id: bootstrap_version
type: string
query: "2Q"
query_command: "2Q"
response: "X1!]"
description: "The bootstrap firmware is not user replaceable, but you may need this information for troubleshooting."
- id: factory_firmware_version
type: string
query: "3Q"
query_command: "3Q"
response: "X1! plus Web ver.-desc-UL date/time]"
description: "Factory installed firmware is not user replaceable. This firmware is the version the SMP reverts to after a mode 1 reset."
- id: updated_firmware_version
type: string
query: "4Q"
query_command: "4Q"
response: "X1! plus Web ver.-desc-UL date/time]"
description: "Use this command to find out which version of firmware has been uploaded into the SMP 300 Series."
- id: model_description
type: string
query: "2I"
query_command: "2I"
description: "Streaming•Media•Processor"
- id: file_transfer_configuration
type: string
query: "38I"
query_command: "38I"
description: "File transfer configuration"
- id: archive_cha_encoder_presets
type: string
query: "43I"
query_command: "43I"
response: "<DefaultPreset#>*<DefaultPresetName>,<SelectedPreset#>*<SelectedPresetName>]"
description: "Archive/ChA encoder presets"
- id: chb_encoder_presets
type: string
query: "44I"
query_command: "44I"
response: "<DefaultPreset#>*<DefaultPresetName>,<SelectedPreset#>*<SelectedPresetName>]"
description: "CHB encoder presets (Dual Channel only)"
- id: confidence_encoder_presets
type: string
query: "45I"
query_command: "45I"
response: "<DefaultPreset#>*<DefaultPresetName>,<SelectedPreset#>*<SelectedPresetName>]"
description: "Confidence encoder presets"
- id: archive_cha_streaming_presets
type: string
query: "46I"
query_command: "46I"
response: "<SelectedPreset#>*<SelectedPresetName>]"
description: "Archive/ChA streaming presets"
- id: chb_streaming_presets
type: string
query: "47I"
query_command: "47I"
response: "<SelectedPreset#>*<SelectedPresetName>]"
description: "ChB streaming presets"
- id: confidence_streaming_presets
type: string
query: "48I"
query_command: "48I"
response: "<SelectedPreset#>*<SelectedPresetName>]"
description: "Confidence streaming presets"
- id: layout_preset_status
type: string
query: "49I"
query_command: "49I"
response: "<DefaultPreset#>*<DefaultPresetName>,<SelectedPreset#>*<SelectedPresetName>]"
description: "Layout preset"
- id: front_usb_storage
type: string
query: "56I"
query_command: "56I"
response: "<name>*<used>*<total>*free>*<recording_time>*<active>,..."
description: "Front USB storage"
- id: rear_usb_storage
type: string
query: "57I"
query_command: "57I"
response: "<name>*<used>*<total>*free>*<recording_time>*<active>,..."
description: "Rear USB storage"
- id: rcp_usb_storage
type: string
query: "58I"
query_command: "58I"
response: "<name>*<used>*<total>*free>*<recording_time>*<active>..."
description: "RCP USB storage"
- id: snmp_port
type: integer
query: "E A PMAP}"
query_command: "E A PMAP}"
response: "[port#]]"
description: "Current SNMP port assignment"
- id: ssh_port
type: integer
query: "E B PMAP}"
query_command: "E B PMAP}"
response: "[port#]]"
description: "Current SSH port assignment"
- id: ssl_port
type: integer
query: "E S PMAP}"
query_command: "E S PMAP}"
response: "[port#]]"
description: "Current SSL port assignment"
- id: snmp_contact
type: string
query: "E CSNMP}"
query_command: "E CSNMP}"
response: "X62!]"
description: "SNMP contact name text, up to 64 characters (default = Not Specified)"
- id: snmp_location
type: string
query: "E LSNMP}"
query_command: "E LSNMP}"
response: "X62@]"
description: "SNMP location, up to 64 characters (default = Not Specified)"
- id: snmp_public_community
type: string
query: "E PSNMP}"
query_command: "E PSNMP}"
response: "X62#]"
description: "SNMP public community string, up to 64 characters (default = public)"
- id: snmp_private_community
type: string
query: "E XSNMP}"
query_command: "E XSNMP}"
response: "X62$]"
description: "SNMP private community string, up to 64 characters (default = private)"
- id: snmp_access
type: string
query: "E ESNMP}"
query_command: "E ESNMP}"
response: "X62)]"
description: "SNMP access view. UNRESOLVED: X62) is not defined in the source."
- id: time_zone
type: string
query: "ETZON}"
query_command: "ETZON}"
response: "X1$*X1%]"
description: "Time zone acronym (2 to 6 letters); Greenwich Mean Time (GMT) offset value: -12:00 to 14:00."
- id: ip_address_subnet_gateway
type: string
query: "E1CISG}"
query_command: "E1CISG}"
response: "IP**/**subnet bits*gateway]"
description: "IP address, subnet mask, gateway"
- id: serial_receive_timeout
type: string
query: "E1CE}"
query_command: "E1CE}"
response: "X1(,X2),X2@,X2!]"
description: "Serial port receive timeout configuration"
- id: current_port_timeout
type: integer
query: "E0 TC}"
query_command: "E0 TC}"
response: "X6(]"
description: "Port timeout in tens of seconds (zero padded. Default: 00030 = 300 seconds)"
- id: global_ip_port_timeout
type: integer
query: "E1 TC}"
query_command: "E1 TC}"
response: "X6(]"
description: "Global IP port timeout in tens of seconds (zero padded. Default: 00030 = 300 seconds)"
- id: administrator_password_status
type: string
query: "E CA}"
query_command: "E CA}"
response: "****]"
description: "If no password is set, the response is ] (no ****)."
- id: user_password_status
type: string
query: "E CU}"
query_command: "E CU}"
response: "****]"
description: "View user password"
- id: current_directory
type: string
query: "ECJ}"
query_command: "ECJ}"
response: "path/directory/]"
description: "Current directory"
- id: audio_only_recording
type: boolean
query: "E A1RCDR}"
query_command: "E A1RCDR}"
response: "X(]"
description: "Audio-only recording status"
- id: rcp_executive_mode
type: boolean
query: "99 * X"
query_command: "99 * X"
response: "X(]"
description: "RCP 101 executive mode status"
- id: folder_share_enabled
type: boolean
query: "E E1SHRF}"
query_command: "E E1SHRF}"
response: "X(]"
description: "SMP recording folder shared on SMD"
- id: folder_share_path
type: string
query: "E P1SHRF}"
query_command: "E P1SHRF}"
response: "< SMP IP>:/var/uf/recordings]"
description: "Recording folder share path"
- id: output_metadata
type: string
query: "EMX53*RCDR}"
query_command: "EMX53*RCDR}"
response: "X53(]"
description: "For composite mode only. X53*: Metadata parameter: 0 = Contributor, 1 = Coverage, 2 = Presenter, 3 = Date (view only), 4 = Description, 5 = Format, 6 = Identifier (view only), 7 = Language, 8 = Publisher, 9 = Relation, 10 = Rights, 11 = Source, 12 = Subject, 13 = Title, 14 = Type, 15 = SystemName, 16 = Course. Metadata value — 127 character maximum."
- id: user_preset_name
type: string
query: "E1*X53)PNAM}"
query_command: "E1*X53)PNAM}"
response: "X53!]"
description: "X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding). Preset name — Up to 16 characters."
- id: user_presets
type: string
query: "52*X50!#"
query_command: "52*X50!#"
response: "X(1 X(2X(3...X(16]"
description: "Query user presets. X50!: Input number 1 to 5."
- id: input_preset_name
type: string
query: "E2*X53@PNAM}"
query_command: "E2*X53@PNAM}"
response: "X53!]"
description: "X53@: Input preset number — 1 to 128. Preset name — Up to 16 characters."
- id: input_presets
type: string
query: "51#"
query_command: "51#"
response: "X(1 X(2X(3...X(128]"
description: "Query input presets"
- id: layout_preset_name
type: string
query: "E7*X53)PNAM}"
query_command: "E7*X53)PNAM}"
response: "X53!]"
description: "For composite mode only. X53): User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding). Preset name — Up to 16 characters."
- id: stream_name
type: string
query: "EN X50) STRC}"
query_command: "EN X50) STRC}"
response: "X50%]"
description: "Stream name. Verbose mode 2/3. X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence."
- id: pixel_phase
type: integer
query: "E 3 PHAS}"
query_command: "E 3 PHAS}"
response: "X60#]"
description: "Input 3 only. Pixel phase adjustment — 0 to 63 (default = 32)"
- id: total_pixels
type: integer
query: "E 3 TPIX}"
query_command: "E 3 TPIX}"
response: "X60%]"
description: "Input 3 only. Total pixels — Up to +512 of the default value for the detected rate"
- id: horizontal_start
type: integer
query: "E 3 HSRT}"
query_command: "E 3 HSRT}"
response: "X60$]"
description: "Input 3 only. Horizontal and vertical start — 0 to 255 (default = 128)"
- id: vertical_start
type: integer
query: "E 3 VSRT}"
query_command: "E 3 VSRT}"
response: "X60$]"
description: "Input 3 only. Horizontal and vertical start — 0 to 255 (default = 128)"
- id: active_pixels
type: integer
query: "E 3 APIX}"
query_command: "E 3 APIX}"
response: "X60&]"
description: "Input 3 only. Active pixels — Up to +512 of the default value for the detected resolution"
- id: active_lines
type: integer
query: "E 3 ALIN}"
query_command: "E 3 ALIN}"
response: "X60^]"
description: "Input 3 only. Active lines — Up to +256 of the default value for the detected resolution"
- id: horizontal_centering
type: integer
query: "E 1*X50@ HCTR}"
query_command: "E 1*X50@ HCTR}"
response: "X60(]"
description: "For Composite mode only. X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5). Horizontal centering — Varies based on archive resolution. Horizontal centering and horizontal size values are adjusted in multiples of 8."
- id: horizontal_size
type: integer
query: "E 1*X50@ HSIZ}"
query_command: "E 1*X50@ HSIZ}"
response: "X61@]"
description: "For Composite mode only. X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5). Horizontal size — 120 to 4096. Horizontal centering and horizontal size values are adjusted in multiples of 8."
- id: vertical_centering
type: integer
query: "E 1*X50@ VCTR}"
query_command: "E 1*X50@ VCTR}"
response: "X61!]"
description: "For Composite mode only. X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5). Vertical centering — Varies based on archive resolution. Vertical centering and vertical size values are adjusted in multiples of 2."
- id: vertical_size
type: integer
query: "E 1*X50@ VSIZ}"
query_command: "E 1*X50@ VSIZ}"
response: "X61#]"
description: "For Composite mode only. X50@: Output channel: 1 = A (input 1 and 2), 2 = B (input 3, 4, and 5). Vertical size — 64 to 4096. Vertical centering and vertical size values are adjusted in multiples of 2."
- id: rtmp_url_backup
type: string
query: "E U2*X50)RTMP}"
query_command: "E U2*X50)RTMP}"
response: "X56^]"
description: "Backup RTMP URL. X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence."
- id: rtmp_status_backup
type: integer
query: "E S2*X50) RTMP}"
query_command: "E S2*X50) RTMP}"
response: "X*]"
description: "Backup RTMP Status. Schedule is refreshed. X*: Status: 0 = Offline, 1 = Live. X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence."
- id: archive_cha_recording_status
type: integer
query: "E X1RCDR}"
query_command: "E X1RCDR}"
description: "Composite mode: X58@, Recording mode: 0 = Channel A disabled, 1 = Single Recording in Composite mode, 2 = Internal + Secondary Recording in Composite mode. Dual Channel mode: X(, 0 = Disabled/unassigned/off/unmuted (default), 1 = Enabled/assigned/on/muted."
- id: archive_chb_recording_status
type: boolean
query: "E X2RCDR}"
query_command: "E X2RCDR}"
response: "X(]"
description: "Dual Channel mode. Archive channel B recording status."
- id: output_mode
type: integer
query: "E1 SMOD}"
query_command: "E1 SMOD}"
response: "X4!]"
description: "Output mode: 1 = Video and audio, 2 = Video only"
- id: hdmi_video_blanking_status
type: boolean
query: "99B"
query_command: "99B"
response: "X(]"
description: "HDMI video mute status"
- id: hdmi_audio_mute_status
type: boolean
query: "99Z"
query_command: "99Z"
response: "X(]"
description: "HDMI audio mute status"
- id: bitrate_control_type
type: integer
query: "E X50)BRCT}"
query_command: "E X50)BRCT}"
response: "X4@]"
description: "Bit rate control type: 0 = VBR, 1 = CVBR, 2 = CBR. X50): Stream selection: 1 = Archive Channel A, 2 = Archive Channel B (Available for Dual Mode only), 3 = Confidence."
- id: recording_thumbnail_size
type: integer
query: "E T RCDR}"
query_command: "E T RCDR}"
response: "X54%]"
description: "UNRESOLVED: the response uses X54%, defined as 1 = Single recording enabled, 2 = Dual recording enabled, while Thumbnail size is defined as X54^: 0 = Normal (default), 1 = Follows archive resolution."
- id: hdcp_authorization
type: boolean
query: "E E X50!HDCP}"
query_command: "E E X50!HDCP}"
response: "X(]"
description: "HDMI Inputs only. X50!: Input number 1 to 5. Input HDCP authorization."
- id: hdcp_notification
type: integer
query: "ENHDCP}"
query_command: "ENHDCP}"
response: "X51@]"
description: "HDCP notification: 0 = Off (mute output to black), 1 = On (green HDCP notification-screen) (default)"
- id: background_image_filename
type: string
query: "ERF}"
query_command: "ERF}"
description: "For composite mode only. Background filename."
- id: audio_input_format
type: integer
query: "E I X!AFMT}"
query_command: "E I X!AFMT}"
response: "X3)]"
description: "X!: Inputs 1 to 4 (1 to 5 for SDI models). Audio format: 0 = Disable audio, 1 = Analog (default of input 3), 2 = PLCM 2 CH (default)."
- id: audio_delay
type: integer
query: "E 1 ADLY}"
query_command: "E 1 ADLY}"
response: "X56$]"
description: "Audio delay — 0 to 999 ms"
- id: edid_assignment
type: integer
query: "E A X50!EDID}"
query_command: "E A X50!EDID}"
response: "X6*]"
description: "X50!: Input number 1 to 5. X6*: EDID resolution (see Table 1. EDID Values)."
- id: auto_image_status
type: boolean
query: "X50!*A X(]"
query_command: "X50!*A X(]"
description: "View Auto-Image. X50!: Input number 1 to 5. X(: 0 = Disabled/unassigned/off/unmuted (default), 1 = Enabled/assigned/on/muted. UNRESOLVED: the source places X(] in the command cell and does not clearly separate the query from its response; the documented token is retained verbatim."
- id: input_3_format
type: integer
query: '3\ X50$]'
query_command: '3\ X50$]'
response: "X50$]"
description: "View input 3 format. X50$: Input video format: 1 = YUVp/HDTV (default), 2 = YUVi, 3 = Composite, 4 = 3G-SDI, 5 = HD-SDI, 6 = SDI, 7 = Auto-SDI (Input 5 default). UNRESOLVED: the source includes X50$] in the command cell as well as the response cell; the documented token is retained verbatim."
Variables
- id: audio_level_db
type: integer
min: -180
max: 240
step: 1
unit: "0.1 dB"
description: "Audio level per channel (-18.0 to +24.0 dB)"
- id: brightness_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Brightness adjustment"
- id: contrast_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Contrast adjustment"
- id: color_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Color adjustment (NTSC/PAL only)"
- id: tint_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Tint adjustment (NTSC only)"
- id: video_bitrate
type: integer
min: 200
max: 10000
step: 1
description: "Video bit rate in kbps"
- id: audio_bitrate
type: integer
enum: [80, 96, 128, 192, 256, 320]
description: "Audio bit rate"
- id: gop_length
type: integer
min: 1
max: 30
step: 1
description: "Group of pictures length"
- id: audio_delay_ms
type: integer
min: 0
max: 999
step: 1
unit: ms
description: "Audio delay in milliseconds"
- id: telnet_port
type: integer
description: "Telnet port number"
- id: connection_timeout
type: integer
description: "Port timeout in tens of seconds (default 300 = 30 seconds)"
Events
- id: copyright_message
description: "Sent on connection (Telnet) or power-on (RS-232). Includes product name, firmware version, part number, date/time (Telnet only)."
format: "© Copyright 2014-2017, Extron Electronics, SMP {model}, V{n.nn}, {part-number} Day, DD MMM YYYY HH:MM:SS"
- id: password_prompt
description: "Sent when device is password-protected, after copyright message."
format: "Password:"
- id: login_response
description: "Response after correct password entry."
format: "Login Administrator | Login User"
- id: error_response
description: "Returned when command cannot be executed."
format: "E10 (unrecognized command) | E12 (invalid port) | E13 (invalid parameter) | E17 (invalid command for signal type) | E18 (timeout) | E22 (busy) | E24 (privilege violation) | E26 (max connections exceeded)"
Macros
# UNRESOLVED: no multi-step macro sequences explicitly documented in source
Safety
confirmation_required_for:
- factory_reset
- full_reset_delete_recordings
- absolute_reset
- delete_recording
interlocks: []
# UNRESOLVED: power-on sequencing requirements not documented; recording
# operations (start/stop) have no explicit safety interlocks documented.
Notes
- SIS commands are not case sensitive.
- Each response ends with CR/LF (carriage return/line feed), represented as
]in command tables. - SSH connections may add an extra carriage return in the final terminator (e.g.,
X1!]]instead ofX1!]). - Default Ethernet connection timeout is 5 minutes; Extron recommends issuing the Query (
Q) command periodically to keep connections alive. - Telnet connections in verbose mode 1 or 3 report changes from other sockets and front panel operations.
- Duplicate port assignments are not permitted (returns E13 error). Remapped ports must be 1024+ unless resetting to default.
- Port numbers 0 disables the service (Telnet, web, etc.).
- SNMP community strings are referred to as passwords in the web UI.
- Horizontal centering/size values adjusted in multiples of 8. Vertical centering/size in multiples of 2.
- SMP 351 part numbers: 60-1324-01 (standard), 60-1324-02 (3G-SDI), 60-1324-11 (400GB SSD), 60-1324-12 (3G-SDI + 400GB SSD).
- SMP 352 part numbers: 60-1634-11 (standard), 60-1634-12 (3G-SDI).
- Default IP: 192.168.254.254, subnet 255.255.0.0, gateway 0.0.0.0, DHCP off.
Provenance
source_domains:
- aca.im
- extron.com
- manualslib.com
source_urls:
- https://aca.im/driver_docs/Extron/extron_smp300_Series.pdf
- https://www.extron.com/download/files/userman/smp_300_series_68-2238-01_R.pdf
- https://www.manualslib.com/manual/2867393/Extron-Electronics-Smp-300-Series.html
- https://www.extron.com/download/
retrieved_at: 2026-05-13T02:01:02.032Z
last_checked_at: 2026-10-07T17:31:20.245Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T17:31:20.245Z
matched_actions: 302
action_count: 302
confidence: medium
summary: "All 302 action units match source SIS commands literally, and transport values are supported. Omitted source rows are only set/reset/decrement variants of represented commands. (15 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "USB config port protocol details beyond SIS over USB serial not fully specified"
- "permitted range.\""
- "the command uses X53), defined as User/Encoder/Layout Preset number — 1 to 32 (two-digit response — 0 padding), while Streaming preset is defined as X53# — 1 to 16 (two-digit response — 0 padding).\""
- "the command uses X54%, defined as 1 = Single recording enabled, 2 = Dual recording enabled, while Thumbnail size is defined as X54^: 0 = Normal (default), 1 = Follows archive resolution.\""
- "X62) is not defined in the source.\""
- "the response uses X54%, defined as 1 = Single recording enabled, 2 = Dual recording enabled, while Thumbnail size is defined as X54^: 0 = Normal (default), 1 = Follows archive resolution.\""
- "the source places X(] in the command cell and does not clearly separate the query from its response; the documented token is retained verbatim.\""
- "the source includes X50$] in the command cell as well as the response cell; the documented token is retained verbatim.\""
- "no multi-step macro sequences explicitly documented in source"
- "power-on sequencing requirements not documented; recording"
- "firmware version compatibility ranges not stated"
- "maximum concurrent Telnet connection count not explicitly stated (E26 error exists)"
- "USB config port protocol specifics beyond SIS serial emulation"
- "SSL/SSH certificate management not documented in source excerpt"
- "precise command syntax for audio output routing command incomplete in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0