Domus Mind
Home automation self-hosted with natural AI via Ollama, compatible with Home Assistant
- Status
- WIP
- License
- MIT
- Category
- Infrastructure for Artificial Intelligence
- Updated
Project status
Description
Home Mind is a self-hosted home automation system that combines compatibility with Home Assistant (passive integration via API or full replacement, user choice) with a natural AI orchestration layer based on Ollama on-prem. The difference from standard Home Assistant is interaction: instead of configuring automations with YAML editor or Node-RED, the user speaks in natural language ('when it rains and I'm home, close all first-floor curtains but leave the kitchen one open at half because I have plants') and the LLM (llama3.1:8b or qwen2.5:14b) translates into persistent automation rules. The architecture combines: Angular 21 SSR frontend with standalone dashboard components, Spring Boot 3 backend that orchestrates device controllers and LLM gateway, Ollama on-prem (CPU or GPU consumer, no cloud), MQTT broker (Mosquitto) for device messaging, PostgreSQL for persistent state (rules, devices, history), Redis for real-time device state cache. Security is a priority: the LLM runs on-prem (no cloud calls), voice commands are processed locally with whisper.cpp optional, MFA for administrative access, audit logs of AI decisions (useful for troubleshooting 'why did the light go out?'). The differentiator vs Home Assistant: AI-first interaction, MIT license (Home Assistant is Apache 2 but plugin ecosystem is fragmented), alignment with Angular 21 SSR modern (HA is Polymer/lit-element legacy), focus on absolute privacy (no opt-in telemetry, no analytics). The target deployment is for hobbyist tech enthusiasts with homelab, developers who love smart home but hate YAML, and tech-savvy families who want an on-prem voice assistant.
Key Features
Natural AI via Ollama on-prem
Choose between automation rule or manual translation, without cloud calls.
Compatible with Home Assistant
Passive integration via HA REST API or full replacement (dual mode), import device from HA config YAML.
Z-Wave, Zigbee, and MQTT Support
Z-Wave JS UI adapter, zigbee2mqtt, Mosquitto MQTT broker, Wi-Fi smart plug with Tasmota/ESPHome, and IR control via Broadlink.
Dashboard Angular 21 Server Side Rendering
Standalone components, signals, OnPush, dashboard responsive with room view, device control, and activity timeline.
Voice control is optional.
Voice commands processed on-prem with whisper.cpp (sufficient CPU), customizable wake word via openWakeWord.
AI Decision Making Log
Each automation triggers log of LLM input prompt, output generated rule, device command issued - useful for troubleshooting.
Multi-user with MFA
Account types (admin, user, guest), Optional MFA (TOTP), fine-grained permissions by device/room.
Java-based plugin system
Plugin Java for extensions (custom device adapter, custom AI prompt template), hot-reload in dev mode.
Angular + Spring Boot on top of a PostgreSQL database hosted in the cloud via AWS or Google Cloud Platform
- Home Assistant (compatible)
- Ollama
- Angular 21
- Spring Boot 3.4
- MQTT (Mosquitto)
- Z-Wave JS
- zigbee2mqtt
- PostgreSQL 16
- Redis
- whisper.cpp
Use cases
- Tech enthusiasts with home lab wanting AI-native smart home without relying on cloud Alexa/Google.
- Developers who love smart home but hate manually configuring YAML automation settings.
- Tech-savvy families who want voice assistants for privacy (not always listening)
- Maker who integrate DIY devices (ESPHome, Tasmota) and seek a unified modern dashboard
Road Map
- v0.1.0Scheduled
Core: MQTT + Dashboard + Device Adapter Base
- MQTT Broker Setup and Tasmota/ESPHome Adapter Configuration
- Dashboard Angular Base with Room View
- Persistent PostgreSQL State
- Setup wizard for CLI and web.
- v0.5.0Scheduled
Concise Mode - Compatible with Z-Wave and Zigbee
- Llama integration + prompt template
- Natural Language - Automation Rule
- Z-Wave JS UI with Zigbee2MQTT Adapter
- AI Decision Making Log
- v1.0.0Scheduled
Voice and Home Assistant Compatibility with a Plug-in System
- Whisper-Enabled Voice Control Optional
- Passive REST API Integration
- Java plugin system with hot reload capabilities.
- Documentation for MkDocs and Community Setup Guide
Who is it for
Quick start
Start the project locally with four commands, requires Docker and GitHub Desktop is not required but a git client like SourceTree or Visual Studio Code's built-in one will do just fine though.
# Quick start (work-in-progress, repo non ancora pubblicato)
# git clone https://github.com/<tba>/domus-mind.git
# cd domus-mind
# ollama pull llama3.1:8b
# docker compose up -d # mosquitto + postgres + redis + domus-mind
# # Apri http://localhost:8090 e completa setup wizardContribute to the project
Domus Mind is open source. Open an issue, propose a pull request or leave a star on GitHub: every contribution, no matter how small, is welcome.
- ⭐ Leave a star if it's useful
- 🐛 Report bugs or suggest features via issue
- 🔧 Send a pull request with fixes or improvements
- 📣 Share the project if you find it interesting