[{"data":1,"prerenderedAt":752},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fuser\u002Fdevice-groups\u002F":3,"docs-nav":300},{"id":4,"title":5,"body":6,"description":288,"extension":289,"layout":290,"meta":291,"navGroup":290,"navGroupOrder":290,"navOrder":290,"navTitle":5,"navigation":292,"originalPath":293,"path":294,"redirect":290,"seo":295,"stem":296,"updated":297,"version":298,"__hash__":299},"docs\u002Fdocs\u002Fuser\u002Fdevice-groups.md","Groups",{"type":7,"value":8,"toc":273},"minimark",[9,13,21,26,34,48,53,58,68,73,87,91,102,106,112,141,145,149,155,206,212,216,221,224,229,232,237,240,244,247],[10,11,5],"h1",{"id":12},"groups",[14,15,16,20],"p",{},[17,18,19],"strong",{},"Navigation",": Team > Application > Groups",[22,23,25],"h2",{"id":24},"overview","Overview",[14,27,28],{},[29,30],"img",{"alt":31,"dataZoomable":32,"src":33},"Groups UI","","\u002Fdocs\u002Fuser\u002Fimages\u002Fgroups.png",[14,35,36,37,42,43,47],{},"Groups help you organize and manage multiple devices that run the same ",[38,39,41],"a",{"href":40},"\u002Fdocs\u002Fuser\u002Fsnapshots","snapshot"," configuration. By grouping devices logically, you can deploy updates to dozens or even hundreds of devices simultaneously through ",[38,44,46],{"href":45},"\u002Fdocs\u002Fuser\u002Fdevops-pipelines","DevOps Pipelines",".",[49,50,52],"h3",{"id":51},"key-features","Key Features",[14,54,55],{},[17,56,57],{},"Automatic Updates",[59,60,61,65],"ul",{},[62,63,64],"li",{},"Devices added to an active group automatically receive the current pipeline snapshot",[62,66,67],{},"Devices removed from an active group have their snapshot cleared",[14,69,70],{},[17,71,72],{},"Group-Level Environment Variables",[59,74,75,78,81,84],{},[62,76,77],{},"Set environment variables at the group level that apply to all member devices",[62,79,80],{},"Device-specific variables take precedence over group variables",[62,82,83],{},"Variables are merged at runtime without modifying device settings",[62,85,86],{},"Updates to group variables trigger automatic device restarts",[49,88,90],{"id":89},"requirements","Requirements",[59,92,93,96,99],{},[62,94,95],{},"FlowFuse 1.15+ (Enterprise Tier)",[62,97,98],{},"FlowFuse Cloud (Enterprise Tier)",[62,100,101],{},"FlowFuse 2.10+ for Group Environment Variables",[22,103,105],{"id":104},"creating-a-group","Creating a Group",[14,107,108],{},[29,109],{"alt":110,"dataZoomable":32,"src":111},"Create Group","\u002Fdocs\u002Fuser\u002Fimages\u002Fcreate-device-group.png",[113,114,115,118,124,130,133,136],"ol",{},[62,116,117],{},"Navigate to your Application",[62,119,120,121,123],{},"Select the ",[17,122,5],{}," tab",[62,125,126,127],{},"Click ",[17,128,129],{},"Add Group",[62,131,132],{},"Enter a descriptive name for your group",[62,134,135],{},"(Optional) Add a description to help distinguish between groups",[62,137,126,138],{},[17,139,140],{},"Create",[22,142,144],{"id":143},"managing-group-membership","Managing Group Membership",[49,146,148],{"id":147},"adding-and-removing-devices","Adding and Removing Devices",[14,150,151],{},[29,152],{"alt":153,"dataZoomable":32,"src":154},"Edit Group Members","\u002Fdocs\u002Fuser\u002Fimages\u002Fui-device-group-member-edit.png",[113,156,157,160,165,182,188,194,199],{},[62,158,159],{},"Click the group you want to modify from the table",[62,161,126,162],{},[17,163,164],{},"Edit",[62,166,167,168],{},"Review the two lists:\n",[59,169,170,176],{},[62,171,172,175],{},[17,173,174],{},"Available Devices"," (left): Devices assigned to your application that can be added",[62,177,178,181],{},[17,179,180],{},"Group"," (right): Devices currently in the group",[62,183,184,185],{},"To add devices: Check the boxes next to devices in the Available list, then click ",[17,186,187],{},"Add Devices",[62,189,190,191],{},"To remove devices: Check the boxes next to devices in the Group list, then click ",[17,192,193],{},"Remove Devices",[62,195,126,196],{},[17,197,198],{},"Save",[62,200,201,202,205],{},"Review the confirmation prompt and click ",[17,203,204],{},"Confirm"," to apply changes",[14,207,208,211],{},[17,209,210],{},"Note",": If a device doesn't appear in the Available list, it's likely already assigned to another group.",[49,213,215],{"id":214},"how-snapshots-are-affected","How Snapshots Are Affected",[14,217,218],{},[17,219,220],{},"When Adding a Device",[14,222,223],{},"If the group has an active pipeline snapshot, newly added devices will automatically be updated to that snapshot.",[14,225,226],{},[17,227,228],{},"When Removing a Device",[14,230,231],{},"If the group has an active pipeline snapshot and the device is currently running it, removing the device will clear its snapshot, effectively resetting it to a blank state.",[14,233,234],{},[17,235,236],{},"Clearing Group Snapshots",[14,238,239],{},"You can remove the target snapshot from a group in the group settings. This will also clear the snapshot from all devices in the group.",[22,241,243],{"id":242},"environment-variables","Environment Variables",[14,245,246],{},"Group-level environment variables follow these rules:",[59,248,249,255,261,267],{},[62,250,251,254],{},[17,252,253],{},"Precedence",": Device variables override group variables",[62,256,257,260],{},[17,258,259],{},"Scope",": Variables are merged at runtime only; device settings remain unchanged",[62,262,263,266],{},[17,264,265],{},"Removal",": Removing a device from a group removes the group's variables from that device",[62,268,269,272],{},[17,270,271],{},"Updates",": Changing group variables triggers a restart of all devices in the group",{"title":32,"searchDepth":274,"depth":274,"links":275},4,[276,282,283,287],{"id":24,"depth":277,"text":25,"children":278},2,[279,281],{"id":51,"depth":280,"text":52},3,{"id":89,"depth":280,"text":90},{"id":104,"depth":277,"text":105},{"id":143,"depth":277,"text":144,"children":284},[285,286],{"id":147,"depth":280,"text":148},{"id":214,"depth":280,"text":215},{"id":242,"depth":277,"text":243},"Navigation: Team > Application > Groups","md",null,{},true,"user\u002Fdevice-groups.md","\u002Fdocs\u002Fuser\u002Fdevice-groups",{"title":5,"description":288},"docs\u002Fuser\u002Fdevice-groups","2025-11-28 19:24:23 +0530","2.33.2","P8mDAJXLXDqCDdEKkGIm2wRed98HcBeQKBy2rdhXruI",[301,309,328,340],{"name":302,"order":303,"children":304},"FlowFuse User Manuals",1,[305],{"title":306,"path":307,"group":302,"groupOrder":303,"order":277,"children":308},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":310,"order":274,"children":311},"FlowFuse Self-Hosted",[312,316],{"title":313,"path":314,"group":310,"groupOrder":274,"order":303,"children":315},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":317,"path":318,"group":310,"groupOrder":274,"order":280,"children":319},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[320,324],{"title":321,"path":322,"order":290,"children":323},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":325,"path":326,"order":290,"children":327},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":329,"order":330,"children":331},"Support",5,[332,336],{"title":333,"path":334,"group":329,"groupOrder":330,"order":280,"children":335},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":337,"path":338,"group":329,"groupOrder":330,"order":290,"children":339},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":341,"order":290,"children":342},"Other",[343,391,403,482,530,549,623,634],{"title":344,"path":345,"order":290,"children":346},"admin","\u002Fdocs\u002Fadmin",[347,351,363,371,375,379,383,387],{"title":348,"path":349,"order":303,"children":350},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":352,"path":353,"order":290,"children":354},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[355,359],{"title":356,"path":357,"order":290,"children":358},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":360,"path":361,"order":290,"children":362},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":364,"path":365,"order":290,"children":366},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[367],{"title":368,"path":369,"order":290,"children":370},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":372,"path":373,"order":290,"children":374},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":376,"path":377,"order":290,"children":378},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":380,"path":381,"order":290,"children":382},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":384,"path":385,"order":290,"children":386},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":388,"path":389,"order":290,"children":390},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":392,"path":393,"order":290,"children":394},"cloud","\u002Fdocs\u002Fcloud",[395,399],{"title":396,"path":397,"order":303,"children":398},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":400,"path":401,"order":290,"children":402},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":404,"path":405,"order":290,"children":406},"contribute","\u002Fdocs\u002Fcontribute",[407,410,414,418,422,426,430,438,474,478],{"title":396,"path":408,"order":303,"children":409},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":411,"path":412,"order":290,"children":413},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":415,"path":416,"order":290,"children":417},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":419,"path":420,"order":290,"children":421},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":423,"path":424,"order":290,"children":425},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":427,"path":428,"order":290,"children":429},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":431,"path":432,"order":290,"children":433},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[434],{"title":435,"path":436,"order":290,"children":437},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":439,"path":440,"order":290,"children":441},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[442,446,450,454,458,462,466,470],{"title":443,"path":444,"order":290,"children":445},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":447,"path":448,"order":290,"children":449},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":451,"path":452,"order":290,"children":453},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":455,"path":456,"order":290,"children":457},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":459,"path":460,"order":290,"children":461},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":463,"path":464,"order":290,"children":465},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":467,"path":468,"order":290,"children":469},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":471,"path":472,"order":290,"children":473},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":475,"path":476,"order":290,"children":477},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":479,"path":480,"order":290,"children":481},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":483,"path":484,"order":290,"children":485},"device-agent","\u002Fdocs\u002Fdevice-agent",[486,490,493,497,501,506],{"title":487,"path":488,"order":303,"children":489},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":313,"path":491,"order":277,"children":492},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":494,"path":495,"order":274,"children":496},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":498,"path":499,"order":330,"children":500},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":502,"path":503,"order":504,"children":505},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":507,"path":508,"order":290,"children":509},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[510,514,518,522,526],{"title":25,"path":511,"group":512,"order":303,"children":513},"\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":515,"path":516,"group":512,"order":277,"children":517},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":519,"path":520,"group":512,"order":280,"children":521},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":523,"path":524,"group":512,"order":274,"children":525},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":527,"path":528,"group":512,"order":330,"children":529},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":531,"path":532,"order":290,"children":533},"hardware","\u002Fdocs\u002Fhardware",[534,537,541,545],{"title":25,"path":535,"order":303,"children":536},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":538,"path":539,"order":277,"children":540},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":542,"path":543,"order":280,"children":544},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":546,"path":547,"order":280,"children":548},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":507,"path":550,"order":290,"children":551},"\u002Fdocs\u002Finstall",[552,555,559,563,583,587,591,595],{"title":25,"path":553,"order":303,"children":554},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":556,"path":557,"order":290,"children":558},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":560,"path":561,"order":290,"children":562},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":564,"path":565,"order":290,"children":566},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[567,571,575,579],{"title":568,"path":569,"order":290,"children":570},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":572,"path":573,"order":290,"children":574},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":576,"path":577,"order":290,"children":578},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":580,"path":581,"order":290,"children":582},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":584,"path":585,"order":290,"children":586},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":588,"path":589,"order":290,"children":590},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":592,"path":593,"order":290,"children":594},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":596,"path":597,"order":290,"children":598},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[599,603,607,611,615,619],{"title":600,"path":601,"order":290,"children":602},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":604,"path":605,"order":290,"children":606},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":608,"path":609,"order":290,"children":610},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":612,"path":613,"order":290,"children":614},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":616,"path":617,"order":290,"children":618},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":620,"path":621,"order":290,"children":622},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":624,"path":625,"order":290,"children":626},"migration","\u002Fdocs\u002Fmigration",[627,630],{"title":396,"path":628,"order":303,"children":629},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":631,"path":632,"order":290,"children":633},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":635,"path":636,"order":290,"children":637},"user","\u002Fdocs\u002Fuser",[638,642,646,650,654,659,663,667,671,675,677,680,692,696,700,704,708,712,714,718,722,726,730,734,738,741,744,748],{"title":639,"path":640,"order":303,"children":641},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":643,"path":644,"order":303,"children":645},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":647,"path":648,"order":277,"children":649},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":651,"path":652,"order":277,"children":653},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":655,"path":656,"order":657,"children":658},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":660,"path":661,"order":290,"children":662},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":664,"path":665,"order":290,"children":666},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":668,"path":669,"order":290,"children":670},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":672,"path":673,"order":290,"children":674},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":46,"path":45,"order":290,"children":676},[],{"title":243,"path":678,"order":290,"children":679},"\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":681,"path":682,"order":290,"children":683},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[684,688],{"title":685,"path":686,"order":290,"children":687},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":689,"path":690,"order":290,"children":691},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":693,"path":694,"order":290,"children":695},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":697,"path":698,"order":290,"children":699},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":701,"path":702,"order":290,"children":703},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":705,"path":706,"order":290,"children":707},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":709,"path":710,"order":290,"children":711},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":5,"path":294,"order":290,"children":713},[],{"title":715,"path":716,"order":290,"children":717},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":719,"path":720,"order":290,"children":721},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":723,"path":724,"order":290,"children":725},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":727,"path":728,"order":290,"children":729},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":731,"path":732,"order":290,"children":733},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":735,"path":736,"order":290,"children":737},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":739,"path":40,"order":290,"children":740},"Snapshots",[],{"title":475,"path":742,"order":290,"children":743},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":745,"path":746,"order":290,"children":747},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":749,"path":750,"order":290,"children":751},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546044069]