# SillyHome Next Lokaler, datenschutzfreundlicher API-Prototyp für Home Assistant. ## Reifegrad Version `0.1.0` stellt eine gehärtete technische Basis bereit: Home-Assistant-Entities lesen, regelbasierte Bausteine und eine persistente Modell-Artefakt-Registry. Die aktuelle Trainings- und Vorhersagelogik ist noch eine deterministische Schnittstellen-Implementierung und **kein produktives Machine-Learning-Modell**. ## Motivation TheSillyHome zeigte die Idee: statt statischer Regeln das Zuhause aus Verhaltensmustern verstehen. Diese Architektur modernisiert den Ansatz in Richtung Explainable AI, hybride Intelligenzebenen und langlebige Wartbarkeit. ## Ziele - Home Assistant und Sensoren/Aktoren verstehen - Historie auswerten und Gewohnheiten erkennen - Vorhersagen erstellen und erklären - Automationen vorschlagen und direkt generieren - Lokal-first ohne Cloudpflicht - Erweiterbar, testbar, dokumentiert ## Quickstart 1. Python-Venv anlegen und Abhängigkeiten installieren: ```bash python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" ``` 2. Konfiguration aus `.env.example` übernehmen und anpassen: ```bash cp .env.example .env ``` 3. API starten: ```bash uvicorn app.main:app --reload ``` 4. Erreichbar unter: - `http://127.0.0.1:8000/health` - Health-Check - `http://127.0.0.1:8000/docs/` - OpenAPI-Dokumentation - `http://127.0.0.1:8000/v1/entities` - Home-Assistant-Entities - `http://127.0.0.1:8000/ml/health` - Registry-/Serving-Health Ohne vollständige HA-Konfiguration liefert `/v1/entities` bewusst `503`. ### Docker Compose ```bash cp .env.example .env docker compose up --build -d curl --fail http://127.0.0.1:8000/health ``` Compose veröffentlicht die API standardmäßig nur auf `127.0.0.1`. Für Zugriff aus dem Netz muss ein authentifizierender Reverse Proxy vorgeschaltet werden. ### ENV-Konfiguration (`.env.example`) - `SILLYHOME_HA_URL` – Basis-URL deiner Home-Assistant-Instanz (z. B. `http://homeassistant.local:8123`) - `SILLYHOME_HA_TOKEN` – Long-Lived Access Token eines dedizierten HA-Benutzers mit minimalen Rechten - `SILLYHOME_MODEL_STORE` – Verzeichnis für persistierte Modell-Metadaten Niemals Administrator-Tokens oder Passwörter eintragen. `.env` gehört nicht ins Versionskontrollsystem. ### Tests ```bash pytest ruff check . mypy ```