2.3 KiB
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
- Python-Venv anlegen und Abhängigkeiten installieren:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
- Konfiguration aus
.env.exampleübernehmen und anpassen:
cp .env.example .env
- API starten:
uvicorn app.main:app --reload
- Erreichbar unter:
http://127.0.0.1:8000/health- Health-Checkhttp://127.0.0.1:8000/docs/- OpenAPI-Dokumentationhttp://127.0.0.1:8000/v1/entities- Home-Assistant-Entitieshttp://127.0.0.1:8000/ml/health- Registry-/Serving-Health
Ohne vollständige HA-Konfiguration liefert /v1/entities bewusst 503.
Docker Compose
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 RechtenSILLYHOME_MODEL_STORE– Verzeichnis für persistierte Modell-Metadaten
Niemals Administrator-Tokens oder Passwörter eintragen. .env gehört nicht ins
Versionskontrollsystem.
Tests
pytest
ruff check .
mypy