[{"data":1,"prerenderedAt":2580},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace\u002F":3,"featureCatalog":1122,"docs-nav":1527},{"id":4,"title":5,"body":6,"description":16,"editUrl":1111,"extension":1112,"layout":1113,"meta":1114,"metaTitle":5,"navGroup":1113,"navGroupOrder":1113,"navOrder":1115,"navTitle":1116,"navigation":59,"originalPath":1113,"path":1117,"redirect":1113,"seo":1118,"stem":1119,"updated":1120,"version":1113,"__hash__":1121},"docs\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace.md","Node-RED Editor Workspace",{"type":7,"value":8,"toc":1050},"minimark",[9,13,17,25,30,36,54,69,72,75,79,85,91,98,102,108,111,116,122,131,135,141,144,148,154,157,163,166,170,176,179,185,188,192,201,204,208,214,217,223,227,233,236,242,245,249,258,261,267,270,276,279,285,288,292,298,301,310,314,320,323,327,335,338,343,347,353,356,360,366,373,377,383,386,392,395,401,404,410,413,419,425,428,432,435,440,448,452,455,465,485,488,492,500,504,510,513,519,524,530,535,539,545,548,552,558,561,565,568,571,583,586,592,600,603,609,612,615,619,625,628,632,642,656,659,663,673,680,684,694,701,711,714,718,728,738,742,746,756,764,768,778,786,790,796,799,803,811,821,825,831,834,837,841,846,849,853,859,862,866,876,879,883,893,900,904,912,918,922,931,937,941,944,954,958,968,971,975,985,991,995,1005,1011,1015,1025,1031,1035,1044],[10,11,5],"h1",{"id":12},"node-red-editor-workspace",[14,15,16],"p",{},"The workspace is the main area in the editor where you build application flows by dropping nodes from the palette.",[14,18,19],{},[20,21],"img",{"alt":22,"dataZoomable":23,"src":24,"title":22},"Image showing workspace in the editor","","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Feditor-workspace.png",[26,27,29],"h2",{"id":28},"view-tools","View Tools",[14,31,32],{},[20,33],{"alt":34,"dataZoomable":23,"src":35,"title":34},"Image showing view tools in the editor","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-view-tool.png",[14,37,38,39,43,44,47,48,43,50,53],{},"The workspace provides view tools at the footer in the right corner. This includes zoom in (",[40,41,42],"code",{},"Ctrl"," + ",[40,45,46],{},"+",") and zoom out (",[40,49,42],{},[40,51,52],{},"-",") buttons to control the view of the workspace and reset the zoom level to its default.",[14,55,56],{},[57,58,64],"video",{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":60,"width":61,"height":62,"preload":63},true,"Video showing navigator tool",800,489,"none",[65,66],"source",{"src":67,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-navigator-tool.webm","video\u002Fwebm",[14,70,71],{},"Additionally, it provides a view navigator that allows you to see a scaled-down view of the entire workspace. In this view, you can also see the currently visible area of the workspace in the editor. To jump to a specific workspace area, click on that area in the view navigator.",[14,73,74],{},"If the Linter tool is enabled, next to the view navigator on the left side, you will find the Linter tool option that displays the number of linting issues present in the workspace. By clicking on it, you will navigate to the Linter tool in the sidebar.",[26,76,78],{"id":77},"search-flow","Search Flow",[14,80,81],{},[20,82],{"alt":83,"dataZoomable":23,"src":84,"title":83},"Image search option for searching the flow into the Node-RED instance","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-search-tool.png",[14,86,87],{},[20,88],{"alt":89,"dataZoomable":23,"src":90,"title":89},"Image showing Node-RED Palette Search bar","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fmain-menu-search-tab.png",[14,92,93,94,97],{},"At the bottom-left of the workspace, you will see a search icon. Clicking on it will open a popup that allows you to quickly search the flows within your Node-RED instance by their name. You can access this dialog by pressing ",[40,95,96],{},"Ctrl + F",".",[26,99,101],{"id":100},"flow","Flow",[14,103,104],{},[20,105],{"alt":106,"dataZoomable":23,"src":107,"title":106},"Image showing flow tabs","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Feditor-flow-tabs.png",[14,109,110],{},"A flow is represented as a tab within the editor workspace, providing a new workspace for building applications by connecting nodes. \"Flow\" is also used informally to describe a single set of connected nodes. Therefore, a flow (tab) can contain multiple flows (sets of connected nodes), but formally, a flow is a parent group of multiple connected nodes. A flow can have a name and description, which will be displayed in the information sidebar.",[112,113,115],"h3",{"id":114},"adding-a-flow","Adding a Flow",[14,117,118],{},[20,119],{"alt":120,"dataZoomable":23,"src":121,"title":120},"Image showing 'add flow' option in the editor","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-add-flow.png",[14,123,124,125,130],{},"To create a parent flow, click on the top-right \"+\" icon, other you can use the ",[126,127,129],"a",{"href":128},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader#flows","main menu's flow"," add option.",[112,132,134],{"id":133},"editing-a-flow-properties","Editing a flow properties",[14,136,137],{},[20,138],{"alt":139,"dataZoomable":23,"src":140,"title":139},"Image showing flow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-flow-edit.png",[14,142,143],{},"To edit the flow properties double-click on the flow tab to enter its name and description in the popup form that appears.",[112,145,147],{"id":146},"deleting-a-flow","Deleting a Flow",[14,149,150],{},[20,151],{"alt":152,"dataZoomable":23,"src":153,"title":152},"Image showing option to delete the flow","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-delete-flow.png",[14,155,156],{},"To delete a flow, double-click on it. In the popup that appears, click the delete button at the top-left corner.",[14,158,159],{},[20,160],{"alt":161,"dataZoomable":23,"src":162,"title":161},"Image showing option to delete the flow in the flow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-delete-flow-dialog.png",[14,164,165],{},"Alternatively, right-click on the flow tab and select \"Delete\" from the menu.",[112,167,169],{"id":168},"enabling-and-disabling-flows","Enabling and Disabling Flows",[14,171,172],{},[20,173],{"alt":174,"dataZoomable":23,"src":175,"title":174},"Image showing option to enable and disable flow in the edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-disable-enable-flow.png",[14,177,178],{},"To enable or disable a flow, double-click on the flow tab. Click the bottom-left \"Disable\" button or \"Enable\" button if it is already disabled.",[14,180,181],{},[20,182],{"alt":183,"dataZoomable":23,"src":184,"title":183},"Image showing option to enable and disable flow","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-enable-disable-flow.png",[14,186,187],{},"Alternatively, right-click on the flow tab and select \"Disable\u002FEnable\" from the menu. Disabled flows do not execute when deployed.",[112,189,191],{"id":190},"reordering-flows","Reordering Flows",[14,193,194],{},[57,195,198],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":196,"width":61,"height":197,"preload":63},"Video showing how to reorder flows in the editor",151,[65,199],{"src":200,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fworkspace-reordering-flow.webm",[14,202,203],{},"Flows can be reordered by clicking and dragging the flow tab to the desired position. More options for the flow tab menu can be accessed by clicking on the top-right dropdown arrow icon.",[26,205,207],{"id":206},"subflow","Subflow",[14,209,210],{},[20,211],{"alt":212,"dataZoomable":23,"src":213,"title":212},"Image showing subflow node","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-node.png",[14,215,216],{},"A subflow in Node-RED is a collection of nodes that are collapsed into a single node in the workspace. It allows you to group a set of nodes together into a reusable unit. This helps in organizing flows, promoting reusability, and simplifying complex flow designs by encapsulating multiple nodes into a single, higher-level node representation.",[14,218,219],{},[220,221,222],"em",{},"Note: a subflow cannot contain an instance of itself - either directly or indirectly.",[112,224,226],{"id":225},"creating-a-subflow","Creating a Subflow",[14,228,229],{},[20,230],{"alt":231,"dataZoomable":23,"src":232,"title":231},"Image showing 'create subflow' option in the main menu","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fmain-menu-subflows.png",[14,234,235],{},"To create the subflow, click on the subflow -> create subflow in the main menu.",[14,237,238],{},[20,239],{"alt":240,"dataZoomable":23,"src":241,"title":240},"Image showing subflow tab","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-window.png",[14,243,244],{},"It will create the subflow window like a flow tab for you.",[112,246,248],{"id":247},"editing-a-subflow","Editing a Subflow",[14,250,251],{},[57,252,255],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":253,"width":61,"height":254,"preload":63},"Video showing 'How to edit the subflow properties'",450,[65,256],{"src":257,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-editing-properties.webm",[14,259,260],{},"To open the subflow edit dialog, double-click on the subflow node, then click on the \"edit template properties\". You can give the name for that subflow, add the description by clicking on the top-right",[14,262,263],{},[20,264],{"alt":265,"dataZoomable":23,"src":266,"title":265},"Image showing description tab in the subflow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-property-description.png",[14,268,269],{},"\"Description\" option, and also set the appearance by clicking on the top-right \"Appearance\" option.",[14,271,272],{},[20,273],{"alt":274,"dataZoomable":23,"src":275,"title":274},"Image showing custom properties tab in the subflow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-custom-properties.png",[14,277,278],{},"In the properties tab, you can define the custom properties that will be added to the subflow's edit dialog. These properties will be then exposed as the environment variables which can be then used by nodes of that subflow. While defining those properties you can also define the data type and label for each.",[14,280,281],{},[20,282],{"alt":283,"dataZoomable":23,"src":284,"title":283},"Image showing ui preview tab in the subflow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-ui-preview.png",[14,286,287],{},"In the \"UI preview\" tab, you will see the preview of those properties, showing how they will appear in the subflow.",[112,289,291],{"id":290},"module-properties","Module Properties",[14,293,294],{},[20,295],{"alt":296,"dataZoomable":23,"src":297,"title":296},"Image showing module tab in the subflow edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-module-tab.png",[14,299,300],{},"In the subflow property dialog, you'll see the module properties option in the top-right corner of the dialog.",[14,302,303,304,97],{},"The Module Properties tab can be used to set additional meta-data about the Subflow, including version, license, and module name. These can be used when ",[126,305,309],{"href":306,"rel":307},"https:\u002F\u002Fnodered.org\u002Fdocs\u002Fcreating-nodes\u002Fsubflow-modules",[308],"nofollow","packaging the Subflow as an npm module",[112,311,313],{"id":312},"deleting-a-subflow","Deleting a Subflow",[14,315,316],{},[20,317],{"alt":318,"dataZoomable":23,"src":319,"title":318},"Image showing option to delete the subflow","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-delete-option.png",[14,321,322],{},"To delete the subflow, click on the \"delete subflow\" button at the top of the subflow tab.",[112,324,326],{"id":325},"converting-nodes-into-a-subflow","Converting Nodes into a Subflow",[14,328,329],{},[57,330,332],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":331,"width":61,"height":254,"preload":63},"Video showing how to convert nodes into the subflow",[65,333],{"src":334,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-converting-nodes-to-subflow.webm",[14,336,337],{},"If you have nodes on the workspace and you want to create a subflow of them, you can select them by pressing the left mouse key and drawing a rectangle around them. Then click on subflow -> selection to subflow in the main menu.",[14,339,340],{},[220,341,342],{},"Note: Wires coming into the selection should be connected to one node - as the resulting subflow node can itself only have at most one input.",[112,344,346],{"id":345},"inputs-outputs","Inputs & Outputs",[14,348,349],{},[20,350],{"alt":351,"dataZoomable":23,"src":352,"title":351},"Image showing subflow input and output along with options to add them","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-input-output.png",[14,354,355],{},"The subflow's inputs and outputs are depicted by gray square nodes, which can be connected in the subflow workspace like regular nodes. The top toolbar offers functions for adding and removing these nodes. Similar to regular flow nodes, each subflow can have one input at most, but it can accommodate multiple outputs.",[112,357,359],{"id":358},"status-node","Status Node",[14,361,362],{},[20,363],{"alt":364,"dataZoomable":23,"src":365,"title":364},"Image showing status node and option to add it","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fsubflow-status-node.png",[14,367,368,369,372],{},"The Status node is used to update the status of the subflow. This status node can be edited like regular flow nodes. This node uses the input of ",[40,370,371],{},"msg.payload"," which can either be a simple string or a Status Object.",[26,374,376],{"id":375},"nodes","Nodes",[14,378,379],{},[20,380],{"alt":381,"dataZoomable":23,"src":382,"title":381},"Image showing Node in Node palette","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-red-node.png",[14,384,385],{},"A Node is a fundamental building block used to create flows. Each node represents a distinct piece of functionality or a specific action that can be performed within a flow. These nodes can be third-party additions using the palette manager or core nodes.",[14,387,388],{},[20,389],{"alt":390,"dataZoomable":23,"src":391,"title":390},"Image showing node's input and output","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-input-ouput-port.png",[14,393,394],{},"Nodes can have one input and multiple output ports, connected via wires, which define the data flow within flows. Both input and output nodes can connect to multiple wires.",[14,396,397],{},[20,398],{"alt":399,"dataZoomable":23,"src":400,"title":399},"Image showing node's button","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-buttons.png",[14,402,403],{},"Some nodes have buttons on either the left or right side. For example, the Inject node has its button on the left, while the Debug node has it on the right. The function of these buttons varies between nodes.",[14,405,406],{},[20,407],{"alt":408,"dataZoomable":23,"src":409,"title":408},"Image showing the node status","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fmqtt-in-node-status.png",[14,411,412],{},"Additionally, some nodes display status at the bottom with icons indicating their runtime status. For example, MQTT and WebSocket nodes show \"connected\" text with a green circle icon indicating a successful connection.",[14,414,415],{},[20,416],{"alt":417,"dataZoomable":23,"src":418,"title":417},"Image showing the Node indicating error","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-indicating-error.png",[14,420,421],{},[20,422],{"alt":423,"dataZoomable":23,"src":424,"title":423},"Image showing the Node indicating undeployed changes","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-indicating-undeployed-changes.png",[14,426,427],{},"All nodes in Node-RED indicate errors with a red triangle, undeployed changes with a blue circle, and linting issues with a yellow icon containing an info symbol.",[112,429,431],{"id":430},"adding-nodes-to-the-workspace","Adding Nodes to the Workspace",[14,433,434],{},"There are three different ways to add nodes to the workspace:",[436,437,439],"h4",{"id":438},"dragging-from-the-palette","Dragging from the Palette",[14,441,442,443,447],{},"Nodes can be added from the ",[126,444,446],{"href":445},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fpalette","Node-RED palette"," by dragging them onto the workspace.",[436,449,451],{"id":450},"using-quick-add-dialog","Using Quick-Add Dialog",[14,453,454],{},"Node-RED Editor provides a quick and easy way to add nodes via the palette:",[14,456,457],{},[57,458,462],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":459,"width":460,"height":461,"preload":63},"Video showing how to add nodes quickly using quick-add dialog",471,313,[65,463],{"src":464,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-quick-add-dialog.webm",[466,467,468,479,482],"ul",{},[469,470,471,472,474,475,478],"li",{},"Press ",[40,473,42],{}," or ",[40,476,477],{},"Command"," and click on the workspace.",[469,480,481],{},"Select the desired node from the dialog, which contains all available nodes from the main node palette.",[469,483,484],{},"Use the search bar to quickly search nodes.",[14,486,487],{},"When drawing a wire from one node, leave the wire on the workspace to connect it to a node that will be added using the same quick-add dialog.",[436,489,491],{"id":490},"importing-from-the-library-or-clipboard","Importing from the Library or Clipboard",[14,493,494,495,499],{},"Nodes can also be added by ",[126,496,498],{"href":497},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader#import","importing"," them from the team or local library or using the clipboard.",[112,501,503],{"id":502},"editing-node-properties","Editing Node Properties",[14,505,506],{},[20,507],{"alt":508,"dataZoomable":23,"src":509,"title":508},"Image showing node edit property dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-edit-properties-tab.png",[14,511,512],{},"To configure a node's properties, double-click on it or select the node and press Enter. A popup form will appear to configure the node. Configuration options vary depending on the node type.",[14,514,515],{},[20,516],{"alt":517,"dataZoomable":23,"src":518,"title":517},"Image showing node edit property dialog's description tab","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-description-tab.png",[466,520,521],{},[469,522,523],{},"Clicking on the second option from the top-right among three opens a \"Description\" tab, allowing you to write a Markdown-format description displayed in the information sidebar.",[14,525,526],{},[20,527],{"alt":528,"dataZoomable":23,"src":529,"title":528},"Image showing node edit property dialog's appperance tab","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-appearance-tab.png",[466,531,532],{},[469,533,534],{},"Clicking on the third option opens a tab to modify the node's appearance, such as changing icons, naming input and output ports, and toggling label visibility.",[112,536,538],{"id":537},"enabling-and-disabling-nodes","Enabling and Disabling Nodes",[14,540,541],{},[20,542],{"alt":543,"dataZoomable":23,"src":544,"title":543},"Image showing option to enable\u002Fdisable node","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-enable-option.png",[14,546,547],{},"To enable or disable nodes, double-click on the node and click the bottom \"Enabled\" button or \"Disabled\" button if already enabled.",[112,549,551],{"id":550},"accessing-node-help-information","Accessing Node Help Information",[14,553,554],{},[20,555],{"alt":556,"dataZoomable":23,"src":557,"title":556},"Image showing option to access the node's help document","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-help.png",[14,559,560],{},"To access node help information, double-click on the node and click the bottom \"Book\" icon, which displays information related to that node in the information sidebar.",[112,562,564],{"id":563},"configuration-nodes","Configuration Nodes",[14,566,567],{},"Configuration nodes in Node-RED store configurations shared across multiple nodes within a flow.",[14,569,570],{},"For example, HTTP Proxy nodes or TLS settings represent configurations for HTTP request nodes.",[14,572,573,577,578,582],{},[574,575,576],"strong",{},"Note:"," Configuration nodes do not encrypt data after configuration, potentially exposing sensitive information if shared improperly. It is recommended to use ",[126,579,581],{"href":580},"\u002Fdocs\u002Fuser\u002Fenvvar\u002F","environment variables"," for configuring these nodes to prevent revealing them in the flow.",[14,584,585],{},"Configuration nodes can be added using the edit dialog of nodes requiring configuration:",[14,587,588],{},[20,589],{"alt":590,"dataZoomable":23,"src":591,"title":590},"Image showing option to add the config node","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-add-config-node.png",[466,593,594,597],{},[469,595,596],{},"Click the \"+\" icon next to the pencil icon and the field showing the text \"Add new ***\".",[469,598,599],{},"Enter the necessary information in the edit dialog and click \"Add\".",[14,601,602],{},"Configuration nodes are not visible on the workspace like other nodes but can be managed in the config nodes tab of the sidebar.",[14,604,605],{},[20,606],{"alt":607,"dataZoomable":23,"src":608,"title":607},"Image showing note that displays how nodes are using this config node","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-indicating-how-many-nodes-using-config-node.png",[14,610,611],{},"To view how many nodes are using a specific configuration, check the footer information in the config node's edit dialog.",[14,613,614],{},"Additionally, like common nodes, configuration nodes can be disabled and enabled in the same manner.",[26,616,618],{"id":617},"wires","Wires",[14,620,621],{},[20,622],{"alt":623,"dataZoomable":23,"src":624,"title":623},"Image showing wires","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fnode-wire.png",[14,626,627],{},"The \"wires\" refer to the connections that link nodes together to define the flow of data. These wires visually represent the direction and flow of information from one node to another within a Node-RED flow.",[112,629,631],{"id":630},"wiring-nodes-together","Wiring Nodes Together",[14,633,634],{},[57,635,639],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":636,"width":637,"height":638,"preload":63},"Video showing how to wire node's together",554,159,[65,640],{"src":641,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fwiring-nodes-together.webm",[14,643,644,645,647,648,650,651,647,653,655],{},"To connect the nodes using the wires, left-click on the node's output port and drag the wire to the destination input port. Additionally, if you press the ",[40,646,42],{},"\u002F",[40,649,477],{}," and mouse left key on the input or output port you will not need to hold the left mouse key or any other button to drag the wire. To connect it to the destination port, press the left mouse key on destination port. If the ",[40,652,42],{},[40,654,477],{}," key remains pressed after connecting to the destination port, and if that port's node has an output port, a new wire will be dragged.",[14,657,658],{},"The wires can be connected from the input port to the output port, not from the input port to the input port or the output port to the output port.",[112,660,662],{"id":661},"deleting-wires","Deleting Wires",[14,664,665],{},[57,666,670],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":667,"width":668,"height":669,"preload":63},"Video showing how to delete the wires",516,112,[65,671],{"src":672,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fdeleting-wires.webm",[14,674,675,676,679],{},"To delete wires, click the left mouse button to select the first wire. To select multiple wires, press and hold the ",[40,677,678],{},"Ctrl\\Command"," key while clicking each wire with the left mouse button. If you use only the left mouse button, you can select only one wire at a time. After selecting the wires, press the 'delete' or 'backspace' key to delete them.",[112,681,683],{"id":682},"moving-wires","Moving Wires",[14,685,686],{},[57,687,691],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":688,"width":689,"height":690,"preload":63},"Video showing how to move a single wire",626,207,[65,692],{"src":693,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fmoving-wire.webm",[14,695,696,697,700],{},"To disconnect the wire from the port, select the wire by clicking on it. Then press and hold the ",[40,698,699],{},"Shift"," key while the left mouse key is pressed on the port. When the mouse is dragged you'll see the wire disconnects from the port and can be connected to another port.",[14,702,703],{},[57,704,708],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":705,"width":706,"height":707,"preload":63},"Video showing how to move multiple wires",635,249,[65,709],{"src":710,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fmoving-multiple-wires.webm",[14,712,713],{},"If a port has multiple wires connected to it, if none of them are selected when the button is pressed with the Shift key held, all of the wires will move.",[112,715,717],{"id":716},"slicing-wires","Slicing Wires",[14,719,720],{},[57,721,725],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":722,"width":723,"height":724,"preload":63},"Video showing how to slice wires quickly",689,173,[65,726],{"src":727,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fslicing-wires.webm",[14,729,730,731,647,734,737],{},"Wires can also be removed by slicing through them. You can do this by holding the ",[40,732,733],{},"Alt",[40,735,736],{},"Option"," key and then drawing the line for slicing by holding the left mouse key.",[112,739,741],{"id":740},"detaching-nodes","Detaching Nodes",[436,743,745],{"id":744},"keeping-wire-while-deleting-node","Keeping Wire While Deleting Node",[14,747,748],{},[57,749,753],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":750,"width":751,"height":752,"preload":63},"Video showing how to delete nodes while keeping wires",710,169,[65,754],{"src":755,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fremoving-nodes-while-keeping-wires.webm",[14,757,758,759,647,761,763],{},"To do that, press and hold the ",[40,760,42],{},[40,762,477],{}," key, select the node by clicking the left mouse key, and then press the \"delete\" or \"backspace\" button.",[436,765,767],{"id":766},"detaching-node-from-wires","Detaching Node from Wires",[14,769,770],{},[57,771,775],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":772,"width":773,"height":774,"preload":63},"Video showing how to detach nodes while keeping wires",664,168,[65,776],{"src":777,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fdetaching-nodes-while-keeping-wires.webm",[14,779,780,781,785],{},"To use this option, you have to set the ",[126,782,784],{"href":783},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader#keyboard-shortcuts","keyboard shortcut"," for the \"detach-selected-nodes\" action.",[26,787,789],{"id":788},"groups","Groups",[14,791,792],{},[20,793],{"alt":794,"dataZoomable":23,"src":795,"title":794},"Image showing flow's group","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fgroup.png",[14,797,798],{},"In Node-RED, groups can be created for better organization, containing a single object with included node configurations within the editor.",[112,800,802],{"id":801},"creating-a-flow-group","Creating a Flow Group",[14,804,805],{},[57,806,808],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":807,"width":61,"height":254,"preload":63},"Video showing how to create the group",[65,809],{"src":810,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fcreating-group.webm",[14,812,813,814,817,818,97],{},"To create a flow group, select nodes (by holding the Ctrl key or drawing a rectangle around them). Navigate to ",[40,815,816],{},"Groups -> Group selection"," in the main menu or press ",[40,819,820],{},"Ctrl + Shift + G",[112,822,824],{"id":823},"editing-group-properties","Editing Group Properties",[14,826,827],{},[20,828],{"alt":829,"dataZoomable":23,"src":830,"title":829},"Image showing group edit dialog","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fgroup-properties.png",[14,832,833],{},"A flow group can have a name, background color, and border label visible in the workspace. By default, it has a gray border with no background or name.",[14,835,836],{},"To style and name a group, double-click on it. Enter the name, select outline and background colors under the fill property, adjust label position and color, then click \"Done\" from the top-right corner.",[112,838,840],{"id":839},"adding-group-level-environment-variables","Adding Group-Level Environment Variables",[14,842,843],{},[20,844],{"alt":89,"dataZoomable":23,"src":845,"title":89},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fgroup-level-env.png",[14,847,848],{},"To add environment variables at the group level, double-click on it. Select the second option from the top-right in the popup, located under the \"Done\" button. Click the bottom-most \"Add\" button to add variables.",[112,850,852],{"id":851},"adding-description","Adding Description",[14,854,855],{},[20,856],{"alt":857,"dataZoomable":23,"src":858,"title":857},"Image showing group edit dialog's description tab","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fgroup-description.png",[14,860,861],{},"To add a description to the group, double-click on it. Select the third option from the top-right in the popup, under the \"Done\" button. Enter the description in Markdown format.",[112,863,865],{"id":864},"adding-nodes-to-a-group","Adding Nodes to a Group",[14,867,868],{},[57,869,873],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":870,"width":871,"height":872,"preload":63},"Video showing how to add nodes to existing group",750,302,[65,874],{"src":875,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fadding-nodes-to-group.webm",[14,877,878],{},"To add nodes to an existing group, drag and drop them into the group. This can be done one node at a time. Groups can also be nested within each other in the same manner.",[112,880,882],{"id":881},"removing-nodes-from-a-group","Removing Nodes from a Group",[14,884,885],{},[57,886,890],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":887,"width":888,"height":889,"preload":63},"Video showing how to remove nodes from existing group",681,259,[65,891],{"src":892,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fremoving-node-from-group.webm",[14,894,895,896,899],{},"To remove nodes from a group, select the nodes and navigate to ",[40,897,898],{},"Groups -> Remove selection"," in the main menu. Similarly, remove a group from another group. Alternatively, click on a node, hold the 'Alt' key, and drag it outside of the group.",[112,901,903],{"id":902},"merging-groups","Merging Groups",[14,905,906],{},[57,907,909],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":908,"width":61,"height":254,"preload":63},"Video showing how to merge multple groups into single group",[65,910],{"src":911,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fgroup-merging-groups.webm",[14,913,914,915,97],{},"To merge multiple groups into a single group, select the groups. Go to ",[40,916,917],{},"Main Menu -> Groups -> Merge selection",[112,919,921],{"id":920},"ungrouping-selected-nodes","Ungrouping Selected Nodes",[14,923,924],{},[57,925,928],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":926,"width":61,"height":927,"preload":63},"Video showing how to ungroup selected nodes",317,[65,929],{"src":930,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fremoving-nodes-from-group.webm",[14,932,933,934,97],{},"To ungroup nodes from a group, select the nodes. Go to ",[40,935,936],{},"Main Menu -> Groups -> Ungroup selection",[26,938,940],{"id":939},"selection","Selection",[14,942,943],{},"Node-RED Editor provides an easy interface for selecting the nodes and the wires on the workspace.",[14,945,946,947,950,951,97],{},"A node can be selected or deselected by clicking on it. To select multiple nodes, press the ",[40,948,949],{},"Ctrl\u002FCommand"," key and select the nodes you want to select. To select all of the nodes in the workspace, click ",[40,952,953],{},"Ctrl+A",[112,955,957],{"id":956},"lasso-tool","Lasso Tool",[14,959,960],{},[57,961,965],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":962,"width":963,"height":964,"preload":63},"Video showing the lasso tool selection",497,288,[65,966],{"src":967,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Flasso-tool.webm",[14,969,970],{},"Node-RED provides a lasso tool to make selection faster. To use the lasso tool, press the left mouse key and drag the cursor, then you can select multiple nodes by drawing a rectangle around them.",[112,972,974],{"id":973},"selecting-connected-nodes","Selecting Connected Nodes",[14,976,977],{},[57,978,982],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":979,"width":980,"height":981,"preload":63},"Video showing how to select connected nodes",625,189,[65,983],{"src":984,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fselecting-connected-nodes.webm",[14,986,987,988,990],{},"To select all connected nodes to a specific node, press the ",[40,989,699],{}," button and click on the middle of that node.",[112,992,994],{"id":993},"selecting-all-upstream-nodes","Selecting All Upstream Nodes",[14,996,997],{},[57,998,1002],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":999,"width":1000,"height":1001,"preload":63},"Video showing how to select upstream connected nodes",648,184,[65,1003],{"src":1004,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fselecting-upward-connected-nodes.webm",[14,1006,1007,1008,1010],{},"To select all of the connected nodes that are before that specific node, press the ",[40,1009,699],{}," button and while holding it click on the left part of that node.",[112,1012,1014],{"id":1013},"selecting-all-downstream-nodes","Selecting All Downstream Nodes",[14,1016,1017],{},[57,1018,1022],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":1019,"width":1020,"height":1021,"preload":63},"Video showing how to select downstream connected nodes",590,148,[65,1023],{"src":1024,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fselecting-downward-connected-nodes.webm",[14,1026,1027,1028,1030],{},"To select all of the connected nodes that are after that specific node, press the ",[40,1029,699],{}," button and while holding it click on the right part of that node.",[112,1032,1034],{"id":1033},"selecting-flows","Selecting Flows",[14,1036,1037],{},[57,1038,1041],{"autoPlay":59,"loop":59,"muted":59,"playsInline":59,"ariaLabel":1039,"width":61,"height":1040,"preload":63},"Video showing how to select multiple flows at a time",135,[65,1042],{"src":1043,"type":68},"\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fimages\u002Fselecting-flows.webm",[14,1045,1046,1047,1049],{},"To select the flow tabs, press the ",[40,1048,949],{}," key and while holding it click on the flow tab you want to select. Now you can then delete, export, or copy them collectively.",{"title":23,"searchDepth":1051,"depth":1051,"links":1052},4,[1053,1055,1056,1064,1073,1084,1094,1104],{"id":28,"depth":1054,"text":29},2,{"id":77,"depth":1054,"text":78},{"id":100,"depth":1054,"text":101,"children":1057},[1058,1060,1061,1062,1063],{"id":114,"depth":1059,"text":115},3,{"id":133,"depth":1059,"text":134},{"id":146,"depth":1059,"text":147},{"id":168,"depth":1059,"text":169},{"id":190,"depth":1059,"text":191},{"id":206,"depth":1054,"text":207,"children":1065},[1066,1067,1068,1069,1070,1071,1072],{"id":225,"depth":1059,"text":226},{"id":247,"depth":1059,"text":248},{"id":290,"depth":1059,"text":291},{"id":312,"depth":1059,"text":313},{"id":325,"depth":1059,"text":326},{"id":345,"depth":1059,"text":346},{"id":358,"depth":1059,"text":359},{"id":375,"depth":1054,"text":376,"children":1074},[1075,1080,1081,1082,1083],{"id":430,"depth":1059,"text":431,"children":1076},[1077,1078,1079],{"id":438,"depth":1051,"text":439},{"id":450,"depth":1051,"text":451},{"id":490,"depth":1051,"text":491},{"id":502,"depth":1059,"text":503},{"id":537,"depth":1059,"text":538},{"id":550,"depth":1059,"text":551},{"id":563,"depth":1059,"text":564},{"id":617,"depth":1054,"text":618,"children":1085},[1086,1087,1088,1089,1090],{"id":630,"depth":1059,"text":631},{"id":661,"depth":1059,"text":662},{"id":682,"depth":1059,"text":683},{"id":716,"depth":1059,"text":717},{"id":740,"depth":1059,"text":741,"children":1091},[1092,1093],{"id":744,"depth":1051,"text":745},{"id":766,"depth":1051,"text":767},{"id":788,"depth":1054,"text":789,"children":1095},[1096,1097,1098,1099,1100,1101,1102,1103],{"id":801,"depth":1059,"text":802},{"id":823,"depth":1059,"text":824},{"id":839,"depth":1059,"text":840},{"id":851,"depth":1059,"text":852},{"id":864,"depth":1059,"text":865},{"id":881,"depth":1059,"text":882},{"id":902,"depth":1059,"text":903},{"id":920,"depth":1059,"text":921},{"id":939,"depth":1054,"text":940,"children":1105},[1106,1107,1108,1109,1110],{"id":956,"depth":1059,"text":957},{"id":973,"depth":1059,"text":974},{"id":993,"depth":1059,"text":994},{"id":1013,"depth":1059,"text":1014},{"id":1033,"depth":1059,"text":1034},"https:\u002F\u002Fgithub.com\u002FFlowFuse\u002Fwebsite\u002Fedit\u002Fmain\u002Fnuxt\u002Fcontent-guides\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace.md","md",null,{},50,"Workspace","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace",{"title":5,"description":16},"docs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace","2026-09-08 11:02:51 +0200","IC0yy7k45m11xqHiQfNq7erpTtR9Trk_9Nr7K8iDJC0",{"id":1123,"extension":1124,"meta":1125,"sections":1126,"stem":1525,"__hash__":1526},"featureCatalog\u002Ffeature-catalog.yml","yml",{},[1127,1188,1289,1351,1428,1507],{"id":1128,"title":1129,"features":1130},"ai-automation","AI & Automation",[1131,1141,1151,1161,1167,1177,1183],{"id":1132,"title":1133,"description":1134,"docsLink":1135,"changelog":1136,"tiers":1140},"flowfuse-expert-ai","FlowFuse Expert AI","Build industrial apps with agents, and query the state of the factory with an agent. Adapt your current hardware and machines so agentic work can be done against them, without ripping and replacing what's already on the plant floor.","\u002Fdocs\u002Fuser\u002Fexpert\u002F",[1137],{"url":1138,"release":1139},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner\u002F","2.28",{"edge":59,"hub":59,"fleet":59},{"id":1142,"title":1143,"description":1144,"docsLink":1145,"changelog":1146,"subfeature":59,"showOnPricing":1149,"tiers":1150},"flowfuse-expert-support-mode","Support Mode","Chat-based assistance for FlowFuse and Node-RED, including Node-RED instance management through natural language.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F#support-mode",[1147],{"url":1148,"release":1139},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context\u002F",false,{"edge":59,"hub":59,"fleet":59},{"id":1152,"title":1153,"description":1154,"docsLink":1155,"changelog":1156,"subfeature":59,"showOnPricing":1149,"tiers":1160},"flowfuse-expert-application-building","Application Building","Describe what you want to build and FlowFuse Expert assembles it on your workspace, adding tabs, wiring nodes, and configuring properties.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F",[1157],{"url":1158,"release":1159},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building\u002F","2.30",{"edge":59,"hub":59,"fleet":59},{"id":1162,"title":1163,"description":1164,"docsLink":1165,"subfeature":59,"beta":59,"showOnPricing":1149,"tiers":1166},"flowfuse-expert-insights-mode","Insights Mode","Connects FlowFuse Expert to MCP servers in your Node-RED instances, enabling real-time data queries and actions through a single chat interface.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat\u002F#insights-mode",{"edge":59,"hub":59,"fleet":59},{"id":1168,"title":1169,"description":1170,"docsLink":1171,"changelog":1172,"tiers":1176},"third-party-agents","Connect Your Own AI Agent","Point the AI agent your company already uses at FlowFuse, so it can query your teams and instances and build Node-RED applications, with you deciding which teams it reaches and whether it can make changes.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents\u002F",[1173],{"url":1174,"release":1175},"\u002Fchangelog\u002F2026\u002F08\u002Fconnect-your-own-ai-agent\u002F","3.0",{"edge":59,"hub":59,"fleet":59},{"id":1178,"title":1179,"description":1180,"docsLink":1181,"tiers":1182},"mcp-servers","Agentic Operations","Expose your Node-RED flows as tools an AI agent can call directly, so agents can query the state of the factory or trigger actions without custom integration work.","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1184,"title":1185,"description":1186,"tiers":1187},"onnx-integration","ONNX Integration","Run trained machine learning models directly in your flows, including on edge hardware, without sending data out to an external inference service.",{"edge":59,"hub":59,"fleet":59},{"id":1189,"title":1190,"features":1191},"build","Build",[1192,1198,1204,1214,1220,1226,1230,1236,1242,1250,1256,1260,1264,1273,1281],{"id":1193,"title":1194,"description":1195,"docsLink":1196,"tiers":1197},"edge-development","Edge Development","Develop and test Node-RED flows directly on edge devices with a remote editor proxy.","\u002Fdocs\u002Fdevice-agent\u002Fquickstart\u002F",{"edge":59,"hub":1149,"fleet":59},{"id":1199,"title":1200,"description":1201,"docsLink":1202,"tiers":1203},"private-npm-registry","Custom Node-RED Nodes","Create and manage your own private npm registry for Node-RED nodes, so you can share custom nodes across your team and devices without publishing them publicly.","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1205,"title":1206,"description":1207,"docsLink":1208,"changelog":1209,"tiers":1213},"flowfuse-tables","FlowFuse Tables","A managed PostgreSQL database for every application, so you can store and query structured data without standing up and maintaining your own database.","\u002Fdocs\u002Fuser\u002Fff-tables\u002F",[1210],{"url":1211,"release":1212},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation\u002F","2.33",{"edge":59,"hub":59,"fleet":59},{"id":1215,"title":1216,"description":1217,"docsLink":1218,"tiers":1219},"persistent-files","File Storage","Store and retrieve files from your Node-RED flows, with automatic replication and backup across your devices and hosted instances.","\u002Fdocs\u002Finstall\u002Ffile-storage\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1221,"title":1222,"description":1223,"docsLink":1224,"showOnPricing":1149,"tiers":1225},"persistent-context","Persistent Context","In-memory values defined in a Node-RED flow persist across project restarts and upgrades.","\u002Fdocs\u002Fuser\u002Fpersistent-context\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1227,"title":1228,"showOnPricing":1149,"tiers":1229},"static-assets","Static Assets",{"edge":59,"hub":59,"fleet":59},{"id":1231,"title":1232,"description":1233,"docsLink":1234,"tiers":1235},"team-library","Team Library","Set up standard nodes and flows that can be shared with all team members across your organisation.","\u002Fdocs\u002Fuser\u002Fshared-library\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1237,"title":1238,"description":1239,"docsLink":1240,"tiers":1241},"personalised-multi-user-dashboards","Personalised Multi-User Dashboards","Build applications that provide unique data to each logged-in user using personalised multi-user dashboards.","https:\u002F\u002Fdashboard.flowfuse.com\u002Fuser\u002Fmulti-tenancy.html",{"edge":59,"hub":59,"fleet":59},{"id":1243,"title":1244,"description":1245,"changelog":1246,"subfeature":59,"showOnPricing":1149,"tiers":1249},"dashboards-view","Dashboards View","Browse and open every dashboard across your team from a dedicated Dashboards view, at both team and application level, without leaving FlowFuse.",[1247],{"url":1248,"release":1212},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1251,"title":1252,"description":1253,"docsLink":1254,"tiers":1255},"blueprints-converge","Blueprints","Ready-made starting points for your apps, from cross-team Converge templates to OT and IT specific blueprints.","\u002Fdocs\u002Fuser\u002Fconcepts\u002F#blueprint",{"edge":59,"hub":59,"fleet":59},{"id":1257,"title":1258,"subfeature":59,"showOnPricing":1149,"tiers":1259},"blueprints-ot-apps","Blueprints - OT APPS",{"edge":59,"hub":1149,"fleet":59},{"id":1261,"title":1262,"subfeature":59,"showOnPricing":1149,"tiers":1263},"blueprints-it-apps","Blueprints - IT APPS",{"edge":1149,"hub":59,"fleet":1149},{"id":1265,"title":1266,"description":1267,"changelog":1268,"showOnPricing":1149,"tiers":1272},"immersive-editor-snapshots","Snapshot Details in Immersive Editor","View and manage snapshot details directly inside the immersive editor without leaving your editing session.",[1269],{"url":1270,"release":1271},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor\u002F","2.29",{"edge":59,"hub":59,"fleet":59},{"id":1274,"title":1275,"description":1276,"changelog":1277,"showOnPricing":1149,"tiers":1280},"immersive-editor-drawer","Customisable Immersive Editor Drawer","Pin, move, resize, or full-screen the immersive editor drawer. Your preferences are remembered between sessions.",[1278],{"url":1279,"release":1159},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1282,"title":1283,"description":1284,"changelog":1285,"showOnPricing":1149,"tiers":1288},"embedded-editor-tab-title","Embedded Editor Browser Tab Title","The browser tab title updates to reflect the active Node-RED canvas tab when working in the embedded editor.",[1286],{"url":1287,"release":1271},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1290,"title":1291,"features":1292},"deploy","Deploy",[1293,1299,1308,1314,1320,1326,1332,1338,1343],{"id":1294,"title":1295,"description":1296,"docsLink":1297,"tiers":1298},"hosted-instances","Cloud Instances","Run Node-RED instances managed and hosted by FlowFuse.","\u002Fdocs\u002Fuser\u002Fintroduction\u002F#creating-a-node-red-instance",{"edge":59,"hub":59,"fleet":59},{"id":1300,"title":1301,"description":1302,"docsLink":1303,"changelog":1304,"tiers":1307},"edge-devices","Edge Instances","Deploy and mange your Node-RED instances on edge PLCs and gateways, with full visibility and control from the cloud.","\u002Fdocs\u002Fdevice-agent\u002Fintroduction\u002F",[1305],{"url":1306,"release":1139},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options\u002F",{"edge":59,"hub":1149,"fleet":59},{"id":1309,"title":1310,"description":1311,"docsLink":1312,"tiers":1313},"custom-hostnames","Custom Hostnames","Access your Node-RED application via your own domain name.","\u002Fdocs\u002Fuser\u002Fcustom-hostnames\u002F",{"edge":1149,"hub":59,"fleet":1149},{"id":1315,"title":1316,"description":1317,"docsLink":1318,"tiers":1319},"mqtt-broker","MQTT Broker","Manage and create MQTT clients to transport data for efficient messaging and communication within your applications.","\u002Fdocs\u002Fuser\u002Fteambroker\u002F",{"edge":59,"hub":1149,"fleet":59},{"id":1321,"title":1322,"description":1323,"docsLink":1324,"showOnPricing":1149,"tiers":1325},"project-nodes","Project Nodes aka seamless project comms","FlowFuse Project Nodes enable the passing of data and messages between your Node-RED projects.","\u002Fdocs\u002Fuser\u002Fprojectnodes\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1327,"title":1328,"description":1329,"docsLink":1330,"tiers":1331},"devops-pipelines","DevOps Pipelines","Set up different environments for development, testing, and production Node-RED instances to support a full software delivery lifecycle.","\u002Fdocs\u002Fuser\u002Fdevops-pipelines\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1333,"title":1334,"description":1335,"docsLink":1336,"tiers":1337},"git-integration","Git Integration","Back up your flows to a remote Git repository through a DevOps Pipeline. Supports GitHub and Azure DevOps repositories.","\u002Fdocs\u002Fuser\u002Fdevops-pipelines\u002F#git-repository-stage",{"edge":1149,"hub":59,"fleet":1149},{"id":1339,"title":1340,"description":1341,"docsLink":1336,"subfeature":59,"showOnPricing":1149,"tiers":1342},"git-integration-github","GitHub","Push and pull snapshots to GitHub repositories through DevOps Pipeline Git Stages.",{"edge":1149,"hub":59,"fleet":1149},{"id":1344,"title":1345,"description":1346,"docsLink":1336,"changelog":1347,"subfeature":59,"showOnPricing":1149,"tiers":1350},"git-integration-azure","Azure DevOps","Push and pull snapshots to Azure DevOps repositories through DevOps Pipeline Git Stages.",[1348],{"url":1349,"release":1271},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops\u002F",{"edge":1149,"hub":59,"fleet":1149},{"id":1352,"title":1353,"features":1354},"operate-maintain","Operate & Maintain",[1355,1361,1367,1372,1380,1384,1388,1393,1399,1405,1410,1416,1420,1424],{"id":1356,"title":1357,"description":1358,"docsLink":1359,"tiers":1360},"snapshots","Snapshots & Version History","Automatic snapshots on remote devices and hosted instances, plus a full version history timeline so you can roll back to any prior state.","\u002Fdocs\u002Fuser\u002Fsnapshots\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1362,"title":1363,"description":1364,"docsLink":1365,"subfeature":59,"showOnPricing":1149,"tiers":1366},"auto-snapshot-remote","Auto Snapshot (Remote)","Automatically capture a snapshot every time a remote instance is deployed, so you always have a recoverable history of what was running on each device.","\u002Fdocs\u002Fuser\u002Fsnapshots\u002F#auto-snapshots",{"edge":59,"hub":59,"fleet":59},{"id":1368,"title":1369,"description":1370,"docsLink":1365,"subfeature":59,"showOnPricing":1149,"tiers":1371},"auto-snapshot-hosted","Auto Snapshot (Hosted)","Automatically capture a snapshot every time a hosted instance is deployed, so you always have a recoverable history of what was running.",{"edge":59,"hub":59,"fleet":59},{"id":1373,"title":1374,"description":1375,"changelog":1376,"subfeature":59,"showOnPricing":1149,"tiers":1379},"snapshot-comparison","Snapshot Comparison","Compare two snapshots side-by-side with a navigable diff view. Step through every changed, added, or deleted node and see property and code diffs.",[1377],{"url":1378,"release":1271},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1381,"title":1382,"subfeature":59,"showOnPricing":1149,"tiers":1383},"version-history-timeline","Version History Timeline",{"edge":59,"hub":59,"fleet":59},{"id":1385,"title":1386,"tiers":1387},"unlimited-workflow-executions","Unlimited Workflow Executions",{"edge":59,"hub":59,"fleet":59},{"id":1389,"title":1390,"description":1391,"tiers":1392},"device-fleet-updates","Device Fleet Updates","Connect to edge devices to quickly assess and update logic. Debug one device and roll out improvements to your fleet in minutes, securely without requiring full device access for your whole organisation.",{"edge":59,"hub":1149,"fleet":59},{"id":1394,"title":1395,"description":1396,"docsLink":1397,"tiers":1398},"device-group-management","Device Group Management","Logically group devices assigned to an application and integrate device groups into your DevOps Pipeline for coordinated fleet updates.","\u002Fdocs\u002Fuser\u002Fdevice-groups\u002F",{"edge":59,"hub":1149,"fleet":59},{"id":1400,"title":1401,"description":1402,"docsLink":1403,"tiers":1404},"high-availability","High Availability","Leverage horizontal scaling for reliable and scalable processing of your data through Node-RED.","\u002Fdocs\u002Fuser\u002Fhigh-availability\u002F",{"edge":1149,"hub":59,"fleet":1149},{"id":1406,"title":1407,"description":1408,"tiers":1409},"performance-monitoring","Performance Monitoring & Alerts","Track CPU, memory, and event loop performance across your instances and devices, with email alerts when something needs your attention.",{"edge":59,"hub":59,"fleet":59},{"id":1411,"title":1412,"description":1413,"docsLink":1414,"subfeature":59,"showOnPricing":1149,"tiers":1415},"instance-monitoring","Instance Monitoring","Enable alerts to be sent via email when your Node-RED instances encounter issues.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#alerts",{"edge":59,"hub":59,"fleet":59},{"id":1417,"title":1418,"subfeature":59,"showOnPricing":1149,"tiers":1419},"email-alerts","Email Alerts",{"edge":59,"hub":59,"fleet":59},{"id":1421,"title":1422,"showOnPricing":1149,"tiers":1423},"api-debug-length-limit","API\u002FDebug Length Limit",{"edge":59,"hub":59,"fleet":59},{"id":1425,"title":1426,"tiers":1427},"protected-instances","Protected Instances",{"edge":1149,"hub":59,"fleet":1149},{"id":1429,"title":1430,"features":1431},"govern-secure","Govern and Secure",[1432,1441,1447,1453,1458,1464,1470,1476,1484,1490,1496,1502],{"id":1433,"title":1434,"description":1435,"docsLink":1436,"changelog":1437,"tiers":1440},"single-sign-on","Single Sign-On (SSO)","Configure FlowFuse to work with your own SSO provider, allowing users to access FlowFuse with a single set of login credentials.","\u002Fdocs\u002Fadmin\u002Fsso\u002F",[1438],{"url":1439,"release":1212},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1442,"title":1443,"description":1444,"docsLink":1445,"tiers":1446},"two-factor-authentication","Two-Factor Authentication","Two-factor authentication adds an extra layer of security to your FlowFuse account.","\u002Fdocs\u002Fuser\u002Fuser-settings\u002F#two-factor-authentication",{"edge":59,"hub":59,"fleet":59},{"id":1448,"title":1449,"description":1450,"docsLink":1451,"tiers":1452},"certified-nodes-it","Certified Nodes - IT","IT certified node bundle includes: Redis, MQTT, HTTP Request, AI nodes (Gemini, Claude, ChatGPT, Ollama), MCP Server","\u002Fblog\u002F2025\u002F07\u002Fcertified-nodes-v2\u002F",{"edge":1149,"hub":59,"fleet":59},{"id":1454,"title":1455,"description":1456,"tiers":1457},"certified-nodes-ot","Certified OT Connections - OPC-UA, Modbus, etc.","OT certified node bundle includes: OPC-UA, Modbus TCP & RTU, RTSP, EtherNet\u002FIP, AI nodes (Gemini, Claude, ChatGPT, Ollama), MCP Server",{"edge":59,"hub":1149,"fleet":1149},{"id":1459,"title":1460,"description":1461,"docsLink":1462,"tiers":1463},"audit-log","Audit Log","Keep track of everything going on in your Node-RED instances and FlowFuse. Audit Logs provide details on what actions have taken place, when they happened, and who did them.","\u002Fdocs\u002Fuser\u002Flogs\u002F#audit-log",{"edge":59,"hub":59,"fleet":59},{"id":1465,"title":1466,"description":1467,"docsLink":1468,"tiers":1469},"role-based-access-control","Role-Based Access Control","Control who can do what at both the team and application level, from viewers to admins.","\u002Fdocs\u002Fuser\u002Frole-based-access-control\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1471,"title":1472,"description":1473,"docsLink":1474,"subfeature":59,"showOnPricing":1149,"tiers":1475},"application-level-rbac","Application-Level RBAC","Fine-grained access control per application, allowing team members to have different permission levels across different applications without requiring separate teams.","\u002Fdocs\u002Fuser\u002Frole-based-access-control\u002F#application-level-rbac",{"edge":59,"hub":59,"fleet":59},{"id":1477,"title":1478,"description":1479,"changelog":1480,"subfeature":59,"showOnPricing":1149,"tiers":1483},"scoped-personal-access-tokens","Scoped Personal Access Tokens","Restrict a Personal Access Token to specific teams, limit it to read-only operations, or control whether it carries admin privileges.",[1481],{"url":1482,"release":1212},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats\u002F",{"edge":59,"hub":59,"fleet":59},{"id":1485,"title":1486,"description":1487,"docsLink":1488,"showOnPricing":1149,"tiers":1489},"team-members","Team Members","Invite multiple team members to collaborate on the same Node-RED flows.","\u002Fdocs\u002Fuser\u002Fteam\u002F#teams",{"edge":59,"hub":59,"fleet":59},{"id":1491,"title":1492,"description":1493,"docsLink":1494,"showOnPricing":1149,"tiers":1495},"endpoint-security","Endpoint Security","Secure HTTP endpoints for hosted Node-RED instances using FlowFuse credentials.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#security",{"edge":59,"hub":59,"fleet":59},{"id":1497,"title":1498,"description":1499,"docsLink":1500,"tiers":1501},"baa-for-hipaa","BAA for HIPAA","FlowFuse can sign a Business Associate Agreement to ensure proper safeguarding of protected health information handled on your behalf.","\u002Fhandbook\u002Fsales\u002Fsubscription-agreement-1.6\u002F",{"edge":1149,"hub":59,"fleet":1149},{"id":1503,"title":1504,"description":1505,"tiers":1506},"sbom","Software Bill of Materials","A complete list of all software components used in your Node-RED instances and hosted applications, including version numbers and license information.",{"edge":1149,"hub":59,"fleet":1149},{"id":1508,"title":1509,"features":1510},"support","Support",[1511,1516,1520],{"id":1512,"title":1513,"docsLink":1514,"tiers":1515},"installation-support","Installation Support","\u002Fdocs\u002Finstall\u002Fintroduction\u002F#do-you-need-help-installation-service",{"edge":59,"hub":59,"fleet":59},{"id":1517,"title":1518,"showOnPricing":1149,"tiers":1519},"live-chat-support","Live Chat Support",{"edge":59,"hub":59,"fleet":59},{"id":1521,"title":1522,"docsLink":1523,"tiers":1524},"enterprise-support","Enterprise Support","\u002Fdocs\u002Fpremium-support\u002F",{"edge":59,"hub":59,"fleet":59},"feature-catalog","v5NjPsqOkQexQ0Fk82nqY6ZEXj128lclDvrIkmsKbpM",[1528,1616,1853,1924,1937,2077,2087,2168],{"name":1529,"order":1530,"children":1531},"Application Guide",0,[1532,1582],{"title":1533,"path":1534,"group":1529,"groupOrder":1530,"order":1535,"children":1536},"Building FlowFuse applications","\u002Fdocs\u002Fapplication-guide",1,[1537,1541,1553,1557,1573],{"title":1538,"path":1539,"order":1535,"children":1540},"Foundations","\u002Fdocs\u002Fapplication-guide\u002Ffoundations",[],{"title":1542,"path":1543,"order":1054,"children":1544},"App delivery methods","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods",[1545,1549],{"title":1546,"path":1547,"order":1535,"children":1548},"Hardware apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fhardware-apps",[],{"title":1550,"path":1551,"order":1054,"children":1552},"Software apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fsoftware-apps",[],{"title":1554,"path":1555,"order":1059,"children":1556},"Data plane","\u002Fdocs\u002Fapplication-guide\u002Fdata-plane",[],{"title":1558,"path":1559,"order":1051,"children":1560},"Architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures",[1561,1565,1569],{"title":1562,"path":1563,"order":1535,"children":1564},"IT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fit",[],{"title":1566,"path":1567,"order":1054,"children":1568},"OT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fot",[],{"title":1570,"path":1571,"order":1059,"children":1572},"IIoT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fiiot",[],{"title":1574,"path":1575,"order":1576,"children":1577},"Worked examples","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples",5,[1578],{"title":1579,"path":1580,"order":1535,"children":1581},"OEE, end to end","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples\u002Foee",[],{"title":1583,"path":1584,"group":1529,"groupOrder":1530,"order":1054,"children":1585},"Designing Node-RED flows","\u002Fdocs\u002Fnode-red-guide",[1586,1589,1605],{"title":1538,"path":1587,"order":1535,"children":1588},"\u002Fdocs\u002Fnode-red-guide\u002Ffoundations",[],{"title":1590,"path":1591,"order":1054,"children":1592},"Patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns",[1593,1597,1601],{"title":1594,"path":1595,"order":1535,"children":1596},"Design patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fdesign-patterns",[],{"title":1598,"path":1599,"order":1054,"children":1600},"Handling data","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fhandling-data",[],{"title":1602,"path":1603,"order":1059,"children":1604},"Good form","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fgood-form",[],{"title":1574,"path":1606,"order":1059,"children":1607},"\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples",[1608,1612],{"title":1609,"path":1610,"order":1535,"children":1611},"OEE - Edge Aggregator","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-edge-aggregator",[],{"title":1613,"path":1614,"order":1054,"children":1615},"OEE - Central Dashboard","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-central-dashboard",[],{"name":1617,"order":1535,"children":1618},"FlowFuse User Manuals",[1619,1743,1747,1759],{"title":1620,"path":1621,"group":1617,"groupOrder":1535,"order":1535,"children":1622,"link":1149},"Using FlowFuse","\u002Fdocs\u002Fuser",[1623,1627,1631,1635,1639,1644,1648,1651,1655,1659,1662,1666,1682,1686,1690,1694,1698,1701,1704,1708,1712,1716,1720,1723,1727,1731,1735,1739],{"title":1624,"path":1625,"order":1535,"children":1626},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":1628,"path":1629,"order":1535,"children":1630},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":1632,"path":1633,"order":1054,"children":1634},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":1636,"path":1637,"order":1054,"children":1638},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":1640,"path":1641,"order":1642,"children":1643},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":1645,"path":1646,"order":1113,"children":1647},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":1310,"path":1649,"order":1113,"children":1650},"\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":1652,"path":1653,"order":1113,"children":1654},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":1656,"path":1657,"order":1113,"children":1658},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":1328,"path":1660,"order":1113,"children":1661},"\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":1663,"path":1664,"order":1113,"children":1665},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":1667,"path":1668,"order":1113,"children":1669},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[1670,1674,1678],{"title":1671,"path":1672,"order":1113,"children":1673},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":1675,"path":1676,"order":1113,"children":1677},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":1679,"path":1680,"order":1113,"children":1681},"Connect Your Own Agent","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents",[],{"title":1683,"path":1684,"order":1113,"children":1685},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":1687,"path":1688,"order":1113,"children":1689},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":1691,"path":1692,"order":1113,"children":1693},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":1695,"path":1696,"order":1113,"children":1697},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":1206,"path":1699,"order":1113,"children":1700},"\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":789,"path":1702,"order":1113,"children":1703},"\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":1705,"path":1706,"order":1113,"children":1707},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":1709,"path":1710,"order":1113,"children":1711},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":1713,"path":1714,"order":1113,"children":1715},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":1717,"path":1718,"order":1113,"children":1719},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":1466,"path":1721,"order":1113,"children":1722},"\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":1724,"path":1725,"order":1113,"children":1726},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":1728,"path":1729,"order":1113,"children":1730},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":1732,"path":1733,"order":1113,"children":1734},"Team Broker","\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":1736,"path":1737,"order":1113,"children":1738},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":1740,"path":1741,"order":1113,"children":1742},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],{"title":1744,"path":1745,"group":1617,"groupOrder":1535,"order":1054,"children":1746},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"title":1748,"path":1749,"group":1617,"groupOrder":1535,"order":1059,"children":1750,"link":1149},"Migrating a Node-RED project to FlowFuse","\u002Fdocs\u002Fmigration",[1751,1755],{"title":1752,"path":1753,"order":1535,"children":1754},"Introduction","\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":1756,"path":1757,"order":1113,"children":1758},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":1760,"path":1761,"group":1617,"groupOrder":1535,"order":1051,"children":1762},"FlowFuse Node-RED nodes","\u002Fdocs\u002Fflowfuse-nodes",[1763,1787,1807,1814,1834,1845],{"title":1764,"path":1765,"order":1535,"children":1766},"AI","\u002Fdocs\u002Fflowfuse-nodes\u002Fai",[1767,1771,1775,1779,1783],{"title":1768,"path":1769,"order":1576,"children":1770},"LLM Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fllm-nodes",[],{"title":1772,"path":1773,"order":1115,"children":1774},"Depth Estimation","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fdepth-estimation",[],{"title":1776,"path":1777,"order":1115,"children":1778},"Image Classification","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fimage-classification",[],{"title":1780,"path":1781,"order":1115,"children":1782},"Object Detection","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fobject-detection",[],{"title":1784,"path":1785,"order":1115,"children":1786},"ONXX","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fonxx",[],{"title":1788,"path":1789,"order":1054,"children":1790},"MCP","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp",[1791,1795,1799,1803],{"title":1792,"path":1793,"order":1115,"children":1794},"MCP Prompt","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-prompt",[],{"title":1796,"path":1797,"order":1115,"children":1798},"MCP Resource","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-resource",[],{"title":1800,"path":1801,"order":1115,"children":1802},"MCP Responses","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-response",[],{"title":1804,"path":1805,"order":1115,"children":1806},"MCP Tool","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-tool",[],{"title":1206,"path":1808,"order":1059,"children":1809},"\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables",[1810],{"title":1811,"path":1812,"order":1115,"children":1813},"Query","\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables\u002Fquery",[],{"title":1815,"path":1816,"order":1051,"children":1817},"Edge","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge",[1818,1822,1826,1830],{"title":1819,"path":1820,"order":1535,"children":1821},"RTSP Video Feed","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Frtsp",[],{"title":1823,"path":1824,"order":1054,"children":1825},"CIP Suite, EtherNet\u002FIP Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fcip-suite",[],{"title":1827,"path":1828,"order":1059,"children":1829},"Modbus","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fmodbus",[],{"title":1831,"path":1832,"order":1115,"children":1833},"OPC UA","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fopcua",[],{"title":1687,"path":1835,"order":1576,"children":1836},"\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt",[1837,1841],{"title":1838,"path":1839,"order":1115,"children":1840},"MQTT In","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-in",[],{"title":1842,"path":1843,"order":1115,"children":1844},"MQTT Out","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-out",[],{"title":1846,"path":1847,"order":1576,"children":1848},"Hub","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub",[1849],{"title":1850,"path":1851,"order":1535,"children":1852},"Redis","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub\u002Fredis",[],{"name":1854,"order":1054,"children":1855},"Device Agent",[1856,1905],{"title":1854,"path":1857,"group":1854,"groupOrder":1054,"order":1535,"children":1858,"link":1149},"\u002Fdocs\u002Fdevice-agent",[1859,1863,1867,1892,1896,1900],{"title":1860,"path":1861,"order":1535,"children":1862},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":1864,"path":1865,"order":1054,"children":1866},"Quick Start","\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":1868,"path":1869,"group":1870,"order":1059,"children":1871,"link":1149},"Installation","\u002Fdocs\u002Fdevice-agent\u002Finstall","DeviceAgentInstallation",[1872,1876,1880,1884,1888],{"title":1873,"path":1874,"group":1870,"order":1535,"children":1875},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview",[],{"title":1877,"path":1878,"group":1870,"order":1054,"children":1879},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":1881,"path":1882,"group":1870,"order":1059,"children":1883},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":1885,"path":1886,"group":1870,"order":1051,"children":1887},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":1889,"path":1890,"group":1870,"order":1576,"children":1891},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":1893,"path":1894,"order":1051,"children":1895},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":1897,"path":1898,"order":1576,"children":1899},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":1901,"path":1902,"order":1903,"children":1904},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":1906,"path":1907,"group":1854,"groupOrder":1054,"order":1054,"children":1908,"link":1149},"Hardware Guides","\u002Fdocs\u002Fhardware",[1909,1912,1916,1920],{"title":1873,"path":1910,"order":1535,"children":1911},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":1913,"path":1914,"order":1054,"children":1915},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":1917,"path":1918,"order":1059,"children":1919},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":1921,"path":1922,"order":1059,"children":1923},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"name":1925,"order":1059,"children":1926},"FlowFuse Cloud",[1927],{"title":1925,"path":1928,"group":1925,"groupOrder":1059,"order":1059,"children":1929,"link":1149},"\u002Fdocs\u002Fcloud",[1930,1933],{"title":1752,"path":1931,"order":1535,"children":1932},"\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":1934,"path":1935,"order":1113,"children":1936},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"name":1938,"order":1051,"children":1939},"FlowFuse Self-Hosted",[1940,1943,2018,2030],{"title":1864,"path":1941,"group":1938,"groupOrder":1051,"order":1535,"children":1942},"\u002Fdocs\u002Fquick-start",[],{"title":1944,"path":1945,"group":1938,"groupOrder":1051,"order":1054,"children":1946,"link":1149},"Installing FlowFuse","\u002Fdocs\u002Finstall",[1947,1950,1954,1958,1978,1982,1986,1990],{"title":1873,"path":1948,"order":1535,"children":1949},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":1951,"path":1952,"order":1113,"children":1953},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":1955,"path":1956,"order":1113,"children":1957},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":1959,"path":1960,"order":1113,"children":1961},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[1962,1966,1970,1974],{"title":1963,"path":1964,"order":1113,"children":1965},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":1967,"path":1968,"order":1113,"children":1969},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":1971,"path":1972,"order":1113,"children":1973},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":1975,"path":1976,"order":1113,"children":1977},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":1979,"path":1980,"order":1113,"children":1981},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":1983,"path":1984,"order":1113,"children":1985},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":1987,"path":1988,"order":1113,"children":1989},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":1991,"path":1992,"order":1113,"children":1993},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[1994,1998,2002,2006,2010,2014],{"title":1995,"path":1996,"order":1113,"children":1997},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":1999,"path":2000,"order":1113,"children":2001},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":2003,"path":2004,"order":1113,"children":2005},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":2007,"path":2008,"order":1113,"children":2009},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":2011,"path":2012,"order":1113,"children":2013},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":2015,"path":2016,"order":1113,"children":2017},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":2019,"path":2020,"group":1938,"groupOrder":1051,"order":1059,"children":2021},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[2022,2026],{"title":2023,"path":2024,"order":1113,"children":2025},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":2027,"path":2028,"order":1113,"children":2029},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"title":2031,"path":2032,"group":1938,"groupOrder":1051,"order":1051,"children":2033,"link":1149},"Administering FlowFuse","\u002Fdocs\u002Fadmin",[2034,2037,2049,2057,2061,2065,2069,2073],{"title":2031,"path":2035,"order":1535,"children":2036},"\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":2038,"path":2039,"order":1113,"children":2040},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[2041,2045],{"title":2042,"path":2043,"order":1113,"children":2044},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":2046,"path":2047,"order":1113,"children":2048},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":2050,"path":2051,"order":1113,"children":2052,"link":1149},"Hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[2053],{"title":2054,"path":2055,"order":1113,"children":2056},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":2058,"path":2059,"order":1113,"children":2060},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":2062,"path":2063,"order":1113,"children":2064},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":2066,"path":2067,"order":1113,"children":2068},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":2070,"path":2071,"order":1113,"children":2072},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":2074,"path":2075,"order":1113,"children":2076},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"name":1509,"order":1576,"children":2078},[2079,2083],{"title":2080,"path":2081,"group":1509,"groupOrder":1576,"order":1059,"children":2082},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":2084,"path":2085,"group":1509,"groupOrder":1576,"order":1113,"children":2086},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":2088,"order":1903,"children":2089},"Contributing",[2090],{"title":2091,"path":2092,"group":2088,"groupOrder":1903,"order":1113,"children":2093,"link":1149},"Contributing to FlowFuse","\u002Fdocs\u002Fcontribute",[2094,2097,2101,2105,2109,2113,2117,2125,2161,2164],{"title":1752,"path":2095,"order":1535,"children":2096},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":2098,"path":2099,"order":1113,"children":2100},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":2102,"path":2103,"order":1113,"children":2104},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":2106,"path":2107,"order":1113,"children":2108},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":2110,"path":2111,"order":1113,"children":2112},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":2114,"path":2115,"order":1113,"children":2116},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":2118,"path":2119,"order":1113,"children":2120},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[2121],{"title":2122,"path":2123,"order":1113,"children":2124},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":2126,"path":2127,"order":1113,"children":2128},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[2129,2133,2137,2141,2145,2149,2153,2157],{"title":2130,"path":2131,"order":1113,"children":2132},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":2134,"path":2135,"order":1113,"children":2136},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":2138,"path":2139,"order":1113,"children":2140},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":2142,"path":2143,"order":1113,"children":2144},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":2146,"path":2147,"order":1113,"children":2148},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":2150,"path":2151,"order":1113,"children":2152},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":2154,"path":2155,"order":1113,"children":2156},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":2158,"path":2159,"order":1113,"children":2160},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":1732,"path":2162,"order":1113,"children":2163},"\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":2165,"path":2166,"order":1113,"children":2167},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"name":2169,"order":2170,"children":2171},"Node-RED",7,[2172],{"title":2173,"path":2174,"group":2169,"groupOrder":2170,"order":1535,"children":2175},"Using Node-RED","\u002Fdocs\u002Fnode-red",[2176,2246,2425,2452,2491,2507,2523,2551,2571,2575],{"title":2177,"path":2178,"order":1054,"children":2179},"Getting started","\u002Fdocs\u002Fnode-red\u002Fgetting-started",[2180,2197,2201,2205,2209,2213,2217,2221,2225],{"title":2181,"path":2182,"order":1535,"children":2183},"Editor","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor",[2184,2188,2191,2195],{"title":2185,"path":2186,"order":1115,"children":2187},"Header","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader",[],{"title":2189,"path":445,"order":1115,"children":2190},"Palette",[],{"title":2192,"path":2193,"order":1115,"children":2194},"Sidebar","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fsidebar",[],{"title":1116,"path":1117,"order":1115,"children":2196},[],{"title":2198,"path":2199,"order":1054,"children":2200},"Port Configuration","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-port",[],{"title":2202,"path":2203,"order":1059,"children":2204},"Node-RED Library","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Flibrary",[],{"title":2206,"path":2207,"order":1059,"children":2208},"Update Node-RED","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fupdate-node-red",[],{"title":2210,"path":2211,"order":1051,"children":2212},"Node-RED On Android","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-android",[],{"title":2214,"path":2215,"order":1576,"children":2216},"Working with Messages","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-messages",[],{"title":2218,"path":2219,"order":1903,"children":2220},"String","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fstring",[],{"title":2222,"path":2223,"order":2170,"children":2224},"Date & Time","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fdate-and-time",[],{"title":2226,"path":2227,"order":2228,"children":2229},"Programming","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming",8,[2230,2234,2238,2242],{"title":2231,"path":2232,"order":1115,"children":2233},"Data Tranformation","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdata-tranformation",[],{"title":2235,"path":2236,"order":1115,"children":2237},"Debugging","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdebugging-flows",[],{"title":2239,"path":2240,"order":1115,"children":2241},"If-Else","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fif-else",[],{"title":2243,"path":2244,"order":1115,"children":2245},"Loop","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Floop",[],{"title":2247,"path":2248,"order":1059,"children":2249},"Core nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes",[2250,2286,2327,2369,2389,2413],{"title":2251,"path":2252,"order":1535,"children":2253},"Common nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon",[2254,2258,2262,2266,2270,2274,2278,2282],{"title":2255,"path":2256,"order":1535,"children":2257},"Inject","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Finject",[],{"title":2259,"path":2260,"order":1054,"children":2261},"Debug","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fdebug",[],{"title":2263,"path":2264,"order":1059,"children":2265},"Complete","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomplete",[],{"title":2267,"path":2268,"order":1051,"children":2269},"Catch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcatch",[],{"title":2271,"path":2272,"order":1576,"children":2273},"Status","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fstatus",[],{"title":2275,"path":2276,"order":1903,"children":2277},"Link","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Flink",[],{"title":2279,"path":2280,"order":2170,"children":2281},"Comment","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomment",[],{"title":2283,"path":2284,"order":2228,"children":2285},"Unknown","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Funknown",[],{"title":2287,"path":2288,"order":1054,"children":2289},"Function nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction",[2290,2294,2298,2302,2306,2310,2314,2318,2322],{"title":2291,"path":2292,"order":1535,"children":2293},"Function","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffunction",[],{"title":2295,"path":2296,"order":1054,"children":2297},"Switch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fswitch",[],{"title":2299,"path":2300,"order":1059,"children":2301},"Change","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fchange",[],{"title":2303,"path":2304,"order":1051,"children":2305},"Range","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Frange",[],{"title":2307,"path":2308,"order":1576,"children":2309},"Template","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftemplate",[],{"title":2311,"path":2312,"order":1903,"children":2313},"Delay","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fdelay",[],{"title":2315,"path":2316,"order":2170,"children":2317},"Trigger","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftrigger",[],{"title":2319,"path":2320,"order":2228,"children":2321},"Exec","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fexec",[],{"title":2323,"path":2324,"order":2325,"children":2326},"Filter","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffilter",9,[],{"title":2328,"path":2329,"order":1059,"children":2330},"Network nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork",[2331,2335,2339,2342,2345,2349,2353,2357,2361,2365],{"title":2332,"path":2333,"order":1535,"children":2334},"TLS","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftls",[],{"title":2336,"path":2337,"order":1054,"children":2338},"HTTP Proxy","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-proxy",[],{"title":1838,"path":2340,"order":1059,"children":2341},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-in",[],{"title":1842,"path":2343,"order":1051,"children":2344},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-out",[],{"title":2346,"path":2347,"order":1576,"children":2348},"HTTP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-in",[],{"title":2350,"path":2351,"order":1903,"children":2352},"HTTP request","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-request",[],{"title":2354,"path":2355,"order":2170,"children":2356},"WebSocket","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fwebsocket",[],{"title":2358,"path":2359,"order":2228,"children":2360},"TCP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftcp-in",[],{"title":2362,"path":2363,"order":2325,"children":2364},"UDP In","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-in",[],{"title":2366,"path":2367,"order":1642,"children":2368},"UDP Out","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-out",[],{"title":2370,"path":2371,"order":1051,"children":2372},"Sequence nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence",[2373,2377,2381,2385],{"title":2374,"path":2375,"order":1535,"children":2376},"Split","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsplit",[],{"title":2378,"path":2379,"order":1054,"children":2380},"Sort","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsort",[],{"title":2382,"path":2383,"order":1059,"children":2384},"Batch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fbatch",[],{"title":2386,"path":2387,"order":1051,"children":2388},"Join","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fjoin",[],{"title":2390,"path":2391,"order":1576,"children":2392},"Parser nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers",[2393,2397,2401,2405,2409],{"title":2394,"path":2395,"order":1535,"children":2396},"CSV","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fcsv",[],{"title":2398,"path":2399,"order":1054,"children":2400},"HTML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fhtml",[],{"title":2402,"path":2403,"order":1059,"children":2404},"JSON","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fjson",[],{"title":2406,"path":2407,"order":1051,"children":2408},"XML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fxml",[],{"title":2410,"path":2411,"order":1576,"children":2412},"YAML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fyaml",[],{"title":2414,"path":2415,"order":1903,"children":2416},"Storage nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage",[2417,2421],{"title":2418,"path":2419,"order":1535,"children":2420},"Write File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fwrite-file",[],{"title":2422,"path":2423,"order":1054,"children":2424},"Read File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fread-file",[],{"title":2426,"path":2427,"order":1051,"children":2428},"Communication protocols","\u002Fdocs\u002Fnode-red\u002Fprotocol",[2429,2433,2437,2440,2444,2448],{"title":2430,"path":2431,"order":1115,"children":2432},"AMQP","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Famqp",[],{"title":2434,"path":2435,"order":1115,"children":2436},"LwM2M","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Flwm2m",[],{"title":1827,"path":2438,"order":1115,"children":2439},"\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmodbus",[],{"title":2441,"path":2442,"order":1115,"children":2443},"MQTT","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmqtt",[],{"title":2445,"path":2446,"order":1115,"children":2447},"OPC-UA","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fopc-ua",[],{"title":2449,"path":2450,"order":1115,"children":2451},"Websocket","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fwebsocket",[],{"title":2453,"path":2454,"order":1576,"children":2455},"Databases","\u002Fdocs\u002Fnode-red\u002Fdatabase",[2456,2460,2464,2468,2472,2476,2480,2483,2487],{"title":2457,"path":2458,"order":1115,"children":2459},"DynamoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fdynamodb",[],{"title":2461,"path":2462,"order":1115,"children":2463},"Firebase","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ffirebase",[],{"title":2465,"path":2466,"order":1115,"children":2467},"InfluxDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Finfluxdb",[],{"title":2469,"path":2470,"order":1115,"children":2471},"MongoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmongodb",[],{"title":2473,"path":2474,"order":1115,"children":2475},"MySQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmysql",[],{"title":2477,"path":2478,"order":1115,"children":2479},"PostgreSQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fpostgresql",[],{"title":1850,"path":2481,"order":1115,"children":2482},"\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fredis",[],{"title":2484,"path":2485,"order":1115,"children":2486},"SQLite","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fsqlite",[],{"title":2488,"path":2489,"order":1115,"children":2490},"TimescaleDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ftimescaledb",[],{"title":2492,"path":2493,"order":1903,"children":2494},"Integration technologies","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies",[2495,2499,2503],{"title":2496,"path":2497,"order":1115,"children":2498},"GraphQL API","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fgraphql",[],{"title":2500,"path":2501,"order":1115,"children":2502},"REST API","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Frest",[],{"title":2504,"path":2505,"order":1115,"children":2506},"Webhook","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fwebhook",[],{"title":2508,"path":2509,"order":2170,"children":2510},"Notification services","\u002Fdocs\u002Fnode-red\u002Fnotification",[2511,2515,2519],{"title":2512,"path":2513,"order":1115,"children":2514},"Discord","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Fdiscord",[],{"title":2516,"path":2517,"order":1115,"children":2518},"Email","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Femail",[],{"title":2520,"path":2521,"order":1115,"children":2522},"Telegram","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Ftelegram",[],{"title":2524,"path":2525,"order":2228,"children":2526},"Hardware","\u002Fdocs\u002Fnode-red\u002Fhardware",[2527,2531,2535,2539,2543,2547],{"title":2528,"path":2529,"order":1115,"children":2530},"BLIIOT ARMxy BL340","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Farmxy-bl340",[],{"title":2532,"path":2533,"order":1115,"children":2534},"Opto-22 Groov Epic","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fopto-22-groove-rio-7-mm2001-10",[],{"title":2536,"path":2537,"order":1115,"children":2538},"Raspberry Pi 4","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-4",[],{"title":2540,"path":2541,"order":1115,"children":2542},"Raspberry Pi 5","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-5",[],{"title":2544,"path":2545,"order":1115,"children":2546},"Robustel EG5120","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Frobustel-eg5120",[],{"title":2548,"path":2549,"order":1115,"children":2550},"Siemens IoT2050","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fsiemens-iot-2050",[],{"title":2552,"path":2553,"order":2325,"children":2554},"Peripheral devices","\u002Fdocs\u002Fnode-red\u002Fperipheral",[2555,2559,2563,2567],{"title":2556,"path":2557,"order":1115,"children":2558},"Arduino","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fardiuno",[],{"title":2560,"path":2561,"order":1115,"children":2562},"Barcode Scanner","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fbarcodescanner",[],{"title":2564,"path":2565,"order":1115,"children":2566},"ESP32","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fesp32",[],{"title":2568,"path":2569,"order":1115,"children":2570},"Webcam","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fwebcam",[],{"title":2572,"path":2573,"order":1642,"children":2574},"Terminology","\u002Fdocs\u002Fnode-red\u002Fterminology",[],{"title":2576,"path":2577,"order":2578,"children":2579},"Keyboard shortcuts","\u002Fdocs\u002Fnode-red\u002Fkeyboard",11,[],1788888667551]