diff --git a/src/node-red/flowfuse/ai/index.md b/src/node-red/flowfuse/ai/index.md index e016daa5d7..6aaefb68d1 100644 --- a/src/node-red/flowfuse/ai/index.md +++ b/src/node-red/flowfuse/ai/index.md @@ -2,7 +2,7 @@ eleventyNavigation: key: AI parent: FlowFuse Nodes - order: 4 + order: 1 meta: title: FlowFuse AI Nodes description: A set of Node-RED nodes for AI and machine learning, including ONNX model inference and LLM nodes for OpenAI, Anthropic, Google Gemini, and Ollama. diff --git a/src/node-red/flowfuse/edge/images/rtsp/rtsp-config-node.png b/src/node-red/flowfuse/edge/images/rtsp/rtsp-config-node.png new file mode 100644 index 0000000000..76b0fe1e09 Binary files /dev/null and b/src/node-red/flowfuse/edge/images/rtsp/rtsp-config-node.png differ diff --git a/src/node-red/flowfuse/edge/images/rtsp/rtsp-edge-catalog.png b/src/node-red/flowfuse/edge/images/rtsp/rtsp-edge-catalog.png new file mode 100644 index 0000000000..93665b6ee1 Binary files /dev/null and b/src/node-red/flowfuse/edge/images/rtsp/rtsp-edge-catalog.png differ diff --git a/src/node-red/flowfuse/edge/index.md b/src/node-red/flowfuse/edge/index.md new file mode 100644 index 0000000000..17bc0889c8 --- /dev/null +++ b/src/node-red/flowfuse/edge/index.md @@ -0,0 +1,28 @@ +--- +eleventyNavigation: + key: Edge + parent: FlowFuse Nodes + order: 4 + title: Edge +meta: + title: Edge Certified Nodes + description: Documentation for FlowFuse Edge Certified Nodes, including nodes for connecting FlowFuse to industrial protocols, PLCs, SCADA systems, and factory-floor equipment. +--- + +# {{ meta.title }} + +This section contains documentation for **FlowFuse Edge Certified Nodes** that connect your FlowFuse instances to industrial protocols, PLCs, SCADA systems, and factory-floor equipment. + +FlowFuse Certified Nodes are packages that FlowFuse has vetted for quality, security, and support, and maintains on an ongoing basis. To learn more about what certification means and how these nodes are delivered, [read the FlowFuse Certified Nodes blog post](/blog/2025/07/certified-nodes-v2/). + +> **ℹ Note:** The FlowFuse Edge Certified Nodes catalogue is a paid add-on. [Contact us](/contact-us/) to get access or to learn more. + +> **ℹ Note:** This section is expanding. We are actively working to bring more Edge Certified Nodes to FlowFuse, and additional documentation will be added here over time. + +## Nodes + +This section lists the **Edge Certified Nodes** documented in FlowFuse: + +{% include "navigation-items-list.njk" %} + +> **ℹ Note:** Existing devices and hosted instances will not see newly added nodes until they are restarted. Restart any instance you plan to install nodes on so it picks up the updated catalogue. diff --git a/src/node-red/flowfuse/edge/rtsp.md b/src/node-red/flowfuse/edge/rtsp.md new file mode 100644 index 0000000000..71adf33cf3 --- /dev/null +++ b/src/node-red/flowfuse/edge/rtsp.md @@ -0,0 +1,88 @@ +--- +eleventyNavigation: + key: RTSP Video Feed + parent: Edge + order: 1 +meta: + title: RTSP Video Feed + description: Documentation for the FlowFuse RTSP Video Feed node, which connects to an RTSP camera stream and extracts still frames as PNG images for use in flows, dashboards, and local AI models. +--- + +# {{ meta.title }} + +The **RTSP Video Feed** node connects to an [RTSP](https://en.wikipedia.org/wiki/Real-Time_Streaming_Protocol) video stream from an IP camera or NVR and extracts still frames as PNG images. + +The node orchestrates `ffmpeg` to acquire and decode the video stream. By handling the video decoding externally, `ffmpeg` reduces the processing load on the main FlowFuse event loop. However, higher frame rates and image resolutions generate more image data, which can increase CPU and memory usage as frames are transferred and processed within your flows. The node is a source node with no input connector. It begins capturing frames as soon as the flow is deployed and displays a green **Running** status on the canvas when it has successfully connected to the stream. If `ffmpeg` exits unexpectedly, the node restarts it automatically after a short delay and displays the exit code in the node status. + +Extracted frames can either be emitted as messages into the flow or written directly to disk as a numbered sequence of PNG files. See [Operating modes](#operating-modes) for details. + +> **ℹ Note:** The RTSP Video Feed node is not available by default. It is part of the **FlowFuse Edge Certified Nodes** paid add-on. Please contact our sales team at [Contact us](/contact-us/) to learn more or to request access. + +## Requirements + +The node requires `ffmpeg`. In most cases this is handled automatically: the node pulls in `ffmpeg-static` on install, which provides a prebuilt `ffmpeg` binary for your platform. + +If a prebuilt binary is not available for your platform, the node falls back to an `ffmpeg` binary on the system `PATH`. If neither is found, the node will not load and an error is written to the FlowFuse log. + +## Install + +1. Open the **Palette Manager** from the top-right menu in the FlowFuse editor. +2. Switch to the **Install** tab. +3. Find the **FlowFuse Edge Certified Nodes** collection. +4. Locate `@flowfuse-certified-nodes/rtsp` and click **Install**. + +`ffmpeg` is pulled in automatically during install. + +![Palette Manager open on the Install tab with the FlowFuse Edge Certified Nodes collection visible and the RTSP node's Install button highlighted](./images/rtsp/rtsp-edge-catalog.png) +*Locating and installing the RTSP Video Feed node from the FlowFuse Edge Certified Nodes catalogue.* + +> **ℹ Note:** Existing devices and hosted instances will not pick up newly installed nodes until they are restarted. Restart any instance you plan to use the node on after installing. + +## Configuration + +Open the node's settings by double-clicking it on the canvas. + +| Field | Required | Description | +| --- | --- | --- | +| **RTSP URL** | Yes | The stream URL, e.g. `rtsp://192.168.1.50:554/live/ch1`. Must be a valid URL. | +| **Username** | No | Username for streams that require authentication. | +| **Password** | No | Password for streams that require authentication. Stored as a FlowFuse credential and never written to the flow file. | +| **FPS** | No | Frames per second to capture, from `1` to `60`. Defaults to `1`. | +| **File path** | No | Directory frames are written to in disk-writing mode. If left empty, the OS temp directory (e.g. `/tmp`) is used. | +| **Output image as `msg.payload`** | No | Switches between message mode and disk-writing mode. Enabled by default. See [Operating modes](#operating-modes). | +| **Name** | No | Optional label for the node in the FlowFuse editor. | +| **Topic** | No | Sets `msg.topic` on emitted messages. Useful when routing frames to MQTT. | + +![RTSP Video Feed node settings panel showing the RTSP URL, Username, Password, FPS, File path, and Output image fields](./images/rtsp/rtsp-config-node.png) +*The RTSP Video Feed node configuration panel.* + +## Operating modes + +The **Output image as `msg.payload`** checkbox controls how the node handles captured frames. + +### Output enabled (default) + +The node emits each captured frame as a message at the configured FPS rate. + +**Output properties:** + +| Property | Type | Description | +| --- | --- | --- | +| `msg.payload` | Buffer | The captured frame as a PNG image buffer. | +| `msg.topic` | String | The topic configured on the node. | + +The output can be wired to any node that accepts an image buffer, including [FlowFuse Dashboard widgets](https://dashboard.flowfuse.com/),[MQTT out nodes](/node-red/flowfuse/mqtt/mqtt-out/), and [FlowFuse AI nodes](/node-red/flowfuse/ai/). + +> **ℹ Note:** Every captured frame becomes a message in the flow. A high FPS value increases the number and size of messages being processed. Set FPS no higher than your use case requires. + +### Output disabled + +The node emits no messages. Instead, `ffmpeg` writes a continuous numbered sequence of PNG files to the directory set in **File path**, named as follows: + +``` +rtsp--.png +``` + +If **File path** is left empty, files are written to the OS temp directory (e.g. `/tmp`). On many Linux distributions this is a RAM-backed filesystem, so frames consume memory rather than disk space and are cleared on reboot. + +The node does not delete files written to disk. At a high FPS rate, files will accumulate and eventually fill the available storage. Monitor available disk space when using this mode. \ No newline at end of file diff --git a/src/node-red/flowfuse/flowfuse-tables/index.md b/src/node-red/flowfuse/flowfuse-tables/index.md index 4bc15ac817..b60b760931 100644 --- a/src/node-red/flowfuse/flowfuse-tables/index.md +++ b/src/node-red/flowfuse/flowfuse-tables/index.md @@ -2,7 +2,7 @@ eleventyNavigation: key: FlowFuse Tables parent: FlowFuse Nodes - order: 1 + order: 3 meta: title: FlowFuse Tables description: FlowFuse Tables provides managed databases for Node-RED users, offering built-in nodes to query, insert, and manage data easily within FlowFuse flows. diff --git a/src/node-red/flowfuse/mcp/index.md b/src/node-red/flowfuse/mcp/index.md index 73daecafd5..7b30f53194 100644 --- a/src/node-red/flowfuse/mcp/index.md +++ b/src/node-red/flowfuse/mcp/index.md @@ -2,7 +2,7 @@ eleventyNavigation: key: MCP parent: FlowFuse Nodes - order: 1 + order: 2 meta: title: MCP Nodes description: A set of nodes that enable the creation of MCP (Model Context Protocol) servers in your Node-RED flows for AI-integration. diff --git a/src/node-red/flowfuse/mqtt/index.md b/src/node-red/flowfuse/mqtt/index.md index 43f9306aa5..db2b9535c8 100644 --- a/src/node-red/flowfuse/mqtt/index.md +++ b/src/node-red/flowfuse/mqtt/index.md @@ -2,7 +2,7 @@ eleventyNavigation: key: FlowFuse MQTT Nodes parent: FlowFuse Nodes - order: 2 + order: 5 title: MQTT meta: title: MQTT Nodes