Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx/knxweb: Regel zur Leseanforderung erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    linknx/knxweb: Regel zur Leseanforderung erstellen

    Hallo,

    ich spiele gerade ein wenig mit Linknx / Knxweb herum und habe leider zum Dimmen einen Dimmaktor (Jung Universaldimmaktor 3500REG mit Applikationsprogramm "Dimmen 300B01 0.1"), welcher keinen Status (Helligkeitswert) von sich aus auf den Bus schickt.

    Er kann aber (wenn man ihn z.B. in der ETS freundlich fragt) seinen Wert auf den Bus schicken.

    Gibt es eine Möglichkeit bei linknx den Status eines Objekts beim Lesen abzufragen? --- also z.B. so:

    Code:
         <rule id="Rueckmeldung_EZ_Deckenlampe">
            <condition type="object" id="2_0_0_DeckenlampeDimmen" value="0" ob="gt" trigger="true">
            </condition>
            <actionlist>
              <action type="????" />
            </actionlist>
         </rule>
    Also da, wo die Fragezeichen sind, müsste jetzt der Befehl zur Leseanforderung kommen.

    Ideen? Oder muß ich mich doch von meinen beiden Dimmaktoren verabschieden? (gehörten zu den "SchnellundbilligbeiEBayersteigernweilamAnfangweni gGeldvorhanden"-Käufen).

    Viele Grüße,

    Stefan
    Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

    #2
    Zitat von lobo Beitrag anzeigen
    Gibt es eine Möglichkeit bei linknx den Status eines Objekts beim Lesen abzufragen? --- also z.B. so:
    Vielleicht hilft dir das: ich bringe alle 10 Minuten den Ist-Wert der RTR auf den Bus, weil die nichts senden und ich diese Werte aufzeichnen und in der Visu darstellen will.

    Code:
     <rule id="update-values">
          <condition type="timer" trigger="true" >
            <every>600</every>
          </condition>
          <actionlist>
            <action type="shell-cmd" cmd="/sw/bin/groupread ip:192.168.1.20 1/4/6" />
            ....
            ....
            <action type="shell-cmd" cmd="/sw/bin/groupread ip:192.168.1.20 
          </actionlist>
        </rule>
    Tru
    EIB/KNX, VISU mit knxd + linknx + knxweb, Steuerbefehle via SMS und Email mit postfix + procmail

    Kommentar


      #3
      Ja - super - das wäre es eigentlich ...

      mit
      Code:
      /usr/bin/groupread ip:192.168.1.12 2/0/2
      direkt in der Bash wird ein Lesebefehl ausgeführt (leider funkt mir frecherweise noch mein BJ Raumpanel dazwischen - aber das ist eine andere Geschichte ...)

      Jetzt kann ich so aber die Regel nicht starten, weil linknx den Wert 0 für ein Dimmobjekt nicht mag:

      Code:
      2010-11-01 12:21:08,516 [ERROR] main: Error in config: DimmingObjectValue: Bad value: '0'
      OK - dann also den ganzen Vergleichskram weggelassen:

      Code:
       <condition type="object" id="2_0_0_DeckenlampeDimmen" trigger="true">
      - aber leider wird die Regel dann beim Dimmen nicht ausgeführt.

      ... ich muss mir wohl doch noch mal durchlesen, wie das mit dem 4-bit Dimmen funktioniert (hatte gedacht, ich hätte es kapiert) - und ggf. den Start-Stopp-Befehl abfangen.
      Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

      Kommentar


        #4
        OK - jetzt geht es --- irgendwie auch nicht ;(

        Jetzt frage ich ab mit:

        Code:
            <rule id="Rueckmeldung_EZ_Deckenlampe">
              <condition type="or" trigger="true">
                 <condition type="object" id="2_0_0_DeckenlampeDimmen" value="stop" trigger="true">
                 </condition>
                 <condition type="object" id="2_0_1_DeckenlampeSchalten" value="on" trigger="true">
                 </condition>
                 <condition type="object" id="2_0_1_DeckenlampeSchalten" value="off" trigger="true">
                 </condition>
             </condition>
                 <actionlist>
                  <action type="shell-cmd" cmd="/usr/bin/groupread ip:127.0.0.1 2/0/2" />
                 </actionlist>
             </rule>
        Und irgendwie beim ersten Mal wird die Regel auch ausgeführt, nicht aber, wenn ich auf das Lampensymbol des Dimmers (zum ein- und ausschalten) drücke.

        In Linknx wird mir wohl (so wie ich es verstehe) anhand des gemeldeten Helligkeitswertes angezeigt, ob die Lampe an- oder aus ist. Beim Ein- oder Ausschalten führt die Regel aber nicht dazu, dass tatsächlich auch der Status nochmals von Linknx abgefragt wird. Auch das Erstellen von 3 Regeln (ohne oder-Verknüpfung) führt nicht zum Ergebnis:

        Code:
            <rule id="Rueckmeldung_EZ_Deckenlampe_1">
         <!--     <condition type="or" trigger="true"> -->
                 <condition type="object" id="2_0_0_DeckenlampeDimmen" value="stop" trigger="true">
                 </condition>
         <!--     </condition>-->
                 <actionlist>
                  <action type="shell-cmd" cmd="/usr/bin/groupread ip:127.0.0.1 2/0/2" />
                 </actionlist>
             </rule>
        
            <rule id="Rueckmeldung_EZ_Deckenlampe_2">
                 <condition type="object" id="2_0_1_DeckenlampeSchalten" value="on" trigger="true">
                 </condition>
                 <actionlist>
                  <action type="shell-cmd" cmd="/usr/bin/groupread ip:127.0.0.1 2/0/2" />
                 </actionlist>
             </rule>
        
            <rule id="Rueckmeldung_EZ_Deckenlampe_3">
                 <condition type="object" id="2_0_1_DeckenlampeSchalten" value="off" trigger="true">
                 </condition>
                 <actionlist>
                  <action type="shell-cmd" cmd="/usr/bin/groupread ip:127.0.0.1 2/0/2" />
                 </actionlist>
             </rule>
          </rules>
        Obwohl alle 3 Regeln aktiviert werden (ich starte zum Test linknx aus der Bash):

        Code:
        2010-11-01 21:09:26,715 [ INFO] Rule: Rule: Configuring Rueckmeldung_EZ_Deckenlampe_1 (active=1)
        2010-11-01 21:09:26,715 [ INFO] Condition: ObjectCondition: configured value_m='stop'
        2010-11-01 21:09:26,715 [ INFO] Rule: ActionList: Configuring ''
        2010-11-01 21:09:26,716 [ INFO] Action: ShellCommandAction: Configured
        2010-11-01 21:09:26,716 [ INFO] Rule: Rule: Configuration done
        2010-11-01 21:09:26,717 [ INFO] Rule: Rule: Configuring Rueckmeldung_EZ_Deckenlampe_2 (active=1)
        2010-11-01 21:09:26,717 [ INFO] Condition: ObjectCondition: configured value_m='on'
        2010-11-01 21:09:26,717 [ INFO] Rule: ActionList: Configuring ''
        2010-11-01 21:09:26,717 [ INFO] Action: ShellCommandAction: Configured
        2010-11-01 21:09:26,718 [ INFO] Rule: Rule: Configuration done
        2010-11-01 21:09:26,718 [ INFO] Rule: Rule: Configuring Rueckmeldung_EZ_Deckenlampe_3 (active=1)
        2010-11-01 21:09:26,718 [ INFO] Condition: ObjectCondition: configured value_m='off'
        2010-11-01 21:09:26,718 [ INFO] Rule: ActionList: Configuring ''
        2010-11-01 21:09:26,719 [ INFO] Action: ShellCommandAction: Configured
        ... führt aber ein Senden einer 1 oder 0 nicht immer dazu, dass der Status des Dimmers nochmals abgefragt wird.

        Wenn ich das mit der ETS nachspiele (und auf die Adresse 2/0/1 - Schaltadresse des Dimmkanals) eine 1 oder 0 sende, löst diese nur beim ersten Mal eine Abfrage aus --- zu dem Zeitpunkt war die Lampe aber gerade noch an (und schaltete sich nach dem Absetzen des Status aus).

        Ein weiteres Beispiel zeigen die angehängten Telegramme (mit Rot kommentiert). Scheinbar führt ein erneutes Senden desselben Wertes auf die GA 2/0/1 trotz "trigger="true"" nicht zu einem erneuten Ausführen der Regel.

        Wer kann mir aus meiner Konfusion helfen ??
        Angehängte Dateien
        Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...

        Kommentar

        Lädt...
        X