[{"data":1,"prerenderedAt":1901},["ShallowReactive",2],{"blog-\u002Fblog\u002F2025\u002F12\u002Fwhat-is-plc":3,"featureCatalog":971,"changelog-titles":1366,"blog-all-for-related":1900},{"id":4,"title":5,"authors":6,"body":8,"cta":944,"date":945,"description":946,"extension":947,"features":944,"image":948,"lastUpdated":944,"meta":949,"navigation":960,"path":961,"release":944,"seo":962,"sitemap":963,"stem":964,"subtitle":965,"tags":966,"tldr":969,"video":944,"__hash__":970},"blog\u002Fblog\u002F2025\u002F12\u002Fwhat-is-plc.md","What Is a PLC (Programmable Logic Controller)? What It Does, How It Works, and Where It's Used",[7],"sumit-shinde",{"type":9,"value":10,"toc":921},"minimark",[11,21,32,35,44,47,52,55,58,61,64,70,73,77,80,91,94,97,100,107,110,119,122,126,129,135,141,147,153,159,165,171,174,178,181,212,215,218,221,225,234,240,250,260,266,272,278,281,285,288,410,413,417,420,425,489,495,499,502,507,511,514,519,523,526,531,535,538,541,549,553,556,562,568,574,577,580,591,595,598,607,616,625,631,642,648,654,660,666,669,673,676,679,685,696,702,713,716,820,823,833,837,840,843,849,855,861,867,873,876,880,883,895,904,918],[12,13,14],"p",{},[15,16,17],"em",{},[18,19,20],"strong",{},"A PLC (Programmable Logic Controller) is an industrial computer that continuously monitors sensors, executes control logic, and operates motors, valves, and equipment in real time, serving as the reliable backbone of modern manufacturing and industrial automation.",[12,22,23,24,31],{},"On New Year's Day 1968, ",[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDick_Morley",[29],"nofollow","Dick Morley"," woke up with a brutal hangover and wrote the specification that would replace relay logic in factories worldwide. Nursing what he later described as a wicked headache, he defined a device that could run a production line, survive a factory floor, and be reprogrammed without anyone touching a wire.",[12,33,34],{},"Before that morning, changing how a factory operated meant physically rewiring thousands of electromagnetic relays. General Motors was losing weeks of production and millions in labor costs every time it retooled a line. Morley's design turned that into a software change.",[12,36,37,38,43],{},"Today PLCs control the assembly of the car you drive, the batch that produced your medication, and the pumps that treat your drinking water. They run power substations, traffic systems, and semiconductor fabs. It is a ",[25,39,42],{"href":40,"rel":41},"https:\u002F\u002Fwww.mordorintelligence.com\u002Findustry-reports\u002Fprogrammable-logic-controller-plc-market",[29],"$13 billion market",", and most people have never heard of the technology.",[12,45,46],{},"This article covers what a PLC actually is, what sits inside one, how the scan cycle works, how PLCs are programmed, the types available, where they run, and the problem that dominates industrial automation projects today: getting controllers from different vendors to share their data.",[48,49,51],"h2",{"id":50},"what-is-a-plc-programmable-logic-controller","What is a PLC (Programmable Logic Controller)?",[12,53,54],{},"A Programmable Logic Controller is an industrial computer built for one job: controlling machines and processes in real time with high reliability. Unlike a laptop or a cloud server, a PLC operates in conditions that destroy standard computers, including temperature extremes, constant vibration, electrical noise, dust, and humidity.",[12,56,57],{},"The concept is simple. A PLC reads inputs from sensors and switches, executes logic from its stored program, and updates outputs that drive motors, valves, lights, and equipment. It repeats that loop continuously, hundreds or thousands of times per second. Read inputs. Run logic. Update outputs. Repeat.",[12,59,60],{},"What sets a PLC apart is not computing power. Your phone outperforms every PLC ever built. It is deterministic execution. The program runs the same way, in the same order, in a predictable amount of time, on every single scan. No operating system decides to install an update. No background process steals a time slice. In a plant where a missed decision means a ruined batch, a damaged machine, or an injured operator, that predictability is the entire product.",[12,62,63],{},"The hardware reflects the same priority. Industrial-grade components tolerate heat and electrical interference. Power supplies absorb the voltage sags and spikes that come with starting large motors. I\u002FO modules interface directly with field devices at industrial voltages and currents, with isolation so a fault in the field does not reach the processor. The programming languages are visual and built around relay diagrams, because the people who commission and maintain these systems are controls engineers and electricians, not software developers.",[65,66],"cta-image",{"alt":67,"cta":68,"src":69},"Book a demo with FlowFuse","demo","\u002Fblog\u002F2025\u002F12\u002Fimages\u002Faperia-inline-cta-book-demo.png",[12,71,72],{},"That design has barely changed since 1968, and the reason is straightforward: it works. A PLC installed in a chemical plant runs for decades. A controller in an automotive body shop executes millions of cycles without a fault. Industrial automation never adopted \"move fast and break things.\" The operating principle here is narrower: do not break.",[48,74,76],{"id":75},"history-of-plcs-from-relay-rooms-to-smart-controllers","History of PLCs: from relay rooms to smart controllers",[12,78,79],{},"Before PLCs, control logic lived in walls of electromagnetic relays. Thousands of mechanical switches, wired together, defined how a machine behaved. Changing a process meant rewiring a cabinet by hand. Every model change brought weeks of downtime, crews of electricians, and a real chance that one wrong wire would stop the plant.",[12,81,82,88],{},[83,84],"img",{"alt":85,"dataZoomable":86,"src":87},"Pre-PLC industrial relay control cabinet used in factories before programmable logic controllers replaced hard-wired relay logic","","\u002Fblog\u002F2025\u002F12\u002Fimages\u002Fpre-plc-relay-cabinet.jpg",[15,89,90],{},"A relay control cabinet of the kind PLCs replaced. Every logic change here meant physically rewiring the panel.",[12,92,93],{},"By the late 1960s that inflexibility was becoming untenable, especially in automotive. Meanwhile Dick Morley was running Bedford Associates, a small consultancy helping machine tool firms move to solid-state controls. The work paid, but every project was a variation on the last.",[12,95,96],{},"On New Year's Day 1968, hungover and two weeks late on yet another proposal, Morley wrote a specification for something he called a Programmable Controller: a device that could replace relay logic, survive factory conditions, and be reprogrammed without rewiring. His requirements were specific. No processing interrupts. Direct memory mapping. A sealed, rugged enclosure cooled by heat sinks rather than fans. A programming language modeled on relay diagrams, which became ladder logic. He also specified that it should run slowly, a decision he later regretted.",[12,98,99],{},"Morley took the memo to his colleagues at Bedford Associates and gave them one rule: never call it a computer. If he found that word on a document, he threw the document away. They built a sealed unit with metal fin heat sinks and named it the Model 084, Bedford's eighty-fourth project.",[12,101,102,103,106],{},"To commercialize it, the team formed a new company in October 1968 and called it ",[18,104,105],{},"Modicon",", short for Modular Digital Controller. Morley was never formally an employee, but he ran engineering. The Model 084 shipped in 1969, followed by the Model 184, which fixed the problems the first units exposed.",[12,108,109],{},"General Motors placed a million-dollar order, and in November 1969 its Hydramatic Division took delivery of the first batch. General Electric followed with an order of its own, planning to rebrand the controllers as OEM units. Within a year of Modicon's founding, the PLC had gone from a hungover memo to production deployment at the world's largest automaker.",[12,111,112,116],{},[83,113],{"alt":114,"dataZoomable":86,"src":115},"PLC Pioneers Richard Morley, Tom Bossevain, George Schwenk and Jonas Landau","\u002Fblog\u002F2025\u002F12\u002Fimages\u002FFirst-modicon-084.png",[15,117,118],{},"The team behind the first Modicon 084: Richard Morley, Tom Boissevain, George Schwenk, and Jonas Landau.",[12,120,121],{},"Morley always called himself the father of the PLC rather than its inventor. He knew other groups were chasing the same problem and believed the technology invented itself out of necessity. Modicon was later acquired and now sits inside Schneider Electric, which still uses the number 84 on products as a nod to where it started.",[48,123,125],{"id":124},"whats-inside-a-plc-the-7-main-parts","What's inside a PLC: the 7 main parts",[12,127,128],{},"Open a PLC cabinet and you will find a metal assembly on a DIN rail, covered in wire terminals, with no monitor, no keyboard, and no fan. Seven functional parts do all the work.",[12,130,131,134],{},[18,132,133],{},"1. Power supply."," Converts plant power into the clean, stable DC the processor and modules need. It is rated for abuse, because industrial power is chaotic: sags when large motors start, spikes from switching, and harmonics from variable frequency drives.",[12,136,137,140],{},[18,138,139],{},"2. Central processing unit (CPU)."," Executes the control program. Modern PLCs use industrial microprocessors chosen for temperature tolerance and long-term availability rather than raw speed. The CPU also runs self-diagnostics and manages the scan cycle.",[12,142,143,146],{},[18,144,145],{},"3. Memory."," Holds the program and the data it works on. Non-volatile memory retains the compiled program and retentive values through a power cycle. Volatile working memory holds the I\u002FO image table, timers, counters, and intermediate results for the current scan.",[12,148,149,152],{},[18,150,151],{},"4. Input modules."," Convert field signals into values the CPU can read. A limit switch closes a 24 V DC circuit. A temperature transmitter sends 4-20 mA. A pressure sensor outputs 0-10 V. Digital input modules report on or off. Analog input modules digitize a continuous range. Both provide electrical isolation so field noise and ground loops never reach the processor.",[12,154,155,158],{},[18,156,157],{},"5. Output modules."," Drive the physical world. When the program decides a motor should run, the output module closes a relay, switches a transistor, or sends an analog signal to a drive. Digital outputs handle contactors, solenoids, and indicators. Analog outputs set valve positions and drive speed references.",[12,160,161,164],{},[18,162,163],{},"6. Communication interface."," Connects the PLC to everything else: HMIs, SCADA systems, other PLCs, drives, remote I\u002FO, and IT systems. This is usually an Ethernet port plus one or more fieldbus ports, and it is where most of the difficulty in modern automation projects lives.",[12,166,167,170],{},[18,168,169],{},"7. Programming device."," The laptop and vendor software you use to write, download, and debug the program. It also provides online monitoring, so you can watch logic execute live while the machine runs.",[12,172,173],{},"Small PLCs integrate all seven into one sealed housing. Large systems distribute them across a rack, so you can add I\u002FO, swap a failed module, or scale the system without replacing the controller.",[48,175,177],{"id":176},"how-a-plc-works-the-scan-cycle","How a PLC works: the scan cycle",[12,179,180],{},"Every PLC runs the same four-step loop, over and over, for as long as it is powered.",[182,183,184,191,200,206],"ol",{},[185,186,187,190],"li",{},[18,188,189],{},"Input scan."," The PLC copies the state of every input into memory at once. That snapshot is what the program reads, so a sensor changing mid-program cannot produce inconsistent behavior.",[185,192,193,196,197],{},[18,194,195],{},"Program execution."," The controller runs the control logic from first instruction to last, using the snapshot. ",[15,198,199],{},"If temperature exceeds 250 °F, open the cooling valve. If a part is present and the quality check passed, advance the conveyor.",[185,201,202,205],{},[18,203,204],{},"Output update."," The PLC writes all calculated results to the physical output modules at once. Motors start. Valves move. Nothing updates partway through the logic.",[185,207,208,211],{},[18,209,210],{},"Housekeeping."," The controller handles communications, diagnostics, and error checking, then starts the next scan immediately.",[12,213,214],{},"A full cycle typically takes 1 to 50 milliseconds depending on program size and CPU. A 10 ms scan means the controller makes a hundred complete decisions per second, every second, for years.",[12,216,217],{},"This structure eliminates whole categories of software bug by design. Inputs cannot change mid-program. Outputs cannot update while logic is still evaluating. Race conditions do not occur. Two engineers reading the same program reach the same conclusion about what it will do, which matters enormously when the person troubleshooting at 3 a.m. is not the person who wrote it.",[12,219,220],{},"Scan time also sets a hard limit you have to design around. If the fastest event you need to catch is shorter than your scan time, the PLC will miss it. That is why high-speed counting, motion control, and safety functions typically move to dedicated modules that operate outside the normal scan.",[48,222,224],{"id":223},"plc-programming-languages","PLC programming languages",[12,226,227,228,233],{},"PLCs do not run Python or C++. They run the ",[25,229,232],{"href":230,"rel":231},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIEC_61131-3",[29],"IEC 61131-3"," languages, designed for controls engineers.",[12,235,236,239],{},[18,237,238],{},"Ladder logic"," looks like a relay wiring diagram, because it replaced relay wiring diagrams. Two vertical rails represent power. Contacts (conditions) and coils (outputs) sit on horizontal rungs between them. Here is a motor start\u002Fstop circuit, the first thing most engineers learn:",[241,242,247],"pre",{"className":243,"code":245,"language":246},[244],"language-text","    Start_PB      Stop_PB     Overload      Motor_Run\n ─────┤ ├──────────┤\u002F├─────────┤\u002F├────────────( )─────\n      │\n    Motor_Run\n ─────┤ ├──┘\n","text",[248,249,245],"code",{"__ignoreMap":86},[12,251,252,253,256,257,259],{},"Pressing the start button energizes ",[248,254,255],{},"Motor_Run",". The parallel ",[248,258,255],{}," contact then holds the rung true after the operator releases the button, which is called a seal-in. Pressing stop or tripping the overload breaks the rung and the motor drops out. Ladder logic is clumsy for mathematics and excellent for exactly this kind of discrete, interlocked control.",[12,261,262,265],{},[18,263,264],{},"Function block diagram"," wires together boxes representing timers, counters, math operations, and PID loops. Data flows left to right between blocks. It suits continuous process control, where analog values need scaling, filtering, and regulation.",[12,267,268,271],{},[18,269,270],{},"Structured text"," is a Pascal-like textual language for calculations, loops, and algorithms that would be unreadable in ladder. Recipe handling, data manipulation, and communication logic usually end up here.",[12,273,274,277],{},[18,275,276],{},"Sequential function chart"," models a process as steps and transitions, which fits batch operations and machine sequences with clearly defined states.",[12,279,280],{},"The standard is common, but the implementations are not. Siemens uses TIA Portal. Rockwell uses Studio 5000. Schneider uses EcoStruxure Control Expert. Mitsubishi uses GX Works. Programs are theoretically portable between platforms and practically are not, which is the first form of vendor lock-in an automation team encounters.",[48,282,284],{"id":283},"plc-vs-pc-pac-microcontroller-and-dcs","PLC vs PC, PAC, microcontroller, and DCS",[12,286,287],{},"\"Why not just use a PC?\" is a reasonable question with a specific answer, and the same applies to the other options.",[289,290,291,312],"table",{},[292,293,294],"thead",{},[295,296,297,300,303,306,309],"tr",{},[298,299],"th",{},[298,301,302],{},"Best at",[298,304,305],{},"Determinism",[298,307,308],{},"Environment",[298,310,311],{},"Typical lifespan",[313,314,315,335,354,373,392],"tbody",{},[295,316,317,323,326,329,332],{},[318,319,320],"td",{},[18,321,322],{},"PLC",[318,324,325],{},"Discrete machine and line control",[318,327,328],{},"Guaranteed scan time",[318,330,331],{},"Panel-mounted, -20 to 60 °C, vibration tolerant",[318,333,334],{},"20-30 years",[295,336,337,342,345,348,351],{},[318,338,339],{},[18,340,341],{},"PAC",[318,343,344],{},"Control plus data handling, motion, and vision in one controller",[318,346,347],{},"Guaranteed for control tasks",[318,349,350],{},"Same as PLC",[318,352,353],{},"15-25 years",[295,355,356,361,364,367,370],{},[318,357,358],{},[18,359,360],{},"Industrial PC",[318,362,363],{},"Data processing, analytics, visualization, edge workloads",[318,365,366],{},"Not guaranteed under a general-purpose OS",[318,368,369],{},"Rugged variants available",[318,371,372],{},"5-10 years",[295,374,375,380,383,386,389],{},[318,376,377],{},[18,378,379],{},"Microcontroller",[318,381,382],{},"Embedded control inside a product",[318,384,385],{},"Deterministic, but no industrial I\u002FO or diagnostics",[318,387,388],{},"Depends entirely on the board",[318,390,391],{},"Product-dependent",[295,393,394,399,402,405,408],{},[318,395,396],{},[18,397,398],{},"DCS",[318,400,401],{},"Continuous process control across a whole plant",[318,403,404],{},"Guaranteed, with plant-wide engineering",[318,406,407],{},"Control room and field cabinets",[318,409,334],{},[12,411,412],{},"The practical read: a PC will out-compute a PLC by orders of magnitude and still be the wrong choice for driving a press, because an operating system that can pause your logic for 200 milliseconds is not a control system. Conversely, a PLC is the wrong place to run a machine learning model or a historian. Well-designed plants use both and connect them, which is where the rest of this article ends up.",[48,414,416],{"id":415},"types-of-plcs","Types of PLCs",[12,418,419],{},"All PLCs run the same scan cycle. The hardware scales enormously depending on what they control.",[421,422,424],"h3",{"id":423},"micro-plcs","Micro PLCs",[12,426,427,428,488],{},"Micro PLCs handle very small tasks, typically 8 to 20 I\u002FO points: a single conveyor, pump, sorter, or door. They generally cost ",[429,430,433,463],"span",{"className":431},[432],"katex",[429,434,437],{"className":435},[436],"katex-mathml",[438,439,441],"math",{"xmlns":440},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[442,443,444,458],"semantics",{},[445,446,447,451,455],"mrow",{},[448,449,450],"mn",{},"100",[452,453,454],"mi",{},"t",[452,456,457],{},"o",[459,460,462],"annotation",{"encoding":461},"application\u002Fx-tex","100 to ",[429,464,468],{"className":465,"ariaHidden":467},[466],"katex-html","true",[429,469,472,477,481,485],{"className":470},[471],"base",[429,473],{"className":474,"style":476},[475],"strut","height:0.6444em;",[429,478,450],{"className":479},[480],"mord",[429,482,454],{"className":483},[480,484],"mathnormal",[429,486,457],{"className":487},[480,484],"500 and appear in car washes, vending machines, irrigation systems, and OEM equipment. Programming environments are simplified and focused on basic logic.",[12,490,491,494],{},[18,492,493],{},"Examples:"," Unitronics Jazz, AutomationDirect CLICK, IDEC SmartRelay",[421,496,498],{"id":497},"compact-plcs","Compact PLCs",[12,500,501],{},"Compact PLCs integrate the CPU, I\u002FO, and power supply into one fixed unit, usually covering 10 to 100 I\u002FO points. They suit packaging machines, pump stations, and HVAC plant. Many accept a limited number of add-on I\u002FO modules, but once you exhaust that expansion you are looking at a modular platform instead.",[12,503,504,506],{},[18,505,493],{}," Siemens S7-1200, Rockwell Micro800, Schneider Modicon M221",[421,508,510],{"id":509},"modular-plcs","Modular PLCs",[12,512,513],{},"Modular PLCs separate the CPU from I\u002FO modules mounted on expandable racks. Need several hundred I\u002FO points? Add modules. Need motion control, high-speed counting, redundancy, or a specific fieldbus? There is a module for it. This is the standard for automotive assembly, chemical processing, and large material handling. Costs run from roughly $10,000 to well into six figures depending on scale and redundancy.",[12,515,516,518],{},[18,517,493],{}," Siemens S7-1500, Rockwell ControlLogix, Schneider Modicon M580",[421,520,522],{"id":521},"safety-plcs","Safety PLCs",[12,524,525],{},"Safety PLCs protect people and equipment. They handle emergency stops, light curtains, safety interlocks, and guard door monitoring using redundant processors and continuous self-diagnostics. Certified architectures reach SIL 3 and Performance Level e, with failure rates in the range of 10⁻⁸ to 10⁻⁷ per hour for continuous operation. In most plants the safety PLC runs alongside the standard controller: production logic on one, safety functions on the other, with the safety system able to override everything the instant it detects a hazard.",[12,527,528,530],{},[18,529,493],{}," Pilz PNOZmulti, Siemens F-series, Rockwell GuardLogix",[421,532,534],{"id":533},"choosing-the-right-plc","Choosing the right PLC",[12,536,537],{},"Selection comes down to I\u002FO count, logic complexity, safety requirements, and how much you expect the system to grow. Fewer than 20 I\u002FO points with simple logic points to micro or compact. Production lines with hundreds of points, motion control, or serious networking need modular. Anything protecting a person requires a safety-rated controller, without exception.",[12,539,540],{},"One factor outweighs the technical comparison: most organizations standardize on a single vendor and stay there for decades, because retraining engineers and rewriting a program library is more expensive than the hardware. That decision is usually made once and lived with for a very long time.",[12,542,543,544,548],{},"Worth separating, though, is the control layer from the data layer. Committing to Siemens or Rockwell for the next twenty years of machine control is a defensible engineering decision. Letting that choice also dictate how production data reaches your historian, your ERP, or your quality team is not, and it is the part teams tend to concede without noticing. Keeping ",[25,545,547],{"href":546},"\u002Fuse-cases\u002Fit-ot-middleware\u002F","the integration layer vendor-neutral"," means the controller standard you pick today does not decide what you can build on top of it in five years.",[48,550,552],{"id":551},"plc-hmi-and-scada-how-they-work-together","PLC, HMI, and SCADA: how they work together",[12,554,555],{},"A PLC executes logic in milliseconds and has no screen. It cannot show an operator what is happening, log history, or send an alert. That is where HMIs and SCADA systems come in, and the three form distinct layers.",[12,557,558,561],{},[18,559,560],{},"PLCs"," control equipment in real time: read sensors, run logic, drive actuators.",[12,563,564,567],{},[18,565,566],{},"HMIs"," (Human-Machine Interfaces) are the touchscreens mounted at the machine. They display what the PLC is doing and let operators start equipment, adjust setpoints, and acknowledge alarms. The HMI sends a request; the PLC evaluates interlocks and decides whether to act. One HMI typically covers one machine or one section of a line.",[12,569,570,573],{},[18,571,572],{},"SCADA"," (Supervisory Control and Data Acquisition) operates at facility level. It polls dozens or hundreds of PLCs, stores trends, generates reports, and coordinates system-wide operations. A water utility with 50 pump stations runs a PLC at each one and a SCADA system in the control room that shows all 50 at once.",[12,575,576],{},"In practice: PLCs sit in cabinets, HMIs sit at machines, SCADA runs on servers. When a PLC detects a high temperature, the local HMI raises an alarm and SCADA logs it with a timestamp and notifies maintenance.",[12,578,579],{},"This hierarchy works well for operations. It starts to strain the moment someone outside operations wants the data, and that request always comes. Quality wants defect rates by shift. Maintenance wants runtime hours per asset. Finance wants energy cost per unit. None of those systems speak to a PLC, and SCADA was never designed to feed them.",[581,582,583],"blockquote",{},[12,584,585,586,590],{},"Most teams solve this one request at a time, and a year later they have thirty point-to-point connections nobody can map. The decision that saves the most rework is how you structure PLC data before you wire up the first system, not after. That is what a ",[25,587,589],{"href":588},"\u002Fuse-cases\u002Funs\u002F","unified namespace"," is for: every application reads from one place, so adding the next one costs a topic subscription instead of another integration project.",[48,592,594],{"id":593},"where-plcs-actually-run-real-world-applications","Where PLCs actually run: real-world applications",[12,596,597],{},"PLCs control processes where reliability is not negotiable. They are invisible by design and often outlast the engineers who commissioned them.",[12,599,600,606],{},[18,601,602],{},[25,603,605],{"href":604},"\u002Findustries\u002Fautomotive\u002F","Automotive assembly"," lines coordinate welding robots, conveyors, and quality gates. A body shop may run 50 or more PLCs managing hundreds of welds per vehicle. Retooling for a new model means reprogramming controllers instead of rewiring panels, which is precisely what GM needed in 1968.",[12,608,609,615],{},[18,610,611],{},[25,612,614],{"href":613},"\u002Findustries\u002Flife-sciences\u002F","Pharmaceutical production"," relies on PLCs for batch reactors where temperature, pressure, and timing must stay inside validated ranges. Every parameter is logged for regulatory compliance, and the controller flags any batch that drifts out of specification.",[12,617,618,624],{},[18,619,620],{},[25,621,623],{"href":622},"\u002Findustries\u002Ffood-beverage\u002F","Food and beverage"," plants run mixing, cooking, filling, capping, labeling, and case packing. A single bottling line coordinates all of it, executing the same programs millions of times.",[12,626,627,630],{},[18,628,629],{},"Water treatment"," plants manage pumps, chemical dosing, and filtration against flow and quality sensors. These systems commonly run 20 to 30 years, absorbing daily demand swings automatically.",[12,632,633,636,637,641],{},[18,634,635],{},"Power substations"," use PLCs for load monitoring, breaker control, and grid coordination, adjusting within milliseconds as generation and demand shift. The same controllers run inverter and turbine skids across ",[25,638,640],{"href":639},"\u002Findustries\u002Frenewables\u002F","renewable generation sites",", where output varies by the minute.",[12,643,644,647],{},[18,645,646],{},"Refineries and chemical plants"," manage temperatures, pressures, and emergency shutdown sequences in environments where a control failure is a safety event.",[12,649,650,653],{},[18,651,652],{},"Distribution centers"," run conveyor networks, sorters, and automated storage. A package is scanned, routed, and diverted to the correct lane through thousands of decisions per hour.",[12,655,656,659],{},[18,657,658],{},"Airport baggage systems"," are entirely PLC-controlled, moving bags from check-in through screening to the right carousel by destination and departure time.",[12,661,662,665],{},[18,663,664],{},"Mining operations"," run conveyors, crushers, and separation equipment continuously with minimal supervision, monitoring equipment health and shutting down automatically on fault.",[12,667,668],{},"The common thread is long-term reliability in demanding conditions. Controllers installed in the 1990s are still running in many of these facilities, executing the same logic, scan after scan, exactly as designed.",[48,670,672],{"id":671},"how-plcs-communicate","How PLCs communicate",[12,674,675],{},"A PLC on its own is a closed loop. The moment you want data out of it, or want two controllers to coordinate, you enter the protocol layer, and this is where most automation projects actually spend their budget.",[12,677,678],{},"PLC communication happens at four rough levels.",[12,680,681,684],{},[18,682,683],{},"Fieldbus, device level."," Modbus RTU, Profibus DP, DeviceNet, and IO-Link connect sensors, drives, and remote I\u002FO over serial or dedicated cabling. Still everywhere in brownfield plants, and often the only interface on older equipment.",[12,686,687,690,691,695],{},[18,688,689],{},"Industrial Ethernet."," Profinet (Siemens), ",[25,692,694],{"href":693},"\u002Fblog\u002F2025\u002F10\u002Fusing-ethernet-ip-with-flowfuse\u002F","EtherNet\u002FIP"," (Rockwell and Omron), EtherCAT (Beckhoff), and Modbus TCP carry real-time control traffic over standard Ethernet hardware with deterministic timing. This is what new installations use.",[12,697,698,701],{},[18,699,700],{},"Vendor-native protocols."," Each manufacturer has a protocol for reading and writing its controller's memory directly: S7comm for Siemens, CIP for Rockwell, ADS for Beckhoff, MC Protocol for Mitsubishi, FINS for Omron. Fast, well-documented, and completely incompatible with each other.",[12,703,704,707,708,712],{},[18,705,706],{},"Standards-based and IT-facing."," ",[25,709,711],{"href":710},"\u002Fblog\u002F2025\u002F07\u002Freading-and-writing-plc-data-using-opc-ua\u002F","OPC UA"," provides a vendor-neutral, secure, structured interface that most modern PLCs expose directly. MQTT, often with Sparkplug B, carries data to brokers, cloud platforms, and unified namespaces. REST APIs and SQL connections handle the rest.",[12,714,715],{},"Here is what that looks like in a plant with mixed equipment:",[289,717,718,734],{},[292,719,720],{},[295,721,722,725,728,731],{},[298,723,724],{},"Vendor",[298,726,727],{},"Common controller",[298,729,730],{},"Native protocol",[298,732,733],{},"Standards option",[313,735,736,750,764,778,792,806],{},[295,737,738,741,744,747],{},[318,739,740],{},"Siemens",[318,742,743],{},"S7-1200 \u002F S7-1500",[318,745,746],{},"S7comm, Profinet",[318,748,749],{},"OPC UA server built in",[295,751,752,755,758,761],{},[318,753,754],{},"Rockwell",[318,756,757],{},"CompactLogix \u002F ControlLogix",[318,759,760],{},"EtherNet\u002FIP (CIP)",[318,762,763],{},"OPC UA via gateway or newer firmware",[295,765,766,769,772,775],{},[318,767,768],{},"Beckhoff",[318,770,771],{},"CX series",[318,773,774],{},"ADS, EtherCAT",[318,776,777],{},"OPC UA server available",[295,779,780,783,786,789],{},[318,781,782],{},"Mitsubishi",[318,784,785],{},"MELSEC iQ-R \u002F FX",[318,787,788],{},"MC Protocol, CC-Link",[318,790,791],{},"OPC UA via module",[295,793,794,797,800,803],{},[318,795,796],{},"Omron",[318,798,799],{},"NX \u002F NJ",[318,801,802],{},"FINS, EtherNet\u002FIP",[318,804,805],{},"OPC UA on select models",[295,807,808,811,814,817],{},[318,809,810],{},"Legacy equipment",[318,812,813],{},"Various",[318,815,816],{},"Modbus RTU\u002FTCP",[318,818,819],{},"None",[12,821,822],{},"Most facilities run at least three of these rows simultaneously. A line installed in 1998, a cell added in 2012, and a machine commissioned last quarter all need to appear in the same production report.",[581,824,825],{},[12,826,827,828,832],{},"Reading about protocols only gets you so far. If you have a controller on the bench, or a spare hour on a live line, this walkthrough goes tag by tag: ",[25,829,831],{"href":830},"\u002Fblog\u002F2025\u002F10\u002Fplc-to-mqtt-using-flowfuse\u002F","connect any PLC to MQTT in under an hour",". It handles Siemens S7, Allen-Bradley, OPC UA, and Modbus in a single flow, runs on a free account, and needs no gateway hardware sitting in the middle.",[48,834,836],{"id":835},"the-interoperability-problem-when-plcs-wont-talk","The interoperability problem: when PLCs won't talk",[12,838,839],{},"Dick Morley solved machine control in 1968. As manufacturers raced to capture the market he created, each built a closed ecosystem around it, and vendor lock-in became the PLC's unintended legacy.",[12,841,842],{},"The consequences show up on every project.",[12,844,845,848],{},[18,846,847],{},"Every connection is a custom build."," Reading a production count from a Siemens controller and acting on it in a Rockwell one means writing a gateway, configuring a protocol converter, or buying a middleware licence. Do that for every pair of systems and the integration layer becomes larger than the applications it serves.",[12,850,851,854],{},[18,852,853],{},"Licensing scales with tags, not value."," Traditional data access is often priced per tag or per connection. A pilot on one line is affordable. Rolling out to forty lines rewrites the business case.",[12,856,857,860],{},[18,858,859],{},"Brownfield is the normal case, not the exception."," Because PLCs last 20 to 30 years, no plant gets to standardize. There is always a controller nobody wants to touch, running critical logic, with an interface that predates the current engineering team.",[12,862,863,866],{},[18,864,865],{},"Nobody owns the middle."," OT owns the controllers and will not accept anything that risks uptime. IT owns the databases and cloud and cannot get a route to the data. Integration work stalls in the gap between them.",[12,868,869,872],{},[18,870,871],{},"Each project starts from zero."," Solve production monitoring at one plant and the next plant rebuilds it, because the solution was wired to that site's specific mix of vendors. Twelve plants produce twelve incompatible \"snowflake\" implementations and no shared standard.",[12,874,875],{},"The cost is not only technical debt. It is strategic paralysis. Teams stay on one vendor not because it is the best fit, but because the switching cost has quietly become unpayable.",[48,877,879],{"id":878},"solving-the-plc-integration-problem","Solving the PLC integration problem",[12,881,882],{},"Modern PLCs are not the hard part. Getting forty controllers from five vendors, installed across three decades, to feed one production report is.",[12,884,885,889,890,894],{},[25,886,888],{"href":887},"\u002F","FlowFuse"," is the open-source Industrial Application Platform built for exactly that layer. It connects any controller, whether that is Siemens, Allen-Bradley, Omron, Mitsubishi, or a legacy Modbus device, without proprietary gateways or per-tag licensing, then routes the data to MQTT, historians, databases, ",[25,891,893],{"href":892},"\u002Fblog\u002F2026\u002F08\u002Fmanufacturing-dashboard-examples\u002F","dashboards",", and ERP systems. Your PLCs keep running their proven logic. What changes is that their data stops being trapped.",[12,896,897,901],{},[83,898],{"alt":899,"dataZoomable":86,"src":900},"FlowFuse platform for industrial data integration connecting PLCs, edge devices, and enterprise systems","\u002Fblog\u002F2025\u002F12\u002Fimages\u002Fflowfuse-platform.png",[15,902,903],{},"FlowFuse connects controllers, edge devices, and enterprise systems from a single governed platform.",[12,905,906,907,911,912,917],{},"Build the integration once, deploy it to every site, and manage it centrally instead of rebuilding a snowflake at each plant. See the ",[25,908,910],{"href":909},"\u002Flanding\u002Fplc\u002F","PLC integration overview"," for supported protocols and reference architectures, or ",[25,913,916],{"href":914,"rel":915},"https:\u002F\u002Fapp.flowfuse.com\u002Faccount\u002Fcreate",[29],"connect your first controller free",".",[12,919,920],{},"Dick Morley's specification gave engineers a controller they could reprogram without touching a wire. The same freedom is now available for the integration layer above it.",{"title":86,"searchDepth":922,"depth":922,"links":923},4,[924,926,927,928,929,930,931,939,940,941,942,943],{"id":50,"depth":925,"text":51},2,{"id":75,"depth":925,"text":76},{"id":124,"depth":925,"text":125},{"id":176,"depth":925,"text":177},{"id":223,"depth":925,"text":224},{"id":283,"depth":925,"text":284},{"id":415,"depth":925,"text":416,"children":932},[933,935,936,937,938],{"id":423,"depth":934,"text":424},3,{"id":497,"depth":934,"text":498},{"id":509,"depth":934,"text":510},{"id":521,"depth":934,"text":522},{"id":533,"depth":934,"text":534},{"id":551,"depth":925,"text":552},{"id":593,"depth":925,"text":594},{"id":671,"depth":925,"text":672},{"id":835,"depth":925,"text":836},{"id":878,"depth":925,"text":879},null,"2025-12-26","What a PLC is, the seven parts inside it, how the scan cycle works, which protocols PLCs speak, and how to get PLC data into the systems that need it.","md","\u002Fblog\u002F2025\u002F12\u002Fimages\u002Fwhat-is-plc.png",{"lastUpdate":950,"keywords":951,"excerpt":952},"2026-07-30","what is plc, programmable logic controller, plc parts, plc scan cycle, history of plc, father of plc, plc inventor, plc communication protocols, plc vs pc, types of plc",{"type":9,"value":953},[954],[12,955,956],{},[15,957,958],{},[18,959,20],{},true,"\u002Fblog\u002F2025\u002F12\u002Fwhat-is-plc",{"title":5,"description":946},{"loc":961},"blog\u002F2025\u002F12\u002Fwhat-is-plc","How Dick Morley's New Year's Day Hangover Changed Manufacturing Forever",[967,968],"flowfuse","plc","A Programmable Logic Controller (PLC) is a rugged industrial computer that reads sensor inputs, executes control logic, and drives motors and valves in real time with deterministic reliability. Dick Morley specified the first one on New Year's Day 1968, and the architecture he defined still runs most of the world's industrial automation. Modern PLCs are not the hard part. Getting PLCs from different vendors to share data with each other and with enterprise IT is.","p3cJtpHYX0nEJ-9QbA6qmptymS0h1qxjmU9i3TURKjY",{"id":972,"extension":973,"meta":974,"sections":975,"stem":1364,"__hash__":1365},"featureCatalog\u002Ffeature-catalog.yml","yml",{},[976,1027,1128,1190,1267,1346],{"id":977,"title":978,"features":979},"ai-automation","AI & Automation",[980,990,1000,1010,1016,1022],{"id":981,"title":982,"description":983,"docsLink":984,"changelog":985,"tiers":989},"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",[986],{"url":987,"release":988},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner\u002F","2.28",{"edge":960,"hub":960,"fleet":960},{"id":991,"title":992,"description":993,"docsLink":994,"changelog":995,"subfeature":960,"showOnPricing":998,"tiers":999},"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",[996],{"url":997,"release":988},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context\u002F",false,{"edge":960,"hub":960,"fleet":960},{"id":1001,"title":1002,"description":1003,"docsLink":1004,"changelog":1005,"subfeature":960,"showOnPricing":998,"tiers":1009},"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",[1006],{"url":1007,"release":1008},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building\u002F","2.30",{"edge":960,"hub":960,"fleet":960},{"id":1011,"title":1012,"description":1013,"docsLink":1014,"subfeature":960,"beta":960,"showOnPricing":998,"tiers":1015},"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":960,"hub":960,"fleet":960},{"id":1017,"title":1018,"description":1019,"docsLink":1020,"tiers":1021},"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":960,"hub":960,"fleet":960},{"id":1023,"title":1024,"description":1025,"tiers":1026},"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":960,"hub":960,"fleet":960},{"id":1028,"title":1029,"features":1030},"build","Build",[1031,1037,1043,1053,1059,1065,1069,1075,1081,1089,1095,1099,1103,1112,1120],{"id":1032,"title":1033,"description":1034,"docsLink":1035,"tiers":1036},"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":960,"hub":998,"fleet":960},{"id":1038,"title":1039,"description":1040,"docsLink":1041,"tiers":1042},"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":960,"hub":960,"fleet":960},{"id":1044,"title":1045,"description":1046,"docsLink":1047,"changelog":1048,"tiers":1052},"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",[1049],{"url":1050,"release":1051},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation\u002F","2.33",{"edge":960,"hub":960,"fleet":960},{"id":1054,"title":1055,"description":1056,"docsLink":1057,"tiers":1058},"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":960,"hub":960,"fleet":960},{"id":1060,"title":1061,"description":1062,"docsLink":1063,"showOnPricing":998,"tiers":1064},"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":960,"hub":960,"fleet":960},{"id":1066,"title":1067,"showOnPricing":998,"tiers":1068},"static-assets","Static Assets",{"edge":960,"hub":960,"fleet":960},{"id":1070,"title":1071,"description":1072,"docsLink":1073,"tiers":1074},"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":960,"hub":960,"fleet":960},{"id":1076,"title":1077,"description":1078,"docsLink":1079,"tiers":1080},"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":960,"hub":960,"fleet":960},{"id":1082,"title":1083,"description":1084,"changelog":1085,"subfeature":960,"showOnPricing":998,"tiers":1088},"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.",[1086],{"url":1087,"release":1051},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1090,"title":1091,"description":1092,"docsLink":1093,"tiers":1094},"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":960,"hub":960,"fleet":960},{"id":1096,"title":1097,"subfeature":960,"showOnPricing":998,"tiers":1098},"blueprints-ot-apps","Blueprints - OT APPS",{"edge":960,"hub":998,"fleet":960},{"id":1100,"title":1101,"subfeature":960,"showOnPricing":998,"tiers":1102},"blueprints-it-apps","Blueprints - IT APPS",{"edge":998,"hub":960,"fleet":998},{"id":1104,"title":1105,"description":1106,"changelog":1107,"showOnPricing":998,"tiers":1111},"immersive-editor-snapshots","Snapshot Details in Immersive Editor","View and manage snapshot details directly inside the immersive editor without leaving your editing session.",[1108],{"url":1109,"release":1110},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor\u002F","2.29",{"edge":960,"hub":960,"fleet":960},{"id":1113,"title":1114,"description":1115,"changelog":1116,"showOnPricing":998,"tiers":1119},"immersive-editor-drawer","Customisable Immersive Editor Drawer","Pin, move, resize, or full-screen the immersive editor drawer. Your preferences are remembered between sessions.",[1117],{"url":1118,"release":1008},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1121,"title":1122,"description":1123,"changelog":1124,"showOnPricing":998,"tiers":1127},"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.",[1125],{"url":1126,"release":1110},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1129,"title":1130,"features":1131},"deploy","Deploy",[1132,1138,1147,1153,1159,1165,1171,1177,1182],{"id":1133,"title":1134,"description":1135,"docsLink":1136,"tiers":1137},"hosted-instances","Cloud Instances","Run Node-RED instances managed and hosted by FlowFuse.","\u002Fdocs\u002Fuser\u002Fintroduction\u002F#creating-a-node-red-instance",{"edge":960,"hub":960,"fleet":960},{"id":1139,"title":1140,"description":1141,"docsLink":1142,"changelog":1143,"tiers":1146},"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",[1144],{"url":1145,"release":988},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options\u002F",{"edge":960,"hub":998,"fleet":960},{"id":1148,"title":1149,"description":1150,"docsLink":1151,"tiers":1152},"custom-hostnames","Custom Hostnames","Access your Node-RED application via your own domain name.","\u002Fdocs\u002Fuser\u002Fcustom-hostnames\u002F",{"edge":998,"hub":960,"fleet":998},{"id":1154,"title":1155,"description":1156,"docsLink":1157,"tiers":1158},"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":960,"hub":998,"fleet":960},{"id":1160,"title":1161,"description":1162,"docsLink":1163,"showOnPricing":998,"tiers":1164},"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":960,"hub":960,"fleet":960},{"id":1166,"title":1167,"description":1168,"docsLink":1169,"tiers":1170},"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":960,"hub":960,"fleet":960},{"id":1172,"title":1173,"description":1174,"docsLink":1175,"tiers":1176},"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":998,"hub":960,"fleet":998},{"id":1178,"title":1179,"description":1180,"docsLink":1175,"subfeature":960,"showOnPricing":998,"tiers":1181},"git-integration-github","GitHub","Push and pull snapshots to GitHub repositories through DevOps Pipeline Git Stages.",{"edge":998,"hub":960,"fleet":998},{"id":1183,"title":1184,"description":1185,"docsLink":1175,"changelog":1186,"subfeature":960,"showOnPricing":998,"tiers":1189},"git-integration-azure","Azure DevOps","Push and pull snapshots to Azure DevOps repositories through DevOps Pipeline Git Stages.",[1187],{"url":1188,"release":1110},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops\u002F",{"edge":998,"hub":960,"fleet":998},{"id":1191,"title":1192,"features":1193},"operate-maintain","Operate & Maintain",[1194,1200,1206,1211,1219,1223,1227,1232,1238,1244,1249,1255,1259,1263],{"id":1195,"title":1196,"description":1197,"docsLink":1198,"tiers":1199},"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":960,"hub":960,"fleet":960},{"id":1201,"title":1202,"description":1203,"docsLink":1204,"subfeature":960,"showOnPricing":998,"tiers":1205},"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":960,"hub":960,"fleet":960},{"id":1207,"title":1208,"description":1209,"docsLink":1204,"subfeature":960,"showOnPricing":998,"tiers":1210},"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":960,"hub":960,"fleet":960},{"id":1212,"title":1213,"description":1214,"changelog":1215,"subfeature":960,"showOnPricing":998,"tiers":1218},"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.",[1216],{"url":1217,"release":1110},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1220,"title":1221,"subfeature":960,"showOnPricing":998,"tiers":1222},"version-history-timeline","Version History Timeline",{"edge":960,"hub":960,"fleet":960},{"id":1224,"title":1225,"tiers":1226},"unlimited-workflow-executions","Unlimited Workflow Executions",{"edge":960,"hub":960,"fleet":960},{"id":1228,"title":1229,"description":1230,"tiers":1231},"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":960,"hub":998,"fleet":960},{"id":1233,"title":1234,"description":1235,"docsLink":1236,"tiers":1237},"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":960,"hub":998,"fleet":960},{"id":1239,"title":1240,"description":1241,"docsLink":1242,"tiers":1243},"high-availability","High Availability","Leverage horizontal scaling for reliable and scalable processing of your data through Node-RED.","\u002Fdocs\u002Fuser\u002Fhigh-availability\u002F",{"edge":998,"hub":960,"fleet":998},{"id":1245,"title":1246,"description":1247,"tiers":1248},"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":960,"hub":960,"fleet":960},{"id":1250,"title":1251,"description":1252,"docsLink":1253,"subfeature":960,"showOnPricing":998,"tiers":1254},"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":960,"hub":960,"fleet":960},{"id":1256,"title":1257,"subfeature":960,"showOnPricing":998,"tiers":1258},"email-alerts","Email Alerts",{"edge":960,"hub":960,"fleet":960},{"id":1260,"title":1261,"showOnPricing":998,"tiers":1262},"api-debug-length-limit","API\u002FDebug Length Limit",{"edge":960,"hub":960,"fleet":960},{"id":1264,"title":1265,"tiers":1266},"protected-instances","Protected Instances",{"edge":998,"hub":960,"fleet":998},{"id":1268,"title":1269,"features":1270},"govern-secure","Govern and Secure",[1271,1280,1286,1292,1297,1303,1309,1315,1323,1329,1335,1341],{"id":1272,"title":1273,"description":1274,"docsLink":1275,"changelog":1276,"tiers":1279},"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",[1277],{"url":1278,"release":1051},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1281,"title":1282,"description":1283,"docsLink":1284,"tiers":1285},"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":960,"hub":960,"fleet":960},{"id":1287,"title":1288,"description":1289,"docsLink":1290,"tiers":1291},"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":998,"hub":960,"fleet":960},{"id":1293,"title":1294,"description":1295,"tiers":1296},"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":960,"hub":998,"fleet":998},{"id":1298,"title":1299,"description":1300,"docsLink":1301,"tiers":1302},"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":960,"hub":960,"fleet":960},{"id":1304,"title":1305,"description":1306,"docsLink":1307,"tiers":1308},"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":960,"hub":960,"fleet":960},{"id":1310,"title":1311,"description":1312,"docsLink":1313,"subfeature":960,"showOnPricing":998,"tiers":1314},"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":960,"hub":960,"fleet":960},{"id":1316,"title":1317,"description":1318,"changelog":1319,"subfeature":960,"showOnPricing":998,"tiers":1322},"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.",[1320],{"url":1321,"release":1051},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats\u002F",{"edge":960,"hub":960,"fleet":960},{"id":1324,"title":1325,"description":1326,"docsLink":1327,"showOnPricing":998,"tiers":1328},"team-members","Team Members","Invite multiple team members to collaborate on the same Node-RED flows.","\u002Fdocs\u002Fuser\u002Fteam\u002F#teams",{"edge":960,"hub":960,"fleet":960},{"id":1330,"title":1331,"description":1332,"docsLink":1333,"showOnPricing":998,"tiers":1334},"endpoint-security","Endpoint Security","Secure HTTP endpoints for hosted Node-RED instances using FlowFuse credentials.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#security",{"edge":960,"hub":960,"fleet":960},{"id":1336,"title":1337,"description":1338,"docsLink":1339,"tiers":1340},"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":998,"hub":960,"fleet":998},{"id":1342,"title":1343,"description":1344,"tiers":1345},"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":998,"hub":960,"fleet":998},{"id":1347,"title":1348,"features":1349},"support","Support",[1350,1355,1359],{"id":1351,"title":1352,"docsLink":1353,"tiers":1354},"installation-support","Installation Support","\u002Fdocs\u002Finstall\u002Fintroduction\u002F#do-you-need-help-installation-service",{"edge":960,"hub":960,"fleet":960},{"id":1356,"title":1357,"showOnPricing":998,"tiers":1358},"live-chat-support","Live Chat Support",{"edge":960,"hub":960,"fleet":960},{"id":1360,"title":1361,"docsLink":1362,"tiers":1363},"enterprise-support","Enterprise Support","\u002Fdocs\u002Fpremium-support\u002F",{"edge":960,"hub":960,"fleet":960},"feature-catalog","0AnkhTIPCECCwP9NmbTWP5HvRYx4FTSao4lG93-HaWM",[1367,1370,1373,1376,1379,1382,1384,1387,1390,1393,1396,1398,1401,1404,1407,1410,1413,1416,1419,1422,1425,1428,1431,1434,1437,1440,1443,1446,1449,1452,1455,1458,1461,1464,1467,1470,1473,1476,1479,1482,1485,1488,1491,1494,1497,1500,1503,1506,1509,1511,1514,1517,1520,1523,1526,1529,1532,1534,1537,1540,1543,1546,1549,1551,1554,1557,1560,1563,1566,1569,1572,1575,1578,1581,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1627,1630,1633,1636,1639,1642,1645,1648,1651,1654,1657,1660,1663,1666,1669,1672,1675,1678,1681,1683,1686,1689,1692,1695,1698,1701,1704,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,1790,1793,1796,1799,1802,1805,1808,1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841,1844,1847,1850,1853,1856,1858,1861,1864,1867,1870,1873,1876,1879,1882,1885,1888,1891,1894,1897],{"path":1368,"title":1369},"\u002Fchangelog\u002F2023\u002F09\u002Fcustom-node-support","Custom Node Support",{"path":1371,"title":1372},"\u002Fchangelog\u002F2023\u002F09\u002Fdevops-actions","DevOps Pipeline with action selection",{"path":1374,"title":1375},"\u002Fchangelog\u002F2023\u002F09\u002Fintroduction-enterprise-tier","Introducing the Enterprise Tier",{"path":1377,"title":1378},"\u002Fchangelog\u002F2023\u002F09\u002Fpipeline-api","API Endpoint for DevOps Pipeline",{"path":1380,"title":1381},"\u002Fchangelog\u002F2023\u002F09\u002Fsnapshots-devices","Usability improvements to Device Management",{"path":1383,"title":1091},"\u002Fchangelog\u002F2023\u002F10\u002Fblueprints",{"path":1385,"title":1386},"\u002Fchangelog\u002F2023\u002F10\u002Fcertified-nodes","Certified Nodes",{"path":1388,"title":1389},"\u002Fchangelog\u002F2023\u002F10\u002Fdevice-snapshot-selection","Enhanced Snapshot Selection",{"path":1391,"title":1392},"\u002Fchangelog\u002F2023\u002F10\u002Fpath-bug-fix","Device Agent path bug fix",{"path":1394,"title":1395},"\u002Fchangelog\u002F2023\u002F10\u002Fresource-alerts","Resource Monitoring in Audit Log",{"path":1397,"title":1282},"\u002Fchangelog\u002F2023\u002F11\u002F2fa",{"path":1399,"title":1400},"\u002Fchangelog\u002F2023\u002F11\u002Fdefault-editor","Device Editor enabled by default",{"path":1402,"title":1403},"\u002Fchangelog\u002F2023\u002F11\u002Fdevices-in-pipelines","Devices in DevOps Pipelines",{"path":1405,"title":1406},"\u002Fchangelog\u002F2023\u002F11\u002Fproject-nodes-devices","Project Nodes for Devices",{"path":1408,"title":1409},"\u002Fchangelog\u002F2023\u002F12\u002Fbilling","No Credit Card required for billing",{"path":1411,"title":1412},"\u002Fchangelog\u002F2023\u002F12\u002Fblueprint-selection","Blueprint Selection Update",{"path":1414,"title":1415},"\u002Fchangelog\u002F2023\u002F12\u002Fdevice-groups","Device Groups",{"path":1417,"title":1418},"\u002Fchangelog\u002F2023\u002F12\u002Femail-alerting-node-red-crash","Email Alerts for Audit Log Events",{"path":1420,"title":1421},"\u002Fchangelog\u002F2023\u002F12\u002Fnode-red-updated","Node-RED 3.1.3 now available",{"path":1423,"title":1424},"\u002Fchangelog\u002F2024\u002F01\u002Fdevice-audit-log","Introducing the Device Auditlog Feature",{"path":1426,"title":1427},"\u002Fchangelog\u002F2024\u002F01\u002Fdevice-groups-snapshot","Device Groups - Automatic snapshot assignment",{"path":1429,"title":1430},"\u002Fchangelog\u002F2024\u002F01\u002Ffleet-mode","Renaming \"Default Device Mode\" to \"Fleet Mode\"",{"path":1432,"title":1433},"\u002Fchangelog\u002F2024\u002F01\u002Fhelm-v2","Helm Chart v2.0",{"path":1435,"title":1436},"\u002Fchangelog\u002F2024\u002F01\u002Fnew-blueprints","New Blueprints added",{"path":1438,"title":1439},"\u002Fchangelog\u002F2024\u002F01\u002Fsecurity-updates","Security Updates",{"path":1441,"title":1442},"\u002Fchangelog\u002F2024\u002F01\u002Fsso-team-membership","Managing Team Membership via SSO",{"path":1444,"title":1445},"\u002Fchangelog\u002F2024\u002F01\u002Fstreamlined-device-assignment","Streamlined Device assignment",{"path":1447,"title":1448},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-auto-snapshot","Device Auto Snapshots",{"path":1450,"title":1451},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-instance-audit-logs","Device Instance Audit Logging",{"path":1453,"title":1454},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-onboarding-improvements","Device Onboarding Improvements",{"path":1456,"title":1457},"\u002Fchangelog\u002F2024\u002F02\u002Fdevice-pricing-change","Pricing change for Devices",{"path":1459,"title":1460},"\u002Fchangelog\u002F2024\u002F02\u002Finstance-auto-snapshots","Instance Auto Snapshots",{"path":1462,"title":1463},"\u002Fchangelog\u002F2024\u002F02\u002Fpostgresql-upgrade","PostgreSQL Version update",{"path":1465,"title":1466},"\u002Fchangelog\u002F2024\u002F03\u002Fbearer-token-authentication","Bearer Token Authentication for Node-RED Instances",{"path":1468,"title":1469},"\u002Fchangelog\u002F2024\u002F03\u002Finstance-protection-mode","Instance Protection Mode",{"path":1471,"title":1472},"\u002Fchangelog\u002F2024\u002F03\u002Flimits-debug-payload","Configure HTTP Payload and Debug Message size",{"path":1474,"title":1475},"\u002Fchangelog\u002F2024\u002F03\u002Frestart-devices-remotly","Remote Device Restart",{"path":1477,"title":1478},"\u002Fchangelog\u002F2024\u002F04\u002Fcustom-nodes-on-devices","Custom Nodes Support on Devices",{"path":1480,"title":1481},"\u002Fchangelog\u002F2024\u002F04\u002Fdevice-auto-snapshot","Direct Dashboard Access",{"path":1483,"title":1484},"\u002Fchangelog\u002F2024\u002F04\u002Fimproving-device-groups","Improving Device Groups",{"path":1486,"title":1487},"\u002Fchangelog\u002F2024\u002F04\u002Fpricing-change","Pricing change Enterprise & Teams Tier",{"path":1489,"title":1490},"\u002Fchangelog\u002F2024\u002F04\u002Ftougher-rate-limiting","Tougher Rate Limiting on Public Routes",{"path":1492,"title":1493},"\u002Fchangelog\u002F2024\u002F05\u002Finstance-healthcheck","Customizing instance health-check settings",{"path":1495,"title":1496},"\u002Fchangelog\u002F2024\u002F05\u002Flibrary-blueprints","Blueprints added to Library",{"path":1498,"title":1499},"\u002Fchangelog\u002F2024\u002F05\u002Flibrary-flowviewer","Team Library - Flow Viewer",{"path":1501,"title":1502},"\u002Fchangelog\u002F2024\u002F05\u002Fmanaging-node-red-version-on-devices","Managing Node-RED versions on Devices",{"path":1504,"title":1505},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-improvements","Snapshot Improvements",{"path":1507,"title":1508},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-improvements-pt3","Snapshot Upload",{"path":1510,"title":1508},"\u002Fchangelog\u002F2024\u002F05\u002Fsnapshot-upload",{"path":1512,"title":1513},"\u002Fchangelog\u002F2024\u002F06\u002Fdevice-agent-proxy-support","Running the Device Agent behind an HTTP proxy",{"path":1515,"title":1516},"\u002Fchangelog\u002F2024\u002F06\u002Flibrary-blueprints","Custom hostnames for your instances",{"path":1518,"title":1519},"\u002Fchangelog\u002F2024\u002F06\u002Fmultiline-env-vars","Multi-line Environment Variables",{"path":1521,"title":1522},"\u002Fchangelog\u002F2024\u002F06\u002Fsnapshot-flow-compare","Compare Snapshots flows",{"path":1524,"title":1525},"\u002Fchangelog\u002F2024\u002F07\u002Fapplications-search","Applications Search",{"path":1527,"title":1528},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-group-clear-snapshot","Device Groups Snapshots",{"path":1530,"title":1531},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-management-bulk-delete","Managing devices",{"path":1533,"title":1531},"\u002Fchangelog\u002F2024\u002F07\u002Fdevice-management-bulk-move",{"path":1535,"title":1536},"\u002Fchangelog\u002F2024\u002F07\u002Fedit-snapshots","Edit Snapshots",{"path":1538,"title":1539},"\u002Fchangelog\u002F2024\u002F07\u002Fflowfuse-assistant","The FlowFuse Expert",{"path":1541,"title":1542},"\u002Fchangelog\u002F2024\u002F07\u002Fflowfuse-assistant-json","FlowFuse Expert Writes JSON",{"path":1544,"title":1545},"\u002Fchangelog\u002F2024\u002F07\u002Fimmersive-editor","Immersive Editor Experience",{"path":1547,"title":1548},"\u002Fchangelog\u002F2024\u002F07\u002Fnotifications-inbox","Notifications Inbox",{"path":1550,"title":1548},"\u002Fchangelog\u002F2024\u002F07\u002Fnotifications-update",{"path":1552,"title":1553},"\u002Fchangelog\u002F2024\u002F07\u002Fpersistent-storage","Persistent Storage on FlowFuse Cloud",{"path":1555,"title":1556},"\u002Fchangelog\u002F2024\u002F07\u002Fsso","Single Sign On Updates",{"path":1558,"title":1559},"\u002Fchangelog\u002F2024\u002F08\u002Fbill-of-materials","Bill of Materials",{"path":1561,"title":1562},"\u002Fchangelog\u002F2024\u002F08\u002Fenterprise-license-update","Enforcing Enterprise Restrictions",{"path":1564,"title":1565},"\u002Fchangelog\u002F2024\u002F08\u002Fldap-sso-groups","LDAP Single Sign On Updates",{"path":1567,"title":1568},"\u002Fchangelog\u002F2024\u002F08\u002Fstatic-file-service-navigation-visibility","Static File Service Navigation and Visibility",{"path":1570,"title":1571},"\u002Fchangelog\u002F2024\u002F10\u002Fdevice-group-env-vars","Environment Variables for your Device Groups",{"path":1573,"title":1574},"\u002Fchangelog\u002F2024\u002F10\u002Fmqtt-service","MQTT Broker Service",{"path":1576,"title":1577},"\u002Fchangelog\u002F2024\u002F10\u002Fnotifications-bulk-actions","Managing Notifications",{"path":1579,"title":1580},"\u002Fchangelog\u002F2024\u002F10\u002Fsnapshot-download-upload-options","Snapshot Upload and Download Improvements",{"path":1582,"title":1221},"\u002Fchangelog\u002F2024\u002F10\u002Fversion-history-timeline",{"path":1584,"title":1585},"\u002Fchangelog\u002F2024\u002F11\u002Faudit-log-hierarchy","Audit logs show hierarchical events",{"path":1587,"title":1588},"\u002Fchangelog\u002F2024\u002F11\u002Fdevice-agent-release","Device Agent 3.0 released",{"path":1590,"title":1591},"\u002Fchangelog\u002F2024\u002F11\u002Fmqtt-topic-hierarchy","MQTT Topic Hierarchy view",{"path":1593,"title":1594},"\u002Fchangelog\u002F2024\u002F11\u002Fteam-search","Team-wide search",{"path":1596,"title":1597},"\u002Fchangelog\u002F2024\u002F12\u002Fdashboad-iframe","Allow Dashboards to be embedded in iFrames",{"path":1599,"title":1600},"\u002Fchangelog\u002F2024\u002F12\u002Fdevice-editor-cache","Device Editor Access Speed Up",{"path":1602,"title":1603},"\u002Fchangelog\u002F2024\u002F12\u002Fteam-bom-timeline","Team BOM and Pipeline Views",{"path":1605,"title":1606},"\u002Fchangelog\u002F2025\u002F01\u002Ffree-tier-onboarding","New Onboarding Tour for Free Tier Users",{"path":1608,"title":1609},"\u002Fchangelog\u002F2025\u002F01\u002Fhidden-env-vars","Hidden Environment Variables",{"path":1611,"title":1612},"\u002Fchangelog\u002F2025\u002F01\u002Fimproved-diagnostics","Improved Diagnostics",{"path":1614,"title":1615},"\u002Fchangelog\u002F2025\u002F01\u002Fteam-level-groups","Team level view of Groups",{"path":1617,"title":1618},"\u002Fchangelog\u002F2025\u002F02\u002Fadditional-device-version-history-events","New Remote Instances Version History Events",{"path":1620,"title":1621},"\u002Fchangelog\u002F2025\u002F02\u002Fbroker-error-feedback","Improved Broker Connection Feedback",{"path":1623,"title":1624},"\u002Fchangelog\u002F2025\u002F02\u002Fdevice-agent-updates","FlowFuse User Authentication on Remote Instances",{"path":1626,"title":1221},"\u002Fchangelog\u002F2025\u002F02\u002Fdevice-version-history-timeline",{"path":1628,"title":1629},"\u002Fchangelog\u002F2025\u002F02\u002Fexternal-brokers","External MQTT Brokers",{"path":1631,"title":1632},"\u002Fchangelog\u002F2025\u002F02\u002Fmqtt-schema-suggestions","MQTT Smart Schema Suggestions",{"path":1634,"title":1635},"\u002Fchangelog\u002F2025\u002F02\u002Fresend-and-extend-team-invitation-expiration","Re-send Team Invitations",{"path":1637,"title":1638},"\u002Fchangelog\u002F2025\u002F02\u002Fschema-docs","Personalized Schema Documentation",{"path":1640,"title":1641},"\u002Fchangelog\u002F2025\u002F02\u002Ftopic-hierarchy-search","Search & Filter for Topic Hierarchy List",{"path":1643,"title":1644},"\u002Fchangelog\u002F2025\u002F03\u002Fcontainer-tags","Changes to tags for flowfuse\u002Fnode-red",{"path":1646,"title":1647},"\u002Fchangelog\u002F2025\u002F03\u002Fdevice-groups","Multiple Device Groups in a pipeline",{"path":1649,"title":1650},"\u002Fchangelog\u002F2025\u002F03\u002Fdevice-local-login","Local Login for Remote Instances",{"path":1652,"title":1653},"\u002Fchangelog\u002F2025\u002F03\u002Ffree-tier","Free Tier now more accessible to all",{"path":1655,"title":1656},"\u002Fchangelog\u002F2025\u002F03\u002Fresource-notifications","Resource Alerts",{"path":1658,"title":1659},"\u002Fchangelog\u002F2025\u002F03\u002Fsnapshot-filter","Filtering Snapshots",{"path":1661,"title":1662},"\u002Fchangelog\u002F2025\u002F03\u002Fteam-npm-registry","NPM Package Hosting",{"path":1664,"title":1665},"\u002Fchangelog\u002F2025\u002F03\u002Ftopic-deletion","MQTT Topic Management",{"path":1667,"title":1668},"\u002Fchangelog\u002F2025\u002F04\u002Fdevice-provisioning","Remote Instance Provisioning",{"path":1670,"title":1671},"\u002Fchangelog\u002F2025\u002F04\u002Fgit-integration","Git Integration with Pipelines",{"path":1673,"title":1674},"\u002Fchangelog\u002F2025\u002F04\u002Finstance-log-browsing","Better Node-RED log handling",{"path":1676,"title":1677},"\u002Fchangelog\u002F2025\u002F05\u002Fimport-node-red-flows","Import Node-RED Flows During Remote Instance Setup",{"path":1679,"title":1680},"\u002Fchangelog\u002F2025\u002F06\u002Fflowfuse-assistant","FlowFuse Expert just got smarter",{"path":1682,"title":1680},"\u002Fchangelog\u002F2025\u002F06\u002Fflowfuse-assistant-2",{"path":1684,"title":1685},"\u002Fchangelog\u002F2025\u002F06\u002Fgit-integration","Pulling snapshots from Git with Pipelines",{"path":1687,"title":1688},"\u002Fchangelog\u002F2025\u002F06\u002Finstance-performance-memory","Memory Metrics in Instance Performance View",{"path":1690,"title":1691},"\u002Fchangelog\u002F2025\u002F06\u002Fnew-home-page","Introducing the New Home Page Experience",{"path":1693,"title":1694},"\u002Fchangelog\u002F2025\u002F06\u002Fteam-performance","Team Performance Feature",{"path":1696,"title":1697},"\u002Fchangelog\u002F2025\u002F06\u002Fteam-performance-view","Instance Performance View",{"path":1699,"title":1700},"\u002Fchangelog\u002F2025\u002F06\u002Fui-refresh","Navigation UI Refresh",{"path":1702,"title":1703},"\u002Fchangelog\u002F2025\u002F07\u002Fbrowse-node-red-flows","Browse for Node-RED Flows During Remote Instance Setup",{"path":1705,"title":1045},"\u002Fchangelog\u002F2025\u002F07\u002Fflowfuse-tables",{"path":1707,"title":1708},"\u002Fchangelog\u002F2025\u002F07\u002Fimport-blueprints","Import blueprints directly into your existing instances",{"path":1710,"title":1711},"\u002Fchangelog\u002F2025\u002F07\u002Fsimplified-applications-overview","Simplified Applications Page with Summary Tiles",{"path":1713,"title":1714},"\u002Fchangelog\u002F2025\u002F07\u002Fsmart-suggestions","Smart Suggestions",{"path":1716,"title":1717},"\u002Fchangelog\u002F2025\u002F07\u002Fteam-to-pro-plan-rename","Team Plan Renamed to Pro Plan",{"path":1719,"title":1720},"\u002Fchangelog\u002F2025\u002F08\u002Fai-generated-snapshot-descriptions-hosted","Generate snapshot descriptions with AI",{"path":1722,"title":1723},"\u002Fchangelog\u002F2025\u002F08\u002Fai-generated-snapshot-descriptions-remote","AI Snapshot Descriptions Now Work with Remote Instances",{"path":1725,"title":1726},"\u002Fchangelog\u002F2025\u002F08\u002Fdevice-performance","FlowFuse Remote Instance Performance Data",{"path":1728,"title":1729},"\u002Fchangelog\u002F2025\u002F08\u002Fdirect-sso","Direct SSO Login",{"path":1731,"title":1732},"\u002Fchangelog\u002F2025\u002F08\u002Fflowfuse-assistant","FlowFuse Expert documents your flows",{"path":1734,"title":1735},"\u002Fchangelog\u002F2025\u002F08\u002Fflowfuse-mqtt","FlowFuse MQTT",{"path":1737,"title":1738},"\u002Fchangelog\u002F2025\u002F08\u002Fhttp-cors","Configure HTTP CORS",{"path":1740,"title":1741},"\u002Fchangelog\u002F2025\u002F08\u002Fsubflow-export","Export SubFlow as Node-RED module",{"path":1743,"title":1744},"\u002Fchangelog\u002F2025\u002F08\u002Ftables-assistant","FlowFuse Tables with a little help from the Assistant",{"path":1746,"title":1747},"\u002Fchangelog\u002F2025\u002F09\u002Fexpose-saml-groups-to-dashboard","Allow SSO groups to be shared with the Node-RED Dashboard",{"path":1749,"title":1750},"\u002Fchangelog\u002F2025\u002F09\u002Finline-assist","FlowFuse Expert can help you write code",{"path":1752,"title":1753},"\u002Fchangelog\u002F2025\u002F09\u002Fretiring-flowforge-device-agent","No more @flowforge\u002Fflowforge-device-agent releases",{"path":1755,"title":1756},"\u002Fchangelog\u002F2025\u002F09\u002Frevised-instance-snapshot-ui","Streamlined Snapshot Management",{"path":1758,"title":1759},"\u002Fchangelog\u002F2025\u002F09\u002Fteam-broker-async-api","Capture Async API data from FlowFuse Team Broker",{"path":1761,"title":1762},"\u002Fchangelog\u002F2025\u002F10\u002Fapplication-level-rbac","Application-level access control for Enterprise teams",{"path":1764,"title":1765},"\u002Fchangelog\u002F2025\u002F10\u002Fbulk-device-group-assignment","Easier Access to Bulk Device Group Management",{"path":1767,"title":1768},"\u002Fchangelog\u002F2025\u002F10\u002Fduplicate-instances-across-applications","Duplicate Instances Across Different Applications",{"path":1770,"title":1771},"\u002Fchangelog\u002F2025\u002F10\u002Fimport-flows-on-instance-creation","Import flows during instance creation",{"path":1773,"title":1774},"\u002Fchangelog\u002F2025\u002F10\u002Fmcp-nodes","FlowFuse MCP Server Nodes",{"path":1776,"title":1777},"\u002Fchangelog\u002F2025\u002F10\u002Fonnx-nodes","FlowFuse AI Nodes",{"path":1779,"title":1780},"\u002Fchangelog\u002F2025\u002F10\u002Fsettings-page-device-group-management","Device Group Management from Settings Page",{"path":1782,"title":1783},"\u002Fchangelog\u002F2025\u002F11\u002Fff-expert-update","FlowFuse Expert Update",{"path":1785,"title":1786},"\u002Fchangelog\u002F2025\u002F11\u002Fminimum-nodejs-version","Node.js v20 Minimum Version Requirement",{"path":1788,"title":1789},"\u002Fchangelog\u002F2025\u002F11\u002Fsso-session","SSO control over Session life",{"path":1791,"title":1792},"\u002Fchangelog\u002F2025\u002F12\u002Fff-expert-mcp-insights","FlowFuse Expert: Now with MCP-Powered Insights",{"path":1794,"title":1795},"\u002Fchangelog\u002F2025\u002F12\u002Fscheduled-maintenance","Scheduled Maintenance Mode",{"path":1797,"title":1798},"\u002Fchangelog\u002F2026\u002F01\u002Fdevice-agent-containers","Device Agent Docker Containers updated",{"path":1800,"title":1801},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-manage-palette","FlowFuse Expert: Enhanced Palette Integration",{"path":1803,"title":1804},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-nr-actions","FlowFuse Expert: Integration with Node-RED",{"path":1806,"title":1807},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-palette-queries","FlowFuse Expert: Palette Queries",{"path":1809,"title":1810},"\u002Fchangelog\u002F2026\u002F01\u002Fff-expert-select-flows","FlowFuse Expert: Ask about your flows",{"path":1812,"title":1813},"\u002Fchangelog\u002F2026\u002F01\u002Fmcp-rbacs","FlowFuse Expert: MCP-Powered Insights with RBACs",{"path":1815,"title":1816},"\u002Fchangelog\u002F2026\u002F01\u002Fmcp-security","FlowFuse Expert: MCP-Powered Insights",{"path":1818,"title":1819},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options","Set Node.js Options for Remote Instances",{"path":1821,"title":1822},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context","FlowFuse Expert: Helping you make sense of your debug log",{"path":1824,"title":1825},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner","FlowFuse Expert: Never Miss an Update",{"path":1827,"title":1828},"\u002Fchangelog\u002F2026\u002F02\u002Fha-instance-rolling-restart","HA Hosted Instance Rolling Restart",{"path":1830,"title":1831},"\u002Fchangelog\u002F2026\u002F02\u002Fremote-instances-immersive-editor","Immersive Mode for Remote Instances",{"path":1833,"title":1834},"\u002Fchangelog\u002F2026\u002F02\u002Frestoring-snapshots-to-remote-instances","Restoring snapshots to developer-mode Remote Instances",{"path":1836,"title":1837},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops","Azure DevOps Pipeline support",{"path":1839,"title":1840},"\u002Fchangelog\u002F2026\u002F03\u002Fdeveloper-mode-in-immersive-editor","Developer Mode Now Accessible from the Immersive Editor",{"path":1842,"title":1843},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title","Embedded Editor Now Shows Active Tab",{"path":1845,"title":1846},"\u002Fchangelog\u002F2026\u002F03\u002Fmarch-scheduled-maintenance","Updated: Upcoming Scheduled Server Maintenance on March 28th, 2026",{"path":1848,"title":1849},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor","View Snapshot Details in the Immersive Editor",{"path":1851,"title":1852},"\u002Fchangelog\u002F2026\u002F04\u002Fexpert-action-links","FlowFuse expert action links",{"path":1854,"title":1855},"\u002Fchangelog\u002F2026\u002F04\u002Fhosted-instance-url-env-var","Hosted Instances know their own URL",{"path":1857,"title":1114},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer",{"path":1859,"title":1860},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer","Richer snapshot comparison view",{"path":1862,"title":1863},"\u002Fchangelog\u002F2026\u002F05\u002Fai-opt-out","AI Feature Opt-Out for Teams",{"path":1865,"title":1866},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building","FlowFuse Expert Builds Your Application",{"path":1868,"title":1869},"\u002Fchangelog\u002F2026\u002F05\u002Fsingle-sso-provider","Single SSO provider for all users",{"path":1871,"title":1872},"\u002Fchangelog\u002F2026\u002F06\u002Fdark-mode","Dark Mode",{"path":1874,"title":1875},"\u002Fchangelog\u002F2026\u002F06\u002Fdevice-agent-v4-released","Device Agent v4 released",{"path":1877,"title":1878},"\u002Fchangelog\u002F2026\u002F06\u002Fgeneric-git-server-support","Connect Pipelines to Any Git Server",{"path":1880,"title":1881},"\u002Fchangelog\u002F2026\u002F06\u002Fjuly-scheduled-maintenance","Updated: Upcoming Scheduled Server Maintenance on July 11th, 2026",{"path":1883,"title":1884},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups","Application Roles from SSO Groups",{"path":1886,"title":1887},"\u002Fchangelog\u002F2026\u002F07\u002Fdevice-agent-onboarding","Getting started with FlowFuse straight from the terminal",{"path":1889,"title":1890},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-enhancements","FlowFuse Expert Enhancements",{"path":1892,"title":1893},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation","FlowFuse Expert Can Now Work With Your Tables",{"path":1895,"title":1896},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats","Team Scoped Personal Access Tokens",{"path":1898,"title":1899},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards","A Dedicated Home for Your Dashboards",[],1786105897705]