Ankündigung

Einklappen
Keine Ankündigung bisher.

Sprache: Rule vorzeitig abbrechen

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

    [Codebeispiel] Sprache: Rule vorzeitig abbrechen

    Hallo zusammen,

    bei komplexeren Rules mit mehreren Prüfungen hintereinander wäre es schön, wenn man die weitere Ausführung der Rule abbrechen könnte, statt immer tiefer geschachtelte if then else konstrukte zu bauen.
    In den meisten Programmiersprachen gibt es dafür ein exit, oder quit oder halt.

    Sicher gibt es das auch in der openHAB Sprache? Wie geht'n das?
    Beispiel
    Code:
    if (Regenmenge>100) {
       tuwas
        logwas
        exit
    }
    
    //Dieser Teil des Codes wird nicht mehr ausgeführt
    if (ZeitfürXY>10) {
    StarteXY
    }

    #2
    hab grad keinen Designer zur Hand, könnte evtl. sowas wie return() sein... Ansonsten kann man natürlich auch die Rule umbauen:
    Code:
    if (Regenmenge>100) {
        tuwas
        logwas
    }
    [COLOR=#FF0000]else {[/COLOR]
        //Dieser Teil des Codes wird nicht mehr ausgeführt[COLOR=#FF0000], falls Regenmenge > 100[/COLOR]
        if (ZeitfürXY>10) {
            StarteXY
        }
    [COLOR=#FF0000]}[/COLOR]

    Kommentar


      #3
      Hallo,

      es gibt
      Code:
      return 1
      Habe ich auch hier im Forum gesehen und setze es auch ein.

      Holger

      Kommentar


        #4
        Zitat von HolgerW Beitrag anzeigen
        Hallo,

        es gibt
        Code:
        return 1
        Oh schön! Das sieht sogar noch besser aus.
        Weißt Du oder jemand anderer vielleicht, wie sich aus einer Rule eine andere aufrufen lässt und der so angegebene Rückgabewert anschließend auswerten lässt?
        Das würde mir wirklich weiterhelfen.

        Kommentar


          #5
          Such mal nach "Lambda"
          Hier gibts ein Beispiel: https://github.com/openhab/openhab/w...-via-Functions

          Holger

          Kommentar

          Lädt...
          X