How akashatnitr/econest-capstone works
EcoNest is an AI-assisted smart-home orchestrator. A signed-in user submits and confirms a request; the Command API sends it to agent routing, and device actions pass through MCP for permission checks, live Home Assistant validation, and auditing. Advisory energy and security reviews do not control devices. Background monitoring and sensor ingestion, analytics, graph context, and the Launchpad/API are additional product branches. Some subsystem links rely on README descriptions because their implementation files were not sampled.
Main entry points: orchestrator.py Task Router · executor.py MCP Dispatch · command.py Command Center · database.py Database Clients
Components 27
User Experience
- Command Center
orchestrator/api/command.py - Launchpad
orchestrator/api/launchpad.py - Autonomy API
orchestrator/api/autonomy.py - Insights API
orchestrator/api/analytics.py - Authentication
orchestrator/api/auth.py
Task Orchestration
- Task Router
orchestrator/agents/orchestrator.py - Agent Runtime
orchestrator/agents/base.py - Device Agent
orchestrator/agents/device_agent.py - Energy Agent
orchestrator/agents/energy_agent.py - Security Agent
orchestrator/agents/security_agent.py - Sensor Agent
orchestrator/agents/sensor_agent.py - Irrigation Agent
orchestrator/agents/irrigation_agent.py - Ollama Model
orchestrator/llm/client.py
Safety and Integrations
- MCP Dispatch
orchestrator/mcp/executor.py - Access Policy
orchestrator/core/permissions.py - Audit Records
orchestrator/core/audit.py - Home Assistant Tools
orchestrator/mcp/tools/ha_tools.py
Home Data and Insights
- HA State Ingestion
orchestrator/core/ha_ingest.py - Home Event History
orchestrator/core/home_events.py - Energy Analytics
orchestrator/core/energy_analytics.py - Weather Context
orchestrator/core/weather.py - Home Relationship Graph
orchestrator/graph/builder.py - Database Clients
orchestrator/core/database.py
Other components
- Homeowner
- Home Assistant
- MySQL
- ArcadeDB
Connections 29
- Homeowner → Command Center: submits request
- Command Center → Authentication: authenticates
orchestrator/api/command.py - Command Center → Task Router: submits task
orchestrator/api/command.py - Task Router → Agent Runtime: executes agent
orchestrator/agents/orchestrator.py - Task Router → Device Agent: routes device task
orchestrator/agents/orchestrator.py - Task Router → Energy Agent: routes energy task
orchestrator/agents/orchestrator.py - Task Router → Security Agent: routes security task
orchestrator/agents/orchestrator.py - Task Router → Sensor Agent: routes sensor task
orchestrator/agents/orchestrator.py - Task Router → Irrigation Agent: routes irrigation task
orchestrator/agents/orchestrator.py - Agent Runtime → MCP Dispatch: dispatches tools
orchestrator/agents/base.py - Task Router → Ollama Model: classifies tasks
orchestrator/agents/orchestrator.py - MCP Dispatch → Access Policy: checks access
orchestrator/mcp/executor.py - MCP Dispatch → Audit Records: records activity
orchestrator/mcp/executor.py - MCP Dispatch → Home Assistant Tools: dispatches tools
- Home Assistant Tools → Home Assistant: validates and acts
- Device Agent → Home Assistant: verifies state
- Task Router → Audit Records: records outcomes
orchestrator/agents/orchestrator.py - Autonomy API → Task Router: submits tasks
- Homeowner → Autonomy API: requests review
- HA State Ingestion → Home Assistant: reads live states
orchestrator/core/ha_ingest.py - HA State Ingestion → Database Clients: stores readings
orchestrator/core/ha_ingest.py - Database Clients → MySQL: persists records
orchestrator/core/database.py - Database Clients → ArcadeDB: queries graph store
orchestrator/core/database.py - Insights API → Energy Analytics: serves insights
- Insights API → Home Event History: serves history
- Energy Agent → Weather Context: uses forecast
- Home Relationship Graph → ArcadeDB: builds graph
- Launchpad → Command Center: opens actions
- Launchpad → Insights API: opens insights