[{"data":1,"prerenderedAt":2179},["ShallowReactive",2],{"blog-\u002Fblog\u002F2024\u002F12\u002Fpublishing-modbus-data-to-uns":3,"featureCatalog":1251,"changelog-titles":1644,"blog-all-for-related":2178},{"id":4,"title":5,"authors":6,"body":8,"cta":1227,"date":1228,"description":1229,"extension":1230,"features":1227,"image":1231,"lastUpdated":1232,"meta":1233,"navigation":1239,"path":1240,"release":1227,"seo":1241,"sitemap":1242,"stem":1243,"subtitle":1244,"tags":1245,"tldr":1249,"video":1227,"__hash__":1250},"blog\u002Fblog\u002F2024\u002F12\u002Fpublishing-modbus-data-to-uns.md","How to Bridge Modbus to MQTT: Step-by-Step Guide",[7],"sumit-shinde",{"type":9,"value":10,"toc":1217},"minimark",[11,15,18,21,26,29,32,35,49,52,55,59,62,73,77,80,119,124,127,132,139,144,147,181,186,197,312,320,328,341,346,349,378,381,388,397,404,408,411,414,419,422,430,437,469,472,475,502,511,517,575,583,599,604,650,658,670,675,719,727,739,744,788,796,808,814,818,821,826,829,834,880,887,892,895,944,952,1006,1014,1023,1038,1043,1050,1055,1061,1088,1091,1102,1107,1160,1168,1171,1207,1210],[12,13,14],"p",{},"Converting Modbus to MQTT unlocks the value trapped in legacy industrial equipment. Industrial facilities worldwide face a persistent challenge: their Modbus-based sensors, PLCs, and controllers generate valuable operational data, but that data remains isolated in local control networks, unable to feed modern cloud analytics, remote dashboards, or predictive maintenance systems.",[12,16,17],{},"We've built Modbus to MQTT bridges for manufacturing plants ranging from small production lines to enterprise-scale facilities, and the root problem is always the same protocol mismatch. Modbus requires a master-slave architecture with polling, one device requests data, another responds. MQTT enables publish-subscribe messaging, devices push data to a central broker where any authorized application can subscribe. These are fundamentally incompatible communication patterns.",[12,19,20],{},"The proven solution is protocol bridging with Node-RED. This guide shows you how to build a reliable Modbus to MQTT gateway that reads holding registers from your devices, transforms raw sensor readings into human-readable formats, and publishes structured data to a Unified Namespace using FlowFuse's integrated MQTT broker. You'll bridge the OT\u002FIT gap and enable cloud integration, real-time monitoring, and data-driven decision-making across your operations.",[22,23,25],"h2",{"id":24},"why-bridge-modbus-to-mqtt","Why Bridge Modbus to MQTT?",[12,27,28],{},"Modbus handles local device communication effectively. A PLC polls sensors, reads holding registers, writes control signals, standard automation workflows that have proven reliable for decades. The limitation appears when you need that same data elsewhere: in a cloud database, on a remote dashboard, or feeding a predictive maintenance algorithm.",[12,30,31],{},"The constraint is architectural. Modbus requires a master-slave relationship. One device initiates requests, others respond. You can't have multiple systems independently accessing the same Modbus device without coordination, and you can't push data, only pull it through polling. This creates the operational technology (OT) and information technology (IT) integration gap.",[12,33,34],{},"MQTT removes these constraints through its broker-based architecture. Devices publish data once to the broker. Any authorized system, whether on-premises or cloud-based, subscribes to relevant topics and receives updates. No polling loops, no master-slave coordination, no point-to-point connections to manage.",[12,36,37,38,43,44,48],{},"This is where the ",[39,40,42],"a",{"href":41},"\u002Fblog\u002F2024\u002F11\u002Fbuilding-uns-with-flowfuse\u002F","Unified Namespace"," concept becomes practical. Instead of data scattered across disconnected Modbus networks, PLCs, and SCADA systems, you establish a single MQTT broker as the central data hub. All operational data flows through standardized topics organized by facility hierarchy: ",[45,46,47],"code",{},"enterprise\u002Fsite\u002Farea\u002Fline\u002Fequipment",". Applications consume what they need through subscriptions.",[12,50,51],{},"Consider a production line running legacy Modbus equipment, VFDs controlling motor speeds, pressure transmitters monitoring hydraulic systems, temperature sensors on critical bearings. Historically, this data stays within the local control network. Bridge it to MQTT, and suddenly the maintenance team accesses real-time vibration data on their tablets, the operations dashboard displays line efficiency metrics, and the cloud analytics platform builds predictive models from historical trends, all from the same data stream.",[12,53,54],{},"FlowFuse provides both the Node-RED runtime for building these bridges and the MQTT broker infrastructure for the Unified Namespace. The integration is straightforward: Node-RED flows poll Modbus devices and publish to FlowFuse's MQTT broker, where any authorized application can subscribe.",[22,56,58],{"id":57},"how-to-bridge-modbus-to-mqtt","How to Bridge Modbus to MQTT",[12,60,61],{},"Let's look at the steps to bridge Modbus data to MQTT using FlowFuse, leveraging Node-RED's capabilities. The process involves retrieving data from a Modbus device (For Practical example, we are using OpenSim to simulate Modbus data), transforming and processing the data (e.g., scaling raw sensor data into human-readable formats), and sending it to your Unified Namespace.",[12,63,64,70],{},[65,66],"img",{"alt":67,"dataZoomable":68,"src":69},"Bridging Modbus Data to MQTT using Node-RED","","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fbridging-modbus-data-to-mqtt.png",[71,72,67],"em",{},[22,74,76],{"id":75},"prerequisites","Prerequisites",[12,78,79],{},"Before you start, make sure you have:",[81,82,83,91,109],"ul",{},[84,85,86,90],"li",{},[87,88,89],"strong",{},"Modbus data source",": An actual Modbus device or a simulator like ModSim.",[84,92,93,96,97,103,104,108],{},[87,94,95],{},"Node-RED Instance",": The easiest and production-ready option is FlowFuse, run Node-RED on edge devices, manage and build flows remotely with your team. Deploy, scale, and secure hundreds or thousands of instances with built-in team collaboration, version control, and production-grade features. ",[39,98,102],{"href":99,"rel":100},"https:\u002F\u002Fapp.flowfuse.com\u002F",[101],"nofollow","Sign up here"," and follow ",[39,105,107],{"href":106},"\u002Fblog\u002F2025\u002F09\u002Finstalling-node-red\u002F","this guide to run Node-RED with FlowFuse on your edge device",". Alternatively, install Node-RED locally on hardware with access to your Modbus network.",[84,110,111,114,115,118],{},[87,112,113],{},"MQTT Broker",": You need broker connection details (host, port, credentials). If you're using FlowFuse Pro or Enterprise, there's an integrated broker at ",[45,116,117],{},"broker.flowfuse.cloud",", just create a client in the platform and you're done.",[120,121,123],"h3",{"id":122},"step-1-collect-data-from-modbus-devices","Step 1: Collect Data from Modbus Devices",[12,125,126],{},"The first step is to collect data from your Modbus devices. To do this, you'll need to run Node-RED on your Device. If your Modbus device communicates via a serial port, Node-RED will need access to that port, which you can manage with the appropriate configuration. If you're using Modbus TCP and both Node-RED and your Modbus device are on the same network, the connection is straightforward.",[12,128,129],{},[87,130,131],{},"Step 1.1: Running the FlowFuse device agent on your edge device",[12,133,134,135,138],{},"To run Node-RED on your edge device with just a few simple steps, you can use the ",[39,136,137],{"href":106},"FlowFuse Device Agent",". This allows you to run Node-RED locally and also connect it to FlowFuse Cloud for remote monitoring and management, making it easier to keep track of your devices and workflows from anywhere.",[12,140,141],{},[87,142,143],{},"Step 1.2: Install Modbus Nodes",[12,145,146],{},"While Node-RED doesn't include Modbus nodes by default, adding them to your palette is simple. Installing the necessary Modbus nodes from the Node-RED library will enable communication with your Modbus devices, whether they’re connected via serial or TCP. This step ensures you can start reading data from your Modbus devices and processing it for further integration.",[148,149,150,160,167,174],"ol",{},[84,151,152,153,156,157,159],{},"Open the ",[87,154,155],{},"Palette Manager"," by clicking the menu icon in the top-right corner of Node-RED and selecting ",[87,158,155],{},".",[84,161,162,163,166],{},"In the Palette Manager, search for ",[45,164,165],{},"node-red-contrib-modbus"," in the search bar.",[84,168,169,170,173],{},"Click ",[87,171,172],{},"Install"," to add the Modbus nodes to your Node-RED environment.",[84,175,176,177,180],{},"Once installed, the nodes appear in the left-side palette under the ",[87,178,179],{},"Modbus"," category. These nodes will allow you to interact with Modbus devices in your flow.",[12,182,183],{},[87,184,185],{},"Step 1.3: Configure the Modbus Connection",[12,187,188,189,192,193,196],{},"Next, you'll need to configure the Modbus connection based on your device type. Modbus devices can communicate using two primary protocols: ",[87,190,191],{},"Modbus RTU"," (over serial) or ",[87,194,195],{},"Modbus TCP"," (over Ethernet\u002FWi-Fi). The specific choice depends on the type of Device you are working with.",[148,198,199,206,212,263],{},[84,200,201,202,205],{},"Drag a ",[87,203,204],{},"Modbus Read"," node onto your Node-RED Canvas.",[84,207,208,209,211],{},"Double-click on the ",[87,210,204],{}," node to open its configuration.",[84,213,214,215],{},"In the configuration window:\n",[81,216,217,228,243,250,257],{},[84,218,219,220,223,224,227],{},"Enter the ",[87,221,222],{},"Unit ID"," (this is the device address, typically ",[87,225,226],{},"1",", but it may vary depending on your device).",[84,229,230,231,234,235,238,239,242],{},"Choose the ",[87,232,233],{},"Function"," you need, such as ",[87,236,237],{},"Read Holding Registers",", ",[87,240,241],{},"Read Input Registers",", etc. (this depends on the type of data you want to read).",[84,244,245,246,249],{},"Specify the ",[87,247,248],{},"Start Address"," (the address of the first register you want to start reading).",[84,251,252,253,256],{},"Set the ",[87,254,255],{},"Quantity"," (the number of registers to read).",[84,258,245,259,262],{},[87,260,261],{},"Poll Rate"," (e.g., how often you want to collect data, such as every 1 second).",[84,264,265,266,269,270,273,274],{},"In the ",[87,267,268],{},"Server"," field, click the ",[87,271,272],{},"+"," button to add a new Modbus server, and select the type.\n",[81,275,276,294,307],{},[84,277,278,279,281,282,285,286,289,290,293],{},"For ",[87,280,195],{},": Enter the ",[87,283,284],{},"IP address"," and ",[87,287,288],{},"Port"," (the default Modbus TCP port is ",[87,291,292],{},"502",").",[84,295,278,296,298,299,302,303,306],{},[87,297,191],{},": If you're using a serial connection, you'll need to specify the serial port (such as ",[45,300,301],{},"\u002Fdev\u002FttyUSB0"," on Linux or ",[45,304,305],{},"COM1"," on Windows), as well as the baud rate and other serial settings.",[84,308,252,309,311],{},[87,310,222],{}," (again, this should match the Unit ID you entered earlier).",[12,313,314,318],{},[65,315],{"alt":316,"dataZoomable":68,"src":317},"Image showing Modbus node configuration for reading holding registers","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fmodbus-connection-configuration.png",[71,319,316],{},[12,321,322,326],{},[65,323],{"alt":324,"dataZoomable":68,"src":325},"Image showing Modbus client node configuration","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fmodbus-connection-config.png",[71,327,324],{},[148,329,331],{"start":330},5,[84,332,333,334,337,338,159],{},"Once the connection details are filled in, click ",[87,335,336],{},"Add"," to save the configuration, then click ",[87,339,340],{},"Done",[12,342,343],{},[87,344,345],{},"Step 1.4: Test the Modbus Connection",[12,347,348],{},"After configuring the connection, it's time to test the data collection.",[148,350,351,357,366,372],{},[84,352,201,353,356],{},[87,354,355],{},"Debug"," node onto the canvas.",[84,358,359,360,362,363,365],{},"Connect the ",[87,361,204],{}," node's output to to the input of ",[87,364,355],{}," node.",[84,367,169,368,371],{},[87,369,370],{},"Deploy"," in the top-right corner of Node-RED to deploy your flow.",[84,373,152,374,377],{},[87,375,376],{},"Debug Panel"," on the right side of the Node-RED interface. If the connection is successful, you should see the raw data from your Modbus device in the Debug Panel.",[12,379,380],{},"If no data appears, check the connection settings (IP address, Unit ID, port, etc.) and ensure your Modbus device is correctly configured and accessible. If you use a simulator like ModSim, ensure it’s running and properly configured to send data.",[12,382,383,384,159],{},"For more information on using Modbus with Node-RED, please read our tutorial on ",[39,385,387],{"href":386},"\u002Fnode-red\u002Fprotocol\u002Fmodbus\u002F","Using Modbus with Node-RED",[12,389,390,391,396],{},"If you prefer a video explanation, ",[39,392,395],{"href":393,"rel":394},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fwago-kurt-braun\u002F",[101],"Kurt Braun"," from WAGO demonstrates how to collect Modbus data using Node-RED in FlowFuse:",[398,399],"lite-youtube",{"videoid":400,"params":401,"style":402,"title":403},"PdVdGg__zUM","rel=0","margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;","Bridging Modbus to MQTT with Node-RED",[120,405,407],{"id":406},"step-2-transforming-modbus-data-for-uns","Step 2: Transforming Modbus Data for UNS",[12,409,410],{},"After collecting data from your Modbus device, the next step is transforming it into a usable format for cloud-based IoT applications. Modbus data typically comes in raw register values, and you may need to convert these values into human-readable formats like temperature, pressure, or other measurements.",[12,412,413],{},"Let's walk through the transformation process step by step.",[12,415,416],{},[87,417,418],{},"Step 2.1: Parsing and Converting Raw Modbus Data",[12,420,421],{},"Modbus devices often return data in registers that need to be interpreted. For example, a temperature sensor might return a register value like 350, which represents 35.0°C if the sensor stores values in tenths of degrees.",[12,423,424,428],{},[65,425],{"alt":426,"dataZoomable":68,"src":427},"The ModSim interface, generating simulated Modbus data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fmodsim.png",[71,429,426],{},[12,431,432,433,436],{},"Here’s an example of the raw Modbus data I am receiving from ModSim: ",[45,434,435],{},"[225, 1013, 29, 50, 603]",". These values represent the following:",[81,438,439,445,451,457,463],{},[84,440,441,444],{},[45,442,443],{},"225",": Temperature (in tenths of degrees, which would be 22.5°C)",[84,446,447,450],{},[45,448,449],{},"1013",": Part 1 of the pressure value (higher register)",[84,452,453,456],{},[45,454,455],{},"29",": Part 2 of the pressure value (lower register)",[84,458,459,462],{},[45,460,461],{},"50",": Vibration (in tenths of degrees, which would be 5g)",[84,464,465,468],{},[45,466,467],{},"603",": Humidity (in tenths of degrees, which would be 60.3%)",[12,470,471],{},"We must convert these raw register values into human-readable formats for cloud integration. For instance, we divide the temperature and vibration by 10 to get the actual values in degrees Celsius and g, respectively, and similarly for other parameters like humidity. For pressure, the higher and lower register values are combined to compute the complete value accurately.",[12,473,474],{},"To determine how to process raw Modbus data, such as dividing by a specific value, concatenating, or applying other transformation formulas, refer to the manual of the sensor you use for specific instructions.",[12,476,477,478,482,483,487,488,492,493,496,497,501],{},"In Node-RED, you can use various nodes for transformation. You can choose the ",[39,479,481],{"href":480},"\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002F","Function node"," for advanced processing, the ",[39,484,486],{"href":485},"\u002Fnode-red\u002Fcore-nodes\u002Fchange\u002F","Change node"," for simpler operations, or the ",[39,489,491],{"href":490},"\u002Fnode-red\u002Fcore-nodes\u002Ftemplate\u002F","Template node"," for defining schemas. For more complex data parsing scenarios, such as handling multiple data types (floats, 32-bit integers, strings), dealing with big-endian\u002Flittle-endian conversions, or performing byte swapping, consider using the ",[45,494,495],{},"node-red-contrib-buffer-parser"," node. This specialized node simplifies parsing Modbus buffers into various data formats without writing custom code. Learn more in our guide on ",[39,498,500],{"href":499},"\u002Fblog\u002F2025\u002F12\u002Fnode-red-buffer-parser-industrial-data\u002F","using Buffer Parser for industrial data",". In this article, I will demonstrate a low-code approach using the Change node to process the data cleanly.",[12,503,504,505,285,508,159],{},"Additionally, for better organization and accessibility, I will send each metric separately and include additional metadata such as the ",[45,506,507],{},"timestamp",[45,509,510],{},"unit",[12,512,513,516],{},[87,514,515],{},"For Temperature",":",[148,518,519,524,527],{},[84,520,201,521,356],{},[87,522,523],{},"Change",[84,525,526],{},"Double-click the node to open its configuration panel.",[84,528,529,530,533,534],{},"Set the following in the ",[87,531,532],{},"Set"," rules:\n",[81,535,536,546,553,559,567],{},[84,537,538,539,542,543,159],{},"Set ",[45,540,541],{},"msg.data"," to ",[45,544,545],{},"msg.payload",[84,547,538,548,542,550,159],{},[45,549,545],{},[45,551,552],{},"{}",[84,554,538,555,558],{},[45,556,557],{},"msg.payload.timestamp"," to the timestamp function of the Change node.",[84,560,538,561,542,564,159],{},[45,562,563],{},"msg.payload.value",[45,565,566],{},"data[0] \u002F 10",[84,568,538,569,542,572,159],{},[45,570,571],{},"msg.payload.unit",[45,573,574],{},"'c'",[12,576,577,581],{},[65,578],{"alt":579,"dataZoomable":68,"src":580},"Image showing the Change node rules transforming temperature data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Ftemperature-data-tranformation.png",[71,582,579],{},[148,584,586,591],{"start":585},4,[84,587,169,588,590],{},[87,589,340],{}," to save the configuration.",[84,592,593,594,596,597,365],{},"Connect the first output of the ",[87,595,204],{}," node to the input of this ",[87,598,523],{},[12,600,601,516],{},[87,602,603],{},"For Pressure",[148,605,606,611,613],{},[84,607,608,609,356],{},"Drag another ",[87,610,523],{},[84,612,526],{},[84,614,529,615,533,617],{},[87,616,532],{},[81,618,619,625,631,635,643],{},[84,620,538,621,542,623,159],{},[45,622,541],{},[45,624,545],{},[84,626,538,627,542,629,159],{},[45,628,545],{},[45,630,552],{},[84,632,538,633,558],{},[45,634,557],{},[84,636,538,637,542,639,642],{},[45,638,563],{},[45,640,641],{},"$number($string(data[1]) & $string(data[2]))"," as a JSONata expression.",[84,644,538,645,542,647,159],{},[45,646,571],{},[45,648,649],{},"'ppm'",[12,651,652,656],{},[65,653],{"alt":654,"dataZoomable":68,"src":655},"Image showing the Change node rules transforming pressure data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fpressure-data-transformation.png",[71,657,654],{},[148,659,660,664],{"start":585},[84,661,169,662,590],{},[87,663,340],{},[84,665,593,666,596,668,365],{},[87,667,204],{},[87,669,523],{},[12,671,672],{},[87,673,674],{},"For Vibration",[148,676,677,681,683],{},[84,678,608,679,356],{},[87,680,523],{},[84,682,526],{},[84,684,529,685,533,687],{},[87,686,532],{},[81,688,689,695,701,705,712],{},[84,690,538,691,542,693,159],{},[45,692,541],{},[45,694,545],{},[84,696,538,697,542,699,159],{},[45,698,545],{},[45,700,552],{},[84,702,538,703,558],{},[45,704,557],{},[84,706,538,707,542,709,642],{},[45,708,563],{},[45,710,711],{},"data[3] \u002F 10",[84,713,538,714,542,716,159],{},[45,715,571],{},[45,717,718],{},"'g'",[12,720,721,725],{},[65,722],{"alt":723,"dataZoomable":68,"src":724},"Image showing the Change node rules transforming vibration data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fvibration-data-transformation.png",[71,726,723],{},[148,728,729,733],{"start":585},[84,730,169,731,590],{},[87,732,340],{},[84,734,593,735,596,737,365],{},[87,736,204],{},[87,738,523],{},[12,740,741],{},[87,742,743],{},"For Humidity",[148,745,746,750,752],{},[84,747,608,748,356],{},[87,749,523],{},[84,751,526],{},[84,753,529,754,533,756],{},[87,755,532],{},[81,757,758,764,770,774,781],{},[84,759,538,760,542,762,159],{},[45,761,541],{},[45,763,545],{},[84,765,538,766,542,768,159],{},[45,767,545],{},[45,769,552],{},[84,771,538,772,558],{},[45,773,557],{},[84,775,538,776,542,778,642],{},[45,777,563],{},[45,779,780],{},"data[4] \u002F 10",[84,782,538,783,542,785,159],{},[45,784,571],{},[45,786,787],{},"'%'",[12,789,790,794],{},[65,791],{"alt":792,"dataZoomable":68,"src":793},"Image showing the Change node rules transforming humidity data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fhumidity-data-transformation.png",[71,795,792],{},[148,797,798,802],{"start":585},[84,799,169,800,590],{},[87,801,340],{},[84,803,593,804,596,806,365],{},[87,805,204],{},[87,807,523],{},[12,809,810,811,813],{},"Once you have configured and connected all the Change nodes, add a ",[87,812,355],{}," node to each Change node's output to verify that the transformed data appears as expected. Deploy the flow, then check the output in the Debug Panel to ensure that each metric is correctly formatted with the appropriate timestamp, value, and unit.",[120,815,817],{"id":816},"step-3-publishing-modbus-data-to-mqtt","Step 3: Publishing Modbus Data to MQTT",[12,819,820],{},"After transforming the Modbus data into a human-readable format, the next step is to publish it via MQTT to build your Unified Namespace (UNS). The UNS is created by organizing your MQTT topics into a standardized hierarchy, when you publish data to these structured topics, you're establishing the namespace that other systems can subscribe to.",[12,822,823],{},[87,824,825],{},"Step 3.1: Preparing Your MQTT Broker",[12,827,828],{},"As mentioned in the prerequisites, FlowFuse provides an integrated MQTT broker service for Team and Enterprise users. The broker uses username and password authentication, you create clients on the platform with credentials that control topic access.",[12,830,831],{},[87,832,833],{},"To create MQTT clients:",[148,835,836,843,850,860,867,873],{},[84,837,838,839,842],{},"Navigate to the FlowFuse platform and click ",[87,840,841],{},"Broker"," in the left sidebar.",[84,844,845,846,849],{},"Click the ",[87,847,848],{},"Create Client"," button.",[84,851,852,853,285,856,859],{},"Enter a ",[87,854,855],{},"username",[87,857,858],{},"password"," for the client.",[84,861,862,863,866],{},"Configure ",[87,864,865],{},"topic access control patterns"," if needed, specifying which topics the client can publish to or subscribe from.",[84,868,169,869,872],{},[87,870,871],{},"Save"," to create the client.",[84,874,875,876,879],{},"Once saved, copy the ",[87,877,878],{},"Client ID"," from the client list and save it for the next step.",[12,881,882,883,159],{},"For more details about the FlowFuse MQTT broker service, refer to the ",[39,884,886],{"href":885},"\u002Fblog\u002F2024\u002F10\u002Fannouncement-mqtt-broker\u002F","MQTT Broker Service Announcement",[12,888,889],{},[87,890,891],{},"Step 3.2: Configure MQTT Nodes",[12,893,894],{},"Now you'll configure Node-RED to publish your transformed Modbus data to the MQTT broker.",[148,896,897,903],{},[84,898,899,900,356],{},"In the Node-RED editor, drag an ",[87,901,902],{},"mqtt out",[84,904,905,906,908,909,911,912],{},"Double-click the node, then click the ",[87,907,272],{}," icon next to the ",[87,910,268],{}," field to add a new broker connection:\n",[81,913,914,922,927,932,938],{},[84,915,916,918,919,921],{},[87,917,268],{},": Enter ",[45,920,117],{}," (for FlowFuse MQTT).",[84,923,924,926],{},[87,925,288],{},": Use the default MQTT port (1883 for non-TLS, 8883 for TLS).",[84,928,929,931],{},[87,930,878],{},": Paste the Client ID you copied earlier.",[84,933,934,937],{},[87,935,936],{},"Username",": Enter the username you created.",[84,939,940,943],{},[87,941,942],{},"Password",": Enter the password you created.",[12,945,946,950],{},[65,947],{"alt":948,"dataZoomable":68,"src":949},"MQTT broker node configuration","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fmqtt-broker-config-node.png",[71,951,948],{},[148,953,955,960],{"start":954},3,[84,956,169,957,959],{},[87,958,336],{}," to save the broker configuration.",[84,961,962,963],{},"Back in the mqtt out node configuration:\n",[81,964,965,975,1000],{},[84,966,967,970,971,974],{},[87,968,969],{},"Topic",": Enter a topic following the ISA-95 equipment hierarchy, such as ",[45,972,973],{},"plant2\u002FArea4\u002FCell2\u002FDeviceA\u002Ftemperature",". This naming convention organizes data by enterprise, site, area, line, and equipment, making it easier to filter, manage, and scale your system as it grows.",[84,976,977,980,981],{},[87,978,979],{},"QoS",": Select the appropriate Quality of Service level:\n",[81,982,983,989,994],{},[84,984,985,988],{},[87,986,987],{},"0"," (At most once) - Fastest, but no delivery guarantee",[84,990,991,993],{},[87,992,226],{}," (At least once) - Ensures delivery, possible duplicates",[84,995,996,999],{},[87,997,998],{},"2"," (Exactly once) - Slowest, but guarantees single delivery",[84,1001,1002,1005],{},[87,1003,1004],{},"Retain",": Enable this if you want the broker to store the last message for new subscribers.",[12,1007,1008,1012],{},[65,1009],{"alt":1010,"dataZoomable":68,"src":1011},"MQTT Out node configuration for temperature data","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fmqtt-client-config-temperature.png",[71,1013,1010],{},[12,1015,1016],{},[71,1017,1018,1019,159],{},"Note: This example uses environment variables for sensitive configuration data to prevent accidental exposure when sharing flows. For more information, refer to ",[39,1020,1022],{"href":1021},"\u002Fblog\u002F2023\u002F01\u002Fenvironment-variables-in-node-red\u002F","Using Environment Variables with Node-RED",[148,1024,1025,1030],{"start":330},[84,1026,169,1027,1029],{},[87,1028,340],{}," to save the node configuration.",[84,1031,1032,1033,1035,1036,365],{},"Connect the output of the ",[87,1034,523],{}," node (which transforms your temperature data) to the input of this ",[87,1037,902],{},[12,1039,1040],{},[87,1041,1042],{},"Using FlowFuse MQTT Nodes",[12,1044,1045,1046,159],{},"If you're using the FlowFuse MQTT broker, FlowFuse provides specialized MQTT nodes that simplify configuration. These nodes automatically configure the broker connection details when you drop them onto the canvas, no manual setup of server address, Client ID, username, or password required. You also won't need to manually create clients in the broker; they're automatically created when you use these nodes. This streamlines the development process and reduces configuration errors. Learn more about ",[39,1047,1049],{"href":1048},"\u002Fnode-red\u002Fflowfuse\u002Fmqtt\u002F","FlowFuse MQTT nodes",[12,1051,1052],{},[87,1053,1054],{},"Step 3.3: Configure MQTT Nodes for Remaining Metrics",[12,1056,1057,1058,1060],{},"Repeat the configuration process for each metric (pressure, vibration, humidity), creating separate ",[87,1059,902],{}," nodes with unique topics:",[81,1062,1063,1072,1080],{},[84,1064,1065,1068,1069],{},[87,1066,1067],{},"Pressure",": ",[45,1070,1071],{},"plant2\u002FArea4\u002FCell2\u002FDeviceA\u002Fpressure",[84,1073,1074,1068,1077],{},[87,1075,1076],{},"Vibration",[45,1078,1079],{},"plant2\u002FArea4\u002FCell2\u002FDeviceA\u002Fvibration",[84,1081,1082,1068,1085],{},[87,1083,1084],{},"Humidity",[45,1086,1087],{},"plant2\u002FArea4\u002FCell2\u002FDeviceA\u002Fhumidity",[12,1089,1090],{},"Each mqtt out node should:",[81,1092,1093,1096,1099],{},[84,1094,1095],{},"Use the same broker configuration (click the pencil icon next to Server and select your existing broker)",[84,1097,1098],{},"Have its own unique topic",[84,1100,1101],{},"Be connected to the corresponding Change node output",[12,1103,1104],{},[87,1105,1106],{},"Step 3.4: Deploy and Verify the Connection",[148,1108,1109,1114,1140],{},[84,1110,169,1111,1113],{},[87,1112,370],{}," in the top-right corner of Node-RED to activate your flow.",[84,1115,1116,1117,1119,1120],{},"Check the status indicator beneath each ",[87,1118,902],{}," node:",[81,1121,1122,1128,1134],{},[84,1123,1124,1127],{},[87,1125,1126],{},"Green dot with \"connected\"",": Successfully connected and publishing data",[84,1129,1130,1133],{},[87,1131,1132],{},"Red dot with \"disconnected\"",": Connection failed, check your broker credentials and network connectivity",[84,1135,1136,1139],{},[87,1137,1138],{},"Yellow dot",": Connecting or waiting for data",[84,1141,1142,1143],{},"To verify data is flowing to your UNS:",[81,1144,1145,1151,1157],{},[84,1146,1147,1148,1150],{},"Navigate to the ",[87,1149,841],{}," section in the FlowFuse platform",[84,1152,845,1153,1156],{},[87,1154,1155],{},"Hierarchy"," tab to view your topic structure",[84,1158,1159],{},"You should see your topics organized by the ISA-95 hierarchy you defined",[12,1161,1162,1166],{},[65,1163],{"alt":1164,"dataZoomable":68,"src":1165},"FlowFuse topic hierarchy interface showing UNS structure","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fflowfuse-mqtt-topic-hierarchy-monitoring.png",[71,1167,1164],{},[12,1169,1170],{},"Once your flow is successfully publishing data, you've established your Unified Namespace. Other systems can now subscribe to these MQTT topics to consume the data for:",[81,1172,1173,1179,1189,1195,1201],{},[84,1174,1175,1178],{},[87,1176,1177],{},"Cloud analytics platforms"," for historical analysis and reporting",[84,1180,1181,1188],{},[87,1182,1183],{},[39,1184,1187],{"href":1185,"rel":1186},"https:\u002F\u002Fdashboard.flowfuse.com\u002F",[101],"FlowFuse Dashboard"," for real-time monitoring and visualization",[84,1190,1191,1194],{},[87,1192,1193],{},"Predictive maintenance systems"," for equipment health monitoring",[84,1196,1197,1200],{},[87,1198,1199],{},"Business intelligence tools"," for operational insights",[84,1202,1203,1206],{},[87,1204,1205],{},"Alert and notification systems"," for automated responses to threshold breaches",[12,1208,1209],{},"This setup effectively bridges legacy Modbus devices with modern IoT infrastructure, enabling data-driven decision-making and unlocking the full potential of your industrial operations.",[12,1211,1212,1213,159],{},"For more information on using MQTT with Node-RED, please read ",[39,1214,1216],{"href":1215},"\u002Fblog\u002F2024\u002F06\u002Fhow-to-use-mqtt-in-node-red\u002F","Using MQTT with Node-RED",{"title":68,"searchDepth":585,"depth":585,"links":1218},[1219,1221,1222],{"id":24,"depth":1220,"text":25},2,{"id":57,"depth":1220,"text":58},{"id":75,"depth":1220,"text":76,"children":1223},[1224,1225,1226],{"id":122,"depth":954,"text":123},{"id":406,"depth":954,"text":407},{"id":816,"depth":954,"text":817},null,"2024-12-04","Learn how to bridge Modbus data to MQTT in 2026 and publish it to a Unified Namespace (UNS) using FlowFuse for real-time monitoring and cloud integration.","md","\u002Fblog\u002F2024\u002F12\u002Fimages\u002Fhow-to-bridge-modbus-to-mqtt.png","2025-12-19",{"keywords":1234,"excerpt":1235},"modbus to mqtt, mqtt to modbus, node-red as gateway, bridging modbus to mqtt, modbus to uns, modbus data to unified namespace",{"type":9,"value":1236},[1237],[12,1238,14],{},true,"\u002Fblog\u002F2024\u002F12\u002Fpublishing-modbus-data-to-uns",{"title":5,"description":1229},{"loc":1240},"blog\u002F2024\u002F12\u002Fpublishing-modbus-data-to-uns","Build a Production-Ready Modbus to MQTT Bridge with Node-RED",[1246,1247,1248],"flowfuse","uns","modbus","Bridging Modbus to MQTT with Node-RED solves the OT\u002FIT integration gap by translating the Modbus master-slave polling model into an MQTT publish-subscribe architecture. The guide walks through reading Modbus holding registers, transforming raw register values into human-readable metrics, and publishing them to a Unified Namespace via FlowFuse's integrated MQTT broker.","b-AuuleUDV-rs7WSeQVuJDoGrHx2asqcRhW-UVB5-3M",{"id":1252,"extension":1253,"meta":1254,"sections":1255,"stem":1642,"__hash__":1643},"featureCatalog\u002Ffeature-catalog.yml","yml",{},[1256,1307,1408,1468,1545,1624],{"id":1257,"title":1258,"features":1259},"ai-automation","AI & Automation",[1260,1270,1280,1290,1296,1302],{"id":1261,"title":1262,"description":1263,"docsLink":1264,"changelog":1265,"tiers":1269},"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",[1266],{"url":1267,"release":1268},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner\u002F","2.28",{"edge":1239,"hub":1239,"fleet":1239},{"id":1271,"title":1272,"description":1273,"docsLink":1274,"changelog":1275,"subfeature":1239,"showOnPricing":1278,"tiers":1279},"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",[1276],{"url":1277,"release":1268},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context\u002F",false,{"edge":1239,"hub":1239,"fleet":1239},{"id":1281,"title":1282,"description":1283,"docsLink":1284,"changelog":1285,"subfeature":1239,"showOnPricing":1278,"tiers":1289},"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",[1286],{"url":1287,"release":1288},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building\u002F","2.30",{"edge":1239,"hub":1239,"fleet":1239},{"id":1291,"title":1292,"description":1293,"docsLink":1294,"subfeature":1239,"beta":1239,"showOnPricing":1278,"tiers":1295},"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":1239,"hub":1239,"fleet":1239},{"id":1297,"title":1298,"description":1299,"docsLink":1300,"tiers":1301},"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.","\u002Fnode-red\u002Fflowfuse\u002Fmcp\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1303,"title":1304,"description":1305,"tiers":1306},"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":1239,"hub":1239,"fleet":1239},{"id":1308,"title":1309,"features":1310},"build","Build",[1311,1317,1323,1333,1339,1345,1349,1355,1361,1369,1375,1379,1383,1392,1400],{"id":1312,"title":1313,"description":1314,"docsLink":1315,"tiers":1316},"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":1239,"hub":1278,"fleet":1239},{"id":1318,"title":1319,"description":1320,"docsLink":1321,"tiers":1322},"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":1239,"hub":1239,"fleet":1239},{"id":1324,"title":1325,"description":1326,"docsLink":1327,"changelog":1328,"tiers":1332},"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",[1329],{"url":1330,"release":1331},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation\u002F","2.33",{"edge":1239,"hub":1239,"fleet":1239},{"id":1334,"title":1335,"description":1336,"docsLink":1337,"tiers":1338},"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":1239,"hub":1239,"fleet":1239},{"id":1340,"title":1341,"description":1342,"docsLink":1343,"showOnPricing":1278,"tiers":1344},"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":1239,"hub":1239,"fleet":1239},{"id":1346,"title":1347,"showOnPricing":1278,"tiers":1348},"static-assets","Static Assets",{"edge":1239,"hub":1239,"fleet":1239},{"id":1350,"title":1351,"description":1352,"docsLink":1353,"tiers":1354},"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":1239,"hub":1239,"fleet":1239},{"id":1356,"title":1357,"description":1358,"docsLink":1359,"tiers":1360},"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":1239,"hub":1239,"fleet":1239},{"id":1362,"title":1363,"description":1364,"changelog":1365,"subfeature":1239,"showOnPricing":1278,"tiers":1368},"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.",[1366],{"url":1367,"release":1331},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1370,"title":1371,"description":1372,"docsLink":1373,"tiers":1374},"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":1239,"hub":1239,"fleet":1239},{"id":1376,"title":1377,"subfeature":1239,"showOnPricing":1278,"tiers":1378},"blueprints-ot-apps","Blueprints - OT APPS",{"edge":1239,"hub":1278,"fleet":1239},{"id":1380,"title":1381,"subfeature":1239,"showOnPricing":1278,"tiers":1382},"blueprints-it-apps","Blueprints - IT APPS",{"edge":1278,"hub":1239,"fleet":1278},{"id":1384,"title":1385,"description":1386,"changelog":1387,"showOnPricing":1278,"tiers":1391},"immersive-editor-snapshots","Snapshot Details in Immersive Editor","View and manage snapshot details directly inside the immersive editor without leaving your editing session.",[1388],{"url":1389,"release":1390},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor\u002F","2.29",{"edge":1239,"hub":1239,"fleet":1239},{"id":1393,"title":1394,"description":1395,"changelog":1396,"showOnPricing":1278,"tiers":1399},"immersive-editor-drawer","Customisable Immersive Editor Drawer","Pin, move, resize, or full-screen the immersive editor drawer. Your preferences are remembered between sessions.",[1397],{"url":1398,"release":1288},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1401,"title":1402,"description":1403,"changelog":1404,"showOnPricing":1278,"tiers":1407},"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.",[1405],{"url":1406,"release":1390},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1409,"title":370,"features":1410},"deploy",[1411,1417,1426,1432,1437,1443,1449,1455,1460],{"id":1412,"title":1413,"description":1414,"docsLink":1415,"tiers":1416},"hosted-instances","Cloud Instances","Run Node-RED instances managed and hosted by FlowFuse.","\u002Fdocs\u002Fuser\u002Fintroduction\u002F#creating-a-node-red-instance",{"edge":1239,"hub":1239,"fleet":1239},{"id":1418,"title":1419,"description":1420,"docsLink":1421,"changelog":1422,"tiers":1425},"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",[1423],{"url":1424,"release":1268},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options\u002F",{"edge":1239,"hub":1278,"fleet":1239},{"id":1427,"title":1428,"description":1429,"docsLink":1430,"tiers":1431},"custom-hostnames","Custom Hostnames","Access your Node-RED application via your own domain name.","\u002Fdocs\u002Fuser\u002Fcustom-hostnames\u002F",{"edge":1278,"hub":1239,"fleet":1278},{"id":1433,"title":113,"description":1434,"docsLink":1435,"tiers":1436},"mqtt-broker","Manage and create MQTT clients to transport data for efficient messaging and communication within your applications.","\u002Fdocs\u002Fuser\u002Fteambroker\u002F",{"edge":1239,"hub":1278,"fleet":1239},{"id":1438,"title":1439,"description":1440,"docsLink":1441,"showOnPricing":1278,"tiers":1442},"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":1239,"hub":1239,"fleet":1239},{"id":1444,"title":1445,"description":1446,"docsLink":1447,"tiers":1448},"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":1239,"hub":1239,"fleet":1239},{"id":1450,"title":1451,"description":1452,"docsLink":1453,"tiers":1454},"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":1278,"hub":1239,"fleet":1278},{"id":1456,"title":1457,"description":1458,"docsLink":1453,"subfeature":1239,"showOnPricing":1278,"tiers":1459},"git-integration-github","GitHub","Push and pull snapshots to GitHub repositories through DevOps Pipeline Git Stages.",{"edge":1278,"hub":1239,"fleet":1278},{"id":1461,"title":1462,"description":1463,"docsLink":1453,"changelog":1464,"subfeature":1239,"showOnPricing":1278,"tiers":1467},"git-integration-azure","Azure DevOps","Push and pull snapshots to Azure DevOps repositories through DevOps Pipeline Git Stages.",[1465],{"url":1466,"release":1390},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops\u002F",{"edge":1278,"hub":1239,"fleet":1278},{"id":1469,"title":1470,"features":1471},"operate-maintain","Operate & Maintain",[1472,1478,1484,1489,1497,1501,1505,1510,1516,1522,1527,1533,1537,1541],{"id":1473,"title":1474,"description":1475,"docsLink":1476,"tiers":1477},"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":1239,"hub":1239,"fleet":1239},{"id":1479,"title":1480,"description":1481,"docsLink":1482,"subfeature":1239,"showOnPricing":1278,"tiers":1483},"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":1239,"hub":1239,"fleet":1239},{"id":1485,"title":1486,"description":1487,"docsLink":1482,"subfeature":1239,"showOnPricing":1278,"tiers":1488},"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":1239,"hub":1239,"fleet":1239},{"id":1490,"title":1491,"description":1492,"changelog":1493,"subfeature":1239,"showOnPricing":1278,"tiers":1496},"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.",[1494],{"url":1495,"release":1390},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1498,"title":1499,"subfeature":1239,"showOnPricing":1278,"tiers":1500},"version-history-timeline","Version History Timeline",{"edge":1239,"hub":1239,"fleet":1239},{"id":1502,"title":1503,"tiers":1504},"unlimited-workflow-executions","Unlimited Workflow Executions",{"edge":1239,"hub":1239,"fleet":1239},{"id":1506,"title":1507,"description":1508,"tiers":1509},"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":1239,"hub":1278,"fleet":1239},{"id":1511,"title":1512,"description":1513,"docsLink":1514,"tiers":1515},"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":1239,"hub":1278,"fleet":1239},{"id":1517,"title":1518,"description":1519,"docsLink":1520,"tiers":1521},"high-availability","High Availability","Leverage horizontal scaling for reliable and scalable processing of your data through Node-RED.","\u002Fdocs\u002Fuser\u002Fhigh-availability\u002F",{"edge":1278,"hub":1239,"fleet":1278},{"id":1523,"title":1524,"description":1525,"tiers":1526},"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":1239,"hub":1239,"fleet":1239},{"id":1528,"title":1529,"description":1530,"docsLink":1531,"subfeature":1239,"showOnPricing":1278,"tiers":1532},"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":1239,"hub":1239,"fleet":1239},{"id":1534,"title":1535,"subfeature":1239,"showOnPricing":1278,"tiers":1536},"email-alerts","Email Alerts",{"edge":1239,"hub":1239,"fleet":1239},{"id":1538,"title":1539,"showOnPricing":1278,"tiers":1540},"api-debug-length-limit","API\u002FDebug Length Limit",{"edge":1239,"hub":1239,"fleet":1239},{"id":1542,"title":1543,"tiers":1544},"protected-instances","Protected Instances",{"edge":1278,"hub":1239,"fleet":1278},{"id":1546,"title":1547,"features":1548},"govern-secure","Govern and Secure",[1549,1558,1564,1570,1575,1581,1587,1593,1601,1607,1613,1619],{"id":1550,"title":1551,"description":1552,"docsLink":1553,"changelog":1554,"tiers":1557},"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",[1555],{"url":1556,"release":1331},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1559,"title":1560,"description":1561,"docsLink":1562,"tiers":1563},"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":1239,"hub":1239,"fleet":1239},{"id":1565,"title":1566,"description":1567,"docsLink":1568,"tiers":1569},"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":1278,"hub":1239,"fleet":1239},{"id":1571,"title":1572,"description":1573,"tiers":1574},"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":1239,"hub":1278,"fleet":1278},{"id":1576,"title":1577,"description":1578,"docsLink":1579,"tiers":1580},"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":1239,"hub":1239,"fleet":1239},{"id":1582,"title":1583,"description":1584,"docsLink":1585,"tiers":1586},"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":1239,"hub":1239,"fleet":1239},{"id":1588,"title":1589,"description":1590,"docsLink":1591,"subfeature":1239,"showOnPricing":1278,"tiers":1592},"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":1239,"hub":1239,"fleet":1239},{"id":1594,"title":1595,"description":1596,"changelog":1597,"subfeature":1239,"showOnPricing":1278,"tiers":1600},"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.",[1598],{"url":1599,"release":1331},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats\u002F",{"edge":1239,"hub":1239,"fleet":1239},{"id":1602,"title":1603,"description":1604,"docsLink":1605,"showOnPricing":1278,"tiers":1606},"team-members","Team Members","Invite multiple team members to collaborate on the same Node-RED flows.","\u002Fdocs\u002Fuser\u002Fteam\u002F#teams",{"edge":1239,"hub":1239,"fleet":1239},{"id":1608,"title":1609,"description":1610,"docsLink":1611,"showOnPricing":1278,"tiers":1612},"endpoint-security","Endpoint Security","Secure HTTP endpoints for hosted Node-RED instances using FlowFuse credentials.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#security",{"edge":1239,"hub":1239,"fleet":1239},{"id":1614,"title":1615,"description":1616,"docsLink":1617,"tiers":1618},"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.5\u002F",{"edge":1278,"hub":1239,"fleet":1278},{"id":1620,"title":1621,"description":1622,"tiers":1623},"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":1278,"hub":1239,"fleet":1278},{"id":1625,"title":1626,"features":1627},"support","Support",[1628,1633,1637],{"id":1629,"title":1630,"docsLink":1631,"tiers":1632},"installation-support","Installation Support","\u002Fdocs\u002Finstall\u002Fintroduction\u002F#do-you-need-help-installation-service",{"edge":1239,"hub":1239,"fleet":1239},{"id":1634,"title":1635,"showOnPricing":1278,"tiers":1636},"live-chat-support","Live Chat Support",{"edge":1239,"hub":1239,"fleet":1239},{"id":1638,"title":1639,"docsLink":1640,"tiers":1641},"enterprise-support","Enterprise Support","\u002Fdocs\u002Fpremium-support\u002F",{"edge":1239,"hub":1239,"fleet":1239},"feature-catalog","0AnkhTIPCECCwP9NmbTWP5HvRYx4FTSao4lG93-HaWM",[1645,1648,1651,1654,1657,1660,1662,1665,1668,1671,1674,1676,1679,1682,1685,1688,1691,1694,1697,1700,1703,1706,1709,1712,1715,1718,1721,1724,1727,1730,1733,1736,1739,1742,1745,1748,1751,1754,1757,1760,1763,1766,1769,1772,1775,1778,1781,1784,1787,1789,1792,1795,1798,1801,1804,1807,1810,1812,1815,1818,1821,1824,1827,1829,1832,1835,1838,1841,1844,1847,1850,1853,1856,1859,1861,1864,1867,1870,1873,1876,1879,1882,1885,1888,1891,1894,1897,1900,1903,1905,1908,1911,1914,1917,1920,1923,1926,1929,1932,1935,1938,1941,1944,1947,1950,1953,1956,1959,1961,1964,1967,1970,1973,1976,1979,1982,1984,1987,1990,1993,1996,1999,2002,2005,2008,2011,2014,2017,2020,2023,2026,2029,2032,2035,2038,2041,2044,2047,2050,2053,2056,2059,2062,2065,2068,2071,2074,2077,2080,2083,2086,2089,2092,2095,2098,2101,2104,2107,2110,2113,2116,2119,2122,2125,2128,2131,2134,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2169,2172,2175],{"path":1646,"title":1647},"\u002Fchangelog\u002F2023\u002F09\u002Fcustom-node-support","Custom Node Support",{"path":1649,"title":1650},"\u002Fchangelog\u002F2023\u002F09\u002Fdevops-actions","DevOps Pipeline with action selection",{"path":1652,"title":1653},"\u002Fchangelog\u002F2023\u002F09\u002Fintroduction-enterprise-tier","Introducing the Enterprise Tier",{"path":1655,"title":1656},"\u002Fchangelog\u002F2023\u002F09\u002Fpipeline-api","API Endpoint for DevOps Pipeline",{"path":1658,"title":1659},"\u002Fchangelog\u002F2023\u002F09\u002Fsnapshots-devices","Usability improvements to Device Management",{"path":1661,"title":1371},"\u002Fchangelog\u002F2023\u002F10\u002Fblueprints",{"path":1663,"title":1664},"\u002Fchangelog\u002F2023\u002F10\u002Fcertified-nodes","Certified Nodes",{"path":1666,"title":1667},"\u002Fchangelog\u002F2023\u002F10\u002Fdevice-snapshot-selection","Enhanced Snapshot Selection",{"path":1669,"title":1670},"\u002Fchangelog\u002F2023\u002F10\u002Fpath-bug-fix","Device Agent path bug fix",{"path":1672,"title":1673},"\u002Fchangelog\u002F2023\u002F10\u002Fresource-alerts","Resource Monitoring in Audit Log",{"path":1675,"title":1560},"\u002Fchangelog\u002F2023\u002F11\u002F2fa",{"path":1677,"title":1678},"\u002Fchangelog\u002F2023\u002F11\u002Fdefault-editor","Device Editor enabled by default",{"path":1680,"title":1681},"\u002Fchangelog\u002F2023\u002F11\u002Fdevices-in-pipelines","Devices in DevOps Pipelines",{"path":1683,"title":1684},"\u002Fchangelog\u002F2023\u002F11\u002Fproject-nodes-devices","Project Nodes for Devices",{"path":1686,"title":1687},"\u002Fchangelog\u002F2023\u002F12\u002Fbilling","No Credit Card required for billing",{"path":1689,"title":1690},"\u002Fchangelog\u002F2023\u002F12\u002Fblueprint-selection","Blueprint Selection Update",{"path":1692,"title":1693},"\u002Fchangelog\u002F2023\u002F12\u002Fdevice-groups","Device Groups",{"path":1695,"title":1696},"\u002Fchangelog\u002F2023\u002F12\u002Femail-alerting-node-red-crash","Email Alerts for Audit Log Events",{"path":1698,"title":1699},"\u002Fchangelog\u002F2023\u002F12\u002Fnode-red-updated","Node-RED 3.1.3 now available",{"path":1701,"title":1702},"\u002Fchangelog\u002F2024\u002F01\u002Fdevice-audit-log","Introducing the Device Auditlog Feature",{"path":1704,"title":1705},"\u002Fchangelog\u002F2024\u002F01\u002Fdevice-groups-snapshot","Device Groups - Automatic snapshot assignment",{"path":1707,"title":1708},"\u002Fchangelog\u002F2024\u002F01\u002Ffleet-mode","Renaming \"Default Device Mode\" to \"Fleet Mode\"",{"path":1710,"title":1711},"\u002Fchangelog\u002F2024\u002F01\u002Fhelm-v2","Helm Chart v2.0",{"path":1713,"title":1714},"\u002Fchangelog\u002F2024\u002F01\u002Fnew-blueprints","New Blueprints added",{"path":1716,"title":1717},"\u002Fchangelog\u002F2024\u002F01\u002Fsecurity-updates","Security Updates",{"path":1719,"title":1720},"\u002Fchangelog\u002F2024\u002F01\u002Fsso-team-membership","Managing Team Membership via SSO",{"path":1722,"title":1723},"\u002Fchangelog\u002F2024\u002F01\u002Fstreamlined-device-assignment","Streamlined Device assignment",{"path":1725,"title":1726},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-auto-snapshot","Device Auto Snapshots",{"path":1728,"title":1729},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-instance-audit-logs","Device Instance Audit Logging",{"path":1731,"title":1732},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-onboarding-improvements","Device Onboarding Improvements",{"path":1734,"title":1735},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-pricing-change","Pricing change for Devices",{"path":1737,"title":1738},"\u002Fchangelog\u002F2024\u002F02\u002Finstance-auto-snapshots","Instance Auto Snapshots",{"path":1740,"title":1741},"\u002Fchangelog\u002F2024\u002F02\u002Fpostgresql-upgrade","PostgreSQL Version update",{"path":1743,"title":1744},"\u002Fchangelog\u002F2024\u002F03\u002Fbearer-token-authentication","Bearer Token Authentication for Node-RED Instances",{"path":1746,"title":1747},"\u002Fchangelog\u002F2024\u002F03\u002Finstance-protection-mode","Instance Protection Mode",{"path":1749,"title":1750},"\u002Fchangelog\u002F2024\u002F03\u002Flimits-debug-payload","Configure HTTP Payload and Debug Message size",{"path":1752,"title":1753},"\u002Fchangelog\u002F2024\u002F03\u002Frestart-devices-remotly","Remote Device Restart",{"path":1755,"title":1756},"\u002Fchangelog\u002F2024\u002F04\u002Fcustom-nodes-on-devices","Custom Nodes Support on Devices",{"path":1758,"title":1759},"\u002Fchangelog\u002F2024\u002F04\u002Fdevice-auto-snapshot","Direct Dashboard Access",{"path":1761,"title":1762},"\u002Fchangelog\u002F2024\u002F04\u002Fimproving-device-groups","Improving Device Groups",{"path":1764,"title":1765},"\u002Fchangelog\u002F2024\u002F04\u002Fpricing-change","Pricing change Enterprise & Teams Tier",{"path":1767,"title":1768},"\u002Fchangelog\u002F2024\u002F04\u002Ftougher-rate-limiting","Tougher Rate Limiting on Public Routes",{"path":1770,"title":1771},"\u002Fchangelog\u002F2024\u002F05\u002Finstance-healthcheck","Customizing instance health-check settings",{"path":1773,"title":1774},"\u002Fchangelog\u002F2024\u002F05\u002Flibrary-blueprints","Blueprints added to Library",{"path":1776,"title":1777},"\u002Fchangelog\u002F2024\u002F05\u002Flibrary-flowviewer","Team Library - Flow Viewer",{"path":1779,"title":1780},"\u002Fchangelog\u002F2024\u002F05\u002Fmanaging-node-red-version-on-devices","Managing Node-RED versions on Devices",{"path":1782,"title":1783},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-improvements","Snapshot Improvements",{"path":1785,"title":1786},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-improvements-pt3","Snapshot Upload",{"path":1788,"title":1786},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-upload",{"path":1790,"title":1791},"\u002Fchangelog\u002F2024\u002F06\u002Fdevice-agent-proxy-support","Running the Device Agent behind an HTTP proxy",{"path":1793,"title":1794},"\u002Fchangelog\u002F2024\u002F06\u002Flibrary-blueprints","Custom hostnames for your instances",{"path":1796,"title":1797},"\u002Fchangelog\u002F2024\u002F06\u002Fmultiline-env-vars","Multi-line Environment Variables",{"path":1799,"title":1800},"\u002Fchangelog\u002F2024\u002F06\u002Fsnapshot-flow-compare","Compare Snapshots flows",{"path":1802,"title":1803},"\u002Fchangelog\u002F2024\u002F07\u002Fapplications-search","Applications Search",{"path":1805,"title":1806},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-group-clear-snapshot","Device Groups Snapshots",{"path":1808,"title":1809},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-management-bulk-delete","Managing devices",{"path":1811,"title":1809},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-management-bulk-move",{"path":1813,"title":1814},"\u002Fchangelog\u002F2024\u002F07\u002Fedit-snapshots","Edit Snapshots",{"path":1816,"title":1817},"\u002Fchangelog\u002F2024\u002F07\u002Fflowfuse-assistant","The FlowFuse Expert",{"path":1819,"title":1820},"\u002Fchangelog\u002F2024\u002F07\u002Fflowfuse-assistant-json","FlowFuse Expert Writes JSON",{"path":1822,"title":1823},"\u002Fchangelog\u002F2024\u002F07\u002Fimmersive-editor","Immersive Editor Experience",{"path":1825,"title":1826},"\u002Fchangelog\u002F2024\u002F07\u002Fnotifications-inbox","Notifications Inbox",{"path":1828,"title":1826},"\u002Fchangelog\u002F2024\u002F07\u002Fnotifications-update",{"path":1830,"title":1831},"\u002Fchangelog\u002F2024\u002F07\u002Fpersistent-storage","Persistent Storage on FlowFuse Cloud",{"path":1833,"title":1834},"\u002Fchangelog\u002F2024\u002F07\u002Fsso","Single Sign On Updates",{"path":1836,"title":1837},"\u002Fchangelog\u002F2024\u002F08\u002Fbill-of-materials","Bill of Materials",{"path":1839,"title":1840},"\u002Fchangelog\u002F2024\u002F08\u002Fenterprise-license-update","Enforcing Enterprise Restrictions",{"path":1842,"title":1843},"\u002Fchangelog\u002F2024\u002F08\u002Fldap-sso-groups","LDAP Single Sign On Updates",{"path":1845,"title":1846},"\u002Fchangelog\u002F2024\u002F08\u002Fstatic-file-service-navigation-visibility","Static File Service Navigation and Visibility",{"path":1848,"title":1849},"\u002Fchangelog\u002F2024\u002F10\u002Fdevice-group-env-vars","Environment Variables for your Device Groups",{"path":1851,"title":1852},"\u002Fchangelog\u002F2024\u002F10\u002Fmqtt-service","MQTT Broker Service",{"path":1854,"title":1855},"\u002Fchangelog\u002F2024\u002F10\u002Fnotifications-bulk-actions","Managing Notifications",{"path":1857,"title":1858},"\u002Fchangelog\u002F2024\u002F10\u002Fsnapshot-download-upload-options","Snapshot Upload and Download Improvements",{"path":1860,"title":1499},"\u002Fchangelog\u002F2024\u002F10\u002Fversion-history-timeline",{"path":1862,"title":1863},"\u002Fchangelog\u002F2024\u002F11\u002Faudit-log-hierarchy","Audit logs show hierarchical events",{"path":1865,"title":1866},"\u002Fchangelog\u002F2024\u002F11\u002Fdevice-agent-release","Device Agent 3.0 released",{"path":1868,"title":1869},"\u002Fchangelog\u002F2024\u002F11\u002Fmqtt-topic-hierarchy","MQTT Topic Hierarchy view",{"path":1871,"title":1872},"\u002Fchangelog\u002F2024\u002F11\u002Fteam-search","Team-wide search",{"path":1874,"title":1875},"\u002Fchangelog\u002F2024\u002F12\u002Fdashboad-iframe","Allow Dashboards to be embedded in iFrames",{"path":1877,"title":1878},"\u002Fchangelog\u002F2024\u002F12\u002Fdevice-editor-cache","Device Editor Access Speed Up",{"path":1880,"title":1881},"\u002Fchangelog\u002F2024\u002F12\u002Fteam-bom-timeline","Team BOM and Pipeline Views",{"path":1883,"title":1884},"\u002Fchangelog\u002F2025\u002F01\u002Ffree-tier-onboarding","New Onboarding Tour for Free Tier Users",{"path":1886,"title":1887},"\u002Fchangelog\u002F2025\u002F01\u002Fhidden-env-vars","Hidden Environment Variables",{"path":1889,"title":1890},"\u002Fchangelog\u002F2025\u002F01\u002Fimproved-diagnostics","Improved Diagnostics",{"path":1892,"title":1893},"\u002Fchangelog\u002F2025\u002F01\u002Fteam-level-groups","Team level view of Groups",{"path":1895,"title":1896},"\u002Fchangelog\u002F2025\u002F02\u002Fadditional-device-version-history-events","New Remote Instances Version History Events",{"path":1898,"title":1899},"\u002Fchangelog\u002F2025\u002F02\u002Fbroker-error-feedback","Improved Broker Connection Feedback",{"path":1901,"title":1902},"\u002Fchangelog\u002F2025\u002F02\u002Fdevice-agent-updates","FlowFuse User Authentication on Remote Instances",{"path":1904,"title":1499},"\u002Fchangelog\u002F2025\u002F02\u002Fdevice-version-history-timeline",{"path":1906,"title":1907},"\u002Fchangelog\u002F2025\u002F02\u002Fexternal-brokers","External MQTT Brokers",{"path":1909,"title":1910},"\u002Fchangelog\u002F2025\u002F02\u002Fmqtt-schema-suggestions","MQTT Smart Schema Suggestions",{"path":1912,"title":1913},"\u002Fchangelog\u002F2025\u002F02\u002Fresend-and-extend-team-invitation-expiration","Re-send Team Invitations",{"path":1915,"title":1916},"\u002Fchangelog\u002F2025\u002F02\u002Fschema-docs","Personalized Schema Documentation",{"path":1918,"title":1919},"\u002Fchangelog\u002F2025\u002F02\u002Ftopic-hierarchy-search","Search & Filter for Topic Hierarchy List",{"path":1921,"title":1922},"\u002Fchangelog\u002F2025\u002F03\u002Fcontainer-tags","Changes to tags for flowfuse\u002Fnode-red",{"path":1924,"title":1925},"\u002Fchangelog\u002F2025\u002F03\u002Fdevice-groups","Multiple Device Groups in a pipeline",{"path":1927,"title":1928},"\u002Fchangelog\u002F2025\u002F03\u002Fdevice-local-login","Local Login for Remote Instances",{"path":1930,"title":1931},"\u002Fchangelog\u002F2025\u002F03\u002Ffree-tier","Free Tier now more accessible to all",{"path":1933,"title":1934},"\u002Fchangelog\u002F2025\u002F03\u002Fresource-notifications","Resource Alerts",{"path":1936,"title":1937},"\u002Fchangelog\u002F2025\u002F03\u002Fsnapshot-filter","Filtering Snapshots",{"path":1939,"title":1940},"\u002Fchangelog\u002F2025\u002F03\u002Fteam-npm-registry","NPM Package Hosting",{"path":1942,"title":1943},"\u002Fchangelog\u002F2025\u002F03\u002Ftopic-deletion","MQTT Topic Management",{"path":1945,"title":1946},"\u002Fchangelog\u002F2025\u002F04\u002Fdevice-provisioning","Remote Instance Provisioning",{"path":1948,"title":1949},"\u002Fchangelog\u002F2025\u002F04\u002Fgit-integration","Git Integration with Pipelines",{"path":1951,"title":1952},"\u002Fchangelog\u002F2025\u002F04\u002Finstance-log-browsing","Better Node-RED log handling",{"path":1954,"title":1955},"\u002Fchangelog\u002F2025\u002F05\u002Fimport-node-red-flows","Import Node-RED Flows During Remote Instance Setup",{"path":1957,"title":1958},"\u002Fchangelog\u002F2025\u002F06\u002Fflowfuse-assistant","FlowFuse Expert just got smarter",{"path":1960,"title":1958},"\u002Fchangelog\u002F2025\u002F06\u002Fflowfuse-assistant-2",{"path":1962,"title":1963},"\u002Fchangelog\u002F2025\u002F06\u002Fgit-integration","Pulling snapshots from Git with Pipelines",{"path":1965,"title":1966},"\u002Fchangelog\u002F2025\u002F06\u002Finstance-performance-memory","Memory Metrics in Instance Performance View",{"path":1968,"title":1969},"\u002Fchangelog\u002F2025\u002F06\u002Fnew-home-page","Introducing the New Home Page Experience",{"path":1971,"title":1972},"\u002Fchangelog\u002F2025\u002F06\u002Fteam-performance","Team Performance Feature",{"path":1974,"title":1975},"\u002Fchangelog\u002F2025\u002F06\u002Fteam-performance-view","Instance Performance View",{"path":1977,"title":1978},"\u002Fchangelog\u002F2025\u002F06\u002Fui-refresh","Navigation UI Refresh",{"path":1980,"title":1981},"\u002Fchangelog\u002F2025\u002F07\u002Fbrowse-node-red-flows","Browse for Node-RED Flows During Remote Instance Setup",{"path":1983,"title":1325},"\u002Fchangelog\u002F2025\u002F07\u002Fflowfuse-tables",{"path":1985,"title":1986},"\u002Fchangelog\u002F2025\u002F07\u002Fimport-blueprints","Import blueprints directly into your existing instances",{"path":1988,"title":1989},"\u002Fchangelog\u002F2025\u002F07\u002Fsimplified-applications-overview","Simplified Applications Page with Summary Tiles",{"path":1991,"title":1992},"\u002Fchangelog\u002F2025\u002F07\u002Fsmart-suggestions","Smart Suggestions",{"path":1994,"title":1995},"\u002Fchangelog\u002F2025\u002F07\u002Fteam-to-pro-plan-rename","Team Plan Renamed to Pro Plan",{"path":1997,"title":1998},"\u002Fchangelog\u002F2025\u002F08\u002Fai-generated-snapshot-descriptions-hosted","Generate snapshot descriptions with AI",{"path":2000,"title":2001},"\u002Fchangelog\u002F2025\u002F08\u002Fai-generated-snapshot-descriptions-remote","AI Snapshot Descriptions Now Work with Remote Instances",{"path":2003,"title":2004},"\u002Fchangelog\u002F2025\u002F08\u002Fdevice-performance","FlowFuse Remote Instance Performance Data",{"path":2006,"title":2007},"\u002Fchangelog\u002F2025\u002F08\u002Fdirect-sso","Direct SSO Login",{"path":2009,"title":2010},"\u002Fchangelog\u002F2025\u002F08\u002Fflowfuse-assistant","FlowFuse Expert documents your flows",{"path":2012,"title":2013},"\u002Fchangelog\u002F2025\u002F08\u002Fflowfuse-mqtt","FlowFuse MQTT",{"path":2015,"title":2016},"\u002Fchangelog\u002F2025\u002F08\u002Fhttp-cors","Configure HTTP CORS",{"path":2018,"title":2019},"\u002Fchangelog\u002F2025\u002F08\u002Fsubflow-export","Export SubFlow as Node-RED module",{"path":2021,"title":2022},"\u002Fchangelog\u002F2025\u002F08\u002Ftables-assistant","FlowFuse Tables with a little help from the Assistant",{"path":2024,"title":2025},"\u002Fchangelog\u002F2025\u002F09\u002Fexpose-saml-groups-to-dashboard","Allow SSO groups to be shared with the Node-RED Dashboard",{"path":2027,"title":2028},"\u002Fchangelog\u002F2025\u002F09\u002Finline-assist","FlowFuse Expert can help you write code",{"path":2030,"title":2031},"\u002Fchangelog\u002F2025\u002F09\u002Fretiring-flowforge-device-agent","No more @flowforge\u002Fflowforge-device-agent releases",{"path":2033,"title":2034},"\u002Fchangelog\u002F2025\u002F09\u002Frevised-instance-snapshot-ui","Streamlined Snapshot Management",{"path":2036,"title":2037},"\u002Fchangelog\u002F2025\u002F09\u002Fteam-broker-async-api","Capture Async API data from FlowFuse Team Broker",{"path":2039,"title":2040},"\u002Fchangelog\u002F2025\u002F10\u002Fapplication-level-rbac","Application-level access control for Enterprise teams",{"path":2042,"title":2043},"\u002Fchangelog\u002F2025\u002F10\u002Fbulk-device-group-assignment","Easier Access to Bulk Device Group Management",{"path":2045,"title":2046},"\u002Fchangelog\u002F2025\u002F10\u002Fduplicate-instances-across-applications","Duplicate Instances Across Different Applications",{"path":2048,"title":2049},"\u002Fchangelog\u002F2025\u002F10\u002Fimport-flows-on-instance-creation","Import flows during instance creation",{"path":2051,"title":2052},"\u002Fchangelog\u002F2025\u002F10\u002Fmcp-nodes","FlowFuse MCP Server Nodes",{"path":2054,"title":2055},"\u002Fchangelog\u002F2025\u002F10\u002Fonnx-nodes","FlowFuse AI Nodes",{"path":2057,"title":2058},"\u002Fchangelog\u002F2025\u002F10\u002Fsettings-page-device-group-management","Device Group Management from Settings Page",{"path":2060,"title":2061},"\u002Fchangelog\u002F2025\u002F11\u002Fff-expert-update","FlowFuse Expert Update",{"path":2063,"title":2064},"\u002Fchangelog\u002F2025\u002F11\u002Fminimum-nodejs-version","Node.js v20 Minimum Version Requirement",{"path":2066,"title":2067},"\u002Fchangelog\u002F2025\u002F11\u002Fsso-session","SSO control over Session life",{"path":2069,"title":2070},"\u002Fchangelog\u002F2025\u002F12\u002Fff-expert-mcp-insights","FlowFuse Expert: Now with MCP-Powered Insights",{"path":2072,"title":2073},"\u002Fchangelog\u002F2025\u002F12\u002Fscheduled-maintenance","Scheduled Maintenance Mode",{"path":2075,"title":2076},"\u002Fchangelog\u002F2026\u002F01\u002Fdevice-agent-containers","Device Agent Docker Containers updated",{"path":2078,"title":2079},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-manage-palette","FlowFuse Expert: Enhanced Palette Integration",{"path":2081,"title":2082},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-nr-actions","FlowFuse Expert: Integration with Node-RED",{"path":2084,"title":2085},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-palette-queries","FlowFuse Expert: Palette Queries",{"path":2087,"title":2088},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-select-flows","FlowFuse Expert: Ask about your flows",{"path":2090,"title":2091},"\u002Fchangelog\u002F2026\u002F01\u002Fmcp-rbacs","FlowFuse Expert: MCP-Powered Insights with RBACs",{"path":2093,"title":2094},"\u002Fchangelog\u002F2026\u002F01\u002Fmcp-security","FlowFuse Expert: MCP-Powered Insights",{"path":2096,"title":2097},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options","Set Node.js Options for Remote Instances",{"path":2099,"title":2100},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context","FlowFuse Expert: Helping you make sense of your debug log",{"path":2102,"title":2103},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner","FlowFuse Expert: Never Miss an Update",{"path":2105,"title":2106},"\u002Fchangelog\u002F2026\u002F02\u002Fha-instance-rolling-restart","HA Hosted Instance Rolling Restart",{"path":2108,"title":2109},"\u002Fchangelog\u002F2026\u002F02\u002Fremote-instances-immersive-editor","Immersive Mode for Remote Instances",{"path":2111,"title":2112},"\u002Fchangelog\u002F2026\u002F02\u002Frestoring-snapshots-to-remote-instances","Restoring snapshots to developer-mode Remote Instances",{"path":2114,"title":2115},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops","Azure DevOps Pipeline support",{"path":2117,"title":2118},"\u002Fchangelog\u002F2026\u002F03\u002Fdeveloper-mode-in-immersive-editor","Developer Mode Now Accessible from the Immersive Editor",{"path":2120,"title":2121},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title","Embedded Editor Now Shows Active Tab",{"path":2123,"title":2124},"\u002Fchangelog\u002F2026\u002F03\u002Fmarch-scheduled-maintenance","Updated: Upcoming Scheduled Server Maintenance on March 28th, 2026",{"path":2126,"title":2127},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor","View Snapshot Details in the Immersive Editor",{"path":2129,"title":2130},"\u002Fchangelog\u002F2026\u002F04\u002Fexpert-action-links","FlowFuse expert action links",{"path":2132,"title":2133},"\u002Fchangelog\u002F2026\u002F04\u002Fhosted-instance-url-env-var","Hosted Instances know their own URL",{"path":2135,"title":1394},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer",{"path":2137,"title":2138},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer","Richer snapshot comparison view",{"path":2140,"title":2141},"\u002Fchangelog\u002F2026\u002F05\u002Fai-opt-out","AI Feature Opt-Out for Teams",{"path":2143,"title":2144},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building","FlowFuse Expert Builds Your Application",{"path":2146,"title":2147},"\u002Fchangelog\u002F2026\u002F05\u002Fsingle-sso-provider","Single SSO provider for all users",{"path":2149,"title":2150},"\u002Fchangelog\u002F2026\u002F06\u002Fdark-mode","Dark Mode",{"path":2152,"title":2153},"\u002Fchangelog\u002F2026\u002F06\u002Fdevice-agent-v4-released","Device Agent v4 released",{"path":2155,"title":2156},"\u002Fchangelog\u002F2026\u002F06\u002Fgeneric-git-server-support","Connect Pipelines to Any Git Server",{"path":2158,"title":2159},"\u002Fchangelog\u002F2026\u002F06\u002Fjuly-scheduled-maintenance","Updated: Upcoming Scheduled Server Maintenance on July 11th, 2026",{"path":2161,"title":2162},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups","Application Roles from SSO Groups",{"path":2164,"title":2165},"\u002Fchangelog\u002F2026\u002F07\u002Fdevice-agent-onboarding","Getting started with FlowFuse straight from the terminal",{"path":2167,"title":2168},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-enhancements","FlowFuse Expert Enhancements",{"path":2170,"title":2171},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation","FlowFuse Expert Can Now Work With Your Tables",{"path":2173,"title":2174},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats","Team Scoped Personal Access Tokens",{"path":2176,"title":2177},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards","A Dedicated Home for Your Dashboards",[],1786105889908]