Summary

The IoCore2 is a multi-protocol control gateway with 8 GPI inputs, 8 GPO relay outputs, RS-232, DMX512, Art-Net, sACN, TCP, UDP, and OSC. Control is achieved through task programming via Show Control page; the API (OSC/UDP/TCP) exposes internal functions. No authentication required for any protocol.

Transport

protocols:
  - serial
  - tcp
  - udp
  - osc
addressing:
  port: 7000  # TCP/UDP default (Section 9.10: "By default both ports are set to 7000")
  # UNRESOLVED: OSC listening port (Section 9.9 references a 'Port' field but states no default value)
serial:
  baud_rate: null  # UNRESOLVED: baud rate not stated in source (Section 9.3 confirms settings exist but gives no values)
  data_bits: null  # UNRESOLVED: not stated in source
  parity: null  # UNRESOLVED: not stated in source
  stop_bits: null  # UNRESOLVED: not stated in source (Section 9.3 mentions stopbits exist)
  flow_control: null  # UNRESOLVED: not stated in source
auth:
  type: none  # inferred: no auth/login procedure in source

Traits

- powerable  # UNRESOLVED: power on/off not documented, blink task present
- routable  # UNRESOLVED: DMX/Art-Net/sACN routing commands present
- queryable  # inferred: /core/hello echo, GPI feedback, variable read
- levelable  # UNRESOLVED: DMX channel control present

Actions

# Action Tasks (Appendix B.1)
- id: action_link_set
  label: Action Link Set
  kind: action
  params:
    - name: action
      type: string
      description: Action to trigger via Link feature

# GPO Tasks (Appendix B.5)
- id: gpo_set
  label: GPO Set Value
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
    - name: value
      type: string
      description: On or Off
- id: gpo_toggle
  label: GPO Toggle
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
- id: gpo_control
  label: GPO Control
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
- id: gpo_pulse
  label: GPO Pulse
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
- id: gpo_solo
  label: GPO Solo Set
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
- id: gpo_solo_control
  label: GPO Solo Control
  kind: action
  params:
    - name: port
      type: integer
      description: Port number [1,8]
- id: gpo_random_solo
  label: GPO Random Solo
  kind: action
  params: []
- id: gpo_clear_all
  label: GPO Clear All
  kind: action
  params: []

# GPI Tasks (Appendix B.4)
- id: gpi_refresh
  label: GPI Refresh
  kind: action
  params: []
  notes: Force the GPI actions to be triggered

# DMX Tasks (Appendix B.3)
- id: dmx_universe_control_htp
  label: DMX Universe HTP Control
  kind: action
  params:
    - name: universe
      type: integer
      description: Universe number
- id: dmx_universe_control_ltp
  label: DMX Universe LTP Control
  kind: action
  params:
    - name: universe
      type: integer
      description: Universe number
- id: dmx_universe_control_priority
  label: DMX Universe Control Priority
  kind: action
  params:
    - name: universe
      type: integer
      description: Universe number
- id: dmx_universe_clear
  label: DMX Universe Clear
  kind: action
  params:
    - name: universe
      type: integer
      description: Universe number
- id: dmx_channel_set
  label: DMX Channel Set
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
    - name: value
      type: integer
      description: DMX value
- id: dmx_channel_toggle
  label: DMX Channel Toggle
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_channel_control
  label: DMX Channel Control
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_channel_inverted_control
  label: DMX Channel Inverted Control
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_channel_decrement
  label: DMX Channel Decrement
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_channel_increment
  label: DMX Channel Increment
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_bump_set
  label: DMX Bump Set
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
    - name: value
      type: integer
      description: DMX value
- id: dmx_bump_control
  label: DMX Bump Control
  kind: action
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
- id: dmx_rgb_set
  label: DMX RGB Set
  kind: action
  params:
    - name: address
      type: integer
      description: DMX address
    - name: colour
      type: string
      description: RGB colour value
- id: dmx_rgb_control
  label: DMX RGB Control
  kind: action
  params:
    - name: address
      type: integer
      description: DMX address
- id: dmx_rgba_control
  label: DMX RGBA Control
  kind: action
  params:
    - name: address
      type: integer
      description: DMX address
