[{"data":1,"prerenderedAt":579},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent\u002F":3,"docs-nav":122},{"id":4,"title":5,"body":6,"description":19,"extension":109,"layout":110,"meta":111,"navGroup":110,"navGroupOrder":110,"navOrder":112,"navTitle":113,"navigation":114,"originalPath":115,"path":116,"redirect":110,"seo":117,"stem":118,"updated":119,"version":120,"__hash__":121},"docs\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent.md","ctrlX Device Agent App",{"type":7,"value":8,"toc":102},"minimark",[9,13,20,25,66,70],[10,11,5],"h1",{"id":12},"ctrlx-device-agent-app",[14,15,16],"p",{},[17,18,19],"strong",{},"Currently not available - will be available soon",[21,22,24],"h2",{"id":23},"installation-procedure","Installation Procedure",[26,27,28,40,47,54,60],"ol",{},[29,30,31,32,35,36,39],"li",{},"In the ctrlX CORE web interface, navigate to the window ",[17,33,34],{},"Settings"," ➔ ",[17,37,38],{},"Apps",".",[29,41,42,43,46],{},"Switch the ctrlX device to the ",[17,44,45],{},"Service"," mode.",[29,48,49,50,53],{},"In the app overview, navigate to the category ",[17,51,52],{},"Available apps",". This category displays all apps saved in the app storage on the ctrlX device and all apps provided via the ctrlX Store.",[29,55,56,57,39],{},"Search for the FlowFuse Device Agent ctrlX App to be installed and click on the Installation button. If multiple app versions are provided for installation, a list of available versions and app sources will be displayed. In this case, select the desired app version from the list to start the installation. If only one app version is provided, the installation will start directly. After the installation, the app will be shown in the app overview, under the category ",[17,58,59],{},"Installed apps",[29,61,62,63,46],{},"Switch the ctrlX device back to the ",[17,64,65],{},"Operating",[21,67,69],{"id":68},"device-agent-configuration-for-ctrlx","Device Agent Configuration for ctrlX",[26,71,72,80,89,92,99],{},[29,73,74,75],{},"After successful installation, ",[76,77,79],"a",{"href":78},"\u002Fdocs\u002Fdevice-agent\u002Fregister\u002F#manual-setup","generate and download the \"Device Credentials\" in FlowFuse",[29,81,31,82,35,84,35,86],{},[17,83,34],{},[17,85,38],{},[17,87,88],{},"Manage App Data",[29,90,91],{},"Select the folder \"FlowFuse Device Agent\"",[29,93,94,95,98],{},"Click on upload file and select the ",[17,96,97],{},"device.yml"," configuration from step 1",[29,100,101],{},"The Device Agent connects automatically to your FlowFuse instance. Ensure your ctrlX has a network connection to your FlowFuse platform (e.g. FlowFuse Cloud) and to the npmjs registry.",{"title":103,"searchDepth":104,"depth":104,"links":105},"",4,[106,108],{"id":23,"depth":107,"text":24},2,{"id":68,"depth":107,"text":69},"md",null,{},3,"ctrlX - Device Agent",true,"hardware\u002Fctrlx-device-agent.md","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",{"title":5,"description":19},"docs\u002Fhardware\u002Fctrlx-device-agent","2025-02-19 13:59:47 +0000","2.33.2","hpaoSbJqVxrK9Rf9PYXRYYtoJ0EMJJS-8rQH099D_6M",[123,131,150,162],{"name":124,"order":125,"children":126},"FlowFuse User Manuals",1,[127],{"title":128,"path":129,"group":124,"groupOrder":125,"order":107,"children":130},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":132,"order":104,"children":133},"FlowFuse Self-Hosted",[134,138],{"title":135,"path":136,"group":132,"groupOrder":104,"order":125,"children":137},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":139,"path":140,"group":132,"groupOrder":104,"order":112,"children":141},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[142,146],{"title":143,"path":144,"order":110,"children":145},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":147,"path":148,"order":110,"children":149},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":151,"order":152,"children":153},"Support",5,[154,158],{"title":155,"path":156,"group":151,"groupOrder":152,"order":112,"children":157},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":159,"path":160,"group":151,"groupOrder":152,"order":110,"children":161},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":163,"order":110,"children":164},"Other",[165,213,225,304,353,370,444,455],{"title":166,"path":167,"order":110,"children":168},"admin","\u002Fdocs\u002Fadmin",[169,173,185,193,197,201,205,209],{"title":170,"path":171,"order":125,"children":172},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":174,"path":175,"order":110,"children":176},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[177,181],{"title":178,"path":179,"order":110,"children":180},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":182,"path":183,"order":110,"children":184},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":186,"path":187,"order":110,"children":188},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[189],{"title":190,"path":191,"order":110,"children":192},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":194,"path":195,"order":110,"children":196},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":198,"path":199,"order":110,"children":200},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":202,"path":203,"order":110,"children":204},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":206,"path":207,"order":110,"children":208},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":210,"path":211,"order":110,"children":212},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":214,"path":215,"order":110,"children":216},"cloud","\u002Fdocs\u002Fcloud",[217,221],{"title":218,"path":219,"order":125,"children":220},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":222,"path":223,"order":110,"children":224},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":226,"path":227,"order":110,"children":228},"contribute","\u002Fdocs\u002Fcontribute",[229,232,236,240,244,248,252,260,296,300],{"title":218,"path":230,"order":125,"children":231},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":233,"path":234,"order":110,"children":235},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":237,"path":238,"order":110,"children":239},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":241,"path":242,"order":110,"children":243},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":245,"path":246,"order":110,"children":247},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":249,"path":250,"order":110,"children":251},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":253,"path":254,"order":110,"children":255},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[256],{"title":257,"path":258,"order":110,"children":259},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":261,"path":262,"order":110,"children":263},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[264,268,272,276,280,284,288,292],{"title":265,"path":266,"order":110,"children":267},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":269,"path":270,"order":110,"children":271},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":273,"path":274,"order":110,"children":275},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":277,"path":278,"order":110,"children":279},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":281,"path":282,"order":110,"children":283},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":285,"path":286,"order":110,"children":287},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":289,"path":290,"order":110,"children":291},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":293,"path":294,"order":110,"children":295},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":297,"path":298,"order":110,"children":299},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":301,"path":302,"order":110,"children":303},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":305,"path":306,"order":110,"children":307},"device-agent","\u002Fdocs\u002Fdevice-agent",[308,312,315,319,323,328],{"title":309,"path":310,"order":125,"children":311},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":135,"path":313,"order":107,"children":314},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":316,"path":317,"order":104,"children":318},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":320,"path":321,"order":152,"children":322},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":324,"path":325,"order":326,"children":327},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":329,"path":330,"order":110,"children":331},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[332,337,341,345,349],{"title":333,"path":334,"group":335,"order":125,"children":336},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":338,"path":339,"group":335,"order":107,"children":340},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":342,"path":343,"group":335,"order":112,"children":344},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":346,"path":347,"group":335,"order":104,"children":348},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":350,"path":351,"group":335,"order":152,"children":352},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":354,"path":355,"order":110,"children":356},"hardware","\u002Fdocs\u002Fhardware",[357,360,364,366],{"title":333,"path":358,"order":125,"children":359},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":361,"path":362,"order":107,"children":363},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":113,"path":116,"order":112,"children":365},[],{"title":367,"path":368,"order":112,"children":369},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":329,"path":371,"order":110,"children":372},"\u002Fdocs\u002Finstall",[373,376,380,384,404,408,412,416],{"title":333,"path":374,"order":125,"children":375},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":377,"path":378,"order":110,"children":379},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":381,"path":382,"order":110,"children":383},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":385,"path":386,"order":110,"children":387},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[388,392,396,400],{"title":389,"path":390,"order":110,"children":391},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":393,"path":394,"order":110,"children":395},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":397,"path":398,"order":110,"children":399},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":401,"path":402,"order":110,"children":403},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":405,"path":406,"order":110,"children":407},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":409,"path":410,"order":110,"children":411},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":413,"path":414,"order":110,"children":415},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":417,"path":418,"order":110,"children":419},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[420,424,428,432,436,440],{"title":421,"path":422,"order":110,"children":423},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":425,"path":426,"order":110,"children":427},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":429,"path":430,"order":110,"children":431},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":433,"path":434,"order":110,"children":435},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":437,"path":438,"order":110,"children":439},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":441,"path":442,"order":110,"children":443},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":445,"path":446,"order":110,"children":447},"migration","\u002Fdocs\u002Fmigration",[448,451],{"title":218,"path":449,"order":125,"children":450},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":452,"path":453,"order":110,"children":454},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":456,"path":457,"order":110,"children":458},"user","\u002Fdocs\u002Fuser",[459,463,467,471,475,480,484,488,492,496,500,504,516,520,524,528,532,536,540,544,548,552,556,560,564,568,571,575],{"title":460,"path":461,"order":125,"children":462},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":464,"path":465,"order":125,"children":466},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":468,"path":469,"order":107,"children":470},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":472,"path":473,"order":107,"children":474},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":476,"path":477,"order":478,"children":479},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":481,"path":482,"order":110,"children":483},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":485,"path":486,"order":110,"children":487},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":489,"path":490,"order":110,"children":491},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":493,"path":494,"order":110,"children":495},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":497,"path":498,"order":110,"children":499},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":501,"path":502,"order":110,"children":503},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":505,"path":506,"order":110,"children":507},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[508,512],{"title":509,"path":510,"order":110,"children":511},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":513,"path":514,"order":110,"children":515},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":517,"path":518,"order":110,"children":519},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":521,"path":522,"order":110,"children":523},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":525,"path":526,"order":110,"children":527},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":529,"path":530,"order":110,"children":531},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":533,"path":534,"order":110,"children":535},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":537,"path":538,"order":110,"children":539},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":541,"path":542,"order":110,"children":543},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":545,"path":546,"order":110,"children":547},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":549,"path":550,"order":110,"children":551},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":553,"path":554,"order":110,"children":555},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":557,"path":558,"order":110,"children":559},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":561,"path":562,"order":110,"children":563},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":565,"path":566,"order":110,"children":567},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":297,"path":569,"order":110,"children":570},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":572,"path":573,"order":110,"children":574},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":576,"path":577,"order":110,"children":578},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546040404]