Ankündigung

Einklappen
Keine Ankündigung bisher.

Error during the execution of startup rule

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

    Error during the execution of startup rule

    Hallo zusammen,

    seit einigen Tagen funktioniert meine Startup rule nicht mehr.
    Hat jemand eine Idee woran das liegen könnte, ich habe diesbezüglich nichts geändert.

    Folgende Fehlermeldung erhalte ich im openhab.log:
    Error during the execution of startup rule 'Calculate trash dates': Invalid format: "Uninitialized"

    Meine Rule lautet wie folgt:
    Code:
    import org.openhab.core.library.types.*
    import org.openhab.core.persistence.*
    import org.openhab.model.script.actions.*
    import org.joda.time.*
    
    rule"Calculate trash dates"
    //aus Exec-Input Anzeige für Mülltermine berechnen
    when
    Time cron "0 0 1 * * ?" or
    System started
    
    then
    
    var DateTime date_yellow
    var DateTime date_black
    var DateTime date_green
    var DateTime date_now
    var String trash_yellow
    var String trash_black
    var String trash_green
    
    date_yellow = parse(""+Exec_TrashYellow.state)
    date_black = parse(""+Exec_TrashBlack.state)
    date_green = parse(""+Exec_TrashGreen.state)
    date_now = parse(""+now.getYear+"-"+now.getMonthOfYear+"-"+now.getDayOfMonth)
    
    if (date_now.equals(date_yellow)) { trash_yellow="heute" }
    else if (date_now.equals(date_yellow.minusDays(1))) { trash_yellow="morgen" }
    else if (date_now.equals(date_yellow.minusDays(2))) { trash_yellow="übermorgen" }
    else { trash_yellow=date_yellow.toString("E dd.MM.yyyy") }
    
    if (date_now.equals(date_black)) { trash_black="heute" }
    else if (date_now.equals(date_black.minusDays(1))) { trash_black="morgen" }
    else if (date_now.equals(date_black.minusDays(2))) { trash_black="übermorgen" }
    else { trash_black=date_black.toString("E dd.MM.yyyy") }
    
    if (date_now.equals(date_green)) { trash_green="heute" }
    else if (date_now.equals(date_green.minusDays(1))) { trash_green="morgen" }
    else if (date_now.equals(date_green.minusDays(2))) { trash_green="übermorgen" }
    else { trash_green=date_green.toString("E dd.MM.yyyy") }
    
    TrashYellow.postUpdate(""+trash_yellow)
    TrashBlack.postUpdate(""+trash_black)
    TrashGreen.postUpdate(""+trash_green)
    
    end
    Besten Dank.
    crax

    #2
    Fehlt da nicht noch was? Wo kommt denn Exec_Trashxxxxx usw. her?

    Kommentar


      #3
      Hi, nein da fehlt nichts. Die Daten kommen aus verschiedenen Textfiles, welche auch vorhanden sind.
      Die Rule funktioniert auch soweit, allerdings nicht beim Startup.

      Kommentar


        #4
        Ein Item ist bei Startup "Uninitialized" und kann damit nicht weiterverarbeitet werden.
        Ich vermute, dass das Item "Exec_TrashYellow" und die anderen beiden Items eben beim Systemstart noch nicht initialisiert sind und somit das parsen nicht funktioniert.

        Einfach zu Beginn prüfen, ob die Items Undefined oder Uninitialized sind, und dementsprechend entweder abwarten oder was anderes machen.
        Das Problem wird sein, dass die Rule ausgeführt wird, bevor die Items das erste Update erfahren...


        Hast Du die Items und Rules über mehrere Dateien verteilt? Dann ist das vielleicht ein Teil Deines Problems....

        Kommentar

        Lädt...
        X