[{"data":1,"prerenderedAt":2682},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fs7\u002F":3,"featureCatalog":1204,"docs-nav":1608},{"id":4,"title":5,"body":6,"description":16,"editUrl":1191,"extension":1192,"layout":1193,"meta":1194,"metaTitle":5,"navGroup":1193,"navGroupOrder":1193,"navOrder":1170,"navTitle":1195,"navigation":1196,"originalPath":1193,"path":1197,"redirect":1193,"seo":1198,"stem":1199,"structuredData":1200,"updated":1202,"version":1193,"__hash__":1203},"docs\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fs7.md","Siemens S7 Nodes",{"type":7,"value":8,"toc":1168},"minimark",[9,13,17,22,25,28,51,64,79,83,86,115,119,223,226,243,248,251,278,282,289,293,303,308,312,344,355,359,470,474,485,489,720,747,753,757,997,1001,1004,1078,1082,1120,1165],[10,11,5],"h1",{"id":12},"siemens-s7-nodes",[14,15,16],"p",{},"A suite of nodes for reading, writing, and monitoring data on Siemens S7 PLCs, from S7-300 and S7-400 to S7-1200, S7-1500 and LOGO!, using the S7 communication protocol (S7comm).",[18,19,21],"h2",{"id":20},"overview","Overview",[14,23,24],{},"The Siemens S7 nodes connect FlowFuse flows to Siemens PLCs over Ethernet. They read and write data blocks, markers, inputs, outputs, counters and timers, watch addresses for changes, discover the data blocks on a PLC, and import tag lists exported from TIA Portal and STEP 7, so you can work with named tags rather than raw addresses.",[14,26,27],{},"Each connection can use one of three backends:",[29,30,31,39,45],"ul",{},[32,33,34,38],"li",{},[35,36,37],"strong",{},"nodes7"," (default): pure JavaScript, nothing to compile, works anywhere Node-RED runs.",[32,40,41,44],{},[35,42,43],{},"snap7",": the native Snap7 library. Adds block listing, CPU status and CPU control, and a few data types nodes7 does not support.",[32,46,47,50],{},[35,48,49],{},"sim",": a built-in simulated PLC, for building and testing flows without hardware.",[14,52,53,54,57,58,63],{},"This is a ",[35,55,56],{},"FlowFuse Certified Node",". Unlike community nodes, which vary in quality and can go unmaintained without warning, FlowFuse vets Certified Nodes for quality, security, and support, and maintains them on an ongoing basis. ",[59,60,62],"a",{"href":61},"\u002Fblog\u002F2025\u002F07\u002Fcertified-nodes-v2\u002F","Read more about Certified Nodes",".",[65,66,67],"note",{},[14,68,69,70,73,74,78],{},"The Siemens S7 nodes are not available by default. They are part of the FlowFuse Edge Certified Nodes catalogue, which is part of the ",[35,71,72],{},"FlowFuse Edge"," offering. Please contact our sales team at ",[59,75,77],{"href":76},"\u002Fcontact-us\u002F","Contact us"," to learn more or to request access.",[18,80,82],{"id":81},"what-is-s7-communication","What is S7 communication?",[14,84,85],{},"S7 communication (S7comm) is the protocol Siemens SIMATIC PLCs use to exchange data with HMIs, SCADA systems, engineering tools and other PLCs. It runs over ISO-on-TCP (RFC 1006) on TCP port 102 typically, so an Ethernet-connected PLC needs no extra gateway or OPC server.",[14,87,88,89,93,94,97,98,101,102,105,106,109,110,114],{},"S7comm reads and writes by absolute address: a data block number and byte offset (",[90,91,92],"code",{},"DB1,REAL0",", or ",[90,95,96],{},"DB1.DBD0"," in TIA Portal notation), or a memory area such as markers (",[90,99,100],{},"MW10","), inputs (",[90,103,104],{},"I0.1",") and outputs (",[90,107,108],{},"QW2","). It does not use the symbolic tag names of TIA Portal, which is why S7-1200 and S7-1500 PLCs need a couple of settings changed before they can be reached this way (see ",[59,111,113],{"href":112},"#requirements","Requirements",").",[18,116,118],{"id":117},"supported-hardware","Supported Hardware",[120,121,122,138],"table",{},[123,124,125],"thead",{},[126,127,128,132,135],"tr",{},[129,130,131],"th",{},"PLC family",[129,133,134],{},"Default rack \u002F slot",[129,136,137],{},"Notes",[139,140,141,155,166,178,191,203],"tbody",{},[126,142,143,149,152],{},[144,145,146],"td",{},[35,147,148],{},"S7-1500",[144,150,151],{},"0 \u002F 1",[144,153,154],{},"Enable PUT\u002FGET access; use non-optimized data blocks",[126,156,157,162,164],{},[144,158,159],{},[35,160,161],{},"S7-1200",[144,163,151],{},[144,165,154],{},[126,167,168,173,176],{},[144,169,170],{},[35,171,172],{},"S7-300",[144,174,175],{},"0 \u002F 2",[144,177],{},[126,179,180,185,188],{},[144,181,182],{},[35,183,184],{},"S7-400",[144,186,187],{},"0 \u002F 3",[144,189,190],{},"Use the slot of the CPU in the rack",[126,192,193,198,200],{},[144,194,195],{},[35,196,197],{},"S7-200",[144,199,151],{},[144,201,202],{},"Ethernet-connected models",[126,204,205,210,213],{},[144,206,207],{},[35,208,209],{},"LOGO!",[144,211,212],{},"-",[144,214,215,216,219,220],{},"Connects by TSAP instead of rack and slot, e.g. local ",[90,217,218],{},"01.00"," and remote ",[90,221,222],{},"02.00",[18,224,113],{"id":225},"requirements",[29,227,228,231,234,240],{},[32,229,230],{},"Node.js 18 or later",[32,232,233],{},"Node-RED 2.0 or later",[32,235,236,237,239],{},"Access to the FlowFuse Edge Certified Nodes catalogue (part of the ",[35,238,72],{}," offering)",[32,241,242],{},"Network access from your FlowFuse instance or device to the PLC on TCP port 102",[244,245,247],"h3",{"id":246},"preparing-an-s7-1200-or-s7-1500","Preparing an S7-1200 or S7-1500",[14,249,250],{},"These PLCs block external S7 access by default. In TIA Portal:",[252,253,254,264,275],"ol",{},[32,255,256,257,260,261,63],{},"In the PLC's device configuration, under ",[35,258,259],{},"Protection & Security > Connection mechanisms",", tick ",[35,262,263],{},"Permit access with PUT\u002FGET communication from remote partner",[32,265,266,267,270,271,274],{},"For each data block you want to read or write, open its ",[35,268,269],{},"Properties > Attributes"," and untick ",[35,272,273],{},"Optimized block access",", then compile. Markers, inputs and outputs do not need this.",[32,276,277],{},"Download the changes to the PLC.",[244,279,281],{"id":280},"the-snap7-backend","The snap7 backend",[14,283,284,285,288],{},"The default nodes7 backend needs nothing extra. The optional snap7 backend uses the native ",[90,286,287],{},"node-snap7"," module, which is installed alongside the nodes where it can be built for your platform. If it is not available, the snap7 option reports that it is missing and the nodes7 backend continues to work.",[18,290,292],{"id":291},"installation","Installation",[14,294,295,296,298,299,302],{},"Because these nodes are part of the FlowFuse Edge Certified Nodes catalogue, which is part of the ",[35,297,72],{}," offering, make sure your account has access before installing. Contact our ",[59,300,301],{"href":76},"sales team"," if you don't.",[65,304,305],{},[14,306,307],{},"Newly installed nodes are picked up automatically, no restart needed. Restart is only required when you update a node that's already installed: restart any remote instance or hosted instance running the previous version.",[244,309,311],{"id":310},"install-via-the-palette-manager-recommended","Install via the Palette Manager (recommended)",[252,313,314,321,328,335],{},[32,315,316,317,320],{},"Open the ",[35,318,319],{},"Palette Manager"," from the top-right menu in the FlowFuse editor.",[32,322,323,324,327],{},"Switch to the ",[35,325,326],{},"Install"," tab.",[32,329,330,331,334],{},"Search for the ",[35,332,333],{},"FlowFuse Edge Certified Nodes"," collection.",[32,336,337,338,341,342,63],{},"Locate ",[90,339,340],{},"@flowfuse-certified-nodes\u002Fs7"," and click ",[35,343,326],{},[14,345,346,347,350,351,354],{},"After installation, the nodes appear under the ",[35,348,349],{},"S7 Suite"," category in the palette, and the connection is set up in an ",[35,352,353],{},"s7-config"," configuration node.",[18,356,358],{"id":357},"nodes-in-the-suite","Nodes in the Suite",[120,360,361,374],{},[123,362,363],{},[126,364,365,368,371],{},[129,366,367],{},"Node",[129,369,370],{},"Type",[129,372,373],{},"Description",[139,375,376,388,418,430,443,458],{},[126,377,378,382,385],{},[144,379,380],{},[35,381,353],{},[144,383,384],{},"Config",[144,386,387],{},"The connection to one PLC: host, port, rack and slot (or TSAPs), backend, timeouts and automatic reconnection. Connection settings can come from environment variables, and flows can connect, disconnect, reconnect or ask for the connection status.",[126,389,390,395,398],{},[144,391,392],{},[35,393,394],{},"s7-read",[144,396,397],{},"In\u002FOut",[144,399,400,401,404,405,404,408,411,412,404,415,114],{},"Read one or many addresses as a single value, an object keyed by address or label, a raw buffer, a structure defined by a schema, or an array of bits. Addresses can be set in the node or taken from the message, flow, global context or an environment variable. Import tag lists from TIA Portal (",[90,402,403],{},".xlsx",", ",[90,406,407],{},".xml",[90,409,410],{},".sdf",") or STEP 7 (",[90,413,414],{},".csv",[90,416,417],{},".cfg",[126,419,420,425,427],{},[144,421,422],{},[35,423,424],{},"s7-write",[144,426,397],{},[144,428,429],{},"Write single values, arrays, strings, several addresses at once, or a whole structure.",[126,431,432,437,440],{},[144,433,434],{},[35,435,436],{},"s7-trigger",[144,438,439],{},"Out",[144,441,442],{},"Poll addresses at an interval and send a message when a value changes, with rising and falling edge detection for bits and a deadband for analog values.",[126,444,445,450,452],{},[144,446,447],{},[35,448,449],{},"s7-browse",[144,451,397],{},[144,453,454,455,457],{},"Discover the data blocks and memory areas on a PLC, or read them from a STEP 7 ",[90,456,417],{}," export without a live connection.",[126,459,460,465,467],{},[144,461,462],{},[35,463,464],{},"s7-control",[144,466,397],{},[144,468,469],{},"Start, stop or cold-start the PLC CPU. snap7 backend only, and many S7-1200 and S7-1500 PLCs refuse these commands over PUT\u002FGET.",[18,471,473],{"id":472},"variable-addressing","Variable addressing",[14,475,476,477,480,481,484],{},"Addresses use the nodes7 format, which differs a little from TIA Portal and STEP 7. The TIA Portal form is accepted too, so ",[90,478,479],{},"DB1.DBD8"," and ",[90,482,483],{},"DB1,DWORD8"," read the same value, and both forms can be mixed in one node.",[244,486,488],{"id":487},"data-blocks","Data blocks",[120,490,491,506],{},[123,492,493],{},[126,494,495,498,501,504],{},[129,496,497],{},"Address",[129,499,500],{},"TIA Portal equivalent",[129,502,503],{},"Value in Node-RED",[129,505,373],{},[139,507,508,526,544,562,579,596,613,630,647,661,678,700],{},[126,509,510,515,520,523],{},[144,511,512],{},[90,513,514],{},"DB5,X0.1",[144,516,517],{},[90,518,519],{},"DB5.DBX0.1",[144,521,522],{},"boolean",[144,524,525],{},"Bit 1 of byte 0 of DB 5",[126,527,528,533,538,541],{},[144,529,530],{},[90,531,532],{},"DB23,BYTE1",[144,534,535],{},[90,536,537],{},"DB23.DBB1",[144,539,540],{},"number",[144,542,543],{},"Byte 1 of DB 23 (0 to 255)",[126,545,546,551,556,559],{},[144,547,548],{},[90,549,550],{},"DB100,CHAR2",[144,552,553],{},[90,554,555],{},"DB100.DBB2",[144,557,558],{},"string",[144,560,561],{},"Byte 2 of DB 100 as a character",[126,563,564,569,574,576],{},[144,565,566],{},[90,567,568],{},"DB42,INT4",[144,570,571],{},[90,572,573],{},"DB42.DBW4",[144,575,540],{},[144,577,578],{},"Signed 16-bit integer at byte 4 of DB 42",[126,580,581,586,591,593],{},[144,582,583],{},[90,584,585],{},"DB57,WORD4",[144,587,588],{},[90,589,590],{},"DB57.DBW4",[144,592,540],{},[144,594,595],{},"Unsigned 16-bit integer at byte 4 of DB 57",[126,597,598,603,608,610],{},[144,599,600],{},[90,601,602],{},"DB13,DINT6",[144,604,605],{},[90,606,607],{},"DB13.DBD6",[144,609,540],{},[144,611,612],{},"Signed 32-bit integer at byte 6 of DB 13",[126,614,615,620,625,627],{},[144,616,617],{},[90,618,619],{},"DB19,DWORD6",[144,621,622],{},[90,623,624],{},"DB19.DBD6",[144,626,540],{},[144,628,629],{},"Unsigned 32-bit integer at byte 6 of DB 19",[126,631,632,637,642,644],{},[144,633,634],{},[90,635,636],{},"DB21,REAL8",[144,638,639],{},[90,640,641],{},"DB21.DBD8",[144,643,540],{},[144,645,646],{},"32-bit floating point number at byte 8 of DB 21",[126,648,649,654,656,658],{},[144,650,651],{},[90,652,653],{},"DB21,LREAL12",[144,655,212],{},[144,657,540],{},[144,659,660],{},"64-bit floating point number at byte 12 of DB 21",[126,662,663,668,670,672],{},[144,664,665],{},[90,666,667],{},"DB2,STRING10.20",[144,669,212],{},[144,671,558],{},[144,673,674,677],{},[90,675,676],{},"STRING[20]"," starting at byte 10 of DB 2",[126,679,680,685,687,690],{},[144,681,682],{},[90,683,684],{},"DB1,DTL0",[144,686,212],{},[144,688,689],{},"Date",[144,691,692,695,696,699],{},[90,693,694],{},"DTL"," at byte 0 of DB 1, as server local time. Use ",[90,697,698],{},"DTLZ"," if the PLC keeps UTC",[126,701,702,707,709,711],{},[144,703,704],{},[90,705,706],{},"DB1,DT12",[144,708,212],{},[144,710,689],{},[144,712,713,716,717,699],{},[90,714,715],{},"DATE_AND_TIME"," at byte 12 of DB 1, as server local time. Use ",[90,718,719],{},"DTZ",[14,721,722,723,726,727,480,730,733,734,737,738,404,741,480,744,63],{},"The TIA Portal column shows where the value lives. Typed in that form, ",[90,724,725],{},"DBW"," always reads as an unsigned ",[90,728,729],{},"WORD",[90,731,732],{},"DBD"," as an unsigned ",[90,735,736],{},"DWORD",", so use the nodes7 form for ",[90,739,740],{},"INT",[90,742,743],{},"DINT",[90,745,746],{},"REAL",[14,748,749,750,114],{},"A string takes 2 bytes more than its length: the first byte holds the maximum length and the second the current length. When writing to a string that is already declared in the PLC, the length can be left off (",[90,751,752],{},"DB2,STRING10",[244,754,756],{"id":755},"inputs-outputs-and-markers","Inputs, outputs and markers",[120,758,759,771],{},[123,760,761],{},[126,762,763,765,767,769],{},[129,764,497],{},[129,766,500],{},[129,768,503],{},[129,770,373],{},[139,772,773,789,805,821,837,853,869,885,901,917,933,949,965,981],{},[126,774,775,780,784,786],{},[144,776,777],{},[90,778,779],{},"I1.0",[144,781,782],{},[90,783,779],{},[144,785,522],{},[144,787,788],{},"Bit 0 of byte 1 of the inputs",[126,790,791,796,800,802],{},[144,792,793],{},[90,794,795],{},"Q2.1",[144,797,798],{},[90,799,795],{},[144,801,522],{},[144,803,804],{},"Bit 1 of byte 2 of the outputs",[126,806,807,812,816,818],{},[144,808,809],{},[90,810,811],{},"M3.2",[144,813,814],{},[90,815,811],{},[144,817,522],{},[144,819,820],{},"Bit 2 of byte 3 of the markers",[126,822,823,828,832,834],{},[144,824,825],{},[90,826,827],{},"IB4",[144,829,830],{},[90,831,827],{},[144,833,540],{},[144,835,836],{},"Byte 4 of the inputs (0 to 255)",[126,838,839,844,848,850],{},[144,840,841],{},[90,842,843],{},"QB5",[144,845,846],{},[90,847,843],{},[144,849,540],{},[144,851,852],{},"Byte 5 of the outputs (0 to 255)",[126,854,855,860,864,866],{},[144,856,857],{},[90,858,859],{},"MB6",[144,861,862],{},[90,863,859],{},[144,865,540],{},[144,867,868],{},"Byte 6 of the markers (0 to 255)",[126,870,871,876,880,882],{},[144,872,873],{},[90,874,875],{},"IW10",[144,877,878],{},[90,879,875],{},[144,881,540],{},[144,883,884],{},"Unsigned 16-bit integer at byte 10 of the inputs",[126,886,887,892,896,898],{},[144,888,889],{},[90,890,891],{},"QW12",[144,893,894],{},[90,895,891],{},[144,897,540],{},[144,899,900],{},"Unsigned 16-bit integer at byte 12 of the outputs",[126,902,903,908,912,914],{},[144,904,905],{},[90,906,907],{},"MW14",[144,909,910],{},[90,911,907],{},[144,913,540],{},[144,915,916],{},"Unsigned 16-bit integer at byte 14 of the markers",[126,918,919,924,928,930],{},[144,920,921],{},[90,922,923],{},"ID16",[144,925,926],{},[90,927,923],{},[144,929,540],{},[144,931,932],{},"Unsigned 32-bit integer at byte 16 of the inputs",[126,934,935,940,944,946],{},[144,936,937],{},[90,938,939],{},"QD20",[144,941,942],{},[90,943,939],{},[144,945,540],{},[144,947,948],{},"Unsigned 32-bit integer at byte 20 of the outputs",[126,950,951,956,960,962],{},[144,952,953],{},[90,954,955],{},"MD24",[144,957,958],{},[90,959,955],{},[144,961,540],{},[144,963,964],{},"Unsigned 32-bit integer at byte 24 of the markers",[126,966,967,972,976,978],{},[144,968,969],{},[90,970,971],{},"C1",[144,973,974],{},[90,975,971],{},[144,977,540],{},[144,979,980],{},"Counter 1 (snap7 backend only)",[126,982,983,988,992,994],{},[144,984,985],{},[90,986,987],{},"T2",[144,989,990],{},[90,991,987],{},[144,993,540],{},[144,995,996],{},"Timer 2 (snap7 backend only)",[244,998,1000],{"id":999},"arrays","Arrays",[14,1002,1003],{},"A number after the offset reads that many values as an array, and a write takes an array of exactly that many values. For a bit, the second number is the count.",[120,1005,1006,1014],{},[123,1007,1008],{},[126,1009,1010,1012],{},[129,1011,497],{},[129,1013,373],{},[139,1015,1016,1032,1045,1058,1068],{},[126,1017,1018,1023],{},[144,1019,1020],{},[90,1021,1022],{},"DB1,INT20.3",[144,1024,1025,1026,1028,1029],{},"3 ",[90,1027,740],{}," values starting at byte 20 of DB 1, an ",[90,1030,1031],{},"Array[0..2] of Int",[126,1033,1034,1039],{},[144,1035,1036],{},[90,1037,1038],{},"DB1,REAL40.10",[144,1040,1041,1042,1044],{},"10 ",[90,1043,746],{}," values starting at byte 40 of DB 1",[126,1046,1047,1052],{},[144,1048,1049],{},[90,1050,1051],{},"DB1,X10.3.8",[144,1053,1054,1055],{},"8 consecutive bits starting at bit 3 of byte 10 of DB 1, an ",[90,1056,1057],{},"Array[0..7] of Bool",[126,1059,1060,1065],{},[144,1061,1062],{},[90,1063,1064],{},"MB20.4",[144,1066,1067],{},"4 bytes starting at byte 20 of the markers",[126,1069,1070,1075],{},[144,1071,1072],{},[90,1073,1074],{},"M10.0.16",[144,1076,1077],{},"16 consecutive bits starting at bit 0 of byte 10 of the markers",[244,1079,1081],{"id":1080},"data-types-and-backends","Data types and backends",[14,1083,1084,1085,404,1088,404,1091,404,1094,404,1096,404,1098,404,1100,404,1102,404,1104,404,1107,404,1110,404,1113,404,1115,480,1117,1119],{},"The nodes7 backend reads and writes ",[90,1086,1087],{},"BOOL",[90,1089,1090],{},"BYTE",[90,1092,1093],{},"CHAR",[90,1095,729],{},[90,1097,740],{},[90,1099,736],{},[90,1101,743],{},[90,1103,746],{},[90,1105,1106],{},"LREAL",[90,1108,1109],{},"STRING",[90,1111,1112],{},"DT",[90,1114,719],{},[90,1116,694],{},[90,1118,698],{},". These types need the snap7 backend:",[29,1121,1122,1139,1155,1162],{},[32,1123,1124,404,1127,404,1130,404,1133,480,1136],{},[90,1125,1126],{},"USINT",[90,1128,1129],{},"UINT",[90,1131,1132],{},"UDINT",[90,1134,1135],{},"LINT",[90,1137,1138],{},"ULINT",[32,1140,1141,404,1144,404,1147,404,1150,480,1153],{},[90,1142,1143],{},"DATE",[90,1145,1146],{},"TIME",[90,1148,1149],{},"TIME_OF_DAY",[90,1151,1152],{},"S5TIME",[90,1154,715],{},[32,1156,1157,1158,1161],{},"reading ",[90,1159,1160],{},"WSTRING"," (nodes7 can write it)",[32,1163,1164],{},"counters and timers",[14,1166,1167],{},"The sim backend supports every type. If the nodes7 backend is given a type it does not support, the node reports an error that names the address.",{"title":1169,"searchDepth":1170,"depth":1170,"links":1171},"",4,[1172,1174,1175,1176,1181,1184,1185],{"id":20,"depth":1173,"text":21},2,{"id":81,"depth":1173,"text":82},{"id":117,"depth":1173,"text":118},{"id":225,"depth":1173,"text":113,"children":1177},[1178,1180],{"id":246,"depth":1179,"text":247},3,{"id":280,"depth":1179,"text":281},{"id":291,"depth":1173,"text":292,"children":1182},[1183],{"id":310,"depth":1179,"text":311},{"id":357,"depth":1173,"text":358},{"id":472,"depth":1173,"text":473,"children":1186},[1187,1188,1189,1190],{"id":487,"depth":1179,"text":488},{"id":755,"depth":1179,"text":756},{"id":999,"depth":1179,"text":1000},{"id":1080,"depth":1179,"text":1081},"https:\u002F\u002Fgithub.com\u002FFlowFuse\u002Fwebsite\u002Fedit\u002Fmain\u002Fnuxt\u002Fcontent-guides\u002Fflowfuse-nodes\u002Fedge\u002Fs7.md","md",null,{},"Siemens S7",true,"\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fs7",{"title":5,"description":16},"docs\u002Fflowfuse-nodes\u002Fedge\u002Fs7",{"description":1201},"A suite of nodes for reading, writing, and monitoring data on Siemens S7-200, S7-300, S7-400, S7-1200, S7-1500 and LOGO! PLCs over the S7 protocol.","2026-10-07 10:18:01 +0100","d9y4Sm5hS71j9jte6-vWpNc4PCqVnQJEBfJUS4TEIoE",{"id":1205,"extension":1206,"meta":1207,"sections":1208,"stem":1606,"__hash__":1607},"featureCatalog\u002Ffeature-catalog.yml","yml",{},[1209,1270,1371,1433,1510,1588],{"id":1210,"title":1211,"features":1212},"ai-automation","AI & Automation",[1213,1223,1233,1243,1249,1259,1265],{"id":1214,"title":1215,"description":1216,"docsLink":1217,"changelog":1218,"tiers":1222},"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",[1219],{"url":1220,"release":1221},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-update-banner\u002F","2.28",{"edge":1196,"hub":1196,"fleet":1196},{"id":1224,"title":1225,"description":1226,"docsLink":1227,"changelog":1228,"subfeature":1196,"showOnPricing":1231,"tiers":1232},"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",[1229],{"url":1230,"release":1221},"\u002Fchangelog\u002F2026\u002F02\u002Fff-expert-debug-log-context\u002F",false,{"edge":1196,"hub":1196,"fleet":1196},{"id":1234,"title":1235,"description":1236,"docsLink":1237,"changelog":1238,"subfeature":1196,"showOnPricing":1231,"tiers":1242},"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",[1239],{"url":1240,"release":1241},"\u002Fchangelog\u002F2026\u002F05\u002Fexpert-application-building\u002F","2.30",{"edge":1196,"hub":1196,"fleet":1196},{"id":1244,"title":1245,"description":1246,"docsLink":1247,"subfeature":1196,"beta":1196,"showOnPricing":1231,"tiers":1248},"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":1196,"hub":1196,"fleet":1196},{"id":1250,"title":1251,"description":1252,"docsLink":1253,"changelog":1254,"tiers":1258},"third-party-agents","Connect Your Own AI Agent","Point the AI agent your company already uses at FlowFuse, so it can query your teams and instances and build Node-RED applications, with you deciding which teams it reaches and whether it can make changes.","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents\u002F",[1255],{"url":1256,"release":1257},"\u002Fchangelog\u002F2026\u002F08\u002Fconnect-your-own-ai-agent\u002F","3.0",{"edge":1196,"hub":1196,"fleet":1196},{"id":1260,"title":1261,"description":1262,"docsLink":1263,"tiers":1264},"mcp-servers","Agentic Operations","Expose your Node-RED flows as tools an AI agent can call directly, so agents can query the state of the factory or trigger actions without custom integration work.","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1266,"title":1267,"description":1268,"tiers":1269},"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":1196,"hub":1196,"fleet":1196},{"id":1271,"title":1272,"features":1273},"build","Build",[1274,1280,1286,1296,1302,1308,1312,1318,1324,1332,1338,1342,1346,1355,1363],{"id":1275,"title":1276,"description":1277,"docsLink":1278,"tiers":1279},"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":1196,"hub":1231,"fleet":1196},{"id":1281,"title":1282,"description":1283,"docsLink":1284,"tiers":1285},"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":1196,"hub":1196,"fleet":1196},{"id":1287,"title":1288,"description":1289,"docsLink":1290,"changelog":1291,"tiers":1295},"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",[1292],{"url":1293,"release":1294},"\u002Fchangelog\u002F2026\u002F07\u002Fexpert-tables-automation\u002F","2.33",{"edge":1196,"hub":1196,"fleet":1196},{"id":1297,"title":1298,"description":1299,"docsLink":1300,"tiers":1301},"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":1196,"hub":1196,"fleet":1196},{"id":1303,"title":1304,"description":1305,"docsLink":1306,"showOnPricing":1231,"tiers":1307},"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":1196,"hub":1196,"fleet":1196},{"id":1309,"title":1310,"showOnPricing":1231,"tiers":1311},"static-assets","Static Assets",{"edge":1196,"hub":1196,"fleet":1196},{"id":1313,"title":1314,"description":1315,"docsLink":1316,"tiers":1317},"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":1196,"hub":1196,"fleet":1196},{"id":1319,"title":1320,"description":1321,"docsLink":1322,"tiers":1323},"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":1196,"hub":1196,"fleet":1196},{"id":1325,"title":1326,"description":1327,"changelog":1328,"subfeature":1196,"showOnPricing":1231,"tiers":1331},"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.",[1329],{"url":1330,"release":1294},"\u002Fchangelog\u002F2026\u002F07\u002Fteam-and-application-dashboards\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1333,"title":1334,"description":1335,"docsLink":1336,"tiers":1337},"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":1196,"hub":1196,"fleet":1196},{"id":1339,"title":1340,"subfeature":1196,"showOnPricing":1231,"tiers":1341},"blueprints-ot-apps","Blueprints - OT APPS",{"edge":1196,"hub":1231,"fleet":1196},{"id":1343,"title":1344,"subfeature":1196,"showOnPricing":1231,"tiers":1345},"blueprints-it-apps","Blueprints - IT APPS",{"edge":1231,"hub":1196,"fleet":1231},{"id":1347,"title":1348,"description":1349,"changelog":1350,"showOnPricing":1231,"tiers":1354},"immersive-editor-snapshots","Snapshot Details in Immersive Editor","View and manage snapshot details directly inside the immersive editor without leaving your editing session.",[1351],{"url":1352,"release":1353},"\u002Fchangelog\u002F2026\u002F03\u002Fsnapshot-detail-modal-immersive-editor\u002F","2.29",{"edge":1196,"hub":1196,"fleet":1196},{"id":1356,"title":1357,"description":1358,"changelog":1359,"showOnPricing":1231,"tiers":1362},"immersive-editor-drawer","Customisable Immersive Editor Drawer","Pin, move, resize, or full-screen the immersive editor drawer. Your preferences are remembered between sessions.",[1360],{"url":1361,"release":1241},"\u002Fchangelog\u002F2026\u002F04\u002Fimmersive-editor-drawer\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1364,"title":1365,"description":1366,"changelog":1367,"showOnPricing":1231,"tiers":1370},"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.",[1368],{"url":1369,"release":1353},"\u002Fchangelog\u002F2026\u002F03\u002Fembedded-editor-tab-title\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1372,"title":1373,"features":1374},"deploy","Deploy",[1375,1381,1390,1396,1402,1408,1414,1420,1425],{"id":1376,"title":1377,"description":1378,"docsLink":1379,"tiers":1380},"hosted-instances","Cloud Instances","Run Node-RED instances managed and hosted by FlowFuse.","\u002Fdocs\u002Fuser\u002Fintroduction\u002F#creating-a-node-red-instance",{"edge":1196,"hub":1196,"fleet":1196},{"id":1382,"title":1383,"description":1384,"docsLink":1385,"changelog":1386,"tiers":1389},"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",[1387],{"url":1388,"release":1221},"\u002Fchangelog\u002F2026\u002F02\u002Fdevice-agent-nodejs-options\u002F",{"edge":1196,"hub":1231,"fleet":1196},{"id":1391,"title":1392,"description":1393,"docsLink":1394,"tiers":1395},"custom-hostnames","Custom Hostnames","Access your Node-RED application via your own domain name.","\u002Fdocs\u002Fuser\u002Fcustom-hostnames\u002F",{"edge":1231,"hub":1196,"fleet":1231},{"id":1397,"title":1398,"description":1399,"docsLink":1400,"tiers":1401},"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":1196,"hub":1231,"fleet":1196},{"id":1403,"title":1404,"description":1405,"docsLink":1406,"showOnPricing":1231,"tiers":1407},"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":1196,"hub":1196,"fleet":1196},{"id":1409,"title":1410,"description":1411,"docsLink":1412,"tiers":1413},"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":1196,"hub":1196,"fleet":1196},{"id":1415,"title":1416,"description":1417,"docsLink":1418,"tiers":1419},"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":1231,"hub":1196,"fleet":1231},{"id":1421,"title":1422,"description":1423,"docsLink":1418,"subfeature":1196,"showOnPricing":1231,"tiers":1424},"git-integration-github","GitHub","Push and pull snapshots to GitHub repositories through DevOps Pipeline Git Stages.",{"edge":1231,"hub":1196,"fleet":1231},{"id":1426,"title":1427,"description":1428,"docsLink":1418,"changelog":1429,"subfeature":1196,"showOnPricing":1231,"tiers":1432},"git-integration-azure","Azure DevOps","Push and pull snapshots to Azure DevOps repositories through DevOps Pipeline Git Stages.",[1430],{"url":1431,"release":1353},"\u002Fchangelog\u002F2026\u002F03\u002Fazure-dev-ops-gitops\u002F",{"edge":1231,"hub":1196,"fleet":1231},{"id":1434,"title":1435,"features":1436},"operate-maintain","Operate & Maintain",[1437,1443,1449,1454,1462,1466,1470,1475,1481,1487,1492,1498,1502,1506],{"id":1438,"title":1439,"description":1440,"docsLink":1441,"tiers":1442},"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":1196,"hub":1196,"fleet":1196},{"id":1444,"title":1445,"description":1446,"docsLink":1447,"subfeature":1196,"showOnPricing":1231,"tiers":1448},"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":1196,"hub":1196,"fleet":1196},{"id":1450,"title":1451,"description":1452,"docsLink":1447,"subfeature":1196,"showOnPricing":1231,"tiers":1453},"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":1196,"hub":1196,"fleet":1196},{"id":1455,"title":1456,"description":1457,"changelog":1458,"subfeature":1196,"showOnPricing":1231,"tiers":1461},"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.",[1459],{"url":1460,"release":1353},"\u002Fchangelog\u002F2026\u002F04\u002Fsnapshot-diff-viewer\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1463,"title":1464,"subfeature":1196,"showOnPricing":1231,"tiers":1465},"version-history-timeline","Version History Timeline",{"edge":1196,"hub":1196,"fleet":1196},{"id":1467,"title":1468,"tiers":1469},"unlimited-workflow-executions","Unlimited Workflow Executions",{"edge":1196,"hub":1196,"fleet":1196},{"id":1471,"title":1472,"description":1473,"tiers":1474},"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":1196,"hub":1231,"fleet":1196},{"id":1476,"title":1477,"description":1478,"docsLink":1479,"tiers":1480},"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":1196,"hub":1231,"fleet":1196},{"id":1482,"title":1483,"description":1484,"docsLink":1485,"tiers":1486},"high-availability","High Availability","Leverage horizontal scaling for reliable and scalable processing of your data through Node-RED.","\u002Fdocs\u002Fuser\u002Fhigh-availability\u002F",{"edge":1231,"hub":1196,"fleet":1231},{"id":1488,"title":1489,"description":1490,"tiers":1491},"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":1196,"hub":1196,"fleet":1196},{"id":1493,"title":1494,"description":1495,"docsLink":1496,"subfeature":1196,"showOnPricing":1231,"tiers":1497},"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":1196,"hub":1196,"fleet":1196},{"id":1499,"title":1500,"subfeature":1196,"showOnPricing":1231,"tiers":1501},"email-alerts","Email Alerts",{"edge":1196,"hub":1196,"fleet":1196},{"id":1503,"title":1504,"showOnPricing":1231,"tiers":1505},"api-debug-length-limit","API\u002FDebug Length Limit",{"edge":1196,"hub":1196,"fleet":1196},{"id":1507,"title":1508,"tiers":1509},"protected-instances","Protected Instances",{"edge":1231,"hub":1196,"fleet":1231},{"id":1511,"title":1512,"features":1513},"govern-secure","Govern and Secure",[1514,1523,1529,1534,1539,1545,1551,1557,1565,1571,1577,1583],{"id":1515,"title":1516,"description":1517,"docsLink":1518,"changelog":1519,"tiers":1522},"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",[1520],{"url":1521,"release":1294},"\u002Fchangelog\u002F2026\u002F07\u002Fapplication-sso-groups\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1524,"title":1525,"description":1526,"docsLink":1527,"tiers":1528},"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":1196,"hub":1196,"fleet":1196},{"id":1530,"title":1531,"description":1532,"docsLink":61,"tiers":1533},"certified-nodes-it","Certified Nodes - IT","IT certified node bundle includes: Redis, Kafka, MQTT, HTTP Request, AI nodes (Gemini, Claude, ChatGPT, Ollama), MCP Server",{"edge":1231,"hub":1196,"fleet":1196},{"id":1535,"title":1536,"description":1537,"tiers":1538},"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":1196,"hub":1231,"fleet":1231},{"id":1540,"title":1541,"description":1542,"docsLink":1543,"tiers":1544},"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":1196,"hub":1196,"fleet":1196},{"id":1546,"title":1547,"description":1548,"docsLink":1549,"tiers":1550},"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":1196,"hub":1196,"fleet":1196},{"id":1552,"title":1553,"description":1554,"docsLink":1555,"subfeature":1196,"showOnPricing":1231,"tiers":1556},"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":1196,"hub":1196,"fleet":1196},{"id":1558,"title":1559,"description":1560,"changelog":1561,"subfeature":1196,"showOnPricing":1231,"tiers":1564},"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.",[1562],{"url":1563,"release":1294},"\u002Fchangelog\u002F2026\u002F07\u002Fscoped-pats\u002F",{"edge":1196,"hub":1196,"fleet":1196},{"id":1566,"title":1567,"description":1568,"docsLink":1569,"showOnPricing":1231,"tiers":1570},"team-members","Team Members","Invite multiple team members to collaborate on the same Node-RED flows.","\u002Fdocs\u002Fuser\u002Fteam\u002F#teams",{"edge":1196,"hub":1196,"fleet":1196},{"id":1572,"title":1573,"description":1574,"docsLink":1575,"showOnPricing":1231,"tiers":1576},"endpoint-security","Endpoint Security","Secure HTTP endpoints for hosted Node-RED instances using FlowFuse credentials.","\u002Fdocs\u002Fuser\u002Finstance-settings\u002F#security",{"edge":1196,"hub":1196,"fleet":1196},{"id":1578,"title":1579,"description":1580,"docsLink":1581,"tiers":1582},"baa-for-hipaa","BAA for HIPAA","FlowFuse can sign a Business Associate Agreement to ensure proper safeguarding of protected health information handled on your behalf.","\u002Fhandbook\u002Fsales\u002Fsubscription-agreement-1.6\u002F",{"edge":1231,"hub":1196,"fleet":1231},{"id":1584,"title":1585,"description":1586,"tiers":1587},"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":1231,"hub":1196,"fleet":1231},{"id":1589,"title":1590,"features":1591},"support","Support",[1592,1597,1601],{"id":1593,"title":1594,"docsLink":1595,"tiers":1596},"installation-support","Installation Support","\u002Fdocs\u002Finstall\u002Fintroduction\u002F#do-you-need-help-installation-service",{"edge":1196,"hub":1196,"fleet":1196},{"id":1598,"title":1599,"showOnPricing":1231,"tiers":1600},"live-chat-support","Live Chat Support",{"edge":1196,"hub":1196,"fleet":1196},{"id":1602,"title":1603,"docsLink":1604,"tiers":1605},"enterprise-support","Enterprise Support","\u002Fdocs\u002Fpremium-support\u002F",{"edge":1196,"hub":1196,"fleet":1196},"feature-catalog","35tDcomYppEuLf9slsCejTi-zAX3K7q70VXr5z-BtWU",[1609,1697,1946,2024,2037,2181,2187,2268],{"name":1610,"order":1611,"children":1612},"Application Guide",0,[1613,1663],{"title":1614,"path":1615,"group":1610,"groupOrder":1611,"order":1616,"isPage":1196,"children":1617},"Building FlowFuse applications","\u002Fdocs\u002Fapplication-guide",1,[1618,1622,1634,1638,1654],{"title":1619,"path":1620,"order":1616,"isPage":1196,"children":1621},"Foundations","\u002Fdocs\u002Fapplication-guide\u002Ffoundations",[],{"title":1623,"path":1624,"order":1173,"isPage":1196,"children":1625},"App delivery methods","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods",[1626,1630],{"title":1627,"path":1628,"order":1616,"isPage":1196,"children":1629},"Hardware apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fhardware-apps",[],{"title":1631,"path":1632,"order":1173,"isPage":1196,"children":1633},"Software apps","\u002Fdocs\u002Fapplication-guide\u002Fapp-delivery-methods\u002Fsoftware-apps",[],{"title":1635,"path":1636,"order":1179,"isPage":1196,"children":1637},"Data plane","\u002Fdocs\u002Fapplication-guide\u002Fdata-plane",[],{"title":1639,"path":1640,"order":1170,"isPage":1196,"children":1641},"Architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures",[1642,1646,1650],{"title":1643,"path":1644,"order":1616,"isPage":1196,"children":1645},"IT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fit",[],{"title":1647,"path":1648,"order":1173,"isPage":1196,"children":1649},"OT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fot",[],{"title":1651,"path":1652,"order":1179,"isPage":1196,"children":1653},"IIoT architectures","\u002Fdocs\u002Fapplication-guide\u002Farchitectures\u002Fiiot",[],{"title":1655,"path":1656,"order":1657,"isPage":1196,"children":1658},"Worked examples","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples",5,[1659],{"title":1660,"path":1661,"order":1616,"isPage":1196,"children":1662},"OEE, end to end","\u002Fdocs\u002Fapplication-guide\u002Fworked-examples\u002Foee",[],{"title":1664,"path":1665,"group":1610,"groupOrder":1611,"order":1173,"isPage":1196,"children":1666},"Designing Node-RED flows","\u002Fdocs\u002Fnode-red-guide",[1667,1670,1686],{"title":1619,"path":1668,"order":1616,"isPage":1196,"children":1669},"\u002Fdocs\u002Fnode-red-guide\u002Ffoundations",[],{"title":1671,"path":1672,"order":1173,"isPage":1196,"children":1673},"Patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns",[1674,1678,1682],{"title":1675,"path":1676,"order":1616,"isPage":1196,"children":1677},"Design patterns","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fdesign-patterns",[],{"title":1679,"path":1680,"order":1173,"isPage":1196,"children":1681},"Handling data","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fhandling-data",[],{"title":1683,"path":1684,"order":1179,"isPage":1196,"children":1685},"Good form","\u002Fdocs\u002Fnode-red-guide\u002Fpatterns\u002Fgood-form",[],{"title":1655,"path":1687,"order":1179,"isPage":1196,"children":1688},"\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples",[1689,1693],{"title":1690,"path":1691,"order":1616,"isPage":1196,"children":1692},"OEE - Edge Aggregator","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-edge-aggregator",[],{"title":1694,"path":1695,"order":1173,"isPage":1196,"children":1696},"OEE - Central Dashboard","\u002Fdocs\u002Fnode-red-guide\u002Fworked-examples\u002Foee-central-dashboard",[],{"name":1698,"order":1616,"children":1699},"FlowFuse User Manuals",[1700,1829,1833,1845],{"title":1701,"path":1702,"group":1698,"groupOrder":1616,"order":1616,"isPage":1231,"children":1703,"link":1231},"Using FlowFuse","\u002Fdocs\u002Fuser",[1704,1708,1712,1716,1720,1725,1729,1732,1736,1740,1743,1747,1763,1767,1771,1775,1779,1783,1786,1790,1794,1798,1802,1806,1809,1813,1817,1821,1825],{"title":1705,"path":1706,"order":1616,"isPage":1196,"children":1707},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":1709,"path":1710,"order":1616,"isPage":1196,"children":1711},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":1713,"path":1714,"order":1173,"isPage":1196,"children":1715},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":1717,"path":1718,"order":1173,"isPage":1196,"children":1719},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":1721,"path":1722,"order":1723,"isPage":1196,"children":1724},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":1726,"path":1727,"order":1193,"isPage":1196,"children":1728},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":1392,"path":1730,"order":1193,"isPage":1196,"children":1731},"\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":1733,"path":1734,"order":1193,"isPage":1196,"children":1735},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":1737,"path":1738,"order":1193,"isPage":1196,"children":1739},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":1410,"path":1741,"order":1193,"isPage":1196,"children":1742},"\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":1744,"path":1745,"order":1193,"isPage":1196,"children":1746},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":1748,"path":1749,"order":1193,"isPage":1196,"children":1750},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[1751,1755,1759],{"title":1752,"path":1753,"order":1193,"isPage":1196,"children":1754},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":1756,"path":1757,"order":1193,"isPage":1196,"children":1758},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":1760,"path":1761,"order":1193,"isPage":1196,"children":1762},"Connect Your Own Agent","\u002Fdocs\u002Fuser\u002Fexpert\u002Fthird-party-agents",[],{"title":1764,"path":1765,"order":1193,"isPage":1196,"children":1766},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":1768,"path":1769,"order":1193,"isPage":1196,"children":1770},"FlowFuse MCP","\u002Fdocs\u002Fuser\u002Fmcp",[],{"title":1772,"path":1773,"order":1193,"isPage":1196,"children":1774},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":1776,"path":1777,"order":1193,"isPage":1196,"children":1778},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":1780,"path":1781,"order":1193,"isPage":1196,"children":1782},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":1288,"path":1784,"order":1193,"isPage":1196,"children":1785},"\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":1787,"path":1788,"order":1193,"isPage":1196,"children":1789},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":1791,"path":1792,"order":1193,"isPage":1196,"children":1793},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":1795,"path":1796,"order":1193,"isPage":1196,"children":1797},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":1799,"path":1800,"order":1193,"isPage":1196,"children":1801},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":1803,"path":1804,"order":1193,"isPage":1196,"children":1805},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":1547,"path":1807,"order":1193,"isPage":1196,"children":1808},"\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":1810,"path":1811,"order":1193,"isPage":1196,"children":1812},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":1814,"path":1815,"order":1193,"isPage":1196,"children":1816},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":1818,"path":1819,"order":1193,"isPage":1196,"children":1820},"Team Broker","\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":1822,"path":1823,"order":1193,"isPage":1196,"children":1824},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":1826,"path":1827,"order":1193,"isPage":1196,"children":1828},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],{"title":1830,"path":1831,"group":1698,"groupOrder":1616,"order":1173,"isPage":1196,"children":1832},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"title":1834,"path":1835,"group":1698,"groupOrder":1616,"order":1179,"isPage":1231,"children":1836,"link":1231},"Migrating a Node-RED project to FlowFuse","\u002Fdocs\u002Fmigration",[1837,1841],{"title":1838,"path":1839,"order":1616,"isPage":1196,"children":1840},"Introduction","\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":1842,"path":1843,"order":1193,"isPage":1196,"children":1844},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":1846,"path":1847,"group":1698,"groupOrder":1616,"order":1170,"isPage":1196,"children":1848},"FlowFuse Node-RED nodes","\u002Fdocs\u002Fflowfuse-nodes",[1849,1874,1894,1901,1923,1934],{"title":1850,"path":1851,"order":1616,"isPage":1196,"children":1852},"AI","\u002Fdocs\u002Fflowfuse-nodes\u002Fai",[1853,1857,1862,1866,1870],{"title":1854,"path":1855,"order":1657,"isPage":1196,"children":1856},"LLM Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fllm-nodes",[],{"title":1858,"path":1859,"order":1860,"isPage":1196,"children":1861},"Depth Estimation","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fdepth-estimation",50,[],{"title":1863,"path":1864,"order":1860,"isPage":1196,"children":1865},"Image Classification","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fimage-classification",[],{"title":1867,"path":1868,"order":1860,"isPage":1196,"children":1869},"Object Detection","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fobject-detection",[],{"title":1871,"path":1872,"order":1860,"isPage":1196,"children":1873},"ONNX","\u002Fdocs\u002Fflowfuse-nodes\u002Fai\u002Fonnx",[],{"title":1875,"path":1876,"order":1173,"isPage":1196,"children":1877},"MCP","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp",[1878,1882,1886,1890],{"title":1879,"path":1880,"order":1860,"isPage":1196,"children":1881},"MCP Prompt","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-prompt",[],{"title":1883,"path":1884,"order":1860,"isPage":1196,"children":1885},"MCP Resource","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-resource",[],{"title":1887,"path":1888,"order":1860,"isPage":1196,"children":1889},"MCP Responses","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-response",[],{"title":1891,"path":1892,"order":1860,"isPage":1196,"children":1893},"MCP Tool","\u002Fdocs\u002Fflowfuse-nodes\u002Fmcp\u002Fmcp-tool",[],{"title":1288,"path":1895,"order":1179,"isPage":1196,"children":1896},"\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables",[1897],{"title":1898,"path":1899,"order":1860,"isPage":1196,"children":1900},"Query","\u002Fdocs\u002Fflowfuse-nodes\u002Fflowfuse-tables\u002Fquery",[],{"title":1902,"path":1903,"order":1170,"isPage":1196,"children":1904},"Edge","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge",[1905,1909,1913,1917,1919],{"title":1906,"path":1907,"order":1616,"isPage":1196,"children":1908},"RTSP Video Feed","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Frtsp",[],{"title":1910,"path":1911,"order":1173,"isPage":1196,"children":1912},"CIP Suite, EtherNet\u002FIP Nodes","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fcip-suite",[],{"title":1914,"path":1915,"order":1179,"isPage":1196,"children":1916},"Modbus","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fmodbus",[],{"title":1195,"path":1197,"order":1170,"isPage":1196,"children":1918},[],{"title":1920,"path":1921,"order":1860,"isPage":1196,"children":1922},"OPC UA","\u002Fdocs\u002Fflowfuse-nodes\u002Fedge\u002Fopcua",[],{"title":1772,"path":1924,"order":1657,"isPage":1196,"children":1925},"\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt",[1926,1930],{"title":1927,"path":1928,"order":1860,"isPage":1196,"children":1929},"MQTT In","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-in",[],{"title":1931,"path":1932,"order":1860,"isPage":1196,"children":1933},"MQTT Out","\u002Fdocs\u002Fflowfuse-nodes\u002Fmqtt\u002Fmqtt-out",[],{"title":1935,"path":1936,"order":1657,"isPage":1196,"children":1937},"Hub","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub",[1938,1942],{"title":1939,"path":1940,"order":1616,"isPage":1196,"children":1941},"Redis","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub\u002Fredis",[],{"title":1943,"path":1944,"order":1173,"isPage":1196,"children":1945},"Kafka","\u002Fdocs\u002Fflowfuse-nodes\u002Fhub\u002Fkafka",[],{"name":1947,"order":1173,"children":1948},"Device Agent",[1949,2005],{"title":1947,"path":1950,"group":1947,"groupOrder":1173,"order":1616,"isPage":1231,"children":1951,"link":1231},"\u002Fdocs\u002Fdevice-agent",[1952,1956,1960,1983,1987,1991,1996],{"title":1953,"path":1954,"order":1616,"isPage":1196,"children":1955},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":1957,"path":1958,"order":1173,"isPage":1196,"children":1959},"Quick Start","\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":292,"path":1961,"group":1962,"order":1179,"isPage":1231,"children":1963,"link":1231},"\u002Fdocs\u002Fdevice-agent\u002Finstall","DeviceAgentInstallation",[1964,1967,1971,1975,1979],{"title":21,"path":1965,"group":1962,"order":1616,"isPage":1196,"children":1966},"\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview",[],{"title":1968,"path":1969,"group":1962,"order":1173,"isPage":1196,"children":1970},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":1972,"path":1973,"group":1962,"order":1179,"isPage":1196,"children":1974},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":1976,"path":1977,"group":1962,"order":1170,"isPage":1196,"children":1978},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":1980,"path":1981,"group":1962,"order":1657,"isPage":1196,"children":1982},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":1984,"path":1985,"order":1170,"isPage":1196,"children":1986},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":1988,"path":1989,"order":1657,"isPage":1196,"children":1990},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":1992,"path":1993,"order":1994,"isPage":1196,"children":1995},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":1997,"path":1998,"group":1999,"order":2000,"isPage":1231,"children":2001,"link":1231},"Remote Agent Plugin","\u002Fdocs\u002Fdevice-agent\u002Fplugin","RemoteAgentPlugin",8,[2002],{"title":21,"path":2003,"group":1999,"order":1616,"isPage":1196,"children":2004},"\u002Fdocs\u002Fdevice-agent\u002Fplugin\u002Foverview",[],{"title":2006,"path":2007,"group":1947,"groupOrder":1173,"order":1173,"isPage":1231,"children":2008,"link":1231},"Hardware Guides","\u002Fdocs\u002Fhardware",[2009,2012,2016,2020],{"title":21,"path":2010,"order":1616,"isPage":1196,"children":2011},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":2013,"path":2014,"order":1173,"isPage":1196,"children":2015},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":2017,"path":2018,"order":1179,"isPage":1196,"children":2019},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":2021,"path":2022,"order":1179,"isPage":1196,"children":2023},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"name":2025,"order":1179,"children":2026},"FlowFuse Cloud",[2027],{"title":2025,"path":2028,"group":2025,"groupOrder":1179,"order":1179,"isPage":1231,"children":2029,"link":1231},"\u002Fdocs\u002Fcloud",[2030,2033],{"title":1838,"path":2031,"order":1616,"isPage":1196,"children":2032},"\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":2034,"path":2035,"order":1193,"isPage":1196,"children":2036},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"name":2038,"order":1170,"children":2039},"FlowFuse Self-Hosted",[2040,2043,2122,2134],{"title":1957,"path":2041,"group":2038,"groupOrder":1170,"order":1616,"isPage":1196,"children":2042},"\u002Fdocs\u002Fquick-start",[],{"title":2044,"path":2045,"group":2038,"groupOrder":1170,"order":1173,"isPage":1231,"children":2046,"link":1231},"Installing FlowFuse","\u002Fdocs\u002Finstall",[2047,2050,2054,2058,2078,2082,2086,2090,2118],{"title":21,"path":2048,"order":1616,"isPage":1196,"children":2049},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":2051,"path":2052,"order":1193,"isPage":1196,"children":2053},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":2055,"path":2056,"order":1193,"isPage":1196,"children":2057},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":2059,"path":2060,"order":1193,"isPage":1196,"children":2061},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[2062,2066,2070,2074],{"title":2063,"path":2064,"order":1193,"isPage":1196,"children":2065},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":2067,"path":2068,"order":1193,"isPage":1196,"children":2069},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":2071,"path":2072,"order":1193,"isPage":1196,"children":2073},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":2075,"path":2076,"order":1193,"isPage":1196,"children":2077},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":2079,"path":2080,"order":1193,"isPage":1196,"children":2081},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":2083,"path":2084,"order":1193,"isPage":1196,"children":2085},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":2087,"path":2088,"order":1193,"isPage":1196,"children":2089},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":2091,"path":2092,"order":1193,"isPage":1196,"children":2093},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[2094,2098,2102,2106,2110,2114],{"title":2095,"path":2096,"order":1193,"isPage":1196,"children":2097},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":2099,"path":2100,"order":1193,"isPage":1196,"children":2101},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":2103,"path":2104,"order":1193,"isPage":1196,"children":2105},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":2107,"path":2108,"order":1193,"isPage":1196,"children":2109},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":2111,"path":2112,"order":1193,"isPage":1196,"children":2113},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":2115,"path":2116,"order":1193,"isPage":1196,"children":2117},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":2119,"path":2120,"order":1193,"isPage":1196,"children":2121},"Networking requirements","\u002Fdocs\u002Finstall\u002Fnetworking-requirements",[],{"title":2123,"path":2124,"group":2038,"groupOrder":1170,"order":1179,"isPage":1196,"children":2125},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[2126,2130],{"title":2127,"path":2128,"order":1193,"isPage":1196,"children":2129},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":2131,"path":2132,"order":1193,"isPage":1196,"children":2133},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"title":2135,"path":2136,"group":2038,"groupOrder":1170,"order":1170,"isPage":1231,"children":2137,"link":1231},"Administering FlowFuse","\u002Fdocs\u002Fadmin",[2138,2141,2153,2161,2165,2169,2173,2177],{"title":2135,"path":2139,"order":1616,"isPage":1196,"children":2140},"\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":2142,"path":2143,"order":1193,"isPage":1196,"children":2144},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[2145,2149],{"title":2146,"path":2147,"order":1193,"isPage":1196,"children":2148},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":2150,"path":2151,"order":1193,"isPage":1196,"children":2152},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":2154,"path":2155,"order":1193,"isPage":1231,"children":2156,"link":1231},"Hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[2157],{"title":2158,"path":2159,"order":1193,"isPage":1196,"children":2160},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":2162,"path":2163,"order":1193,"isPage":1196,"children":2164},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":2166,"path":2167,"order":1193,"isPage":1196,"children":2168},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":2170,"path":2171,"order":1193,"isPage":1196,"children":2172},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":2174,"path":2175,"order":1193,"isPage":1196,"children":2176},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":2178,"path":2179,"order":1193,"isPage":1196,"children":2180},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"name":1590,"order":1657,"children":2182},[2183],{"title":2184,"path":2185,"group":1590,"groupOrder":1657,"order":1193,"isPage":1196,"children":2186},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":2188,"order":1994,"children":2189},"Contributing",[2190],{"title":2191,"path":2192,"group":2188,"groupOrder":1994,"order":1193,"isPage":1231,"children":2193,"link":1231},"Contributing to FlowFuse","\u002Fdocs\u002Fcontribute",[2194,2197,2201,2205,2209,2213,2217,2225,2261,2264],{"title":1838,"path":2195,"order":1616,"isPage":1196,"children":2196},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":2198,"path":2199,"order":1193,"isPage":1196,"children":2200},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":2202,"path":2203,"order":1193,"isPage":1196,"children":2204},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":2206,"path":2207,"order":1193,"isPage":1196,"children":2208},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":2210,"path":2211,"order":1193,"isPage":1196,"children":2212},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":2214,"path":2215,"order":1193,"isPage":1196,"children":2216},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":2218,"path":2219,"order":1193,"isPage":1196,"children":2220},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[2221],{"title":2222,"path":2223,"order":1193,"isPage":1196,"children":2224},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":2226,"path":2227,"order":1193,"isPage":1196,"children":2228},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[2229,2233,2237,2241,2245,2249,2253,2257],{"title":2230,"path":2231,"order":1193,"isPage":1196,"children":2232},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":2234,"path":2235,"order":1193,"isPage":1196,"children":2236},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":2238,"path":2239,"order":1193,"isPage":1196,"children":2240},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":2242,"path":2243,"order":1193,"isPage":1196,"children":2244},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":2246,"path":2247,"order":1193,"isPage":1196,"children":2248},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":2250,"path":2251,"order":1193,"isPage":1196,"children":2252},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":2254,"path":2255,"order":1193,"isPage":1196,"children":2256},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":2258,"path":2259,"order":1193,"isPage":1196,"children":2260},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":1818,"path":2262,"order":1193,"isPage":1196,"children":2263},"\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":2265,"path":2266,"order":1193,"isPage":1196,"children":2267},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"name":2269,"order":2270,"children":2271},"Node-RED",7,[2272],{"title":2273,"path":2274,"group":2269,"groupOrder":2270,"order":1616,"isPage":1196,"children":2275},"Using Node-RED","\u002Fdocs\u002Fnode-red",[2276,2348,2527,2554,2593,2609,2625,2653,2673,2677],{"title":2277,"path":2278,"order":1173,"isPage":1196,"children":2279},"Getting started","\u002Fdocs\u002Fnode-red\u002Fgetting-started",[2280,2300,2304,2308,2312,2316,2320,2324,2328],{"title":2281,"path":2282,"order":1616,"isPage":1196,"children":2283},"Editor","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor",[2284,2288,2292,2296],{"title":2285,"path":2286,"order":1860,"isPage":1196,"children":2287},"Header","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fheader",[],{"title":2289,"path":2290,"order":1860,"isPage":1196,"children":2291},"Palette","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fpalette",[],{"title":2293,"path":2294,"order":1860,"isPage":1196,"children":2295},"Sidebar","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fsidebar",[],{"title":2297,"path":2298,"order":1860,"isPage":1196,"children":2299},"Workspace","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Feditor\u002Fworkspace",[],{"title":2301,"path":2302,"order":1173,"isPage":1196,"children":2303},"Port Configuration","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-port",[],{"title":2305,"path":2306,"order":1179,"isPage":1196,"children":2307},"Node-RED Library","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Flibrary",[],{"title":2309,"path":2310,"order":1179,"isPage":1196,"children":2311},"Update Node-RED","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fupdate-node-red",[],{"title":2313,"path":2314,"order":1170,"isPage":1196,"children":2315},"Node-RED On Android","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-android",[],{"title":2317,"path":2318,"order":1657,"isPage":1196,"children":2319},"Working with Messages","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fnode-red-messages",[],{"title":2321,"path":2322,"order":1994,"isPage":1196,"children":2323},"String","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fstring",[],{"title":2325,"path":2326,"order":2270,"isPage":1196,"children":2327},"Date & Time","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fdate-and-time",[],{"title":2329,"path":2330,"order":2000,"isPage":1196,"children":2331},"Programming","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming",[2332,2336,2340,2344],{"title":2333,"path":2334,"order":1860,"isPage":1196,"children":2335},"Data Tranformation","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdata-tranformation",[],{"title":2337,"path":2338,"order":1860,"isPage":1196,"children":2339},"Debugging","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fdebugging-flows",[],{"title":2341,"path":2342,"order":1860,"isPage":1196,"children":2343},"If-Else","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Fif-else",[],{"title":2345,"path":2346,"order":1860,"isPage":1196,"children":2347},"Loop","\u002Fdocs\u002Fnode-red\u002Fgetting-started\u002Fprogramming\u002Floop",[],{"title":2349,"path":2350,"order":1179,"isPage":1196,"children":2351},"Core nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes",[2352,2388,2429,2471,2491,2515],{"title":2353,"path":2354,"order":1616,"isPage":1196,"children":2355},"Common nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon",[2356,2360,2364,2368,2372,2376,2380,2384],{"title":2357,"path":2358,"order":1616,"isPage":1196,"children":2359},"Inject","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Finject",[],{"title":2361,"path":2362,"order":1173,"isPage":1196,"children":2363},"Debug","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fdebug",[],{"title":2365,"path":2366,"order":1179,"isPage":1196,"children":2367},"Complete","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomplete",[],{"title":2369,"path":2370,"order":1170,"isPage":1196,"children":2371},"Catch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcatch",[],{"title":2373,"path":2374,"order":1657,"isPage":1196,"children":2375},"Status","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fstatus",[],{"title":2377,"path":2378,"order":1994,"isPage":1196,"children":2379},"Link","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Flink",[],{"title":2381,"path":2382,"order":2270,"isPage":1196,"children":2383},"Comment","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Fcomment",[],{"title":2385,"path":2386,"order":2000,"isPage":1196,"children":2387},"Unknown","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fcommon\u002Funknown",[],{"title":2389,"path":2390,"order":1173,"isPage":1196,"children":2391},"Function nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction",[2392,2396,2400,2404,2408,2412,2416,2420,2424],{"title":2393,"path":2394,"order":1616,"isPage":1196,"children":2395},"Function","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffunction",[],{"title":2397,"path":2398,"order":1173,"isPage":1196,"children":2399},"Switch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fswitch",[],{"title":2401,"path":2402,"order":1179,"isPage":1196,"children":2403},"Change","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fchange",[],{"title":2405,"path":2406,"order":1170,"isPage":1196,"children":2407},"Range","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Frange",[],{"title":2409,"path":2410,"order":1657,"isPage":1196,"children":2411},"Template","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftemplate",[],{"title":2413,"path":2414,"order":1994,"isPage":1196,"children":2415},"Delay","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fdelay",[],{"title":2417,"path":2418,"order":2270,"isPage":1196,"children":2419},"Trigger","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ftrigger",[],{"title":2421,"path":2422,"order":2000,"isPage":1196,"children":2423},"Exec","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Fexec",[],{"title":2425,"path":2426,"order":2427,"isPage":1196,"children":2428},"Filter","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Ffunction\u002Ffilter",9,[],{"title":2430,"path":2431,"order":1179,"isPage":1196,"children":2432},"Network nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork",[2433,2437,2441,2444,2447,2451,2455,2459,2463,2467],{"title":2434,"path":2435,"order":1616,"isPage":1196,"children":2436},"TLS","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftls",[],{"title":2438,"path":2439,"order":1173,"isPage":1196,"children":2440},"HTTP Proxy","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-proxy",[],{"title":1927,"path":2442,"order":1179,"isPage":1196,"children":2443},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-in",[],{"title":1931,"path":2445,"order":1170,"isPage":1196,"children":2446},"\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fmqtt-out",[],{"title":2448,"path":2449,"order":1657,"isPage":1196,"children":2450},"HTTP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-in",[],{"title":2452,"path":2453,"order":1994,"isPage":1196,"children":2454},"HTTP request","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fhttp-request",[],{"title":2456,"path":2457,"order":2270,"isPage":1196,"children":2458},"WebSocket","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fwebsocket",[],{"title":2460,"path":2461,"order":2000,"isPage":1196,"children":2462},"TCP in","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Ftcp-in",[],{"title":2464,"path":2465,"order":2427,"isPage":1196,"children":2466},"UDP In","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-in",[],{"title":2468,"path":2469,"order":1723,"isPage":1196,"children":2470},"UDP Out","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fnetwork\u002Fudp-out",[],{"title":2472,"path":2473,"order":1170,"isPage":1196,"children":2474},"Sequence nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence",[2475,2479,2483,2487],{"title":2476,"path":2477,"order":1616,"isPage":1196,"children":2478},"Split","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsplit",[],{"title":2480,"path":2481,"order":1173,"isPage":1196,"children":2482},"Sort","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fsort",[],{"title":2484,"path":2485,"order":1179,"isPage":1196,"children":2486},"Batch","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fbatch",[],{"title":2488,"path":2489,"order":1170,"isPage":1196,"children":2490},"Join","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fsequence\u002Fjoin",[],{"title":2492,"path":2493,"order":1657,"isPage":1196,"children":2494},"Parser nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers",[2495,2499,2503,2507,2511],{"title":2496,"path":2497,"order":1616,"isPage":1196,"children":2498},"CSV","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fcsv",[],{"title":2500,"path":2501,"order":1173,"isPage":1196,"children":2502},"HTML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fhtml",[],{"title":2504,"path":2505,"order":1179,"isPage":1196,"children":2506},"JSON","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fjson",[],{"title":2508,"path":2509,"order":1170,"isPage":1196,"children":2510},"XML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fxml",[],{"title":2512,"path":2513,"order":1657,"isPage":1196,"children":2514},"YAML","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fparsers\u002Fyaml",[],{"title":2516,"path":2517,"order":1994,"isPage":1196,"children":2518},"Storage nodes","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage",[2519,2523],{"title":2520,"path":2521,"order":1616,"isPage":1196,"children":2522},"Write File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fwrite-file",[],{"title":2524,"path":2525,"order":1173,"isPage":1196,"children":2526},"Read File","\u002Fdocs\u002Fnode-red\u002Fcore-nodes\u002Fstorage\u002Fread-file",[],{"title":2528,"path":2529,"order":1170,"isPage":1196,"children":2530},"Communication protocols","\u002Fdocs\u002Fnode-red\u002Fprotocol",[2531,2535,2539,2542,2546,2550],{"title":2532,"path":2533,"order":1860,"isPage":1196,"children":2534},"AMQP","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Famqp",[],{"title":2536,"path":2537,"order":1860,"isPage":1196,"children":2538},"LwM2M","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Flwm2m",[],{"title":1914,"path":2540,"order":1860,"isPage":1196,"children":2541},"\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmodbus",[],{"title":2543,"path":2544,"order":1860,"isPage":1196,"children":2545},"MQTT","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fmqtt",[],{"title":2547,"path":2548,"order":1860,"isPage":1196,"children":2549},"OPC-UA","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fopc-ua",[],{"title":2551,"path":2552,"order":1860,"isPage":1196,"children":2553},"Websocket","\u002Fdocs\u002Fnode-red\u002Fprotocol\u002Fwebsocket",[],{"title":2555,"path":2556,"order":1657,"isPage":1196,"children":2557},"Databases","\u002Fdocs\u002Fnode-red\u002Fdatabase",[2558,2562,2566,2570,2574,2578,2582,2585,2589],{"title":2559,"path":2560,"order":1860,"isPage":1196,"children":2561},"DynamoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fdynamodb",[],{"title":2563,"path":2564,"order":1860,"isPage":1196,"children":2565},"Firebase","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ffirebase",[],{"title":2567,"path":2568,"order":1860,"isPage":1196,"children":2569},"InfluxDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Finfluxdb",[],{"title":2571,"path":2572,"order":1860,"isPage":1196,"children":2573},"MongoDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmongodb",[],{"title":2575,"path":2576,"order":1860,"isPage":1196,"children":2577},"MySQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fmysql",[],{"title":2579,"path":2580,"order":1860,"isPage":1196,"children":2581},"PostgreSQL","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fpostgresql",[],{"title":1939,"path":2583,"order":1860,"isPage":1196,"children":2584},"\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fredis",[],{"title":2586,"path":2587,"order":1860,"isPage":1196,"children":2588},"SQLite","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Fsqlite",[],{"title":2590,"path":2591,"order":1860,"isPage":1196,"children":2592},"TimescaleDB","\u002Fdocs\u002Fnode-red\u002Fdatabase\u002Ftimescaledb",[],{"title":2594,"path":2595,"order":1994,"isPage":1196,"children":2596},"Integration technologies","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies",[2597,2601,2605],{"title":2598,"path":2599,"order":1860,"isPage":1196,"children":2600},"GraphQL API","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fgraphql",[],{"title":2602,"path":2603,"order":1860,"isPage":1196,"children":2604},"REST API","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Frest",[],{"title":2606,"path":2607,"order":1860,"isPage":1196,"children":2608},"Webhook","\u002Fdocs\u002Fnode-red\u002Fintegration-technologies\u002Fwebhook",[],{"title":2610,"path":2611,"order":2270,"isPage":1196,"children":2612},"Notification services","\u002Fdocs\u002Fnode-red\u002Fnotification",[2613,2617,2621],{"title":2614,"path":2615,"order":1860,"isPage":1196,"children":2616},"Discord","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Fdiscord",[],{"title":2618,"path":2619,"order":1860,"isPage":1196,"children":2620},"Email","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Femail",[],{"title":2622,"path":2623,"order":1860,"isPage":1196,"children":2624},"Telegram","\u002Fdocs\u002Fnode-red\u002Fnotification\u002Ftelegram",[],{"title":2626,"path":2627,"order":2000,"isPage":1196,"children":2628},"Hardware","\u002Fdocs\u002Fnode-red\u002Fhardware",[2629,2633,2637,2641,2645,2649],{"title":2630,"path":2631,"order":1860,"isPage":1196,"children":2632},"BLIIOT ARMxy BL340","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Farmxy-bl340",[],{"title":2634,"path":2635,"order":1860,"isPage":1196,"children":2636},"Opto-22 Groov Epic","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fopto-22-groove-rio-7-mm2001-10",[],{"title":2638,"path":2639,"order":1860,"isPage":1196,"children":2640},"Raspberry Pi 4","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-4",[],{"title":2642,"path":2643,"order":1860,"isPage":1196,"children":2644},"Raspberry Pi 5","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-5",[],{"title":2646,"path":2647,"order":1860,"isPage":1196,"children":2648},"Robustel EG5120","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Frobustel-eg5120",[],{"title":2650,"path":2651,"order":1860,"isPage":1196,"children":2652},"Siemens IoT2050","\u002Fdocs\u002Fnode-red\u002Fhardware\u002Fsiemens-iot-2050",[],{"title":2654,"path":2655,"order":2427,"isPage":1196,"children":2656},"Peripheral devices","\u002Fdocs\u002Fnode-red\u002Fperipheral",[2657,2661,2665,2669],{"title":2658,"path":2659,"order":1860,"isPage":1196,"children":2660},"Arduino","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fardiuno",[],{"title":2662,"path":2663,"order":1860,"isPage":1196,"children":2664},"Barcode Scanner","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fbarcodescanner",[],{"title":2666,"path":2667,"order":1860,"isPage":1196,"children":2668},"ESP32","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fesp32",[],{"title":2670,"path":2671,"order":1860,"isPage":1196,"children":2672},"Webcam","\u002Fdocs\u002Fnode-red\u002Fperipheral\u002Fwebcam",[],{"title":2674,"path":2675,"order":1723,"isPage":1196,"children":2676},"Terminology","\u002Fdocs\u002Fnode-red\u002Fterminology",[],{"title":2678,"path":2679,"order":2680,"isPage":1196,"children":2681},"Keyboard shortcuts","\u002Fdocs\u002Fnode-red\u002Fkeyboard",11,[],1791458237806]