Ankündigung

Einklappen
Keine Ankündigung bisher.

Rollos hoch sobald die Nacht vorbei ist

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

    Rollos hoch sobald die Nacht vorbei ist

    Hallo Leute,
    ich habe irgendwie einen Denkfehler mit meiner Ausführung.

    angedacht ist im Regelfall, dass die Rollos früh mit einer Zeitverzögerung nach dem die Nacht auf off geht. Das funktioniert auch ohne probleme. Nun wollte ich da es ja erst später hell wird die Rollos hochfahren sobald die Nacht vorbei ist. Aber die rule wird nicht ausgeführt.
    Jedoch wird nicht einmal der Time cron ausgeführt.

    hier die rule dazu:

    Code:
    import org.openhab.model.script.actions.Timer
    var Timer timer = null
    
    rule "Rollos Morgens"
    when
    Time cron "0 0 6 * * ?"
    then RS_timer_switch.sendCommand(ON)
    end
    
    rule "Rollos Morgens aus"
    when Time cron "0 15 9 * * ?"
    then RS_timer_switch.sendCommand(OFF)
    end
    
    rule "Rollos halb Runter"
    when
    Item Nacht changed
    then
    if (Nacht.state == ON) {
    LR_switch.sendCommand(30)
    RS_Buero_switch.sendCommand(30)
    RS_Kizi_switch.sendCommand(30)
    RS_Kueche_switch.sendCommand(30)
    }
    end
    
    
    rule "Rollos Runter"
    when
    Item Nacht changed to ON
    then
    timer = createTimer(now.plusMinutes(60)) [|
    sendCommand(LR_switch, 50)
    sendCommand(RS_Kueche_switch, 50)
    
    timer = null
    ]
    
    end
    
    rule "Rollos Hoch"
    when
    Item Dusk changed to OFF
    then
    if (Nacht.state == OFF && RS_timer == ON)
    sendCommand(LR_switch, 0)
    sendCommand(RS_Buero_switch, 0)
    sendCommand(RS_Kizi_switch, 0)
    sendCommand(RS_Kueche_switch, 0)
    else {
    if (Nacht.state == OFF && RS_timer == OFF)
    timer = createTimer(now.plusMinutes(30)) [|
    sendCommand(LR_switch, 0)
    sendCommand(RS_Buero_switch, 0)
    sendCommand(RS_Kizi_switch, 0)
    sendCommand(RS_Kueche_switch, 0)
    timer = null
    ]
    }
    
    end
    Zuletzt geändert von TheDeathAngel; 18.10.2018, 08:09.

    #2
    Du verwendest openHAB1 ? Welche Version genau? Es gibt sowohl in openHAB1 als auch in openHAB2 ein Astro Binding, welches genau für diese Aufgabe gedacht ist.
    Du verwendest verschiedene Items, in den beiden ersten Rules setzt Du ein Item RS_timer_switch, in der Rule "Rollos Hoch" fragst Du ein RS_timer ab, vermutlich soll das ein Item sein, Du verwendest in der gleichen Abfrage das Item Nacht korrekt (mit .state am Ende), warum nicht bei dem anderen Item (welches vermutlich entweder in den ersten beiden Rules oder eben in der letzten Rule falsch geschrieben ist) auch?

    So ganz allgemein solltest Du Deinen Code formatieren (Codeblöcke einrücken) und die Methode Item.sendCommand(Value) der Action sendCommand(Item,String) vorziehen.

    Kommentar


      #3
      Hallo Udo,
      ich verwende openHAB 2.3 und die befehle kommen aus meiner Wetterstation wenn das Nachtsignal beginnt bzw. endet.
      das mit dem Itemnamen hab ich auch erst gerade gesehen, dass da ein kleiner fehler drin ist. Hab mich schon gewundert warum der Crontab nicht ausgeführt wird.
      Der Crontab geht allerdings nun schonmal und ich habe auch die Rule beim RS_timer.state noch ergänzt was noch gefehlt hatte. Nur warte ich auf morgen früh und schau was passiert.

      Kommentar


        #4
        Wenn Du OH2.3 verwendest kannst Du den import löschen, den brauchst Du nicht.

        Schau Dir mal das Astro Binding an. Du gibst Deine Position an, darauf erhältst Du Channel für alle möglichen Sonnen- (und Mond-) daten, z.B. Sonnenaufgang und Sonnenuntergang.
        Weiterhin gibt es Event-Channel, die dann als Trigger für eine Rule dienen können. Für Event-Channel kannst Du zum einen einen Offset angeben, um dann z.B. "15 Minuten nach Sonnenaufgang" eine Rule zu triggern. Zum anderen kannst Du ein Zeitfenster vorgeben, innerhalb dessen Grenzen getriggert wird. Du kannst dann z.B. Earliest = 6 Uhr und Latest = 8 Uhr einstellen, dann wird frühestens um 6 Uhr getriggert, spätestens um 8 Uhr, falls der Sonnenaufgang (mit Offset) innerhalb dieses Zeitfensters liegt, wird die Rule zu diesem Zeitpunkt getriggert. Die Rule sieht dann so aus:
        Code:
        rule "Astro Trigger"
        when
            Channel astro:sun:rise#event triggered START
        then
            myShutterGroup.members.forEach[m|m.sendCommand(UP)]
        end
        fährt dann alle Läden, die zur Gruppe myShutterGroup gehören zum konfigurierten Sonnenaufgang-Event hoch.

        Kommentar


          #5
          Hallo Udo,

          da ich teilweise immer wieder Probleme mit dem Astrobinding hatte, steuere ich meine Rollos über die Wetterstation.
          ich habe den Hochfahrbefehl für die Wintermonate nun über Logigbausteine im Bus gelöst und Heute früh hat es dann auch funktioniert. mal sehen was passiert wenn nächste Woche die Zeitumstellung ist :-D

          Kommentar

          Lädt...
          X