BUG-003: HeatingRule auf heizungsrelevante Sensoren begrenzen

- matches(): nur climate oder sensor mit device_class in {temperature, humidity, occupancy, presence, heating}
- Tests: ergänzt für relevante und nicht-relevante Sensoren
- Verhindert falsche Empfehlungen bei Strom-/Tür-/Wetter-Sensoren
This commit is contained in:
2026-06-10 21:30:25 +02:00
parent 6540d62ff7
commit b8012de934
2 changed files with 33 additions and 4 deletions

View File

@@ -9,7 +9,21 @@ from app.rules.recommender import Rule
class HeatingRule(Rule):
def matches(self, entities: Sequence[HaEntitySummary]) -> bool:
domains = {item.domain for item in entities}
return "climate" in domains or "sensor" in domains
if "climate" in domains:
return True
if "sensor" in domains:
# Nur Sensoren mit Heizungs-/Klimarelevanz
relevant_device_classes = {
"temperature",
"humidity",
"occupancy",
"presence",
"heating",
}
for entity in entities:
if entity.domain == "sensor" and entity.device_class in relevant_device_classes:
return True
return False
def recommendation(self, entities: Sequence[HaEntitySummary]) -> str:
return "Prüfe Heizungsregelung: Aktiviere energiesparenden Modus bei Abwesenheit."