enabled for rules
This commit is contained in:
@@ -85,6 +85,10 @@ class RuleEngine:
|
||||
|
||||
# Instantiate each rule
|
||||
for desc in self.rule_descriptors:
|
||||
if not desc.enabled:
|
||||
logger.info(f" - {desc.id} (type: {desc.type}) [DISABLED]")
|
||||
continue
|
||||
|
||||
try:
|
||||
rule_instance = load_rule(desc)
|
||||
self.rules[desc.id] = rule_instance
|
||||
@@ -93,7 +97,10 @@ class RuleEngine:
|
||||
logger.error(f"Failed to load rule {desc.id} (type: {desc.type}): {e}")
|
||||
raise
|
||||
|
||||
logger.info(f"Successfully loaded {len(self.rules)} rule implementation(s)")
|
||||
enabled_count = len(self.rules)
|
||||
total_count = len(self.rule_descriptors)
|
||||
disabled_count = total_count - enabled_count
|
||||
logger.info(f"Successfully loaded {enabled_count} rule implementation(s) ({disabled_count} disabled)")
|
||||
|
||||
# Initialize MQTT client
|
||||
self.mqtt_client = MQTTClient(
|
||||
|
||||
@@ -25,6 +25,7 @@ class Rule(BaseModel):
|
||||
id: str = Field(..., description="Unique rule identifier")
|
||||
name: Optional[str] = Field(None, description="Optional human-readable name")
|
||||
type: str = Field(..., description="Rule type (e.g., 'window_setback@1.0')")
|
||||
enabled: bool = Field(default=True, description="Whether this rule is enabled")
|
||||
targets: RuleTargets = Field(..., description="Target rooms and devices")
|
||||
params: dict[str, Any] = Field(default_factory=dict, description="Rule-specific parameters")
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
rules:
|
||||
- id: window_setback_esszimmer
|
||||
enabled: false
|
||||
name: Fensterabsenkung Esszimmer
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
@@ -19,6 +20,7 @@ rules:
|
||||
close_min_secs: 20
|
||||
previous_target_ttl_secs: 86400
|
||||
- id: window_setback_kueche
|
||||
enabled: false
|
||||
name: Fensterabsenkung Küche
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
@@ -37,6 +39,7 @@ rules:
|
||||
close_min_secs: 20
|
||||
previous_target_ttl_secs: 86400
|
||||
- id: window_setback_patty
|
||||
enabled: false
|
||||
name: Fensterabsenkung Arbeitszimmer Patty
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
@@ -54,6 +57,7 @@ rules:
|
||||
close_min_secs: 20
|
||||
previous_target_ttl_secs: 86400
|
||||
- id: window_setback_schlafzimmer
|
||||
enabled: false
|
||||
name: Fensterabsenkung Schlafzimmer
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
@@ -69,6 +73,7 @@ rules:
|
||||
close_min_secs: 20
|
||||
previous_target_ttl_secs: 86400
|
||||
- id: window_setback_wohnzimmer
|
||||
enabled: false
|
||||
name: Fensterabsenkung Wohnzimmer
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
@@ -85,6 +90,7 @@ rules:
|
||||
close_min_secs: 20
|
||||
previous_target_ttl_secs: 86400
|
||||
- id: window_setback_wolfgang
|
||||
enabled: true
|
||||
name: Fensterabsenkung Arbeitszimmer Wolfgang
|
||||
type: window_setback@1.0
|
||||
targets:
|
||||
|
||||
Reference in New Issue
Block a user