Cisco Spaces Integration
Import 2D floor plans from Cisco Spaces into Aida Controller Facility so operators do not re-upload the same maps. Lighting, shade, and HVAC control stay on the controller. Spaces is an optional spatial source — not a replacement for Aida control.
:::info Status Ready to deploy on Aida Controller 2.0 (v0.79.0+). Enable the Cisco Spaces module, paste a Detect & Locate token, and import a plan onto a floor. Occupancy Firehose overlays, AI Maps 3D, and write-back into Space Manager are not in this release. :::
Purpose
| Audience | What this integration provides |
|---|---|
| Facilities / OT | Use the maps IT already maintains in Spaces as the Facility floor plan; place Aida devices on that image |
| IT / networking | Keep Cisco Spaces as the map authority; Aida pulls a raster on demand and caches it locally |
| Operators | Offline viewing after import; refresh when the Spaces map changes |
Aida Controller owns device pins, live lighting/shade state, zones, and control.
Cisco Spaces owns the 2D map image (and later occupancy / AP overlays).
Aida Platform lists this integration and documents setup; the token and import run on the controller, not in the cloud UI.
What ships in v1
- Optional controller module
cisco-spaces(enable/disable in Modules) - Detect & Locate Location Cloud API v2 token (region + JWT)
- Hierarchy picker → floor → image picker when a floor has more than one raster (for example Meraki vs Spaces 2D)
- Cached plan on the controller; viewer badge Plan from Cisco Spaces ·
{building}-{source} - Refresh from Spaces, or switch the floor back to a local PNG/JPEG upload
- Place, move, and operate Aida device pins as with any other floor plan
Out of this release
- Wi‑Fi / BLE occupancy heatmaps (Firehose)
- Writing fixtures or geometry back into Space Manager
- AI Maps 3D viewer (waiting on Cisco SDK access)
- Cisco Wayfinding SDK
Architecture
The controller calls Cisco Spaces on demand over HTTPS, then stores the image locally. After import, the floor viewer works offline. Browse, test, and refresh need outbound HTTPS to the Spaces region host.
| Region | Location API host |
|---|---|
| US | https://dnaspaces.io |
| EU | https://dnaspaces.eu |
| Singapore | https://ciscospaces.sg |
Auth: Authorization: Bearer <Detect & Locate JWT>.
Prerequisites
- Aida Controller 2.0 v0.79.0 or later, with a site admin who can enable modules (
modules.config) and edit floors (facility.write). - A Cisco Spaces tenant with Detect and Locate enabled and at least one campus → building → floor that has a 2D map.
- A Location Cloud API v2 key (JWT). Create it in Detect & Locate: Notifications → API Keys → Add.
- Outbound HTTPS from the controller to the region host (timeouts are about 60 seconds). The token is shown once, expires in 7–365 days, and is stored encrypted on the controller — never in git.
Setup
1. Enable the module
- On the controller, open Modules → Cisco Spaces.
- Enable the module.
- Choose region (
us,eu, orsg). - Paste the Detect & Locate JWT into the token field (write-only; the UI shows configured, not the secret).
- Optionally set a default map source (
ask,MERAKI, orSPACES_2D_MAP). - Click Test. A successful test reports how many floors are in the hierarchy and shows token expiry.
If the module is disabled, import UI is hidden. Floors that already imported a Spaces plan keep the cached image; the controller does not call Spaces.
2. Import a floor plan
New floor
- Facility → Floors → Add from Cisco Spaces.
- Browse the Spaces hierarchy and select a floor.
- If the floor has more than one image, pick which raster to use (source, size, thumbnail).
- Confirm. The controller creates the floor (name/number from Spaces when available), downloads the image, and opens the viewer.
Existing floor
- Open the floor → Import from Cisco Spaces (instead of uploading a file).
- Same hierarchy + image picker.
- Confirm. The active plan becomes
plan_source: spaces. Switching from a local upload is explicit.
3. Place devices and operate
- Drag Aida devices onto the plan as usual. Pins stay on the controller.
- Lock floor to prevent accidental moves; click a pin or zone for live data and controls.
- The viewer badge shows Plan from Cisco Spaces ·
{building}-{source}(the Spacesnetworknode is the building).
You cannot crop, draw on, or replace the raster in-app while the source is Spaces. To use a local file instead, upload a plan (the floor switches to a local source).
4. Refresh
On a Spaces-backed floor, Refresh plan re-pulls the current map (or lets you pick a different maps[] image). If the image hash is unchanged, placements are kept. Normalized pin coordinates stay if dimensions change; a large aspect-ratio shift may need a visual check.
Offline behavior
| Action | Network required? |
|---|---|
| View cached plan, pan/zoom, pins, live device state | No (LAN / controller only) |
| Test connection, hierarchy picker, first import, refresh | Yes — HTTPS to the Spaces region |
Troubleshooting
| Symptom | What to check |
|---|---|
| Test returns 401 / expired | Create a new Detect & Locate API key; paste it and Test again. JWTs expire (7–365 days). |
| Import returns 409 | Module is disabled, or the request is not allowed for the current role. Enable Cisco Spaces and use an operator/admin with facility.write. |
| Viewer still shows the old image after import | Refresh the page. The controller busts cache with the plan content hash; a hard refresh clears a stuck browser blob. |
| No floors in the picker | Confirm Detect & Locate maps exist for that tenant/region, and the token is for the same region you selected. |
| Image download fails / too large | Facility max plan size still applies (same as file upload). Try a smaller raster from maps[] if the tenant exposes more than one. |
| Viewer cannot import but GET plan still works | Expected when the module is off: cached rasters remain readable; outbound Spaces calls are blocked. |
What not to do
- Do not treat Spaces
"x,y,z"zone coordinates as a 3D mesh — they are 2D plan vertices (zis usually 0). - Do not merge this module with Webex Control Hub. Webex remains a separate integration for room panels and webhooks.
- Do not upload or edit maps in Spaces from Aida. Raster authority stays in Cisco Spaces.
Related documentation
- Webex Workspace Integration — room panels and widget webhooks
- Splunk Integration — OT telemetry visibility
- Aida Controller overview — on-premises appliance
- Cisco: Location Cloud API v2