Summary
VISCA-over-IP PTZ camera control for the Crestron 1 Beyond IV-CAMPTZ-12 family (white and silver, N and non-N variants). Control plane: TCP port 5500 carrying VISCA command/response packets. Serial VISCA supported at 9600 bps on the RS-232/485 port. No authentication required.
Transport
protocols:
- tcp
- serial
addressing:
port: 5500 # VISCA over IP, per source "default port for IP control (VISCA over IP) is 5500 (TCP)"
serial:
baud_rate: 9600 # source: "baud rate is 9600 bps for VISCA protocol"
# UNRESOLVED: data_bits not stated in source
# UNRESOLVED: parity not stated in source
# UNRESOLVED: stop_bits not stated in source
# UNRESOLVED: flow_control not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
powerable # inferred: CAM_Power On/Off commands
routable # inferred: preset memory recall (CAM_Memory Recall)
queryable # inferred: extensive inquiry command set
levelable # inferred: zoom (CAM_Zoom) and exposure compensation (CAM_ExpComp) level controls
Actions
# Address byte "8x" template: substitute x with camera address 1-7 (set via OSD SYSTEM > ADDRESS).
# "y" in response packets = socket number (1 or 2).
# VISCA pan speed VV: 0x01 (low) - 0x18 (high). Tilt speed WW: 0x01 (low) - 0x14 (high).
# Freeze commands hardcode address byte 0x81 (camera address 1).
- id: address_set_broadcast
label: Address Set (Broadcast)
kind: action
command: "88 30 01 FF"
- id: if_clear_broadcast
label: Interface Clear (Broadcast)
kind: action
command: "88 01 00 01 FF"
- id: command_cancel
label: Command Cancel
kind: action
command: "8{address} 2{socket} FF" # socket: 1 or 2
params:
- name: address
type: integer
description: Camera address 1-7
- name: socket
type: integer
description: Socket number (1 or 2)
- id: power_on
label: Camera Power On
kind: action
command: "8{address} 01 04 00 02 FF"
params:
- name: address
type: integer
description: Camera address 1-7
- id: power_off
label: Camera Power Off
kind: action
command: "8{address} 01 04 00 03 FF"
params:
- name: address
type: integer
description: Camera address 1-7
- id: zoom_stop
label: Zoom Stop
kind: action
command: "8{address} 01 04 07 00 FF"
params:
- name: address
type: integer
description: Camera address 1-7
- id: zoom_tele_standard
label: Zoom Tele (Standard Speed)
kind: action
command: "8{address} 01 04 07 02 FF"
- id: zoom_wide_standard
label: Zoom Wide (Standard Speed)
kind: action
command: "8{address} 01 04 07 03 FF"
- id: zoom_tele_variable
label: Zoom Tele (Variable Speed)
kind: action
command: "8{address} 01 04 07 2{speed} FF" # speed: 0 (low) - 7 (high)
- id: zoom_wide_variable
label: Zoom Wide (Variable Speed)
kind: action
command: "8{address} 01 04 07 3{speed} FF" # speed: 0 (low) - 7 (high)
- id: zoom_direct
label: Zoom Direct Position
kind: action
command: "8{address} 01 04 47 0{p1} 0{p2} 0{p3} 0{p4} FF" # 4-byte zoom position
params:
- name: position
type: integer
description: 4-byte zoom position (see Zoom Ratio table in source)
- id: focus_stop
label: Focus Stop
kind: action
command: "8{address} 01 04 08 00 FF"
- id: focus_far_standard
label: Focus Far (Standard Speed)
kind: action
command: "8{address} 01 04 08 02 FF"
- id: focus_near_standard
label: Focus Near (Standard Speed)
kind: action
command: "8{address} 01 04 08 03 FF"
- id: focus_far_variable
label: Focus Far (Variable Speed)
kind: action
command: "8{address} 01 04 08 2{speed} FF" # speed: 0 (low) - 7 (high)
- id: focus_near_variable
label: Focus Near (Variable Speed)
kind: action
command: "8{address} 01 04 08 3{speed} FF" # speed: 0 (low) - 7 (high)
- id: focus_direct
label: Focus Direct Position
kind: action
command: "8{address} 01 04 48 0{p1} 0{p2} 0{p3} 0{p4} FF" # 4-byte focus position
- id: focus_auto
label: Auto Focus On
kind: action
command: "8{address} 01 04 38 02 FF"
- id: focus_manual
label: Manual Focus On
kind: action
command: "8{address} 01 04 38 03 FF"
- id: focus_toggle_auto_manual
label: Auto/Manual Focus Toggle
kind: action
command: "8{address} 01 04 38 10 FF"
- id: focus_one_push_trigger
label: One Push AF Trigger
kind: action
command: "8{address} 01 04 18 01 FF"
- id: zoom_focus_direct
label: Zoom + Focus Direct
kind: action
command: "8{address} 01 04 47 0{z1} 0{z2} 0{z3} 0{z4} 0{f1} 0{f2} 0{f3} 0{f4} FF"
- id: wb_auto
label: White Balance Auto
kind: action
command: "8{address} 01 04 35 00 FF"
- id: wb_indoor
label: White Balance Indoor
kind: action
command: "8{address} 01 04 35 01 FF"
- id: wb_outdoor
label: White Balance Outdoor
kind: action
command: "8{address} 01 04 35 02 FF"
- id: wb_one_push_mode
label: White Balance One Push Mode
kind: action
command: "8{address} 01 04 35 03 FF"
- id: wb_manual
label: White Balance Manual
kind: action
command: "8{address} 01 04 35 05 FF"
- id: wb_one_push_trigger
label: White Balance One Push Trigger
kind: action
command: "8{address} 01 04 10 05 FF"
- id: rgain_reset
label: R Gain Reset
kind: action
command: "8{address} 01 04 03 00 FF"
- id: rgain_up
label: R Gain Up
kind: action
command: "8{address} 01 04 03 02 FF"
- id: rgain_down
label: R Gain Down
kind: action
command: "8{address} 01 04 03 03 FF"
- id: rgain_direct
label: R Gain Direct
kind: action
command: "8{address} 01 04 43 00 00 0{p1} 0{p2} FF"
- id: bgain_reset
label: B Gain Reset
kind: action
command: "8{address} 01 04 04 00 FF"
- id: bgain_up
label: B Gain Up
kind: action
command: "8{address} 01 04 04 02 FF"
- id: bgain_down
label: B Gain Down
kind: action
command: "8{address} 01 04 04 03 FF"
- id: bgain_direct
label: B Gain Direct
kind: action
command: "8{address} 01 04 44 00 00 0{p1} 0{p2} FF"
- id: ae_full_auto
label: AE Full Auto
kind: action
command: "8{address} 01 04 39 00 FF"
- id: ae_manual
label: AE Manual
kind: action
command: "8{address} 01 04 39 03 FF"
- id: ae_shutter_priority
label: AE Shutter Priority
kind: action
command: "8{address} 01 04 39 0A FF"
- id: ae_iris_priority
label: AE Iris Priority
kind: action
command: "8{address} 01 04 39 0B FF"
- id: ae_bright
label: AE Bright Mode
kind: action
command: "8{address} 01 04 39 0D FF"
- id: shutter_reset
label: Shutter Reset
kind: action
command: "8{address} 01 04 0A 00 FF"
- id: shutter_up
label: Shutter Up
kind: action
command: "8{address} 01 04 0A 02 FF"
- id: shutter_down
label: Shutter Down
kind: action
command: "8{address} 01 04 0A 03 FF"
- id: shutter_direct
label: Shutter Direct
kind: action
command: "8{address} 01 04 4A 00 00 0{p1} 0{p2} FF"
- id: iris_reset
label: Iris Reset
kind: action
command: "8{address} 01 04 0B 00 FF"
- id: iris_up
label: Iris Up
kind: action
command: "8{address} 01 04 0B 02 FF"
- id: iris_down
label: Iris Down
kind: action
command: "8{address} 01 04 0B 03 FF"
- id: iris_direct
label: Iris Direct
kind: action
command: "8{address} 01 04 4B 00 00 0{p1} 0{p2} FF"
- id: gain_reset
label: Gain Reset
kind: action
command: "8{address} 01 04 0C 00 FF"
- id: gain_up
label: Gain Up
kind: action
command: "8{address} 01 04 0C 02 FF"
- id: gain_down
label: Gain Down
kind: action
command: "8{address} 01 04 0C 03 FF"
- id: gain_direct
label: Gain Direct
kind: action
command: "8{address} 01 04 4C 00 00 0{p1} 0{p2} FF"
- id: bright_reset
label: Bright Reset
kind: action
command: "8{address} 01 04 0D 00 FF"
- id: bright_up
label: Bright Up
kind: action
command: "8{address} 01 04 0D 02 FF"
- id: bright_down
label: Bright Down
kind: action
command: "8{address} 01 04 0D 03 FF"
- id: bright_direct
label: Bright Direct
kind: action
command: "8{address} 01 04 4D 00 00 0{p1} 0{p2} FF"
- id: exp_comp_on
label: Exposure Compensation On
kind: action
command: "8{address} 01 04 3E 02 FF"
- id: exp_comp_off
label: Exposure Compensation Off
kind: action
command: "8{address} 01 04 3E 03 FF"
- id: exp_comp_reset
label: Exposure Compensation Reset
kind: action
command: "8{address} 01 04 0E 00 FF"
- id: exp_comp_up
label: Exposure Compensation Up
kind: action
command: "8{address} 01 04 0E 02 FF"
- id: exp_comp_down
label: Exposure Compensation Down
kind: action
command: "8{address} 01 04 0E 03 FF"
- id: exp_comp_direct
label: Exposure Compensation Direct
kind: action
command: "8{address} 01 04 4E 00 00 0{p1} 0{p2} FF"
- id: backlight_on
label: Backlight Compensation On
kind: action
command: "8{address} 01 04 33 02 FF"
- id: backlight_off
label: Backlight Compensation Off
kind: action
command: "8{address} 01 04 33 03 FF"
- id: aperture_reset
label: Aperture Reset
kind: action
command: "8{address} 01 04 02 00 FF"
- id: aperture_up
label: Aperture Up
kind: action
command: "8{address} 01 04 02 02 FF"
- id: aperture_down
label: Aperture Down
kind: action
command: "8{address} 01 04 02 03 FF"
- id: aperture_direct
label: Aperture Direct
kind: action
command: "8{address} 01 04 42 00 00 0{p1} 0{p2} FF"
- id: picture_effect_off
label: Picture Effect Off
kind: action
command: "8{address} 01 04 63 00 FF"
- id: picture_effect_neg_art
label: Picture Effect Neg.Art
kind: action
command: "8{address} 01 04 63 02 FF"
- id: picture_effect_bw
label: Picture Effect B&W
kind: action
command: "8{address} 01 04 63 04 FF"
- id: memory_reset
label: Preset Memory Reset
kind: action
command: "8{address} 01 04 3F 00 {memory} FF" # memory 0-255
params:
- name: memory
type: integer
description: Memory number 0-255
- id: memory_set
label: Preset Memory Set (Save)
kind: action
command: "8{address} 01 04 3F 01 {memory} FF" # memory 0-255
- id: memory_recall
label: Preset Memory Recall
kind: action
command: "8{address} 01 04 3F 02 {memory} FF" # memory 0-255. Reserved: 93,95,96,99,100-108.
- id: freeze_on
label: Freeze On (Immediate, address 1)
kind: action
command: "81 01 04 62 02 FF" # hardcoded camera address 1
- id: freeze_off
label: Freeze Off (Immediate, address 1)
kind: action
command: "81 01 04 62 03 FF"
- id: freeze_preset_on
label: Freeze On When Running Preset (address 1)
kind: action
command: "81 01 04 62 22 FF"
- id: freeze_preset_off
label: Freeze Off When Running Preset (address 1)
kind: action
command: "81 01 04 62 23 FF"
- id: sys_menu_off
label: System Menu Off
kind: action
command: "8{address} 01 06 06 03 FF"
- id: cam_id_write
label: Camera ID Write
kind: action
command: "8{address} 01 04 22 0{p1} 0{p2} 0{p3} 0{p4} FF" # camera ID 0000-FFFF
- id: ir_receive_on
label: IR Receiver On
kind: action
command: "8{address} 01 06 08 02 FF"
- id: ir_receive_off
label: IR Receiver Off
kind: action
command: "8{address} 01 06 08 03 FF"
- id: info_display_on
label: Information Display On
kind: action
command: "8{address} 01 7E 01 18 02 FF"
- id: info_display_off
label: Information Display Off
kind: action
command: "8{address} 01 7E 01 18 03 FF"
- id: pantilt_up
label: Pan-Tilt Up
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 03 01 FF" # pan 0x01-0x18, tilt 0x01-0x14
- id: pantilt_down
label: Pan-Tilt Down
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 03 02 FF"
- id: pantilt_left
label: Pan-Tilt Left
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 01 03 FF"
- id: pantilt_right
label: Pan-Tilt Right
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 02 03 FF"
- id: pantilt_up_left
label: Pan-Tilt UpLeft
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 01 01 FF"
- id: pantilt_up_right
label: Pan-Tilt UpRight
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 02 01 FF"
- id: pantilt_down_left
label: Pan-Tilt DownLeft
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 01 02 FF"
- id: pantilt_down_right
label: Pan-Tilt DownRight
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 02 02 FF"
- id: pantilt_stop
label: Pan-Tilt Stop
kind: action
command: "8{address} 01 06 01 {pan_speed} {tilt_speed} 03 03 FF"
- id: pantilt_absolute_position
label: Pan-Tilt Absolute Position
kind: action
command: "8{address} 01 06 02 {pan_speed} {tilt_speed} 0{y1} 0{y2} 0{y3} 0{y4} 0{z1} 0{z2} 0{z3} 0{z4} FF"
- id: pantilt_relative_position
label: Pan-Tilt Relative Position
kind: action
command: "8{address} 01 06 03 {pan_speed} {tilt_speed} 0{y1} 0{y2} 0{y3} 0{y4} 0{z1} 0{z2} 0{z3} 0{z4} FF"
- id: pantilt_home
label: Pan-Tilt Home
kind: action
command: "8{address} 01 06 04 FF"
- id: pantilt_reset
label: Pan-Tilt Reset
kind: action
command: "8{address} 01 06 05 FF"
- id: pantilt_limit_set
label: Pan-Tilt Limit Set
kind: action
command: "8{address} 01 06 07 00 0{corner} 0{y1} 0{y2} 0{y3} 0{y4} 0{z1} 0{z2} 0{z3} 0{z4} FF" # corner: 1=UpRight, 0=DownLeft
# --- Inquiry commands (kind: query) ---
- id: power_status_query
label: Power Status Inquiry
kind: query
command: "8{address} 09 04 00 FF"
- id: zoom_position_query
label: Zoom Position Inquiry
kind: query
command: "8{address} 09 04 47 FF"
- id: focus_mode_query
label: Focus Mode Inquiry
kind: query
command: "8{address} 09 04 38 FF"
- id: focus_position_query
label: Focus Position Inquiry
kind: query
command: "8{address} 09 04 48 FF"
- id: wb_mode_query
label: White Balance Mode Inquiry
kind: query
command: "8{address} 09 04 35 FF"
- id: rgain_query
label: R Gain Inquiry
kind: query
command: "8{address} 09 04 43 FF"
- id: bgain_query
label: B Gain Inquiry
kind: query
command: "8{address} 09 04 44 FF"
- id: ae_mode_query
label: AE Mode Inquiry
kind: query
command: "8{address} 09 04 39 FF"
- id: shutter_position_query
label: Shutter Position Inquiry
kind: query
command: "8{address} 09 04 4A FF"
- id: iris_position_query
label: Iris Position Inquiry
kind: query
command: "8{address} 09 04 4B FF"
- id: gain_position_query
label: Gain Position Inquiry
kind: query
command: "8{address} 09 04 4C FF"
- id: bright_position_query
label: Bright Position Inquiry
kind: query
command: "8{address} 09 04 4D FF"
- id: exp_comp_mode_query
label: Exposure Compensation Mode Inquiry
kind: query
command: "8{address} 09 04 3E FF"
- id: exp_comp_position_query
label: Exposure Compensation Position Inquiry
kind: query
command: "8{address} 09 04 4E FF"
- id: backlight_mode_query
label: Backlight Mode Inquiry
kind: query
command: "8{address} 09 04 33 FF"
- id: aperture_query
label: Aperture Inquiry
kind: query
command: "8{address} 09 04 42 FF"
- id: picture_effect_mode_query
label: Picture Effect Mode Inquiry
kind: query
command: "8{address} 09 04 63 FF"
- id: memory_query
label: Memory Last Operated Inquiry
kind: query
command: "8{address} 09 04 3F FF"
- id: sys_menu_mode_query
label: System Menu Mode Inquiry
kind: query
command: "8{address} 09 06 06 FF"
- id: cam_id_query
label: Camera ID Inquiry
kind: query
command: "8{address} 09 04 22 FF"
- id: version_query
label: Camera Version Inquiry
kind: query
command: "8{address} 09 00 02 FF"
- id: info_display_query
label: Information Display Inquiry
kind: query
command: "8{address} 09 7E 01 18 FF"
- id: video_system_query
label: Video System Inquiry
kind: query
command: "8{address} 09 06 23 FF"
- id: ir_receive_query
label: IR Receive Inquiry
kind: query
command: "8{address} 09 06 08 FF"
- id: pantilt_max_speed_query
label: Pan-Tilt Max Speed Inquiry
kind: query
command: "8{address} 09 06 11 FF"
- id: pantilt_position_query
label: Pan-Tilt Position Inquiry
kind: query
command: "8{address} 09 06 12 FF"
- id: pantilt_mode_query
label: Pan-Tilt Mode Inquiry
kind: query
command: "8{address} 09 06 10 FF"
Feedbacks
- id: power_state
type: enum
values: [on, off, internal_power_circuit_error]
description: Response to CAM_PowerInq. Maps to y0 50 02 FF (on), y0 50 03 FF (off/standby), y0 50 04 FF (internal power circuit error).
- id: zoom_position
type: integer
description: 4-byte zoom position from CAM_ZoomPosInq. Source provides 1x-20x optical reference table.
- id: focus_mode
type: enum
values: [auto, manual]
description: y0 50 02 FF = Auto, y0 50 03 FF = Manual.
- id: focus_position
type: integer
description: 4-byte focus position from CAM_FocusPosInq.
- id: wb_mode
type: enum
values: [auto, indoor, outdoor, one_push_wb, manual]
description: y0 50 00/01/02/03/05 FF.
- id: rgain
type: integer
description: 2-byte R gain from CAM_RGainInq.
- id: bgain
type: integer
description: 2-byte B gain from CAM_BGainInq.
- id: ae_mode
type: enum
values: [full_auto, manual, shutter_priority, iris_priority, bright]
description: y0 50 00/03/0A/0B/0D FF.
- id: shutter_position
type: integer
description: 2-byte shutter position from CAM_ShutterPosInq.
- id: iris_position
type: integer
description: 2-byte iris position from CAM_IrisPosInq.
- id: gain_position
type: integer
description: 2-byte gain position from CAM_GainPosInq.
- id: bright_position
type: integer
description: 2-byte bright position from CAM_BrightPosInq.
- id: exp_comp_mode
type: enum
values: [on, off]
description: y0 50 02 FF = On. (Off response not enumerated in source; mark source incomplete here.)
- id: exp_comp_position
type: integer
description: 2-byte exp comp position. Source table maps 0E..00 to +7..-7 (note: source has a duplicate row at "02/-6" - likely typo for 01/-6).
- id: backlight_mode
type: enum
values: [on]
description: y0 50 02 FF = On. (Off response not enumerated in source.)
- id: aperture_gain
type: integer
description: 2-byte aperture gain from CAM_ApertureInq.
- id: picture_effect_mode
type: enum
values: [off, neg_art, bw]
description: y0 50 00/02/04 FF.
- id: memory_last_operated
type: integer
description: Single-byte memory number from CAM_MemoryInq.
- id: sys_menu_mode
type: enum
values: [on]
description: y0 50 02 FF = On.
- id: camera_id
type: string
description: 4-hex-digit camera ID (0000-FFFF).
- id: camera_version
type: object
description: |
From CAM_VersionInq response y0 50 00 01 mn pq rs tu vw FF:
m,n,p,q: Model Code (0504 in source)
r,s,t,u: ROM version
v,w: Socket number (02)
- id: info_display_state
type: enum
values: [on]
description: y0 50 02 FF = On.
- id: video_system
type: enum
values:
- 1920x1080i60
- 1920x1080p30
- 1280x720p60
- 1280x720p30
- 1920x1080p60
- 1920x1080i50
- 1920x1080p25
- 1280x720p50
- 1280x720p25
- 1920x1080p50
description: Maps y0 50 00..0F FF per VideoSystemInq.
- id: ir_receive_state
type: enum
values: [on]
description: y0 50 02 FF = On.
- id: pantilt_max_speed
type: object
description: ww = Pan Max Speed, zz = Tilt Max Speed (1 byte each).
- id: pantilt_position
type: object
description: wwww (4-byte pan position) + zzzz (4-byte tilt position).
- id: pantilt_mode
type: string
description: p,q,r,s bytes from y0 50 pq rs FF (Pan/Tilt Status bits; field meanings not stated in source).
- id: ack
type: bytes
description: "z0 4{socket} FF - command accepted. z = device address + 8."
- id: completion
type: bytes
description: "z0 5{socket} FF - command executed. z = device address + 8."
- id: error_syntax
type: bytes
description: "z0 60 02 FF - syntax error or illegal parameters."
- id: error_buffer_full
type: bytes
description: "z0 60 03 FF - both sockets busy, command rejected."
- id: error_command_canceled
type: bytes
description: "z0 6{socket} 04 FF - command canceled in specified socket."
- id: error_no_socket
type: bytes
description: "z0 6{socket} 05 FF - no command in specified socket, or invalid socket."
- id: error_command_not_executable
type: bytes
description: "z0 6{socket} 41 FF - command not executable in current state (e.g. focus manual commands during auto focus)."
Variables
- id: pan_speed
type: integer
range: [0x01, 0x18]
description: Pan speed for pan-tilt drive commands. Low to high.
- id: tilt_speed
type: integer
range: [0x01, 0x14]
description: Tilt speed for pan-tilt drive commands. Low to high.
- id: zoom_speed
type: integer
range: [0, 7]
description: Variable zoom speed (0 = low, 7 = high).
- id: focus_speed
type: integer
range: [0, 7]
description: Variable focus speed (0 = low, 7 = high).
- id: memory_number
type: integer
range: [0, 255]
description: Preset memory slot. Source marks 93, 95, 96, 99, 100-108 as reserved (non-overwritable proprietary functions).
- id: camera_address
type: integer
range: [1, 7]
description: VISCA camera address (set via OSD SYSTEM > ADDRESS). Becomes "8x" address byte. Broadcast uses 0x88.
- id: ir_address
type: integer
range: [1, 4]
description: IR remote address (OSD SYSTEM > IR ADDRESS). Not part of VISCA command encoding per source.
Macros
# Reserved preset numbers invoke proprietary functions. Each is a memory_recall with the listed number.
- id: preset_cruise
label: Cruise through presets 0-29 (10s intervals)
steps:
- action: memory_recall
params: { memory: 93 }
- id: preset_open_osd
label: Open OSD Menu
steps:
- action: memory_recall
params: { memory: 95 }
- id: preset_clear_all_user_presets
label: Clear All User Presets
steps:
- action: memory_recall
params: { memory: 96 }
- id: preset_reboot
label: Reboot Camera
steps:
- action: memory_recall
params: { memory: 99 }
# Video format presets - each is a memory_recall with the listed number.
- id: preset_video_1080p50
label: Video Format 1920x1080p50
steps:
- action: memory_recall
params: { memory: 100 }
- id: preset_video_1080p25
label: Video Format 1920x1080p25
steps:
- action: memory_recall
params: { memory: 101 }
- id: preset_video_1080i50
label: Video Format 1920x1080i50
steps:
- action: memory_recall
params: { memory: 102 }
- id: preset_video_720p50
label: Video Format 1280x720p50
steps:
- action: memory_recall
params: { memory: 103 }
- id: preset_video_1080p60
label: Video Format 1920x1080p60
steps:
- action: memory_recall
params: { memory: 105 }
- id: preset_video_1080p30
label: Video Format 1920x1080p30
steps:
- action: memory_recall
params: { memory: 106 }
- id: preset_video_1080i60
label: Video Format 1920x1080i60
steps:
- action: memory_recall
params: { memory: 107 }
- id: preset_video_720p60
label: Video Format 1280x720p60
steps:
- action: memory_recall
params: { memory: 108 }
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing requirements
# stated in source beyond the "Privacy" section describing a tilt-backwards posture for
# inactive cameras (no specific command provided in source - must be done via standard
# pantilt commands or OSD menu).
Notes
- Default IP 192.168.18.77, subnet 255.255.255.0 (from OSD system settings section). Not part of the AI4AV Transport.addressing block because that block carries port/auth, not device IP.
- VISCA over IP uses TCP port 5500. Serial VISCA at 9600 baud. Both available; VISCA command set is identical on both transports.
- Serial data_bits / parity / stop_bits / flow_control not specified in source — leave as UNRESOLVED.
- OSD protocol options: VISCA, PELCO-D, PELCO-P. This spec covers VISCA only; PELCO command sets are not in source.
- OSD baud rate range: 2400-34800 (label appears to be a typo in source — "34800" should likely be "38400" or similar; not corrected).
- OSD RS485 port: HALF-DUPLEX, 1/2 — duplex setting, not control commands.
- Camera model "1 Beyond" (Crestron 1 Beyond PTZ Series) covers four SKU variants: -N-W-1B, -N-SLVR-1B, -W-1B, -SLVR-1B. All share the VISCA command set documented here.
- RTSP port 554 or 5000 (default). Video transport only — not modeled in control spec.
- The "Privacy" section in source describes tilting camera backwards when not in use, but does not list a specific command. Implementers should use standard pantilt commands.
- Source exposure-comp table has a duplicate row (02 / -6 listed twice; one should be 01 / -6). Flagged for review.
Provenance
source_domains:
- crestron.com
source_urls:
- https://www.crestron.com/getmedia/677f2d1d-8f17-44eb-b5e9-9db167b4eaa6/mg_pm_1-beyond-ptz
retrieved_at: 2026-04-30T04:31:09.936Z
last_checked_at: 2026-06-02T21:41:19.023Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:41:19.023Z
matched_actions: 126
action_count: 126
confidence: medium
summary: "All 126 spec actions matched to source opcodes; transport parameters (port 5500, baud 9600) verified; source fully represented. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "RTSP/video system details (ports 554/5000) are video transport only, not control — not modeled here."
- "data_bits not stated in source"
- "parity not stated in source"
- "stop_bits not stated in source"
- "flow_control not stated in source"
- "no safety warnings, interlock procedures, or power-on sequencing requirements"
- "firmware version compatibility not stated in source."
- "serial data_bits, parity, stop_bits, flow_control not stated in source."
- "RTSP authentication not stated in source (video stream, out of scope)."
- "ceiling-mount mode disables tracking — does not affect VISCA control."
- "pan-tilt status bit field (p,q,r,s) meanings not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0