Summary
The Vaddio EasyIP Mixer is an AV-over-IP host device that mixes audio/video from EasyIP cameras, HDMI, Dante, USB, and line I/O for unified conferencing. This spec covers the Vaddio serial command API accessible via Telnet (TCP port 23) and via direct RS-232 serial connection. Camera PTZ, video routing/PIP, audio mute/volume/route/crosspoint-gain, trigger, standby, and maintenance commands are documented.
Transport
protocols:
- tcp
- serial
addressing:
port: 23 # stated: "Telnet port 23 is used"
serial:
baud_rate: 38400
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: password # source: "you must log in using the admin account"; credential format not stated
Traits
traits:
- powerable # inferred: system standby on/off/toggle + camera standby
- queryable # inferred: numerous get/status queries
- routable # inferred: audio route, video source set
- levelable # inferred: audio volume, audio crosspoint-gain
Actions
# Camera input range for EasyIP Mixer: 2 to 5 (input 1 = HDMI). Unless noted,
# commands take form `camera <input> <sub>` when sent to the Mixer host.
actions:
- id: camera_home
label: Camera Home
kind: action
command: "camera {input} home"
params:
- name: input
type: integer
description: "Camera input (EasyIP Mixer: 2 to 5)"
- id: camera_pan_left
label: Camera Pan Left
kind: action
command: "camera {input} pan left [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional pan speed, 1 to 24 (default 12)"
- id: camera_pan_right
label: Camera Pan Right
kind: action
command: "camera {input} pan right [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional pan speed, 1 to 24 (default 12)"
- id: camera_pan_stop
label: Camera Pan Stop
kind: action
command: "camera {input} pan stop"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_pan_set
label: Camera Pan Set
kind: action
command: "camera {input} pan set {position} [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: position
type: float
description: "Absolute pan degrees (EasyIP 20: -150 to 150)"
- name: speed
type: integer
description: "Optional pan speed, 1 to 24"
- id: camera_tilt_up
label: Camera Tilt Up
kind: action
command: "camera {input} tilt up [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional tilt speed, 1 to 20 (default 10)"
- id: camera_tilt_down
label: Camera Tilt Down
kind: action
command: "camera {input} tilt down [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional tilt speed, 1 to 20 (default 10)"
- id: camera_tilt_stop
label: Camera Tilt Stop
kind: action
command: "camera {input} tilt stop"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_tilt_set
label: Camera Tilt Set
kind: action
command: "camera {input} tilt set {position} [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: position
type: float
description: "Absolute tilt degrees (EasyIP 20: -30 to 90)"
- name: speed
type: integer
description: "Optional tilt speed, 1 to 20"
- id: camera_zoom_in
label: Camera Zoom In
kind: action
command: "camera {input} zoom in [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional zoom speed, 1 to 7"
- id: camera_zoom_out
label: Camera Zoom Out
kind: action
command: "camera {input} zoom out [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional zoom speed, 1 to 7"
- id: camera_zoom_stop
label: Camera Zoom Stop
kind: action
command: "camera {input} zoom stop"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_zoom_set
label: Camera Zoom Set
kind: action
command: "camera {input} zoom set {position}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: position
type: float
description: "Zoom level (EasyIP 20: 1.00 to 20.00)"
- id: camera_focus_near
label: Camera Focus Near
kind: action
command: "camera {input} focus near [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional focus speed, 1 to 8"
- id: camera_focus_far
label: Camera Focus Far
kind: action
command: "camera {input} focus far [{speed}]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: speed
type: integer
description: "Optional focus speed, 1 to 8"
- id: camera_focus_stop
label: Camera Focus Stop
kind: action
command: "camera {input} focus stop"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_focus_mode_set
label: Camera Focus Mode Set
kind: action
command: "camera {input} focus mode {auto|manual}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_preset_recall
label: Camera Preset Recall
kind: action
command: "camera {input} preset recall {slot} [save-ccu]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: slot
type: integer
description: "Preset number, 1 to 16"
- id: camera_preset_store
label: Camera Preset Store
kind: action
command: "camera {input} preset store {slot} [save-ccu]"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: slot
type: integer
description: "Preset number, 1 to 16"
- id: camera_ccu_get
label: Camera CCU Get
kind: query
command: "camera {input} ccu get {param}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: param
type: enum
description: "auto_white_balance|red_gain|blue_gain|backlight_compensation|auto_iris|iris|gain|detail|chroma|gamma|wide_dynamic_range|all"
- id: camera_ccu_set
label: Camera CCU Set
kind: action
command: "camera {input} ccu set {param} {value}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: param
type: enum
description: "auto_iris|auto_white_balance|backlight_compensation|blue_gain|chroma|detail|gain|gamma|iris|red_gain|wide_dynamic_range"
- id: camera_ccu_scene_recall_factory
label: Camera CCU Scene Recall Factory
kind: action
command: "camera {input} ccu scene recall factory {slot}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: slot
type: integer
description: "Factory scene, 1 to 6"
- id: camera_ccu_scene_recall_custom
label: Camera CCU Scene Recall Custom
kind: action
command: "camera {input} ccu scene recall custom {slot}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: slot
type: integer
description: "Custom scene, 1 to 3"
- id: camera_ccu_scene_store_custom
label: Camera CCU Scene Store Custom
kind: action
command: "camera {input} ccu scene store custom {slot}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: slot
type: integer
description: "Custom scene, 1 to 3"
- id: camera_standby_off
label: Camera Standby Off
kind: action
command: "camera {input} standby off"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_standby_on
label: Camera Standby On
kind: action
command: "camera {input} standby on"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_standby_toggle
label: Camera Standby Toggle
kind: action
command: "camera {input} standby toggle"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_standby_get
label: Camera Standby Get
kind: query
command: "camera {input} standby get"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: video_mute_off
label: Video Mute Off
kind: action
command: "video mute off"
params: []
- id: video_mute_on
label: Video Mute On
kind: action
command: "video mute on"
params: []
- id: video_mute_toggle
label: Video Mute Toggle
kind: action
command: "video mute toggle"
params: []
- id: video_mute_get
label: Video Mute Get
kind: query
command: "video mute get"
params: []
- id: video_pip_on
label: Video PIP On
kind: action
command: "video pip on"
params: []
- id: video_pip_off
label: Video PIP Off
kind: action
command: "video pip off"
params: []
- id: video_pip_toggle
label: Video PIP Toggle
kind: action
command: "video pip toggle"
params: []
- id: video_pip_get
label: Video PIP Get
kind: query
command: "video pip get"
params: []
- id: video_pip_layout_set
label: Video PIP Layout Set
kind: action
command: "video pip layout {layout}"
params:
- name: layout
type: enum
description: "upper_right|lower_right|lower_left|upper_left|top_bottom|left_right"
- id: video_pip_layout_get
label: Video PIP Layout Get
kind: query
command: "video pip layout get"
params: []
- id: video_source_set
label: Video Source Set
kind: action
command: "video source set input{input}"
params:
- name: input
type: integer
description: "Video input (EasyIP Mixer: 1 HDMI to 5)"
- id: video_source_get
label: Video Source Get
kind: query
command: "video source get"
params: []
- id: audio_mute_on
label: Audio Mute On
kind: action
command: "audio {channel} mute on"
params:
- name: channel
type: enum
description: "master|line_in_1|line_in_2|usb3_playback_left|usb3_playback_right|hdmi_in_left|hdmi_in_right|dante_in_1|dante_in_2|dante_in_3|dante_in_4|line_out_1|line_out_2|usb3_record_left|usb3_record_right|hdmi_out_left|hdmi_out_right|dante_out_1|dante_out_2|dante_out_3|dante_out_4"
- id: audio_mute_off
label: Audio Mute Off
kind: action
command: "audio {channel} mute off"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_mute_toggle
label: Audio Mute Toggle
kind: action
command: "audio {channel} mute toggle"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_mute_get
label: Audio Mute Get
kind: query
command: "audio {channel} mute get"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_volume_up
label: Audio Volume Up
kind: action
command: "audio {channel} volume up"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_volume_down
label: Audio Volume Down
kind: action
command: "audio {channel} volume down"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_volume_set
label: Audio Volume Set
kind: action
command: "audio {channel} volume set {level}"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- name: level
type: float
description: "Volume in dB (range not explicitly stated in source)"
- id: audio_volume_get
label: Audio Volume Get
kind: query
command: "audio {channel} volume get"
params:
- name: channel
type: enum
description: "see audio_mute_on"
- id: audio_route_set
label: Audio Route Set
kind: action
command: "audio {channel} route set {inputs}"
params:
- name: channel
type: enum
description: "Output channel (line_out_1/2, usb3_record_left/right, hdmi_out_left/right, dante_out_1-4)"
- name: inputs
type: string
description: "Input list to route to the output (format not fully specified in source)"
- id: audio_route_get
label: Audio Route Get
kind: query
command: "audio {channel} route get"
params:
- name: channel
type: enum
description: "Output channel"
- id: audio_crosspoint_gain_set
label: Audio Crosspoint Gain Set
kind: action
command: "audio {output} crosspoint-gain {input} set {level}"
params:
- name: output
type: enum
description: "Output channel"
- name: input
type: enum
description: "Input channel"
- name: level
type: float
description: "Crosspoint gain, -12.00 dB to 12.00 dB"
- id: audio_crosspoint_gain_get
label: Audio Crosspoint Gain Get
kind: query
command: "audio {output} crosspoint-gain {input} get"
params:
- name: output
type: enum
description: "Output channel"
- name: input
type: enum
description: "Input channel"
- id: camera_authenticate
label: Camera Authenticate
kind: action
command: "camera {input} authenticate {password}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: password
type: string
description: "Camera admin password"
- id: camera_comm_host_get
label: Camera Comm Host Get
kind: query
command: "camera {input} comm host get"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: camera_comm_host_set
label: Camera Comm Host Set
kind: action
command: "camera {input} comm host set {host}"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- name: host
type: string
description: "IP address of input device"
- id: camera_comm_host_unset
label: Camera Comm Host Unset
kind: action
command: "camera {input} comm host unset"
params:
- name: input
type: integer
description: "Camera input (2 to 5)"
- id: streaming_settings_get
label: Streaming Settings Get
kind: query
command: "streaming settings get"
params: []
- id: network_settings_get
label: Network Settings Get
kind: query
command: "network settings get"
params: []
- id: trigger_on
label: Trigger On
kind: action
command: "trigger {index} on"
params:
- name: index
type: integer
description: "Trigger index, 1 to 50"
- id: trigger_off
label: Trigger Off
kind: action
command: "trigger {index} off"
params:
- name: index
type: integer
description: "Trigger index, 1 to 50"
- id: system_standby_on
label: System Standby On
kind: action
command: "system standby on"
params: []
- id: system_standby_off
label: System Standby Off
kind: action
command: "system standby off"
params: []
- id: system_standby_toggle
label: System Standby Toggle
kind: action
command: "system standby toggle"
params: []
- id: system_standby_get
label: System Standby Get
kind: query
command: "system standby get"
params: []
- id: network_ping
label: Network Ping
kind: action
command: "network ping [count {count}] [size {size}] {host}"
params:
- name: count
type: integer
description: "Optional packet count (default 5)"
- name: size
type: integer
description: "Optional packet size bytes (default 56)"
- name: host
type: string
description: "Hostname or IP"
- id: system_reboot
label: System Reboot
kind: action
command: "system reboot [{seconds}]"
params:
- name: seconds
type: integer
description: "Optional reboot delay seconds"
- id: system_factory_reset_on
label: System Factory-Reset Arm On
kind: action
command: "system factory-reset on"
params: []
- id: system_factory_reset_off
label: System Factory-Reset Arm Off
kind: action
command: "system factory-reset off"
params: []
- id: system_factory_reset_get
label: System Factory-Reset Status Get
kind: query
command: "system factory-reset get"
params: []
- id: version
label: Version
kind: query
command: "version"
params: []
- id: history
label: History
kind: query
command: "history [{limit}]"
params:
- name: limit
type: integer
description: "Optional max commands to return"
- id: help
label: Help
kind: query
command: "help"
params: []
- id: exit
label: Exit Session
kind: action
command: "exit"
params: []
Feedbacks
# Query responses observed in source examples (each value carries OK terminator).
feedbacks:
- id: camera_pan_position
type: float
values: [] # returned by `camera {input} pan get`; degrees, float
- id: camera_tilt_position
type: float
values: []
- id: camera_zoom_position
type: float
values: []
- id: camera_focus_mode
type: enum
values: [auto, manual]
- id: camera_standby_state
type: enum
values: [on, off]
- id: camera_comm_host
type: string
values: [] # "<ip> (connected|disconnected)"
- id: video_mute_state
type: enum
values: [on, off]
- id: video_pip_state
type: enum
values: [on, off]
- id: video_pip_layout
type: enum
values: [upper_right, lower_right, lower_left, upper_left, top_bottom, left_right]
- id: video_source
type: string
values: [] # e.g. "input2"
- id: audio_mute_state
type: enum
values: [on, off]
- id: audio_volume
type: float
values: [] # dB
- id: audio_route
type: string
values: []
- id: audio_crosspoint_gain
type: float
values: []
- id: streaming_settings
type: object
values: []
- id: network_settings
type: object
values: []
- id: system_standby_state
type: enum
values: [on, off]
- id: factory_reset_status
type: object
values: []
- id: version_info
type: object
values: []
Variables
# Settable CCU parameters per camera (input 2-5). Ranges from source.
variables:
- name: auto_white_balance
type: enum
range: [on, off]
- name: red_gain
type: integer
range: "0-255"
- name: blue_gain
type: integer
range: "0-255"
- name: backlight_compensation
type: enum
range: [on, off]
- name: auto_iris
type: enum
range: [on, off]
- name: iris
type: integer
range: "0-11"
- name: gain
type: integer
range: "1-11"
- name: detail
type: integer
range: "0-15"
- name: chroma
type: integer
range: "0-14"
- name: gamma
type: integer
range: "-16..64"
- name: wide_dynamic_range
type: enum
range: [on, off]
Events
# No unsolicited device-to-host notifications described in source.
events: []
Macros
# Source states API supports writing macros, but no specific multi-step
# sequences are documented in this excerpt.
macros: []
Safety
confirmation_required_for:
- system_reboot
- system_factory_reset_on
interlocks:
- "auto_iris on disables manual iris and gain"
- "auto_white_balance on overrides red_gain and blue_gain manual settings"
- "backlight_compensation only usable when wide_dynamic_range is off"
- "wide_dynamic_range only usable when backlight_compensation is off"
- "gain only usable when auto_iris is off"
- "red_gain/blue_gain only usable when auto_white_balance is off"
- "camera pan/tilt set commands block subsequent commands until motion completes"
# Source warning: connecting wrong cable to RS-232 port can damage equipment
# and void warranty. Pin 6 = GND, Pin 7 = TXD, Pin 8 = RXD on Mixer.
Notes
- Telnet access disabled by default; must be enabled on web Security page. HTTP access and Telnet access both default off; device discovery defaults on.
- Login required using admin account; credential format not specified in source.
>is the command prompt. CTRL-5 clears the serial buffer.?lists commands/subcommands/params.- EasyIP Mixer camera inputs are 2 to 5 (HDMI input is input 1). Routing nomenclature: input1..input5 for
video source. - Camera-direct commands not reachable via Mixer host:
camera ptz-position,camera led,camera icr(documented CAMERA ONLY). Excluded from this Mixer spec. - VISCA hex command tables (CAM_Zoom, CAM_Focus, Pan-TiltDrive, CAM_Memory, CAM_WB, CAM_AE, CAM_Power, etc.) apply to EasyIP 20 cameras via direct RS-232 and are out of scope for the Mixer host. The Mixer host API maps to these via Telnet/serial command names listed above.
- Source documents firmware updates may add parameters not reflected in manuals.
Spec done. Mixer-scope. 60 actions enumerated, all Mixer-valid commands. VISCA hex + camera-only/Decoder-only/EasyIP-10-only excluded with UNRESOLVED notes. Transport TCP 23 + RS-232 38400 8N1, auth=password (admin login required but credential format UNRESOLVED).
## Provenance
```yaml
source_domains:
- res.cloudinary.com
- files.avprosupply.com
- manua.ls
- manuals.ca
source_urls:
- https://res.cloudinary.com/avd/image/upload/v134258868/Resources/Vaddio/Cameras/Operation/411-0041-35_Rev_D_EasyIP_System_Complete_Manual.pdf
- https://files.avprosupply.com/files/attachments/473597/vaddio-999-60210-000-manual.pdf
- https://res.cloudinary.com/avd/image/upload/v134231220/Resources/Vaddio/Cameras/Operation/411-0041-35_Rev_D_EasyIP_System_Complete_Manual.pdf
- https://www.manua.ls/vaddio/easyip-10/manual
- https://www.manuals.ca/vaddio/easyip-10/manual
retrieved_at: 2026-06-18T10:11:20.380Z
last_checked_at: 2026-06-19T07:55:48.679Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-19T07:55:48.679Z
matched_actions: 73
action_count: 73
confidence: medium
summary: "All 73 actions matched exactly; transport parameters verified; full command coverage. (8 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "VISCA RS-232 command tables in source apply to EasyIP 20 cameras only, not the Mixer host; excluded from this spec."
- "EasyIP 10-only (camera recalibrate) and EasyIP Decoder-only (video type) commands excluded."
- "Telnet access is disabled by default and must be enabled via web Security page."
- "admin password value/format not documented in source."
- "admin password / auth credential format not stated in source"
- "firmware version compatibility not stated in source"
- "audio volume set range not explicitly bounded in source"
- "audio route set <inputs> token format not fully specified"
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0