2.1 KiB
2.1 KiB
Verhaltensmodell und Berechnung
Datenfluss
- Nutzer wählt einen Aktor.
ActuatorReconciliationServiceordnet Kontext-Entities zu.BehaviorEngine.train()liest Aktor- und Kontexthistorie.- Aktor-Zustandswechsel werden als
BehaviorPatterngespeichert. BehaviorEngine.evaluate()vergleicht aktuelle Zustände mit den Mustern.- Shadow zeigt nur die Vorhersage. Active darf sie ausführen.
Herkunft und Gewicht
- HA-Benutzer:
source=user, Gewicht1.0 - eindeutig erkannte HA-Automation oder Script:
source=automation, Gewicht1.0 - physisch oder unbekannt:
source=physical_or_unknown, Gewicht0.7 - eigene SillyHome-Ausführung: wird verworfen
Manuelle und eindeutig automatisierte Handlungen zählen für die Freigabe.
Kausale Muster
Wechselt ein Kontextsensor höchstens drei Sekunden vor der Aktorhandlung, wird der Wechsel gespeichert:
binary_sensor.tuer: off -> on
light.raum: off -> on
Eine kausale Vorhersage gilt nur, wenn derselbe Kontextzustand frisch ist. Das
Standardfenster ist zweimal SILLYHOME_PREDICTION_INTERVAL_SECONDS.
Nicht-kausale Bewertung
Für Muster ohne frischen Trigger:
score = weight * (
0.45 * time_score
+ 0.45 * context_score
+ 0.10 * weekday_score
)
Die Confidence ist der mittlere Score, begrenzt durch die Mindestunterstützung:
confidence = mean(scores) * min(1, support / min_behavior_actions)
Ausführungsbedingungen
Eine Vorhersage wird nur ausgeführt, wenn alle Bedingungen erfüllt sind:
- Betriebsart
active - Confidence mindestens
SILLYHOME_PREDICTION_CONFIDENCE - Zielzustand ist noch nicht erreicht
- Domain und Zustand sind erlaubt
- Cooldown erlaubt die Aktion
Der Cooldown sperrt nur eine schnelle Wiederholung desselben Zielzustands.
Eine Gegenaktion, beispielsweise on gefolgt von off, bleibt sofort erlaubt.
Freigabe
activation_ready=true, wenn:
- Verhaltensstatus
trained - mindestens
SILLYHOME_MIN_BEHAVIOR_ACTIONSeindeutig zugeordnete manuelle oder automatisierte Handlungen vorhanden sind
Die UI zeigt activation_reason immer an.