RELO IO8

TCP & UDP

How to send and receive raw TCP and UDP messages from the RELO IO8. Socket configuration, message framing, and flow integration.

The RELO IO8 can act as both a TCP/UDP server (listening for incoming connections and datagrams) and a TCP/UDP client (initiating connections and sending data to remote hosts). This makes it compatible with virtually any third-party control system that speaks raw TCP or UDP.

TCP Server mode

When used as a TCP server, the RELO IO8 listens on a configurable port (default: 7901) and accepts incoming connections from external control systems. Each connection is maintained persistently until either end closes it. Incoming data is available as a trigger in the flow editor using the "TCP Receive" trigger node.

Default TCP listen port7901
Maximum concurrent connections8
Maximum message size4,096 bytes
Connection timeout (idle)300 seconds (configurable)

TCP Client mode

A flow can initiate an outbound TCP connection to a remote host using the "TCP Send" action node. The connection is opened, the message is sent, and optionally the connection is held open for subsequent sends from the same flow context. This is useful for integrating with devices like projectors, switchers, and matrix amplifiers that expose a Telnet-style TCP control port.

text
TCP Send action configuration:
  Host    : 192.168.1.100
  Port    : 4998
  Message : PWON\r\n
  Encoding: ASCII
  Keep alive: true

UDP

UDP is connectionless and lower-latency than TCP. The RELO IO8 supports both UDP receive (trigger) and UDP send (action). UDP is the underlying transport for OSC and Art-Net, but can also be used for plain datagram communication with other devices.

text
UDP Send action configuration:
  Host      : 192.168.1.255   (use broadcast for local subnet)
  Port      : 7902
  Message   : RELAY_ON_1
  Encoding  : UTF-8

Message framing

TCP is a stream protocol. There are no inherent message boundaries. The RELO IO8 TCP receive trigger supports three framing modes to delineate individual messages from the stream:

  • Delimiter: a byte or byte sequence (e.g. \r\n, \x03) marks the end of each message
  • Fixed length: each message is exactly N bytes
  • Timeout: a message is considered complete after N milliseconds of silence on the connection

Integrating TCP/UDP with flows

In the flow editor, use a "TCP Receive" or "UDP Receive" trigger node to start a flow when a matching message arrives. The received payload is available as a variable in downstream nodes. Use the "Contains" or "Matches regex" condition nodes to route the flow based on message content.

javascript
// Example: trigger on TCP message "LIGHTS_ON"
// and activate relay 1

Trigger: TCP Receive
  Port    : 7901
  Framing : Delimiter (\r\n)

Condition: Text equals
  Input : {{trigger.payload}}
  Value : LIGHTS_ON

Action: Relay Set
  Output : OUT 1
  State  : ON

When integrating with Crestron, Extron, or AMX control processors, use TCP client mode on the control processor to connect to the RELO IO8 TCP server. This keeps the connection persistent and ensures commands are delivered with minimal latency.