Ankündigung

Einklappen
Keine Ankündigung bisher.

Linknx und Sonnensteuerung

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

    Linknx und Sonnensteuerung

    Hallo Forum,
    ich habe versucht unter linknx 0.0.26 und unter Verwendung von knxweb v0.6 eine komfortable Jalousiesteuerung zu programmieren.
    Folgende Aufgabenstellung gilt es zu lösen:
    Wenn die Sonne länger als 120sek scheint (Helligkeitsmelder=1) fahren die Jalousien runter.
    Bleibt die Sonne länger als 900sek konstant aus, fahren die Jalousien wieder hoch.
    Die Schaltung soll über einen Hand/Automaikschalter abschaltbar sein.

    Folgenden Lösungsansatz habe ich versucht (Ausschnitt aus link.xml):
    Code:
     <rule id="Verzoegerung_Sonne_runter">
         <condition type="and">
          <condition type="object" id="Sonne unverzoegert" value="on" trigger="true" />
          <condition type="object" id="Sonnenautomatik" value="on" />
         </condition>
         <actionlist>
          <action type="set-value" id="Sonne verzoegert" value="on" delay="120" />
         </actionlist>
     </rule>
     <rule id="Verzoegerung_Sonne_hoch">
         <condition type="and">
          <condition type="object" id="Sonne unverzoegert" value="off" trigger="true" />
          <condition type="object" id="Sonnenautomatik" value="on" />
         </condition>
         <actionlist>
          <action type="set-value" id="Sonne verzoegert" value="off" delay="900" />
         </actionlist>
     </rule>
     <rule id="Sonne_Jalousie_runter">
         <condition type="and">
          <condition type="object" id="Sonne verzoegert" value="on" trigger="true" />
          <condition type="object" id="Sonne unverzoegert" value="on" trigger="true" />
          <condition type="object" id="Sonnenautomatik" value="on" />
         </condition>
         <actionlist>
      <action type="set-value" id="Jalousien Dach" value="on" />
         </actionlist>
     </rule>
     <rule id="Sonne_Jalousie_hoch">
         <condition type="and">
          <condition type="object" id="Sonne verzoegert" value="off" trigger="true" />
         <condition type="object" id="Sonne unverzoegert" value="off" trigger="true" />
          <condition type="object" id="Sonnenautomatik" value="on" />
         </condition>
         <actionlist>
          <action type="set-value" id="Jalousien Dach" value="off" />
         </actionlist>
     </rule>

    In der ersten Regel wird zunächst die Verzögerung umgesetzt (Die brauche ich später noch für weitere Sachen)
    Als Problem stellte sich das "Delay" heraus. Der Befehl kann nicht neu getriggert werden, d.h. wenn vor Ablauf von 720sek (900sek-120sek) die Sonne wieder scheint, laufen die 900sek weiter ab und die Jalousien fahren hoch.
    In der Regel "Jalousien hoch" und "Jalousien runter" frage ich daher den tatsächlichen Stand der Sonne ab.
    Hat evtl. schon einmal jemand etwas Ähnliches konfiguriert, bzw. hat einen intelligenteren Ansatz?

    Gruß df9ik
    Angehängte Dateien

    #2
    Normalerweise kann man derlei Logik direkt in die Wetterzentrale verfrachten.

    U.U. macht es Sinn die Kriterien Zeit u. Temperatur zu integrieren - was im Sommer "stört" ist im Winter vlt. willkommen.
    Gruss
    GLT

    Kommentar


      #3
      Von einer Wetterzentrale habe ich ja nichts geschrieben. Es gibt einen "alten" 2-Kanal Helligkeitsmelder. Der erste Kanal meldet die Dunkelheit, der zweite eben die Sonne.
      Die Aufgabe ist den alten ABB-Logikbaustein komplett zu ersetzen.

      Kommentar


        #4
        Hallo,

        Du kannst folgende config probieren. Ich habe es nicht selbst versucht, aber die "time-counter" Bedingung kann wahrscheinlich dein Problem lösen.

        Wenn die innere Bedingung wahr ist, ist Zähler jede Sekunde inkrementiert. Wenn "threshold" Wert ist erreicht, die "time-counter" Bedingung ist wahr. Wenn innere Bedingung ist falsch während "reset-delay" Sekunden, ist Zähler 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>
        Mfg,

        Jean-François

        Kommentar


          #5
          Hallo Jean-François,

          vielen Dank für die Hilfe.
          Nach einem Test mit einigen Tagen Sonne und Wolken funktioniert das nun ausgezeichnet. Das war genau die Lösung.
          Der Befehl war mir bisher nicht bekannt.

          Gruß df9ik

          Kommentar

          Lädt...
          X