Your home. One dashboard.
We built HomeOps to control everything in our own home from a single screen—weather, HVAC, lighting, energy, and switches. It replaced a pile of disconnected apps with one unified dashboard, voice commands, and real hardware control over MQTT. The modules reflect the specific devices we use, but the platform is designed so new integrations can be added for whatever hardware you have.
Built for our home. Available for yours.
Smart home devices are everywhere, but they all live in different apps. Our weather station has an app. The thermostat has an app. The lights have an app. The energy monitor has an app. None of them talk to each other, and switching between five dashboards to check on your own home is the opposite of smart.
HomeOps is what we built to fix that for ourselves. It pulls every device we own into a single dashboard with five focused tabs—weather, HVAC, lighting, energy, and switches. Voice commands through Whisper let us control everything hands-free. The whole thing runs locally on our own server, no cloud dependency for day-to-day operation.
The modules we built match the specific hardware in our home. But the platform is a shell—each integration is a self-contained widget that plugs into the dashboard independently. If you have different devices or want integrations we haven't built yet, we can add them. The architecture is designed for exactly that.
Five tabs. Full control.
Each tab is a focused dashboard for one aspect of the home.
Weather
90%
HVAC
95%
Lighting
In Progress
Energy
In Progress
Switches
95%
What's integrated today.
These are the specific devices and services in our home. Each module is a standalone widget that plugs into the dashboard independently—new hardware integrations can be built on request.
Weather Station
Ambient Weather station with its own standalone backend. Temperature, humidity, wind speed, rain, UV index, and barometric pressure with historical charts. Data syncs from the station's cloud API to a local server.
HVAC Control
Gree minisplit control via local network API—no cloud required. Set temperature, mode (heat/cool/auto/dry/fan), fan speed, and scheduling. Also supports Nest and Ecobee thermostats. 15+ API endpoints for full system control.
Smart Lighting
BRMesh BLE lights controlled via custom ESP32 firmware that bridges BLE to MQTT. On/off, brightness, and color temperature through the Broadlink Fastcon protocol. Commands sent 5x for reliability since the lights are receive-only.
Energy Monitoring
Emporia Vue circuit-level power monitoring with its own standalone backend. Real-time consumption per circuit, daily/weekly/monthly trends, and cost estimation via the PyEmVue integration.
Voice Control
faster-whisper running locally with CPU int8 quantization for speech-to-text. 50+ regex patterns for intent parsing map natural language to device commands. No cloud speech processing—everything stays on the local server.
Custom MQTT Devices
Any device that speaks MQTT can be added to the dashboard. ESP32 microcontrollers handle bridging for devices that don't natively support MQTT. Dynamic device discovery means new hardware shows up automatically.
Shell architecture.
HomeOps is a portal, not a monolith. Each module is an independent app imported as a widget. The dashboard ties them together.
Modular Widget System
Each device module lives in its own repository as a standalone Flutter app. HomeOps imports them as packages and renders their widgets in the appropriate dashboard tab. Adding a new device means building one widget—not touching the rest of the system.
Standalone Backends
Each hardware integration has its own backend service running on a dedicated port. Weather, energy, and lighting all have independent APIs. The FastAPI backend orchestrates them and provides a unified REST + WebSocket interface for the frontend.
Network Isolation
IoT devices live on a separate VLAN from the main network. The server bridges both VLANs, keeping smart home hardware isolated from personal devices while still allowing dashboard control.
Local-First
The entire system runs on a local server. MQTT broker, voice processing, device APIs—all on-premise. Cloud services are only used where the hardware vendor requires it (weather station cloud sync, energy monitor API). Day-to-day control works without internet.
Tech stack.
18,000+ lines across Python and Dart. Local server, MQTT, and real hardware control.
Backend
Python FastAPI with 6,700+ lines. REST API for device control, WebSocket for real-time updates, MQTT client for device communication. Runs on a VPS with systemd and nginx.
Frontend
Flutter for Web and Windows desktop with 11,000+ lines of Dart. 5-tab dashboard shell importing standalone module widgets. Modular package architecture.
Voice Processing
faster-whisper with CPU int8 quantization for local speech-to-text. 50+ regex patterns for intent parsing. Phase 2 plans distributed ESP32 microphones with INMP441 sensors.
ESP32 Firmware
Custom firmware for BLE-to-MQTT bridging. WiFi connectivity, MQTT pub/sub, BLE broadcast for BRMesh lights, and OTA update support. Handles the protocol translation between smart home devices and the MQTT broker.
MQTT Infrastructure
Mosquitto broker as the central message bus. All device commands and state updates flow through MQTT. Enables real-time bidirectional communication between the dashboard and hardware.
Deployment
VPS with 2 vCPU and 8GB RAM running the backend, MQTT broker, and voice processing. Frontend served via nginx. Dual-VLAN network with IoT isolation.
Want something like this for your home?
HomeOps was built for the specific devices in our home, but the shell architecture means new device integrations can be added for whatever hardware you have. Different thermostat, different lights, different sensors—we can build the module. If you're tired of juggling five apps to control your own house, let's talk about what a unified dashboard would look like for your setup.