# Quick Fix: "Controller ID not exist" Error ## The Problem You're seeing: ``` Omada login failed: Controller ID not exist. ``` This means you're using the **wrong value** for `omadac_id`. ## The Solution (5 minutes) ### Step 1: Get the Real Customer ID 1. Open your Omada controller UI (Cloud-Based Controller) 2. Go to **Settings → Platform Integration → Open API** 3. Find your app: **Datacenter-Control-Complete** 4. Click **View / Details** On that page, you'll see: - **Client ID** → This goes in `OMADA_CLIENT_ID` - **Client Secret** → This goes in `OMADA_CLIENT_SECRET` - **Customer ID / MSP ID / Omadac ID** → This goes in `OMADA_CUSTOMER_ID` ⚠️ **This is the one you need!** ### Step 2: Update Your `.env` File Replace your current values with: ```env # From OpenAPI page - Client ID OMADA_CLIENT_ID= # From OpenAPI page - Client Secret OMADA_CLIENT_SECRET= # From OpenAPI page - Customer/MSP ID (THIS IS THE KEY ONE!) OMADA_CUSTOMER_ID= # Your Omada credentials OMADA_USERNAME=teresa@teresalopez.us OMADA_PASSWORD=L@kers2010 # Your Omada endpoints OMADA_NORTHBOUND_BASE=https://euw1-omada-northbound.tplinkcloud.com OMADA_CONTROLLER_BASE=https://euw1-omada-controller.tplinkcloud.com # Use password auth to avoid OAuth noise OMADA_AUTH_METHOD=password ``` ### Step 3: Restart ```bash pnpm run dev ``` ## What You Should See After updating `OMADA_CUSTOMER_ID`: ✅ **Success**: `Omada login successful` OR ✅ **Progress**: `Omada login failed: Invalid username or password` (This means the Customer ID is correct! Just fix your username/password.) ## Important Notes - **DO NOT** use `TP_LINK_CLIENT_ID` value as `OMADA_CUSTOMER_ID` - they're different! - The `OMADA_CUSTOMER_ID` is the **controller/customer ID**, not the application client ID - If you're using an MSP account, look for "MSP ID" instead of "Customer ID" ## Still Having Issues? If you still see "Controller ID not exist" after updating: 1. Double-check you copied the **exact value** from the OpenAPI page 2. Make sure there are no extra spaces or characters 3. Verify you're looking at the correct application in the OpenAPI settings