Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx Rule Problem

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

    linknx Rule Problem

    Hallo,

    ich möchte wenn ein Objekt den Wert 1 hat eine Actionlist ausführen. Bekomm das aber irgendwie nicht hin.

    <rule id="TaupunktSteuerung">
    <condition type="object" id="taupunkt_st" value="1" op="eq""/>
    </condition>
    <actionlist type="if-true">
    <action type="set-value" id="luefter" value="1"/>
    <action type="set-value" id="garage_fenster_oeffner" value="1"/>
    </actionlist>
    </rule>
    Ich hab da leider kein Beispiel gefunden im Wiki vom linknx. Nur eins für object-compare und hab das versucht davon abzuleiten.

    Kann mir jemand sagen wo mein Fehler ist?

    Danke

    Gruß

    Jörg

    #2
    Hi Jörg,

    in der condition fehlt trigger="true".

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hallo,

      super danke hat geklappt. Frech wie ich bin hab ich gleich noch ein paar Fragen.

      Wenn der Wert nicht mehr 1 ist werden die Action Objects nicht mehr zurück zu geschaltet. Kann man das ändern oder brauche ich eine zweite Rule um bei Wert 0 die beiden Action Objects wieder auszuschalten?

      Kann man auch noch eine Zeitsteuerung einbauen? Also sowas wie am Anfang jeder Stunde die Rule prüfen und dann die Rule nur 30 Minuten ausführen bzw. das ausschalten in der zweiten Rule zum ausschalten zu jeder 30. Minute ausführen.

      Danke

      Gruß

      Jörg

      Kommentar


        #4
        Hi,

        zum ausschalten kannst Du auch noch eine if-false actionlist hinzufügen. Das entspricht dem "else" in anderen Programmiersprachen.

        Zeisteuerung geht auch... ich bin mir aber nicht sicher, was Du willst. Hier mal ein Beispiel, wie ich es verstanden habe:
        Code:
        <condition type="and">
        	<condition type="object" id="taupunkt_st" value="1"/>
        	<condition type="timer" trigger="true">
        		<at min="0"/>
        	</condition>
        </condition>
        <actionlist>
        	<action type="set-value" id="luefter" value="1"/>
        	<action type="set-value" id="garage_fenster_oeffner" value="1"/>
        	<action type="set-value" id="luefter" value="0" delay="30m"/>
        	<action type="set-value" id="garage_fenster_oeffner" value="0" delay="30m"/>
        </actionlist>
        Hier wird jede volle Stunde der Taupunkt geprüft, und falls Lüfter und Fenster geöffnet wurden, werden diese auch 30 Minuten später geschlossen. Nachteil hier: Kein "nachtriggern" - wenn der Taupunkt noch nicht wieder ok ist, werden die Fenster geschlossen und dann zur nächsten vollen Stunde geöffnet.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Super Danke. Jetzt weiß ich auch wie ich noch eine Temperatur mit rein bringen kann.

          Danke nochmal.

          Schönen Sonntag noch.

          Gruß

          Jörg

          Kommentar


            #6
            Guten Morgen,

            ich hab das gestern mal probiert. Irgendwie will er die Zeilen mit den Timer nicht schlucken. Kommentiere ich diese in der XML Datei aus startet linknx auch wieder. Nun muß ich aber dazu sagen das ich jetzt auch noch einen Aussentemperatur vergleich mit reingenommen habe. Kann man nur zwei Konstanten in einen AND Regel packen?

            Gruß

            Jörg

            Kommentar


              #7
              Hi,

              bitte poste bei so konkreten Fragen doch einfach den code mit, dann kann man (hoffentlich) direkt sehen, was da nicht stimmt.

              So wie ich Deine Frage interpretiere, startet linknx gar nicht. Ein Blick ins linknx.log sagt normalerweise, was nicht stimmt.

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                #8
                Guten Tag,

                sorry war ne weile nicht hier aus beruflichen Gründen. Wie gesagt habe ich mir ja eine Taupunksteuerung gebastelt. Die Steuerung selbst mit Vergleich usw. klappt auch.
                Was ich nicht hinbekomme ist folgendes:
                Ich möchte das diese Regel immer nur zur vollen Stunde ausgeführt wird und wenn sie zutrifft der Lüfter und das Fenster 30 Minuten aufbleiben und dann wieder schließen.

                Hier mal dir Rule aus der linknx.xml

                <rule id="TaupunktSteuerung">
                <condition type="and">
                <!-- <condition type="timer" trigger="true">
                <at min="0">
                -->
                <condition type="object" id="taupunkt_auto" value="1" trigger="true"/>
                <condition type="object" id="taupunkt_eq" value="1" trigger="true"/>
                <condition type="object" id="temp_aussen" value="5.0" op="gte" trigger="true"/>
                </condition>
                <actionlist type="if-true">
                <action type="set-value" id="luefter" value="1"/>
                <action type="set-value" id="garage_fenster_oeffner" value="0"/>
                <action type="set-value" id="luefter" value="0" delay="30m"/>
                <action type="set-value" id="garage_fenster_oeffner" value="1" delay="30m"/>
                </actionlist>
                </rule>
                Den Timer Teil hatte ich mal rausgenommen weil sonst die XML nicht geladen wurde.

                Schönen Sonntag

                Gruß

                Jörg

                Kommentar


                  #9
                  Hallo Jörg,

                  das hier ist klar Syntax, es muss
                  Code:
                  <condition type="timer" trigger="true">
                      <at min="0"/>
                  </condition>
                  -->
                  heissen.

                  Als Tip: Verwende einen xml-Editor (der hätte Dir diesen Fehler hier wahrscheinlich gezeigt) oder noch besser einen mit xsd Unterstützung. Die original linknx.xsd oder die von mir im Forum bereitgestellte kommentierte linknx.xsd, die verhindern solche Fehler und sind eine tolle Editier-Hilfe.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Hallo,

                    danke jetzt hat linknx die xml geschluckt. Ich weiß nur noch nicht ob auf der delay funktioniert.
                    Mal was anderes. Ich glaube ich habe irgendwo mal gelesen das man in der xml Datei einen Bereich Start oder so anlegen kann bei dem Werte auf den Bus geschickt werden können einmalig beim Start von linknx. Ich find das bloß nicht mehr. Kann mir jemand sagen ob ich mich irre oder wenn nicht wie das geht?

                    Danke

                    Gruß

                    Jörg

                    Kommentar

                    Lädt...
                    X