- id: dmx_xy_control
  label: DMX XY Control
  kind: action
  params:
    - name: address
      type: integer
      description: DMX address
- id: dmx_xxyy_control
  label: DMX XxYy Control
  kind: action
  params:
    - name: address
      type: integer
      description: DMX address
- id: dmx_clear_all
  label: DMX Clear All
  kind: action
  params: []

# Timer Tasks (Appendix B.10)
- id: timer_start
  label: Timer Start
  kind: action
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: timer_stop
  label: Timer Stop
  kind: action
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: timer_restart
  label: Timer Restart
  kind: action
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: timer_set
  label: Timer Set
  kind: action
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
    - name: time
      type: string
      description: Time string

# Variable Tasks (Appendix B.12)
- id: variable_set
  label: Variable Set Value
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: value
      type: integer
      description: Value [0,255]
- id: variable_toggle
  label: Variable Toggle
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: value
      type: integer
      description: Value [0,255]
- id: variable_control
  label: Variable Control
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_inverted_control
  label: Variable Inverted Control
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_decrement
  label: Variable Decrement
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_increment
  label: Variable Increment
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_continuous_decrement
  label: Variable Continuous Decrement
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: delta
      type: integer
      description: Delta [1,255]
- id: variable_continuous_increment
  label: Variable Continuous Increment
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: delta
      type: integer
      description: Delta [1,255]
- id: variable_stop_continuous
  label: Variable Stop Continuous
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_control_scaled
  label: Variable Control Scaled
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: percentage
      type: integer
      description: Percentage [0%,100%]
- id: variable_control_offset
  label: Variable Control Offset
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: offset
      type: integer
      description: Offset [0,255]
- id: variable_refresh
  label: Variable Refresh
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: variable_single_dimmer
  label: Variable Single Dimmer
  kind: action
  params:
    - name: variable
      type: integer
      description: Variable number
    - name: delta
      type: integer
      description: Delta

# OSC Send Tasks (Appendix B.6)
- id: osc_send_float_set
  label: OSC Send Float Set
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI (max 25 chars, leading '/' required)
    - name: value
      type: number
      description: Floating point number
- id: osc_send_float_control
  label: OSC Send Float Control
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI (max 25 chars, leading '/' required)
- id: osc_send_unsigned_set
  label: OSC Send Unsigned Set
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
    - name: value
      type: integer
      description: Positive number
- id: osc_send_unsigned_control
  label: OSC Send Unsigned Control
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
- id: osc_send_bool_set
  label: OSC Send Bool Set
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
    - name: value
      type: boolean
      description: True or false
- id: osc_send_bool_control
  label: OSC Send Bool Control
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
- id: osc_send_string_set
  label: OSC Send String Set
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
    - name: value
      type: string
      description: String of characters
- id: osc_send_string_control
  label: OSC Send String Control
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
- id: osc_send_colour_set
  label: OSC Send Colour Set
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI
    - name: colour
      type: string
      description: RGB colour
- id: osc_send_colour_control
  label: OSC Send Colour Control
  kind: action
  params:
    - name: uri
      type: string
      description: OSC URI

# RS-232 Send Tasks (Appendix B.8)
- id: rs232_send_float_set
  label: RS-232 Send Float Set
  kind: action
  params:
    - name: value
      type: number
      description: Floating point number
- id: rs232_send_float_control
  label: RS-232 Send Float Control
  kind: action
  params: []
- id: rs232_send_unsigned_set
  label: RS-232 Send Unsigned Set
  kind: action
  params:
    - name: value
      type: integer
      description: Positive number
- id: rs232_send_unsigned_control
  label: RS-232 Send Unsigned Control
  kind: action
  params: []
- id: rs232_send_bool_set
  label: RS-232 Send Bool Set
  kind: action
  params:
    - name: value
      type: string
      description: On or Off
- id: rs232_send_bool_control
  label: RS-232 Send Bool Control
  kind: action
  params: []
- id: rs232_send_string
  label: RS-232 Send String
  kind: action
  params:
    - name: value
      type: string
      description: Text string (max 25 chars)
- id: rs232_send_string_control
  label: RS-232 Send String Control
  kind: action
  params: []
