Hallo Wissende,
ich breche zusammen. Diese Triggerei bei den Conditions macht mich noch rasend.
Mal wieder ein ganz triviales Problem, dass mich in den Wahnsinn treibt: Ich möchte, dass mir linknx auf dem Objekt "Urlaubsmodus" zwischen dem 11.08. und dem 06.09. ein true/"on" zurückliefert. Ich möchte aber nicht nur am Anfang und am Ende des Zeitraums die Action ausgelöst bekommen, sondern auch, wenn ich z.B. während des Zeitraums linknx neu starte. U
Bei dieser Variante:
wird einfach nur geprüft, aber kein "true" ausgelöst. Es wird allein der Task auf den 06.09. gerescheduled:
2014-08-11 23:37:20 [ INFO] TimeSpec: 1899-8-11 0:0:0 (wdays=0; exception=2)
2014-08-11 23:37:20 [ INFO] TimeSpec: 1899-9-6 0:0:0 (wdays=0; exception=2)
2014-08-11 23:37:20 [ INFO] PeriodicTask: Rescheduled at 2014-9-6 0:0:0 (1409954400)
Meine Idee war in der Folge einfach eine weitere Condition hinzuzufügen, mit der die Regel alle 1m (das war zum Testen) geprüft wird:
In diesem Fall bekomme ich aber mehrere ein- und aus-Signale, wobei dummerweise die finale Beurteilung "aus" zu sein scheint:
2014-08-11 23:45:40 [ INFO] Rule: Evaluate rule Zeige_Urlaubsmodus
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Rule: Rule Zeige_Urlaubsmodus evaluated as 1, prev value was 0
2014-08-11 23:45:40 [ INFO] Rule: Evaluate rule Zeige_Urlaubsmodus
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '0'
2014-08-11 23:45:40 [ INFO] Rule: Rule Zeige_Urlaubsmodus evaluated as 0, prev value was 1
2014-08-11 23:45:40 [ INFO] PeriodicTask: Rescheduled at 2014-8-11 23:46:40 (1407793600)
2014-08-11 23:45:40 [ INFO] Action: Execute SetValueAction: set Urlaubsmodus with value on
2014-08-11 23:45:40 [ INFO] KnxConnection: write(gad=1/7/29, buf, len=2)
2014-08-11 23:45:40 [ INFO] Object: New value on for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Action: Execute SetValueAction: set Urlaubsmodus with value off
2014-08-11 23:45:40 [ INFO] KnxConnection: write(gad=1/7/29, buf, len=2)
2014-08-11 23:45:40 [ INFO] Object: New value off for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Object: New value on for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Object: New value off for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:55 [ INFO] Object: New value off for object RM_OG_DL_Buero (type: 1.001)
Ich verstehe auch nicht, warum die Timer-Condition einmal mit 1/1 und einmal mit 1/0 bewertet wird.....
Da mit "at" und "until" ja eigentlich nur auf einen konkreten Termin geprüft wird, habe ich mich auch an "during" versucht, aber hier habe ich mangels Beispielen überhaupt keine funktionierende Syntax zusammen bekommen.
ich breche zusammen. Diese Triggerei bei den Conditions macht mich noch rasend.
Mal wieder ein ganz triviales Problem, dass mich in den Wahnsinn treibt: Ich möchte, dass mir linknx auf dem Objekt "Urlaubsmodus" zwischen dem 11.08. und dem 06.09. ein true/"on" zurückliefert. Ich möchte aber nicht nur am Anfang und am Ende des Zeitraums die Action ausgelöst bekommen, sondern auch, wenn ich z.B. während des Zeitraums linknx neu starte. U
Bei dieser Variante:
Code:
<rule id="Zeige_Urlaubsmodus"> <condition type="and"> <condition type="timer" trigger="true"> <at day="11" month="8" hour="0" min="0" /> <until day="6" month="9" hour="0" min="0" /> </condition> </condition> <actionlist type="on-true"> <action type="set-value" id="Urlaubsmodus" value="on" /> </actionlist> <actionlist type="on-false"> <action type="set-value" id="Urlaubsmodus" value="off" /> </actionlist> </rule>
2014-08-11 23:37:20 [ INFO] TimeSpec: 1899-8-11 0:0:0 (wdays=0; exception=2)
2014-08-11 23:37:20 [ INFO] TimeSpec: 1899-9-6 0:0:0 (wdays=0; exception=2)
2014-08-11 23:37:20 [ INFO] PeriodicTask: Rescheduled at 2014-9-6 0:0:0 (1409954400)
Meine Idee war in der Folge einfach eine weitere Condition hinzuzufügen, mit der die Regel alle 1m (das war zum Testen) geprüft wird:
Code:
<rule id="Zeige_Urlaubsmodus"> <condition type="and"> <condition type="timer"> <at day="11" month="8" hour="0" min="0" /> <until day="6" month="9" hour="0" min="0" /> </condition> <condition type="timer" trigger="true"> <every>1m</every> </condition> </condition> <actionlist type="on-true"> <action type="set-value" id="Urlaubsmodus" value="on" /> </actionlist> <actionlist type="on-false"> <action type="set-value" id="Urlaubsmodus" value="off" /> </actionlist> </rule>
2014-08-11 23:45:40 [ INFO] Rule: Evaluate rule Zeige_Urlaubsmodus
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Rule: Rule Zeige_Urlaubsmodus evaluated as 1, prev value was 0
2014-08-11 23:45:40 [ INFO] Rule: Evaluate rule Zeige_Urlaubsmodus
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '1'
2014-08-11 23:45:40 [ INFO] Condition: TimerCondition evaluated as '0'
2014-08-11 23:45:40 [ INFO] Rule: Rule Zeige_Urlaubsmodus evaluated as 0, prev value was 1
2014-08-11 23:45:40 [ INFO] PeriodicTask: Rescheduled at 2014-8-11 23:46:40 (1407793600)
2014-08-11 23:45:40 [ INFO] Action: Execute SetValueAction: set Urlaubsmodus with value on
2014-08-11 23:45:40 [ INFO] KnxConnection: write(gad=1/7/29, buf, len=2)
2014-08-11 23:45:40 [ INFO] Object: New value on for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Action: Execute SetValueAction: set Urlaubsmodus with value off
2014-08-11 23:45:40 [ INFO] KnxConnection: write(gad=1/7/29, buf, len=2)
2014-08-11 23:45:40 [ INFO] Object: New value off for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Object: New value on for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:40 [ INFO] Object: New value off for object Urlaubsmodus (type: 1.001)
2014-08-11 23:45:55 [ INFO] Object: New value off for object RM_OG_DL_Buero (type: 1.001)
Ich verstehe auch nicht, warum die Timer-Condition einmal mit 1/1 und einmal mit 1/0 bewertet wird.....
Da mit "at" und "until" ja eigentlich nur auf einen konkreten Termin geprüft wird, habe ich mich auch an "during" versucht, aber hier habe ich mangels Beispielen überhaupt keine funktionierende Syntax zusammen bekommen.
Kommentar