BEHAVIOR-004: trust HA automation actions
Some checks failed
quality / test (3.11) (push) Has been cancelled
quality / test (3.13) (push) Has been cancelled
quality / test (3.11) (pull_request) Has been cancelled
quality / test (3.13) (pull_request) Has been cancelled

This commit is contained in:
2026-06-14 15:58:05 +02:00
parent 1c5eab14b6
commit 7ad97320a2
8 changed files with 60 additions and 34 deletions

View File

@@ -124,7 +124,9 @@ class BehaviorEngine:
logbook=logbook,
own_executions=record.behavior.execution_events,
)
high_confidence = sum(1 for pattern in patterns if pattern.source == "user")
trusted_actions = sum(
1 for pattern in patterns if pattern.source in {"user", "automation"}
)
status = (
BehaviorStatus.TRAINED
if len(patterns) >= self._settings.min_behavior_actions
@@ -142,7 +144,7 @@ class BehaviorEngine:
update={
"status": status,
"sample_count": len(patterns),
"high_confidence_sample_count": high_confidence,
"high_confidence_sample_count": trusted_actions,
"patterns": patterns[-_MAX_PATTERNS:],
"last_trained_at": now,
"reason": reason,
@@ -296,8 +298,8 @@ class BehaviorEngine:
< self._settings.min_behavior_actions
):
raise ValueError(
"Für die Freigabe fehlen noch eindeutig dir zugeordnete Handlungen. "
"Bediene den Aktor einige Male über Home Assistant."
"Für die Freigabe fehlen noch eindeutig zugeordnete manuelle "
"oder automatisierte Handlungen."
)
mode = BehaviorMode.ACTIVE
approved_at = now
@@ -338,8 +340,6 @@ class BehaviorEngine:
context_ids,
point.timestamp,
)
if source == "automation" and trigger is None:
continue
contexts = {
entity_id: state
for entity_id in context_ids
@@ -520,7 +520,7 @@ def _action_source(
if nearest.context_user_id:
return "user", 1.0
if nearest.context_domain in _AUTOMATION_CONTEXT_DOMAINS:
return "automation", 0.1
return "automation", 1.0
return "physical_or_unknown", 0.7