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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user