Network & Communication Nodes
Nodes for industrial protocols, TCP/IP communication, and media streaming.
Modbus TCP
Modbus TCP is an industrial protocol widely used in building automation, PLCs, and SCADA systems. The Modbus node provides a unified interface to connect to Modbus TCP servers and read/write various data types.
Modbus Node
The Modbus node establishes a connection to a Modbus TCP server and manages multiple configurable items (coils, registers) in a single node.
Category: Network, Modbus
Functionality
- Connects to a Modbus TCP server with automatic reconnection (5-second retry on connection loss)
- Configurable items define what data to read/write (coils, integers, floats, strings)
- Each item gets its own read trigger, write trigger, value input, and value output
- Built-in keepalive mechanism reads coil 0 every 2 seconds to prevent idle timeouts
- Uses Big-Endian byte order (IEEE 754 standard) for floats and strings
Base Inputs
| Name | Type | Description |
|---|---|---|
| Enable | Boolean | TRUE connects to the server; FALSE disconnects |
| Read All | Boolean | Rising edge triggers read of all configured items |
| Write All | Boolean | Rising edge triggers write of all items using their Value inputs |
Base Outputs
| Name | Type | Description |
|---|---|---|
| Connected | Boolean | TRUE while connected to the Modbus server |
| Op Complete | Boolean | Pulses TRUE for one cycle when any read/write operation completes |
Per-Item I/O
For each configured item, the node generates:
| Name | Type | Description |
|---|---|---|
| {name} Read (input) | Boolean | Rising edge triggers read of this item |
| {name} Write (input) | Boolean | Rising edge triggers write of this item |
| {name} Value (input) | Configurable | Value to write when Write is triggered |
| {name} (output) | Configurable | Current value read from this item |
Properties
- Host: IP address or hostname of the Modbus server (e.g.,
192.168.1.100) - Port: TCP port (default:
502) - Unit ID: Modbus unit/slave identifier (0-255, default:
1)
Item Configuration
Click Add Item to configure Modbus data points:
| Property | Description |
|---|---|
| Name | Unique identifier for this item (creates I/O labels) |
| Type | Data type: coil, int, float, or string |
| Address | Register/coil address (coils use 1-based addressing, registers use 0-based) |
| Length | For strings only: maximum character length |
After adding or removing items, click Sync I/O to update the node's inputs and outputs.
Item Types
| Type | Description | Registers Used |
|---|---|---|
| coil | Boolean value (ON/OFF) | 1 coil |
| int | 16-bit signed integer (-32768 to 32767) | 1 register |
| float | 32-bit IEEE 754 floating-point | 2 registers |
| string | ASCII text (2 characters per register) | length / 2 registers |
Modbus Example
A typical Modbus setup:
- Add a Modbus node and configure the server Host, Port, and Unit ID
- Add items for the data points you need (coils, registers)
- Click Sync I/O to generate the inputs and outputs
- Wire an Enable signal or constant TRUE to connect
- Use the per-item Read/Write inputs or Read All/Write All for batch operations
- Monitor Op Complete to trigger downstream logic when operations finish
Tip
Use Read All with a timer to poll all items periodically. Use per-item Read triggers for on-demand reads.
Warning
Ensure the Modbus server is accessible from the camera network. Firewall rules may need adjustment for port 502.
OPC UA
OPC UA (Open Platform Communications Unified Architecture) is a machine-to-machine communication protocol for industrial automation. The Flow provides nodes to connect to OPC UA servers and read/write variables.
OPC UA Client
The OPC UA Client node establishes and manages a connection to an OPC UA server.
Category: Network, OPC UA
Functionality
Creates a persistent connection to an OPC UA server. Other OPC UA nodes use the Conn Key output to share this connection.
Inputs
| Name | Type | Description |
|---|---|---|
| Connect | Boolean | Rising edge opens the connection; falling edge closes it |
Outputs
| Name | Type | Description |
|---|---|---|
| Connected | Boolean | True while connection is active |
| Conn Key | String | Unique key to pass to read/write nodes |
| Error | String | Connection error message (if any) |
Properties
- Endpoint URL: OPC UA server endpoint (e.g.,
opc.tcp://192.168.1.100:4840) - Security Mode: None, Sign, or SignAndEncrypt
- Security Policy: None, Basic256Sha256, etc.
- Username: Optional authentication username
- Password: Optional authentication password
Tip
Keep one OPC UA Client node and wire its Conn Key to multiple read/write nodes. This shares the connection efficiently.
OPC UA Read
Reads a value from an OPC UA node variable.
Category: Network, OPC UA
Inputs
| Name | Type | Description |
|---|---|---|
| Conn Key | String | Connection from OPC UA Client |
| Read | Boolean | Rising edge triggers the read |
Outputs
| Name | Type | Description |
|---|---|---|
| Read | Boolean | Pulses true when read completes |
| Value | Configurable | The variable value (type selectable) |
| Error | String | Error message if read fails |
Properties
- Node ID: The OPC UA node identifier (e.g.,
ns=1;s=Temperature) - Output Type: Select the data type (Boolean, Integer, Float, String)
OPC UA Write
Writes a value to an OPC UA node variable.
Category: Network, OPC UA
Inputs
| Name | Type | Description |
|---|---|---|
| Conn Key | String | Connection from OPC UA Client |
| Write | Boolean | Rising edge triggers the write |
| Value | Configurable | The value to write (type selectable) |
Outputs
| Name | Type | Description |
|---|---|---|
| Written | Boolean | Pulses true when write completes |
| Error | String | Error message if write fails |
Properties
- Node ID: The OPC UA node identifier (e.g.,
ns=1;s=SetPoint) - Input Type: Select the data type (Boolean, Integer, Float, String)
OPC UA Example
A typical OPC UA setup:
- Add an OPC UA Client node and configure the server endpoint URL
- Wire an Enable node or trigger to the
Connectinput - Add OPC UA Read/Write nodes and connect their
Conn Keyinput to the client's output - Use timers or triggers to control when reads/writes occur
Warning
Ensure the OPC UA server is accessible from the camera network. Firewall rules may need adjustment for port 4840 (default OPC UA port).
Media Streaming
AXIS Live Stream
The AXIS Live Stream node displays live video from an Axis device using WebCodecs for H.264 decoding.
Category: Axis, Network
Functionality
Enables real-time video streaming with low latency. Uses WebCodecs instead of WebRTC, eliminating NAT traversal issues - works reliably behind firewalls without STUN/TURN servers.
Properties
- Device: Select the Axis device from Device Management
- Resolution: Optional resolution override
Stream Statistics
When streaming, view real-time stats including:
- Resolution and framerate
- Bitrate
- Decode queue size
Tip
WebCodecs provides reliable streaming without NAT/firewall configuration. The stream connects directly via WebSocket.
RTMP Stream
The RTMP Stream node publishes video to RTMP media servers or streaming platforms.
Category: Axis, Network
Functionality
Streams the camera feed to YouTube Live, Twitch, or custom RTMP servers.
Inputs
| Name | Type | Description |
|---|---|---|
| Publish | Boolean | True starts streaming; false stops |
Properties
- Device: Select the Axis device
- RTMP URL: Server URL (e.g.,
rtmp://a.rtmp.youtube.com/live2) - Stream Key: Authentication key for the platform
- Resolution: Video resolution to stream
Warning
Streaming uses significant bandwidth. Ensure adequate upload capacity.
TCP Communication
TCP Server
Listens on a TCP port and outputs received messages.
Category: Input, Network
Outputs
| Name | Type | Description |
|---|---|---|
| New Message | Boolean | Pulses true when data arrives |
| Message | String | The received payload |
Properties
- Port: TCP port to listen on (1-65535)
- Rate Limit: Maximum messages per second
TCP Message Sender
Sends string payloads over TCP to a remote host.
Category: Action, Network
Inputs
| Name | Type | Description |
|---|---|---|
| Send | Boolean | Rising edge sends the message |
| Message | String | Payload to transmit |
Outputs
| Name | Type | Description |
|---|---|---|
| Sent | Boolean | Pulses true on success |
Properties
- Host: Destination IP or hostname
- Port: Destination port
- Timeout: Connection timeout in seconds
HTTP & Webhooks
Webhook Listener
Runs an HTTP/HTTPS endpoint to receive external requests.
Category: Input, Network
Inputs
| Name | Type | Description |
|---|---|---|
| Custom Response | Boolean | Enable custom response body |
| Response Body | String | Custom JSON response |
| Response Code | Integer | HTTP status code to return |
Outputs
| Name | Type | Description |
|---|---|---|
| New Request | Boolean | Pulses true on each request |
| Body | String | Request body content |
| Query params | String | One output per configured parameter |
Properties
- Port: HTTP or HTTPS port
- Path: URL path (e.g.,
/webhook) - Auth Type: None, Basic, or Digest
- Rate Limit: Requests per second (1-15)
- Query Parameters: Define expected URL parameters
The webhook always responds with:
Unless custom response is enabled.
Tip
Use query parameters to pass identifiers like device_id or event_type without parsing the body.