From 15f7b2517cbf1734b5d454bbdf498a0dd3b87221 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 4 Jul 2018 14:49:59 +0200 Subject: [PATCH] fix initialisation of the rule engine after loading rules from config we need to evaluate their active state immedately --- libnymea-core/ruleengine.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libnymea-core/ruleengine.cpp b/libnymea-core/ruleengine.cpp index 34369854..cf835b8f 100644 --- a/libnymea-core/ruleengine.cpp +++ b/libnymea-core/ruleengine.cpp @@ -356,6 +356,7 @@ RuleEngine::RuleEngine(QObject *parent) : rule.setExitActions(exitActions); rule.setEnabled(enabled); rule.setExecutable(executable); + rule.setStatesActive(rule.stateEvaluator().evaluate()); appendRule(rule); settings.endGroup(); } @@ -388,8 +389,10 @@ QList RuleEngine::evaluateEvent(const Event &event) QList rules; foreach (const RuleId &id, ruleIds()) { Rule rule = m_rules.value(id); - if (!rule.enabled()) + if (!rule.enabled()) { + qCDebug(dcRuleEngineDebug()) << "Skipping rule" << rule.name() << "because it is disabled"; continue; + } // If we have a state based on this event if (containsState(rule.stateEvaluator(), event)) { @@ -1204,6 +1207,7 @@ bool RuleEngine::containsEvent(const Rule &rule, const Event &event, const Devic } } + qCDebug(dcRuleEngineDebug()) << "Rule" << rule.name() << "does not match event descriptors"; return false; }