Skip to content

rodneysia-png/SpacesWebexWallNav

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Placeholder for Spaces PIR + Wall Nav project

Cisco Spaces β†’ Webex Wall Navigator Automation

Production-grade FastAPI service that listens to Cisco Spaces presence events and dynamically updates Webex Wall Navigator / Board devices via Control Hub APIs.

This project demonstrates real-time spatial intelligence automation:

BLE presence detection

Event-driven architecture

Webex device API control

Production deployment on AWS EC2

systemd service management

Structured logging

πŸš€ What This Does

When a BLE device (tag, phone, badge, etc.) is detected in a defined zone:

Cisco Spaces sends a webhook event

This service validates and processes the event

Business logic determines action

Webex device is updated via Control Hub API

LED status change

UI message update

Device configuration trigger

This enables smart building automation using real-time indoor location intelligence.

πŸ— Architecture Overview Cisco Spaces (BLE Presence) β”‚ β–Ό Webhook (HTTPS) β”‚ β–Ό FastAPI Service (AWS EC2) β”‚ β”œβ”€β”€ Logging β”œβ”€β”€ Business Rules Engine └── Webex Control Hub API Calls β”‚ β–Ό Webex Wall Navigator / Board 🧰 Tech Stack

Python 3.9+

FastAPI

Uvicorn

Requests / httpx

AWS EC2 (Amazon Linux)

systemd (service management)

Nginx (reverse proxy, optional)

Cisco Spaces Webhooks

Webex Control Hub APIs

πŸ“¦ Project Structure . β”œβ”€β”€ app/ β”‚ β”œβ”€β”€ main.py # FastAPI entrypoint β”‚ β”œβ”€β”€ config.py # Environment variable handling β”‚ β”œβ”€β”€ spaces_handler.py # Cisco Spaces event logic β”‚ β”œβ”€β”€ webex_client.py # Webex API interactions β”‚ └── models.py # Pydantic schemas β”‚ β”œβ”€β”€ requirements.txt β”œβ”€β”€ .env.example └── README.md πŸ” Environment Variables

Create a .env file:

WEBEX_ACCESS_TOKEN=your_webex_bot_or_integration_token SPACES_WEBHOOK_SECRET=your_spaces_webhook_secret WEBEX_DEVICE_ID=your_device_id LOG_LEVEL=INFO

Never commit your real .env file.

πŸ–₯ Local Development

Create virtual environment:

python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt

Run locally:

uvicorn app.main:app --reload --port 8000

Test webhook endpoint:

curl -X POST http://localhost:8000/webhook
-H "Content-Type: application/json"
-d @sample_payload.json ☁ Deployment (AWS EC2 Example)

  1. Install dependencies sudo yum update -y sudo yum install python3 git -y
  2. Clone repo git clone https://github.com/yourusername/yourrepo.git cd yourrepo
  3. Setup environment python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
  4. Create systemd service

/etc/systemd/system/spaces-webex.service

[Unit] Description=Cisco Spaces Webex Automation After=network.target

[Service] User=ec2-user WorkingDirectory=/home/ec2-user/yourrepo EnvironmentFile=/home/ec2-user/yourrepo/.env ExecStart=/home/ec2-user/yourrepo/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 Restart=always

[Install] WantedBy=multi-user.target

Enable service:

sudo systemctl daemon-reload sudo systemctl enable spaces-webex sudo systemctl start spaces-webex πŸ“‘ Cisco Spaces Webhook Configuration

In Cisco Spaces:

Go to Integrations β†’ Webhooks

Add new webhook

URL: https://yourdomain.com/webhook

Select Presence / BLE events

Configure shared secret

🧠 Example Use Cases

Meeting room auto-personalization

Executive presence detection

LED alerting for high-value visitors

Smart retail engagement triggers

Hospital workflow automation

IoT-driven building orchestration

πŸ” Observability

Structured logging

systemd journal logs

Can be extended with:

Prometheus metrics

Splunk HEC integration

CloudWatch logging

⚠ Security Considerations

Always validate webhook signature

Use HTTPS (TLS)

Restrict security group inbound rules

Rotate Webex tokens regularly

Do not log sensitive tokens

πŸ›£ Roadmap

Signature verification middleware

Async Webex client (httpx)

Retry + exponential backoff

Device mapping by zone

Multi-tenant support

Docker containerization

CI/CD pipeline

πŸ“œ License

MIT License

πŸ‘€ Author

Built by an engineer exploring real-time spatial intelligence automation across Cisco Spaces and Webex ecosystems.

About

FastAPI service integrating Cisco Spaces BLE presence events with Webex Wall Navigator devices via Control Hub APIs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages