How udbhav07/edge-smart-space works
edge-smart-space is an edge-hosted autonomous smart-room system. Its central loop turns sensor readings into thermal estimates and fault health, proposes setpoint goals, validates them, and regulates the actuator; MQTT is the sole inter-service blackboard. Separate reasoning and optional speech provide occupant interaction, while the browser console exposes controls and operational views. The README establishes the independent cadences and safety boundary; source-index references and excerpts support selected internal links. Several console pages and integrations are documented but unsampled, so their internal wiring is not inferred.
Main entry points: mqtt_client.py MQTT blackboard · assistant.py Reasoning assistant · estimation/service.py Thermal estimator · control/service.py Goal and regulatory control
Components 23
Room I/O
- Sensor adapters
src/io/devices.py - Room simulator
sim/run_sim.py - Device services
src/devices/service.py - MQTT blackboard
src/common/mqtt_client.py - Topics and schemas
src/common/topics.py
Estimation and control
- Thermal estimator
src/estimation/service.py - RLS model
src/estimation/rls.py - Coefficient persistence
src/estimation/persistence.py - Fault detection
src/faults/service.py - Goal and regulatory control
src/control/service.py - Goal validation
src/control/validator.py
Reasoning and assistance
- Reasoning assistant
src/reasoning/assistant.py - Tool registry
src/common/tools.py - Assistance memory
src/assistance/memory.py - Google calendar and mail
src/assistance/google/sync.py
Occupant interaction
- Speech pipeline
src/speech/pipeline.py
Console and observability
- Console server
src/console/server.py - Console state
src/console/state.py - Browser console
console/web/src/App.tsx
Other components
- Occupant
- Operator
- Inference server
- Google services
Connections 27
- Occupant → Speech pipeline: speaks to
README.md - Occupant → Browser console: uses
README.md - Operator → Browser console: operates
README.md - Sensor adapters → MQTT blackboard: publishes readings
src/io/devices.py - Room simulator → MQTT blackboard: publishes simulated state
sim/run_sim.py - MQTT blackboard → Thermal estimator: delivers readings
src/estimation/service.py - Thermal estimator → RLS model: updates model
src/estimation/service.py - Thermal estimator → Coefficient persistence: loads and persists
src/estimation/service.py - Thermal estimator → MQTT blackboard: publishes estimates
src/estimation/service.py - MQTT blackboard → Fault detection: delivers sensor data
src/faults/service.py - Fault detection → MQTT blackboard: publishes health and faults
src/faults/service.py - MQTT blackboard → Goal and regulatory control: delivers control inputs
src/control/service.py - Goal and regulatory control → Goal validation: validates goals
src/control/service.py - Goal and regulatory control → MQTT blackboard: publishes commands
src/control/service.py - Reasoning assistant → Tool registry: invokes tools
src/reasoning/assistant.py - Reasoning assistant → Inference server: requests reasoning
README.md - Reasoning assistant → MQTT blackboard: proposes setpoints
README.md - Tool registry → Device services: dispatches device actions
src/devices/service.py - Reasoning assistant → Assistance memory: uses assistance memory
- Reasoning assistant → Google calendar and mail: uses account integrations
- Google calendar and mail → Google services: accesses
README.md - Speech pipeline → Reasoning assistant: passes spoken requests
src/speech/pipeline.py - Console server → MQTT blackboard: subscribes and publishes
src/console/server.py - Console server → Console state: updates state
src/console/server.py - Browser console → Console server: uses console API
- Console state → MQTT blackboard: reads room state
src/console/state.py - Topics and schemas → MQTT blackboard: defines topic contracts
src/common/mqtt_client.py