Ankündigung

Einklappen
Keine Ankündigung bisher.

linknx Rule Problem

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

  • Groej
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • Groej
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • Groej
    antwortet
    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

    Einen Kommentar schreiben:


  • Groej
    antwortet
    Super Danke. Jetzt weiß ich auch wie ich noch eine Temperatur mit rein bringen kann.

    Danke nochmal.

    Schönen Sonntag noch.

    Gruß

    Jörg

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • Groej
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi Jörg,

    in der condition fehlt trigger="true".

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Groej
    hat ein Thema erstellt linknx Rule Problem.

    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
Lädt...
X