- id: rs232_send_hex
  label: RS-232 Send Hex
  kind: action
  params:
    - name: value
      type: string
      description: Hex string
- id: rs232_send_hex_control
  label: RS-232 Send Hex Control
  kind: action
  params:
    - name: value
      type: string
      description: Hex string
- id: rs232_send_bytes
  label: RS-232 Send Bytes
  kind: action
  params:
    - name: value
      type: string
      description: Hex string (e.g. '56697375616C0A' = 'Visual'+LF). No default termination; add manually if required.
- id: rs232_send_bytes_control
  label: RS-232 Send Bytes Control
  kind: action
  params: []

# UDP Send Tasks (Appendix B.11)
- id: udp_send_float_set
  label: UDP Send Float Set
  kind: action
  params:
    - name: value
      type: number
      description: Floating point number
    - name: ip_port
      type: string
      description: IP address and port (e.g., "192.168.1.11:7000")
- id: udp_send_float_control
  label: UDP Send Float Control
  kind: action
  params:
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_unsigned_set
  label: UDP Send Unsigned Set
  kind: action
  params:
    - name: value
      type: integer
      description: Positive number
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_unsigned_control
  label: UDP Send Unsigned Control
  kind: action
  params:
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_bool_set
  label: UDP Send Bool Set
  kind: action
  params:
    - name: value
      type: boolean
      description: True or false
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_bool_control
  label: UDP Send Bool Control
  kind: action
  params:
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_string
  label: UDP Send String
  kind: action
  params:
    - name: value
      type: string
      description: Text string (max 25 chars)
    - name: ip_port
      type: string
      description: IP address and port (e.g., "192.168.1.11:7000")
- id: udp_send_string_control
  label: UDP Send String Control
  kind: action
  params:
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_hex_set
  label: UDP Send Hex Set
  kind: action
  params:
    - name: value
      type: string
      description: Hex string
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_send_hex
  label: UDP Send Hex Control
  kind: action
  params:
    - name: value
      type: string
      description: Hex string
    - name: ip_port
      type: string
      description: IP address and port
- id: udp_wake_on_lan
  label: UDP Wake On Lan
  kind: action
  params:
    - name: mac_address
      type: string
      description: MAC address of NIC
    - name: ip_port
      type: string
      description: IP address and port (recommended 255.255.255.255:7)

# System Tasks (Appendix B.9)
- id: system_blink
  label: System Blink Set
  kind: action
  params:
    - name: value
      type: string
      description: On or Off
- id: system_blink_toggle
  label: System Blink Toggle
  kind: action
  params: []
- id: system_blink_control
  label: System Blink Control
  kind: action
  params: []

# Actionlist Tasks (Appendix B.2)
- id: actionlist_enable
  label: Actionlist Enable
  kind: action
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]
    - name: value
      type: boolean
      description: On or Off
- id: actionlist_toggle
  label: Actionlist Toggle
  kind: action
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]
- id: actionlist_control
  label: Actionlist Control
  kind: action
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]
- id: actionlist_inverted_control
  label: Actionlist Inverted Control
  kind: action
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]

# Randomizer Tasks (Appendix B.7)
- id: randomizer_refresh
  label: Randomizer Refresh
  kind: action
  params:
    - name: min_value
      type: integer
    - name: max_value
      type: integer

# API Actions (Appendix D) - OSC paths and UDP/TCP command strings from source verbatim
- id: api_gpo_set
  label: API GPO Set
  kind: action
  command: "/core/gpo/{port}"  # OSC; UDP/TCP: core-gpo-{port}=<0/1>
  params:
    - name: port
      type: integer
      description: GPO port [1,6]
    - name: value
      type: integer
      description: 0 (off) or 1 (on)
- id: api_actionlist_execute
  label: API Actionlist Execute
  kind: action
  command: "/core/al/{list}/{action}/execute"  # OSC; UDP/TCP: core-al-{list}-{action}-execute=<arg>
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]
    - name: action
      type: integer
      description: Action number [1,48]
