SillyHome Next
SillyHome lernt aus Home Assistant, sagt Aktorhandlungen voraus und darf sie nach einer ausdrücklichen Freigabe ausführen.
Schnell orientieren
- Fehler finden:
docs/DEBUGGING.md - Berechnung verstehen:
docs/BEHAVIOR_ENGINE.md - Steuerung übernehmen/zurückgeben:
docs/CONTROL_HANDOFF.md - Entwickeln, testen, veröffentlichen und installieren:
docs/OPERATIONS.md - Version 1.0.0 bedienen und prüfen:
docs/V1_0_0_OPERATING_GUIDE.md - Version 1.0.x Abnahme und offene Punkte:
docs/V1_0_ACCEPTANCE.md - Arbeitsregeln für Coding-Agenten:
AGENTS.md
Reifegrad
Die aktuelle Entwicklungslinie ist vollständig aktor-zentriert: Nutzer wählen nur Home-Assistant-Aktuatoren aus. SillyHome Next findet Sensoren, Zustände und Kontext automatisch, wertet die vorhandene Historie aus und hält passende lokale Modelle autonom aktuell. Es gibt keinen Regel-, Trigger-, Sensor- oder YAML-Konfigurationsschritt.
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
- Persönliches Verhalten pro Aktor lernen und zukünftige Handlungen vorhersagen
- 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/- lokales Dashboardhttp://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/v1/discovery- klassifizierte, filterbare Entitieshttp://127.0.0.1:8000/v1/history- normalisierte numerische Zeitreihenhttp://127.0.0.1:8000/v1/actuators/discovery- unterstützte Aktuatoren für den aktor-zentrierten Workflowhttp://127.0.0.1:8000/v1/actuators/dashboard- schnelle Dashboard-Startdaten aus Store und JSON-Cachehttp://127.0.0.1:8000/v1/actuators/summary- schlanke Liste beobachteter AktorenPOST http://127.0.0.1:8000/v1/actuators- Aktor freigeben; Kontextzuordnung und Modell-Lebenszyklus starten automatischPOST http://127.0.0.1:8000/v1/actuators/{entity_id}/evaluate- Shadow-Vorhersage aktualisierenPOST http://127.0.0.1:8000/v1/actuators/{entity_id}/activation- autonomes Schalten pro Aktor freigeben oder stoppenPOST http://127.0.0.1:8000/v1/actuators/reconciliation/run- globale Reconciliation manuell anstoßenhttp://127.0.0.1:8000/ml/health- Registry-/Serving-HealthPOST http://127.0.0.1:8000/ml/retrain- Modell-Metadaten aktualisierenPOST http://127.0.0.1:8000/ml/evaluate- MAE/RMSE/Coverage berechnen
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-MetadatenSILLYHOME_ACTUATOR_STORE– Verzeichnis für persistente Aktor-Zuordnungen und Reconciliation-StatusSILLYHOME_HISTORY_DAYS– Trainingsfenster für HA-History (1 bis 31 Tage)SILLYHOME_MIN_TRAINING_POINTS– Mindestanzahl nutzbarer numerischer Messpunkte vor einem ModelltrainingSILLYHOME_RETRAIN_STALE_HOURS– Staleness-Grenze für automatisches RetrainingSILLYHOME_RECONCILE_INTERVAL_SECONDS– Intervall für sichere periodische ReconciliationSILLYHOME_MIN_BEHAVIOR_ACTIONS– Mindestzahl gelernter Handlungen vor einer FreigabeSILLYHOME_PREDICTION_CONFIDENCE– Mindestkonfidenz für autonomes SchaltenSILLYHOME_PREDICTION_WINDOW_MINUTES– Zeitfenster um gelernte HandlungsmusterSILLYHOME_PREDICTION_INTERVAL_SECONDS– Intervall für Shadow-/Aktiv-VorhersagenSILLYHOME_EXECUTION_COOLDOWN_SECONDS– Mindestabstand zwischen eigenen SchaltungenSILLYHOME_TIMEZONE– lokale Zeitzone für Tages- und Wochenmuster
Niemals Administrator-Tokens oder Passwörter eintragen. .env gehört nicht ins
Versionskontrollsystem.
Home-Assistant-Add-on
Das Repository ist zugleich ein Home-Assistant-Add-on-Repository. In Home Assistant unter Einstellungen → Add-ons → Add-on-Shop → Repositories diese URL eintragen:
http://192.168.6.31:3000/pino/sillyhome-next
Danach SillyHome Next installieren und starten. Das Dashboard wird per Ingress geöffnet. Dort werden ausschließlich erlaubte Aktoren ausgewählt; Kontext- und Lernentscheidungen erfolgen automatisch.
Normaler Workflow
- Im Dashboard einen Aktor auswählen, zum Beispiel
light.abstellkammer. - SillyHome Next bewertet automatisch Messwerte, Anwesenheit, Bewegung, Bereiche, Gerätebeziehungen und weitere HA-Kontexte.
- Das System verwendet selbstständig die beste verfügbare Zuordnung. Niedrige Sicherheit bleibt als Diagnose sichtbar, verlangt aber keine manuelle Konfiguration.
- Sobald genügend Historie vorhanden ist, trainiert und aktualisiert das System das lokale Modell automatisch.
- Vorhersagen laufen zunächst ausschließlich im Shadow-Modus.
- Erst nach ausdrücklicher Freigabe pro Aktor werden hochkonfidente, erlaubte Zustände geschaltet. Eindeutig im HA-Logbuch erkannte Automationen und Scripts zählen dabei gleichwertig wie manuelle Bedienungen. Eigene Schaltungen von SillyHome werden nicht zurückgelernt.
- Bei der Freigabe kann SillyHome passende HA-Automationen pausieren und die Steuerung übernehmen. Beim Stoppen können diese Automationen gezielt wieder fortgesetzt werden.
Vor einem Update sollte in Home Assistant unter Einstellungen → System → Backups
eine Teil-Sicherung des Add-ons erstellt werden. Zur Wiederherstellung das gewünschte
Backup öffnen, SillyHome Next auswählen und wiederherstellen. Der erste produktive
Teststand v0.3.0 wurde als HA-Backup 7df0fca0 gesichert.
Tests
pytest
ruff check .
mypy app backend tests