Salta al contenuto principale
WIP MITAI Infrastructure

Domus Mind

Home automation self-hosted con AI naturale via Ollama, Home Assistant compatible

Stato
WIP
Licenza
MIT
Categoria
AI Infrastructure
Aggiornato

Stato del progetto

Descrizione

Domus Mind è un sistema di home automation self-hosted che combina la compatibilità con Home Assistant (integrazione passiva via API o sostituzione completa, a scelta utente) con uno strato di orchestrazione AI naturale basato su Ollama on-prem. La differenza con Home Assistant standard non è il controllo dispositivi (Z-Wave, Zigbee, MQTT, Wi-Fi smart plug funzionano allo stesso modo), ma l'interazione: invece di configurare automazioni con YAML editor o Node-RED, l'utente parla in linguaggio naturale ('quando piove e sono in casa, chiudi tutte le tapparelle del primo piano, ma lascia quella della cucina aperta a metà perché ho le piante') e l'LLM (llama3.1:8b o qwen2.5:14b a scelta) traduce in automation rules persistite nel motore. L'architettura combina: Angular 21 SSR frontend con dashboard standalone components, Spring Boot 3 backend che orchestra device controllers e LLM gateway, Ollama on-prem (CPU o GPU consumer, no cloud), MQTT broker (Mosquitto) per device messaging, PostgreSQL per stato persistente (rules, devices, history), Redis per cache real-time stato dispositivi. La sicurezza è priority: l'LLM gira on-prem (nessuna chiamata cloud), comandi vocali processati localmente con whisper.cpp opzionale, MFA per accesso amministrativo, audit log delle decisioni AI (utile per troubleshooting 'perché la luce si è spenta?'). Il differentiator vs Home Assistant: AI-first interaction, MIT license (Home Assistant è Apache 2 ma plugin ecosystem è frammentato), allineamento Angular 21 SSR moderno (HA è Polymer/lit-element legacy), focus su privacy assoluta (no opt-in telemetry, no analytics). Deploy target: hobbyisti tech con homelab, sviluppatori che amano smart home ma odiano YAML, famiglie tech-savvy che vogliono assistente vocale on-prem. La filosofia è 'AI-native automation, on-prem first': l'AI è il primary interface, non un add-on.

Funzionalità chiave

  • AI naturale via Ollama on-prem

    LLM llama3.1:8b o qwen2.5:14b a scelta, prompt engineering per traduzione frase → automation rule, no chiamate cloud.

  • Home Assistant compatible

    Integrazione passiva via HA REST API o sostituzione completa (dual mode), import device da HA config YAML.

  • Z-Wave + Zigbee + MQTT support

    Adapter Z-Wave JS UI, zigbee2mqtt, MQTT broker Mosquitto, Wi-Fi smart plug Tasmota/ESPHome, IR via Broadlink.

  • Dashboard Angular 21 SSR

    Standalone components, signals, OnPush, dashboard responsive con room view + device control + activity timeline.

  • Voice control whisper.cpp opzionale

    Comandi vocali processati on-prem con whisper.cpp (CPU sufficient), wake-word personalizzabile via openWakeWord.

  • Audit log decisioni AI

    Ogni automation triggered logga il prompt LLM input, output rule generata, devices command issued — utile per troubleshooting.

  • Multi-user con MFA

    Account multipli (admin, user, guest), MFA opzionale (TOTP), permission granulare per device/room.

  • Plugin system Java

    Plugin Java per estensioni (custom device adapter, custom AI prompt template), hot-reload in dev mode.

Tech stack

  • Home Assistant (compatible)
  • Ollama
  • Angular 21
  • Spring Boot 3.4
  • MQTT (Mosquitto)
  • Z-Wave JS
  • zigbee2mqtt
  • PostgreSQL 16
  • Redis
  • whisper.cpp

Casi d'uso

  • Hobbyisti tech con homelab che vogliono AI-native smart home senza dipendere da cloud Alexa/Google
  • Sviluppatori che amano smart home ma odiano configurare automazioni YAML manualmente
  • Famiglie tech-savvy che vogliono assistente vocale on-prem per privacy (no Alexa always-listening)
  • Maker che integrano dispositivi DIY (ESPHome, Tasmota) e cercano dashboard moderna unificata

Roadmap

  1. v0.1.0 Pianificata

    Core: MQTT + Dashboard + Device adapter base

    • MQTT broker setup + Tasmota/ESPHome adapter
    • Dashboard Angular base con room view
    • PostgreSQL stato persistente
    • Setup wizard CLI + web
  2. v0.5.0 Pianificata

    AI orchestration + Z-Wave/Zigbee

    • Ollama integration + prompt template
    • Frase naturale → automation rule
    • Z-Wave JS UI + zigbee2mqtt adapter
    • Audit log decisioni AI
  3. v1.0.0 Pianificata

    Voice + HA compatibility + Plugin system

    • whisper.cpp voice control opzionale
    • HA REST API integration passiva
    • Plugin system Java + hot-reload
    • Documentazione MkDocs + community setup guide

A chi è rivolto

  • Hobbyisti tech
  • Pro Dev junior-mid

Quick Start

Avvia il progetto localmente in pochi comandi.

# 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 wizard

Contribuisci al progetto

Domus Mind è open source. Apri una issue, proponi una pull request o lascia una stella su GitHub: ogni contributo, anche piccolo, è benvenuto.

  • ⭐ Lascia una stella se ti è utile
  • 🐛 Segnala bug o proponi feature via issue
  • 🔧 Invia pull request con fix o miglioramenti
  • 📣 Condividi il progetto se lo trovi interessante