Ankündigung

Einklappen
Keine Ankündigung bisher.

" Merker "

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

    " Merker "

    Hallo ich als openhab beginner habe mal wieder eine Frage ud hoffe das mir jemand helfen kann.
    folgendes würde ich gere ralisieren.
    wenn das Licht Küche strahler ON ist und der Melder Essen ein ON sendet soll eine art Merker auf ON gehen und auch wenn die einschalbedingung nicht mehr 1 ist..der merker soll dann über einen Timer nach ca 15 min wieder auf OFF getzt werden.
    den merker möchte ic machen damit ich ihn in verschiedenen Rules einsetzen kann. Wäre cool wenn mir jemand auf die spürnge helfen könnte.


    rule "Testrule und"
    when
    Item EG_Kueche_Strahler changed to ON or
    Item Essen_Melder to ON
    then
    if (EG_Kueche_Strahler.state == ON && Essen_Melder.state == ON) {
    Merker1.0 changed to ON
    }
    end


    #2
    Am einfachsten definierst Du dazu ein Switch Item. da Du einen Timer zum automatischen Zurücksetzen verwenden willst, kannst Du das Expire Binding verwenden. Du kannst aber den Timer auch über eine Rule realisieren. Unterschied beider Varianten: Das Expire Binding ist sehr leicht einzurichten, aber man kann nur fixe Zeiten verwenden, ein Item, welches nach 15 Minuten zurückgesetzt werden soll, wird immer nach 15 Minuten zurückgesetzt (es sei denn, man ändert die Einstellung manuell und openHAB liest das Item erneut ein) Der Timer in der Rule ist variabel einsetzbar, man kann den Timer auch jederzeit abbrechen oder mit anderer Laufzeit neu starten.
    Items:
    Code:
    Switch MeinMerker1
    Switch MeinMerker2 {expire="15m,command=OFF"}
    Rules:
    Code:
    var Timer MyTimer = null
    
    rule "verwendet eigenen Timer"
    when
        Item EG_Kueche_Strahler changed to ON or                          //eins der Items wechselt nach ON
        Item Essen_Melder changed to ON
    then
        if (EG_Kueche_Strahler.state == ON && Essen_Melder.state == ON) { // sind beide Items ON?
            MeinMerker1.sendCommand(ON)                                   // Merker setzen
            if(MyTimer !== null) MyTimer.cancel                           // Vielleicht läuft der Timer schon/noch, dann weg damit
            MyTimer = createTimer(now.plusMinutes(15), [|
                MeinMerker1.sendCommand(OFF)                              // Merker zurücksetzen
                MyTimer = null                                            // Timer  ist abgelaufen, jetzt noch nullen
            ])
        }
    end
    
    rule "verwendet Expire Binding"
    when
        Item EG_Kueche_Strahler changed to ON or
        Item Essen_Melder changed to ON
    then
        if (EG_Kueche_Strahler.state == ON && Essen_Melder.state == ON)
            MeinMerker2.sendCommand(ON)
    end
    Die 2. Rule ist also wesentlich einfacher gestaltet, dafür muss man aber auch das Binding installieren (oh, welch Aufwand )
    In beiden Fällen wird der Merker retriggert, es wird also erst 15 Minuten nach dem letzten "beide Items sind ON" Ereignis zurück gesetzt. Wenn das nicht sein soll, müsste man auf die erste Variante ausweichen und dort den Timer nur setzen, wenn der Timer null ist, das heißt es entfällt dann der Befehl MyTimer.cancel. Das ist einer der Vorteile eines Rule Timers.

    Kommentar


      #3
      kann ich auch ein switch verwenden wenn ich diesen nirgens in der visu anzeigen lassen möchte? ich dachte immer switches tauchen automatisch in der visu auf?

      Kommentar


        #4
        Warum sollte das so sein? Eine Visu musst Du konfigurieren, da taucht nichts automatisch auf.

        Kommentar


          #5
          JA ok da habe ich wohl was falsch verstanden ...ich bin ja noch ganz am anfang und ob ich jemals soweit komme wie du das wage ich mal zu bezweifeln..

          Danke toni

          Kommentar


            #6
            Ach was, ich nutze openHAB seit Version 1.1, das ists schon ein paar Jährchen her. Wenn Du lang genug dabei bleibst, kommst Du auch leichter damit zurecht.

            Kommentar

            Lädt...
            X