Ankündigung

Einklappen
Keine Ankündigung bisher.

OH 3 Rollo Steuerung temperaturabhängig

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

    OH 3 Rollo Steuerung temperaturabhängig

    Hallo Zusammen,

    ich möchte das bei mir die Rollos bei zu viel lichteinfall und entsprechender höheren Außentemperatur die Rollos entsprechend Herrunterfahren.

    Code:
    rule "SonnenstandundRollo"
    when
    Item WZ_Rollo_Sonne changed
    then
    if (WZ_Rollo_Sonne.state == 50 && WZ_TRaum.state < Temp_A.state) {
    WZ_Rollo_Logic.sendCommand(50)
    }
    else {
    if (WZ_Rollo_Sonne.state == 20)
    WZ_Rollo_Logic.sendCommand(20)
    }
    end
    rule "SonnenstandundRollo0"
    when
    Item WZ_Rollo_Sonne changed
    then
    if (WZ_Rollo_Sonne.state == 0)
    WZ_Rollo_Logic.sendCommand(0)
    }
    end
    das mit dem state 20 fahren funktioniert, jedoch das anfahren der 50 funktioniert leider nicht. wo liegt hier der fehler ?
    das bei den 20 % keine Temperaturabfrage erfolgt, ist so gewollt da ein senden der 20% nur erfolgt wenn vorher die 50% angefahren werden.


    grüße Frank

    #2
    Wie sind die Items definiert? Insbesondere die beiden Items WZ_TRaum und Temp_A. Ansonsten: Warum zwei Rules? Die Rules haben beide den gleichen Trigger, es laufen also immer beide Rules, das ist Quatsch. Also besser so:
    Code:
    rule "SonnenstandundRollo"
    when
        Item WZ_Rollo_Sonne changed
    then
        if(WZ_Rollo_Sonne.state == 0)
            WZ_Rollo_Logic.sendCommand(0)
    
        if(WZ_Rollo_Sonne.state == 20)
            WZ_Rollo_Logic.sendCommand(20)
    
        if(WZ_Rollo_Sonne.state == 50 && (WZ_TRaum.state as Number).intValue < (Temp_A.state as Number).intValue)
            WZ_Rollo_Logic.sendCommand(50)
    end
    oder:
    Code:
    rule "SonnenstandundRollo"
    when
        Item WZ_Rollo_Sonne changed
    then
        switch(WZ_Rollo_Sonne.state) {
            case  0:
                WZ_Rollo_Logic.sendCommand(0)
            case 20:
                WZ_Rollo_Logic.sendCommand(20)
            case 50:
                if((WZ_TRaum.state as Number).intValue < (Temp_A.state as Number).intValue)
                    WZ_Rollo_Logic.sendCommand(50)
        }
    end

    Kommentar


      #3
      Hi Udo,

      ich probiere das mal.
      Die beiden Items sind als Number definiert.

      Kommentar

      Lädt...
      X