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