Hallo zusammen,
ich versuche gerade mein linknx davon zu überzeugen mir auf einer GA die Info zu senden, ob im EG eine Lampe an ist, oder nicht. Irgendwie scheint er bei mir nur den ersten Eintrag der OR-Condition zu bewerten und sendet dann korrekt "eine Lampe ist an" auf den Bus. Wird die Lampe für den ersten Eintrag ausgeschaltet, sendet er nicht "eine Lampe ist aus", sondern ein Telegram für die deaktivierte Lampe (so verstehe ich zumindest das Log). Bei dem Schalten z.B. der zweiten oder dritten Lampe aus der Condition wird zwar irgendwas gemacht, aber nichts sinniges.
Hier ein Ausschnitt aus der Config:
<object type="1.001" id="EG_DL_Garderobe" gad="1/1/3">EG DL Garderobe</object>
<object type="1.001" id="EG_DL_HWR" gad="1/1/5">EG DL HWR</object>
<object type="1.001" id="EG_DL_WC" gad="1/1/7">EG DL WC</object>
<object type="1.001" id="EG_WL_WC" gad="1/1/8">EG WL WC</object>
<object type="1.001" id="CHECK_LIGHT_EG" gad="15/0/1" flags="cwtuf">Es ist ein Licht an im EG</object>
</objects>
<rule id="Pruefen_auf_Licht_im_EG">
<condition type="or" trigger="true">
<condition type="object" id="EG_DL_Garderobe" value="on" trigger="true"/>
<condition type="object" id="EG_DL_HWR" value="on" trigger="true"/>
<condition type="object" id="EG_DL_WC" value="on" trigger="true"/>
<condition type="object" id="EG_WL_WC" value="on" trigger="true"/>
</condition>
<actionlist type="if-true">
<action type="set-value" id="CHECK_LIGHT_EG" value="on"/>
</actionlist>
<actionlist type="on-true">
<action type="set-value" id="CHECK_LIGHT_EG" value="on"/>
</actionlist>
<actionlist type="on-false">
<action type="set-value" id="CHECK_LIGHT_EG" value="off"/>
</actionlist>
<actionlist type="if-false">
<action type="set-value" id="CHECK_LIGHT_EG" value="off"/>
</actionlist>
</rule>
Schalte ich das Licht in der Garderobe an, passiert:
2014-08-04 00:38:40 [ INFO] Object: New value on for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:38:40 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:38:40 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='1' to value='1'
2014-08-04 00:38:40 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '1'
2014-08-04 00:38:40 [ INFO] Rule: Rule Pruefen_auf_Licht_im_EG evaluated as 1, prev value was 1
2014-08-04 00:38:40 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:38:40 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:38:40 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001
==> Das entspricht meiner Erwartung.
Schalte ich die Lampe wieder aus:
2014-08-04 00:39:24 [ INFO] Object: New value off for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:39:24 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:39:24 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:39:24 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:39:24 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:39:24 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '0'
==> Er erkennt richtig, aber sendet kein Signal für aus.
Schalte ich ich im HWR ein:
2014-08-04 00:40:49 [ INFO] Object: New value on for object EG_DL_HWR (type: 1.001)
2014-08-04 00:40:49 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:40:49 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:40:49 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:40:49 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='1' to value='1'
2014-08-04 00:40:49 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '1'
2014-08-04 00:40:49 [ INFO] Rule: Rule Pruefen_auf_Licht_im_EG evaluated as 1, prev value was 1
2014-08-04 00:40:49 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:40:49 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:40:49 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
==> Er erkennt wieder richtig und setzt die GA auf "an"
Schalte ich wieder aus:
2014-08-04 00:41:46 [ INFO] Object: New value off for object EG_DL_HWR (type: 1.001)
2014-08-04 00:41:46 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:41:46 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:41:46 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:41:46 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:41:46 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '0'
==> passiert wieder das selbe wie eben.
Lass ich übrigens in der OR-Condition den Trigger weg, verändert sich bei den Meldungen zum Einschalten der Garderobenbeleuchtung nichts, beim Ausschalten wird jedoch das Signal für HWR (an oder aus) auf den Bus gesendet:
2014-08-04 00:43:55 [ INFO] Object: New value off for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:43:55 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:43:55 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:43:55 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:43:55 [ INFO] KnxConnection: write(gad=1/1/5, buf, len=2)
==> das ist zwar anders, aber auch total falsch.
Wie komme ich zu einem richtigen Ergebnis und der korrekten Meldung ? Ich habe jetzt viel gelesen, verglichen und probiert, aber mittlerweile sind mir die Ideen ausgegangen.
Vielleicht benötige ich ja nur einen kleinen Stups ?!?
ich versuche gerade mein linknx davon zu überzeugen mir auf einer GA die Info zu senden, ob im EG eine Lampe an ist, oder nicht. Irgendwie scheint er bei mir nur den ersten Eintrag der OR-Condition zu bewerten und sendet dann korrekt "eine Lampe ist an" auf den Bus. Wird die Lampe für den ersten Eintrag ausgeschaltet, sendet er nicht "eine Lampe ist aus", sondern ein Telegram für die deaktivierte Lampe (so verstehe ich zumindest das Log). Bei dem Schalten z.B. der zweiten oder dritten Lampe aus der Condition wird zwar irgendwas gemacht, aber nichts sinniges.
Hier ein Ausschnitt aus der Config:
<object type="1.001" id="EG_DL_Garderobe" gad="1/1/3">EG DL Garderobe</object>
<object type="1.001" id="EG_DL_HWR" gad="1/1/5">EG DL HWR</object>
<object type="1.001" id="EG_DL_WC" gad="1/1/7">EG DL WC</object>
<object type="1.001" id="EG_WL_WC" gad="1/1/8">EG WL WC</object>
<object type="1.001" id="CHECK_LIGHT_EG" gad="15/0/1" flags="cwtuf">Es ist ein Licht an im EG</object>
</objects>
<rule id="Pruefen_auf_Licht_im_EG">
<condition type="or" trigger="true">
<condition type="object" id="EG_DL_Garderobe" value="on" trigger="true"/>
<condition type="object" id="EG_DL_HWR" value="on" trigger="true"/>
<condition type="object" id="EG_DL_WC" value="on" trigger="true"/>
<condition type="object" id="EG_WL_WC" value="on" trigger="true"/>
</condition>
<actionlist type="if-true">
<action type="set-value" id="CHECK_LIGHT_EG" value="on"/>
</actionlist>
<actionlist type="on-true">
<action type="set-value" id="CHECK_LIGHT_EG" value="on"/>
</actionlist>
<actionlist type="on-false">
<action type="set-value" id="CHECK_LIGHT_EG" value="off"/>
</actionlist>
<actionlist type="if-false">
<action type="set-value" id="CHECK_LIGHT_EG" value="off"/>
</actionlist>
</rule>
Schalte ich das Licht in der Garderobe an, passiert:
2014-08-04 00:38:40 [ INFO] Object: New value on for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:38:40 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:38:40 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='1' to value='1'
2014-08-04 00:38:40 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '1'
2014-08-04 00:38:40 [ INFO] Rule: Rule Pruefen_auf_Licht_im_EG evaluated as 1, prev value was 1
2014-08-04 00:38:40 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:38:40 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:38:40 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:38:40 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001
==> Das entspricht meiner Erwartung.
Schalte ich die Lampe wieder aus:
2014-08-04 00:39:24 [ INFO] Object: New value off for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:39:24 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:39:24 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:39:24 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:39:24 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:39:24 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '0'
==> Er erkennt richtig, aber sendet kein Signal für aus.
Schalte ich ich im HWR ein:
2014-08-04 00:40:49 [ INFO] Object: New value on for object EG_DL_HWR (type: 1.001)
2014-08-04 00:40:49 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:40:49 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:40:49 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:40:49 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='1' to value='1'
2014-08-04 00:40:49 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '1'
2014-08-04 00:40:49 [ INFO] Rule: Rule Pruefen_auf_Licht_im_EG evaluated as 1, prev value was 1
2014-08-04 00:40:49 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:40:49 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Action: Execute SetValueAction: set CHECK_LIGHT_EG with value on
2014-08-04 00:40:49 [ INFO] KnxConnection: write(gad=15/0/1, buf, len=2)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
2014-08-04 00:40:49 [ INFO] Object: New value on for object CHECK_LIGHT_EG (type: 1.001)
==> Er erkennt wieder richtig und setzt die GA auf "an"
Schalte ich wieder aus:
2014-08-04 00:41:46 [ INFO] Object: New value off for object EG_DL_HWR (type: 1.001)
2014-08-04 00:41:46 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:41:46 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:41:46 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:41:46 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:41:46 [ INFO] Condition: ObjectCondition (id='EG_DL_HWR') evaluated as '0'
==> passiert wieder das selbe wie eben.
Lass ich übrigens in der OR-Condition den Trigger weg, verändert sich bei den Meldungen zum Einschalten der Garderobenbeleuchtung nichts, beim Ausschalten wird jedoch das Signal für HWR (an oder aus) auf den Bus gesendet:
2014-08-04 00:43:55 [ INFO] Object: New value off for object EG_DL_Garderobe (type: 1.001)
2014-08-04 00:43:55 [ INFO] Rule: Evaluate rule Pruefen_auf_Licht_im_EG
2014-08-04 00:43:55 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='1'
2014-08-04 00:43:55 [ INFO] Condition: ObjectCondition (id='EG_DL_Garderobe') evaluated as '0'
2014-08-04 00:43:55 [ INFO] KnxConnection: write(gad=1/1/5, buf, len=2)
==> das ist zwar anders, aber auch total falsch.
Wie komme ich zu einem richtigen Ergebnis und der korrekten Meldung ? Ich habe jetzt viel gelesen, verglichen und probiert, aber mittlerweile sind mir die Ideen ausgegangen.
Vielleicht benötige ich ja nur einen kleinen Stups ?!?
Kommentar