Athena: Distributed AI Home Automation

Open source AI-assisted home automation with conversation archaeology

View the Project on GitHub tensiondriven/athena

Clean Camera Architecture Implementation

Architecture Achieved

[PTZ MCP Server] + [Screenshot MCP Server] → [Collector Daemons]
   PTZ Operations            Screenshot Ops       Hardware Specific
   - list_ptz_cameras        - list_screenshot_cameras   - Logitech PTZ Collector (PTZ + screenshot)
   - ptz_control             - take_screenshot           - USB Webcam Collector (screenshot only)
   - pan/tilt/zoom only      - All camera types          - ONVIF Collector (future)

Component Separation

🎯 PTZ MCP Server (/mcp/ptz_mcp_server.py)

📷 Screenshot MCP Server (/mcp/screenshot_mcp_server.py)

🔧 Collector Daemons (/logi-ptz/daemons/)

📋 Configuration (/logi-ptz/daemons/config.json)

Benefits Achieved

Clean Separation: MCP handles protocol, daemons handle hardware
Scalable: Add new camera types by adding collector daemons
Maintainable: Hardware bugs fixed once in relevant daemon
Reusable: Generic MCP works with any camera hardware
Testable: Each component can be tested independently

Integration Ready

Command Interface

MCP Commands (Capability Specific)

PTZ MCP Server:

{"method": "list_ptz_cameras"}
{"method": "ptz_control", "params": {"camera_id": "logitech-123", "command": "pan", "value": "middle"}}

Screenshot MCP Server:

{"method": "list_screenshot_cameras"} 
{"method": "take_screenshot", "params": {"camera_id": "logitech-123"}}
{"method": "take_screenshot", "params": {"camera_id": "usb-webcam-0"}}

Daemon Commands (Hardware Specific)

python3 logitech_ptz_daemon.py list
python3 logitech_ptz_daemon.py pan --camera-id logitech-123 --value middle
python3 logitech_ptz_daemon.py screenshot --camera-id logitech-123

Date: 2025-06-07