- id: api_actionlist_enable
  label: API Actionlist Enable
  kind: action
  command: "/core/al/{list}/enable"  # OSC; UDP/TCP: core-al-{list}-enable=<bool>
  params:
    - name: actionlist
      type: integer
      description: Action list number [1,8]
    - name: value
      type: boolean
      description: Enable/disable
- id: api_dmx_set
  label: API DMX Set
  kind: action
  command: "/core/dmx/{channel}"  # OSC; UDP/TCP: core-dmx-{channel}=<integer>
  params:
    - name: channel
      type: integer
      description: DMX channel [1,512]
    - name: value
      type: integer
      description: DMX value
- id: api_timer_start
  label: API Timer Start
  kind: action
  command: "/core/tm/{timer}/start"  # OSC; UDP/TCP: core-tm-{timer}-start
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: api_timer_stop
  label: API Timer Stop
  kind: action
  command: "/core/tm/{timer}/stop"  # OSC; UDP/TCP: core-tm-{timer}-stop
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: api_timer_restart
  label: API Timer Restart
  kind: action
  command: "/core/tm/{timer}/restart"  # OSC; UDP/TCP: core-tm-{timer}-restart
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: api_timer_pause
  label: API Timer Pause
  kind: action
  command: "/core/tm/{timer}/pause"  # OSC; UDP/TCP: core-tm-{timer}-pause
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
- id: api_timer_set
  label: API Timer Set
  kind: action
  command: "/core/tm/{timer}/set"  # OSC; UDP/TCP: core-tm-{timer}-set=<text>
  params:
    - name: timer
      type: integer
      description: Timer number [1,4]
    - name: time
      type: string
      description: Time string
- id: api_variable_set
  label: API Variable Set
  kind: action
  command: "/core/va/{variable}/set"  # OSC; UDP/TCP: core-va-{variable}-set=<integer>
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
    - name: value
      type: integer
      description: Value [0,255]
- id: api_variable_refresh
  label: API Variable Refresh
  kind: action
  command: "/core/va/{variable}/refresh"  # OSC; UDP/TCP: core-va-{variable}-refresh
  params:
    - name: variable
      type: integer
      description: Variable number [1,8]
- id: api_variable_refresh_all
  label: API Variable Refresh All
  kind: action
  command: "/core/va/refresh"  # OSC; UDP/TCP: core-va-refresh
  params: []
  notes: Refresh all variables; triggers generated as if each variable changed value
- id: api_blink
  label: API Blink
  kind: action
  command: "/core/blink"  # OSC; UDP/TCP: core-blink
  params: []
- id: api_hello
  label: API Hello
  kind: action
  command: "/core/hello"  # OSC; UDP/TCP: core-hello
  params: []
  notes: Unit replies with the same Hello message; ideal for polling/online check
- id: api_goodbye
  label: API Goodbye
  kind: action
  command: "/core/goodbye"  # OSC; UDP/TCP: core-goodbye
  params: []
  notes: Explicitly removes sender from the client feedback list

Feedbacks

# GPI feedback (Appendix D.3)
- id: gpi_pin_state
  type: enum
  values:
    - ON
    - OFF
    - "50%"
  description: GPI pin state feedback (OSC: /core/gpi/<pin>, UDP: core-gpi-<pin number>=ON/OFF/50%)

# Actionlist feedback (Appendix D.3)
- id: actionlist_enable_state
  type: boolean
  description: Actionlist enable state feedback (OSC: /core/al/<list>/enable, UDP: core-al-<list>-enable)

# API hello reply
- id: hello_reply
  type: string
  description: Echo reply to /core/hello (OSC) or core-hello (UDP/TCP)

Variables

# 8 internal variables (Appendix B.12, Appendix A.12)
# Range [0,255], controllable via API
- id: variable_1
  type: integer
  range: [0,255]
  description: Internal variable 1
- id: variable_2
  type: integer
  range: [0,255]
  description: Internal variable 2
- id: variable_3
  type: integer
  range: [0,255]
  description: Internal variable 3
- id: variable_4
  type: integer
  range: [0,255]
  description: Internal variable 4
- id: variable_5
  type: integer
  range: [0,255]
  description: Internal variable 5
- id: variable_6
  type: integer
  range: [0,255]
  description: Internal variable 6
- id: variable_7
  type: integer
  range: [0,255]
  description: Internal variable 7
- id: variable_8
  type: integer
  range: [0,255]
  description: Internal variable 8

Events

# UNRESOLVED: no unsolicited event emission documented in source beyond D.3 client feedback
# Triggers defined (Appendix A) are inputs, not outgoing events

Macros

# UNRESOLVED: no explicit multi-step macros in source
# Templates (Appendix C) provide preset configurations:
# - GPI->OSC Float/Bool, GPI->UDP Float/Bool
# - GPI->DMX, DMX->GPO, Art-Net->GPO, sACN->GPO
# - Receiving DMX/Art-Net/sACN
# - GPI->CueCore2, GPI->LPU-2

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

Protocol Support: The IoCore2 is a protocol bridge supporting GPI/GPO (8 each), RS-232, DMX512, Art-Net, sACN, TCP, UDP, and OSC. All control is via task programming in Show Control page; there is no standalone command reference—all actions are defined within the task system.

API Endpoints: The device exposes internal functions via OSC (paths prefixed /core/) and UDP/TCP (strings prefixed core-). OSC uses path-based addressing; UDP/TCP use hyphen-separated command strings (e.g., core-gpo-1=1). Both APIs provide equivalent functionality for GPO control, actionlist execution, DMX channel control, timer operation, variable read/write, and system commands (blink, hello, goodbye).

GPI/GPO: GPI ports support digital (contact-closure) or analog (0-10V) modes. GPO ports are normally-open relays rated 50VAC/30VDC up to 3A. Binary trigger combinations use port values 1,2,4,8,16,32,64,128 summed. Note: GPO task range is [1,8] (Appendix B.5) while the API GPO range is [1,6] (Appendix D.1/D.2) — both values preserved verbatim from source.

DMX: Supports input or output mode. Slow DMX option reduces transmission rate. DMX data can be bridged to/from Art-Net or sACN (1 universe each).

Art-Net/sACN: Art-Net supports 1 universe in and 1 out (universe address subnet.universe, range 0.0–15.15). sACN supports 1 universe in and 1 out (universe range 1–63999, priority 0–200). Both can be disabled by setting output to off.

TCP/UDP Port: Default port 7000 for both TCP and UDP (Section 9.10: "By default both ports are set to 7000").

OSC Port: OSC listens on a configurable port (Section 9.9 'Port' field); source states no default value. Up to four outgoing OSC target IPs in ip-address:port format; broadcast IP supported.

Feedback Loop Warning: When two Visual Productions devices are connected via OSC/UDP, feedback messages can create loops. Prevention: assign unique label to device's API prefix (Section D.3.1).

Authentication: No authentication, password, or login procedure described in source for any protocol.

Provenance

source_domains:
  - api.visualproductions.nl
source_urls:
  - https://api.visualproductions.nl/api/download/6763ec7f5aaf91d36674c9e4
retrieved_at: 2026-04-30T02:45:43.018Z
last_checked_at: 2026-07-22T08:03:52.542Z

Verification Summary

verdict: verified
checked_at: 2026-07-22T08:03:52.542Z
matched_actions: 101
action_count: 101
confidence: medium
summary: "All 101 spec actions matched exactly against 86 task types (Appendix B) plus 15 API endpoints (Appendix D); transport parameters verified; full bidirectional coverage. (16 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "serial baud rate, data bits, parity, stop bits not stated in source"
- "OSC listening port (Section 9.9 references a 'Port' field but states no default value)"
- "baud rate not stated in source (Section 9.3 confirms settings exist but gives no values)"
- "not stated in source"
- "not stated in source (Section 9.3 mentions stopbits exist)"
- "power on/off not documented, blink task present"
- "DMX/Art-Net/sACN routing commands present"
- "DMX channel control present"
- "no unsolicited event emission documented in source beyond D.3 client feedback"
- "no explicit multi-step macros in source"
- "no safety warnings or interlock procedures in source"
- "RS-232 serial configuration (baud rate, data bits, parity, stop bits) not stated in source"
- "OSC listening port default value not stated in source"
- "firmware version compatibility not stated in source"
- "power on/off commands not documented"
- "unsolicited event emission not documented beyond D.3 client feedback"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0