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 port | 7901 |
| Maximum concurrent connections | 8 |
| Maximum message size | 4,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.
TCP Send action configuration:
Host : 192.168.1.100
Port : 4998
Message : PWON\r\n
Encoding: ASCII
Keep alive: trueUDP
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.
UDP Send action configuration:
Host : 192.168.1.255 (use broadcast for local subnet)
Port : 7902
Message : RELAY_ON_1
Encoding : UTF-8Message 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.
// 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 : ONWhen 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.