from __future__ import annotations from collections.abc import Sequence from app.ha.models import HaEntitySummary from app.rules.recommender import Rule class HeatingRule(Rule): def matches(self, entities: Sequence[HaEntitySummary]) -> bool: domains = {item.domain for item in entities} 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."