Ankündigung

Einklappen
Keine Ankündigung bisher.

EINZELNE Time Cron Rule wird nicht ausgeführt!

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

    EINZELNE Time Cron Rule wird nicht ausgeführt!

    Aloha,

    jetzt muss ich meinem Ärger mal Luft machen. Ich habe ja gelernt, dass openHAB nicht in der Lage ist mehr als eine Time Cron Rule (mit OR Verknüpfung) ohne Fehler zu verarbeiten.
    Deshalb habe ich alle Rules umgestellt auf einzelne Time Cron Rules. Jetzt stelle ich aber vermehrt fest, dass noch nicht einmal einzelne Rules zuverlässig funktionieren!

    Beispiel:

    Code:
     [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]rule "Open raffstores weekdays early"[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]when[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        Time cron "0 6 7 ? * MON-FRI"[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]then[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        var hour = now.getHourOfDay[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        logWarn("Messages", "+++Open Raffstores in the morning early (weekdays). Holiday="+Holiday.state)[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        if(Holiday.state==OFF) {[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]                logWarn("Messages", "+++Open Raffstores.")[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]                postUpdate(Raffstore_Morgens, ON)[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        } else {[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]                logWarn("Messages", "+++Open Raffstores in the morning delayed (Holiday).")[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        }[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]end[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px] [/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]rule "Open raffstores weekdays"[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]when[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        Time cron "0 22 8 ? * MON-FRI"[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]then[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        var hour = now.getHourOfDay[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        logWarn("Messages", "+++Open Raffstores in the morning (weekdays). Holiday="+Holiday.state)[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        if(Holiday.state==ON && hour==8) {[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]                logWarn("Messages", "+++Open Raffstores.")[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]                postUpdate(Raffstore_Morgens, ON)[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]        }[/SIZE][/FONT][/COLOR]
      [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]end[/SIZE][/FONT][/COLOR]
    Seit heute funktionieren beide Rules nicht mehr. Bin einfach sprachlos.....ehrlich gesagt, wenn das wirklich an openHAB liegt, dann ist es am besten, wenn ich wieder zu MisterHouse zurückgehe, dass hat wenigstens zuverlässig funktioniert!
    Beste Grüße,
    Manolo

    P.S.: Ja ich habe schon einen Bugreport für die Time Cron Rules eingereicht, aber seit Anfang April OHNE Feedback

    #2
    Hmm, also bei mir funktionieren die Cron-Jobs fehlerfrei, allerdings sehe ich auf den ersten Blick bei Deiner Rule keinen Fehler.
    Hast Du Dir Deinen gesamten Code mal mit Designer angeschaut? Vielleicht hat sich wo anders ein Fehler eingeschlichen, der hier stören könnte.
    Dein now.getHourOfDay benötigt vermutlich ein
    Code:
    import org.joda.time.*
    bin aber leider kein Experte ...

    Kommentar


      #3
      Also je nachdem, was Du erreichen willst... postUpdate sorgt nur dafür, dass in der UI der Wert des Items auf ON wechselt. Wenn der Raffstore sich auch bewegen soll, musst Du sendCommand verwenden. Da Deine TimeCron-Trigger genau um 08:22:00 bzw. um 07:06:00 ansprechen, verstehe ich das now.getHourOfDay nicht, denn der Wert ist jeweils fix.
      Bei mir habe ich nach der Begrenzung auf die Wochentage noch einen * stehen, also z.B. Time cron "0 22 8 ? * MON-FRI *", ich bin mir da nicht sicher, ob der wirklich entfallen darf.

      Mit einzelnen TimeCron-Triggern (auch in Kombination mit einem anderen Nicht-TimeCron-Trigger) hatte ich hier noch nie Probleme, wenn die Schreibweise korrekt war.

      Welche Hardware verwendest Du denn? Wieviel Speicher? Wie sieht die Auslastung des Systems aus? Wieviele Ereignisse pro Sekunde hast Du auf dem openHAB Eventbus? Welche Version von openHAB verwendest Du genau? Welche JAva-Version verwendest Du?

      Kommentar


        #4
        Hi,

        ich habe die entsprechenden Imports in meinem Script:

        Code:
        [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]import org.openhab.core.library.types.*[/SIZE][/FONT][/COLOR]
        [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]import org.openhab.model.script.actions.*[/SIZE][/FONT][/COLOR]
        [COLOR=#29F914][FONT=Andale Mono][SIZE=12px]import org.joda.time.*[/SIZE][/FONT][/COLOR]
        Auch der Designer zeigt keine Fehler und das Log schmeißt auch keine Exception.
        Die Anweisung now.getHourOfDay hatte ich eigentlich eingebaut, um zwei Time Cron Expressions mit OR zu Verknüpfen, aber das ist ja wohl nicht der Grund warum diese einzelnen Time Cron Anweisungen ausgeführt werden.

        Zu meinem System:
        - MacMini 2,3GHz Core i7
        - 16 GB RAM
        - CPU 97% idle
        - openHAB 1.6.1
        - Java Build 1.8.0_31-b13
        - Pro Tag ca. 48.000 Events

        Bei Time Cron gibt es 7 Parameter wovon der letzte optional ist:
        1. Seconds
        2. Minutes
        3. Hours
        4. Day-of-Month
        5. Month
        6. Day-of-Week
        7. Year (optional field)
        Das heißt soweit ist syntaktisch alles korrekt. Trotzdem läuft die Rule manchmal und machmal nicht....verstehe ich nicht so ganz.
        Eine OR Verknüpfung dürfte ja programmiertechnisch auch nicht die größte Herausforderung sein, dann müsste ich keinen redundanten Regeln erstellen.
        Ich habe auch for einem Monat einen Bugreport erstellt: https://github.com/openhab/openhab/issues/2524
        aber wirklich dafür interessieren tut sich niemand. Wie gesagt ohne OR Verknüpfung ist openHAB für mich nicht brauchbar. Im allgemeinen ist omangezwungen sehr viel redundanten Code zu erzeugen. Kennt jemand eine gute Alternative zu openHAB?
        Danke, Manolo

        Kommentar


          #5
          Also, was mehrfache Time Cron Trigger betrifft, ist ja klar, dass das ein Bug ist, über den sich auch andere ärgern, aber es ist auch klar, dass der irgendwann auch korrigiert wird. Wenn es programmiertechnisch für Dich keine Herausforderung ist, den Bug zu finden und auszumerzen, bist Du herzlich eingeladen, einen PR einzureichen. Da ich Java überhaupt nicht beherrsche, kann ich leider nichts beitragen und warte halt ab. Bis dahin behelfe ich mir mit Workarounds, also z.B. mehrere Rules statt einer, wenn es auch eleganter wäre, das mit mehreren Triggern in einer Rule abzuhandeln.

          Da Triggerfehler wie Du sie beschreibst sonst nicht auftreten, glaube ich ehrlich gesagt nicht an ein grundsätzliches openHAB-Problem.

          Java ist bei Dir zwar nicht aktuell, aber grundsätzlich sollte die Version funktionieren, wichtig ist natürlich vor allem, dass es das Oracle-Java ist.
          Rein von der Rechnerleistung kannst Du ja aus dem Vollen schöpfen, die 64Bit-debian-VM, in der bei mir openHAB rennt, hat nur 1GB Arbeitsspeicher und auch nur einen Kern.

          Allerdings vermute ich mal, dass openHAB nicht die einzige Anwendung ist, die auf diesem Rechner läuft? Eventuell gibt's da Timing-Probleme mit einer anderen Anwendung. Das soll jetzt kein Vorwurf sein, nur, da openHAB bei vielen anderen Anwendern keine Probleme macht...

          Bei mir sind's im Schnitt auch so 48.000 bis 49.000 Events, also Dein Wert auch im Rahmen dessen, was für mich normal ist (ich hab allerdings mal wegen eines Fehlers meinerseits einen Endlos-Trigger gehabt, hat mir innerhalb eines Tages über 2GB events.log geschrieben, aufgefallen ist mir das erst, als die VM wegen Speichermangels rummuckte, weil openHAB trotz dieser verrückt spielenden Rule immer noch schnell reagierte.

          Um Deine eigentliche Frage zu beantworten:
          Alternativen zu openHAB gibt es sicherlich, die Frage ist, welche Eigenschaften von openHAB für Dich besonders wichtig sind. Ob die Alternativen, die für Dich alle Kriterien erfüllen, dann auch zuverlässiger laufen, ist natürlich auch nicht sicher.

          Kommentar


            #6
            Hi udo1toni,

            also Java programmieren kann ich. Welche Klasse muss ich mir den für die Cron Tabs anschauen?!?
            Wenn jemand die Anzahl Java-Klassen entrenen kann, dann wäre ich bereit mir das Problem azuschauen.

            Der Rechner, den ich verwende hat genug Ressource....aber es ist so wie du sagst...irgendwann kommt OH mit OR verknüpften Cronregeln ins schleudern...ist bestimmt nicht einfach das Problem zu finden!

            Kommentar


              #7
              Wie gesagt, ich hab leider keinen blassen Dunst, im Github-Repository gibt es aber eine Anleitung, wie man openHAB selbst übersetzen und die IDE für die Entwicklung einrichten kann. Vielleicht schaust Du auch in das englische Forum bei Google Groups rein, nicht, dass da schon jemand dran ist. Die meisten Entwickler sind wohl dort zu erreichen.

              Kommentar


                #8
                Aloha,

                nur mal eine ganz dumme Frage. Ich habe im openhab GIT Repository ein wenig herumgesurft, aber in welcher der millionen Java Klassen werden denn die Cron-Regeln verarbeitet? Gefunden habe ich bisher nichts brauchbares.
                Danke

                Kommentar

                Lädt...
                X