Ankündigung

Einklappen
Keine Ankündigung bisher.

Beschattung (rechnung in der linknx)

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

    Beschattung (rechnung in der linknx)

    Hallo,

    ich hätte wiedermal eine frage.

    Ich möchte für meine Beschattung 2 Temperaturen Vergleichen (1 Normaler aussentemp fühler, und 1 Temperatur die in einer schwarzen Box in der prallen Sonne sitzt)
    Die Temperatur in der schwarzen Schachtel müsste umd Delta=10°C höher sein als der Normale Aussen Fühler.

    mein Vergleich sieht bisher so aus:

    Code:
    <rule id="Sonne-Berechnung">
        <condition type="timer" trigger="true">
        <every>60s</every>
        </condition>
            <condition type="and">
            <condition type="script">
                return tonumber(obj("sonne_berechnung")) > tonumber(obj("aussen_temp"));
            </condition>
            
            <condition type="timer" trigger="true">
                <at type="sunrise" offset="5h"/>
                <until type="sunset"/>
                </condition>
            </condition>
        <actionlist>
            <action type="set-value" id="freigabe_beschattung" value="1"/>
        </actionlist>
        <actionlist type="on-false">
        <action type="set-value" id="freigabe_beschattung" value="0"/>
        </actionlist>
        </rule>
    Wie kann ich ihm sagen das die "sonne_berechnung" um 5 höher sein muss als die "aussen_temp"?
    Ich hoffe hier kennt sich wer mit LUA aus. Hab die ganze Nacht die Anleitung studiert, bin aber keinen Schritt weiter gekommen...

    Mein Ansatz wäre:

    Code:
    <rule id="Sonne-Berechnung">
        <condition type="timer" trigger="true">
        <every>60s</every>
        </condition>
            <condition type="and">
            <condition type="script">
                return tonumber(obj("sonne_berechnung")) > tonumber(obj("aussen_temp")[COLOR=Red]+5[/COLOR]);
            </condition>
           
            <condition type="timer" trigger="true">
                <at type="sunrise" offset="5h"/>
                <until type="sunset"/>
                </condition>
            </condition>
        <actionlist>
            <action type="set-value" id="freigabe_beschattung" value="1"/>
        </actionlist>
        <actionlist type="on-false">
        <action type="set-value" id="freigabe_beschattung" value="0"/>
        </actionlist>
        </rule>
    ist das wirklich so einfach? Oder hab ich die Anleitung nicht verstanden?

    Das 2te wäre: Wie kann ich ihm klar machen, dass er nicht sofort umschalten soll falls der Wert unter 10°C differenz fällt?(Und ich genau den Punkt erwische?)
    Kann LUA den Mittelwert aus z.b einer halben Stunde/ oder Stunde nehmen? Oder muss ich das mit der Ausführung des Scripts Timen?

    Gruß Volker

    #2
    Hoi Volker

    Du kommst von ganz alleine auf die Knackpunkte,

    Die "time-counter" Bedingung kann wahrscheinlich dein Problem lösen:

    Wenn die innere Bedingung wahr ist, wird der Zähler jede Sekunde inkrementiert.
    Wenn der "threshold" Wert erreicht ist, wird die "time-counter" Bedingung wahr.
    Wenn die innere Bedingung falsch ist während "reset-delay" Sekunden, wird der Zähler wieder gelöscht.
    Code:
    <rule id="Verzoegerung_Sonne_runter">
        <condition type="and">
            <condition type="time-counter" threshold="120" reset-delay="1">
                <condition type="object" id="Sonne unverzoegert" value="on" trigger="true" />
            </condition>
            <condition type="object" id="Sonnenautomatik" value="on" />
        </condition>
        <actionlist>
            <action type="set-value" id="Jalousien Dach" value="on" />
        </actionlist>
    </rule>
    <rule id="Verzoegerung_Sonne_hoch">
        <condition type="and">
            <condition type="time-counter" threshold="900" reset-delay="1">
                <condition type="object" id="Sonne unverzoegert" value="off" trigger="true" />
            </condition>
            <condition type="object" id="Sonnenautomatik" value="on" />
        </condition>
        <actionlist>
            <action type="set-value" id="Jalousien Dach" value="off" />
        </actionlist>
    </rule>
    Mit freundlicher Unterstützung von jef2000.
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Zitat von vlamers Beitrag anzeigen
      ist das wirklich so einfach?
      Hoi Volker

      Ja ich denke das ist so einfach. Höchstens noch ne Klammer rum um das Vergleichsglied mit dem plus.
      Tonumber holt ja die Zahl aus dem Objekt und ist quasi die Zahl.
      Grüsse Bodo
      Fragen gehören ins Forum, und nicht in mein Postfach;
      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

      Kommentar


        #4
        Hallo,

        bin endlich mal dazu gekommen die Code Zeile zu testen.
        Jetzt wird die rule aber gar nicht mehr abgearbeitet.

        Woran könnte das den liegen?

        Code:
        <rule id="Sonne-Berechnung">
            <every>900s</every>
                <condition type="and">
                 <condition type="time-counter" threshold="120" reset-delay="1">
                 <condition type="script">
                    return tonumber(obj("sonne_berechnung")) > tonumber(obj("aussen_temp"));
                    </condition>
                    </condition>
                    </condition>
                <actionlist>
                <action type="set-value" id="zwischen-berechnung" value="1"/>
                </actionlist>
                </rule>
                
            <rule id="temp-vergleich">
            <every>900s</every>
                 <condition type="script">
                    return tonumber(obj("aussen_temp")) > tonumber(obj("temp_wohnzimmer_ist"));
                </condition>
            <actionlist>
                <action type="set-value" id="sonne-temp-vergleich" value="1"/>
                </actionlist>
            <actionlist type="on-false">
                <action type="set-value" id="sonne-temp-vergleich" value="0"/>
            </actionlist>
            </rule>
                
            <rule id="Sonne-Freigabe-1">
            <condition type="and">
                <condition type="object" id="zwischen-berechnung" value="1" trigger="true"/>
                <condition type="object" id="beschattung_auto" value="1" trigger="true"/>
                <condition type="object" id="sonne-temp-vergleich" trigger="true" value="true"/>
            </condition>
            <actionlist>
            <action type="set-value" id="freigabe_beschattung" value="1"/>
            </actionlist>
            <actionlist type="on-false">
                <action type="set-value" id="freigabe_beschattung" value="0"/>
            </actionlist>
        
            </rule>
        Gruß vlamers

        Kommentar


          #5
          Hi Volker

          Du setzt
          Code:
          <action type="set-value" id="zwischen-berechnung" value="1"/>
          und wie kommt der Wert wieder auf 0? Da passiert nix mehr, wenn der mal auf 1 ist.
          Fehlt da nicht auch der trigger="true"?
          Code:
          <condition type="script" trigger="true">
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #6
            auf 0 setze ich alle weiter unten in der linknx. Wollte da nicht meine ganze Datei einstellen :-)

            Das mit dem Trigger=true könnte mein Problem lösen. Ich hab es aus einem Bsp. raus kopiert da stands auch nicht drin.

            Gruß Volker

            Kommentar

            Lädt...
            X