Ankündigung

Einklappen
Keine Ankündigung bisher.

cron getriggerte Rules starten nicht immer

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

    cron getriggerte Rules starten nicht immer

    Hallo zusammen,

    ich habe im Moment das Problem, das meine cron-getriggerten rules nicht mehr zuverlässig ausgeführt werden.
    Es lief alles mehrere Monate wie gewünscht.
    Im log sehe ich keine Fehlermeldungen, aber auch nicht das die rules gestartet wurde.

    Dann habe ich ein Update der Openhab SW-Komponenten gestartet und das FireMotD nachinstalliert (wg. einer Warnung/Hinweis).
    Seitdem stelle ich die Probleme fest.
    Kann es am FireMotD liegen?

    Rules, die mit items getriggert werden ohne Probleme und sicher durch.

    Hat/Hatte jemand von Euch ähnliche Beobachtungen?
    Oder kann mir jemand Tipps zur Lösung nennen?

    Ich habe auch schon die hälfte meiner Rules für eine Woche entfernt - aber auch kein stabileres Verhalten.

    Es läuft Openhab 2.4.0-1 auf einem Raspberry Pi 3+.
    Memory avg 64% (max 70%)
    CPU avg 6% (max 17%)

    Vielen Dank vorab
    Martin
    Zuletzt geändert von mortyPi; 11.10.2019, 08:28.

    #2
    Bei mit lag es an der Rule- Bezeichnung, seit dem Ich nur noch a-z_A-Z_0-9 (also nur Buchstaben und Zahlen) verwende, habe ich keine Probleme mehr.

    Kommentar


      #3
      Es kommt auf die Rules an, insbesondere, wie viele cron Trigger sich evtl. in die Quere kommen können. Default hat openHAB nur 2 Threads für den Scheduler reserviert, wenn Du nun z.B. eine Rule hast, die ständig getriggert wird und dann einen kleinen Timer setzt, blockiert dieser evtl. andere Timer. Da Du außer einem Update nichts gemacht hast, ist dies als Fehlerursache aber eher unwahrscheinlich.
      FiremotD hat mit openHAB nichts zu tun (im Sinne von Einfluss), der Dienst erstellt lediglich eine Übersicht über das Betriebssystem.

      Aber evtl.hast Du ja openHAB auch in irgendeiner Form upgedatet...

      Kommentar


        #4
        Hallo zusammen,

        danke für Eure Antworten.
        Meine Rule, die z.B. nicht sicher startet ist folgende:

        Code:
         [COLOR=#c586c0]rule[/COLOR][COLOR=#ce9178]"SonosWecker Schlafzimmer"[/COLOR]
          [COLOR=#c586c0]when[/COLOR]
          [COLOR=#569cd6]Time[/COLOR][COLOR=#d4d4d4] cron [/COLOR][COLOR=#ce9178]"0 33 5 ? * MON-FRI"[/COLOR]
          [COLOR=#c586c0]then[/COLOR]
          [COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#4ec9b0]SonosSchlafzimmer_Wecker[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
          [COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Control[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4])[/COLOR]
          [COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Favorite[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#ce9178]"SWR 3"[/COLOR][COLOR=#d4d4d4])[/COLOR]
          [COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Volume[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#b5cea8]6[/COLOR][COLOR=#d4d4d4])[/COLOR]
          [COLOR=#d4d4d4]            logInfo([/COLOR][COLOR=#ce9178]"Sonos >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"Sonos-Wecker Schlafzimmer"[/COLOR][COLOR=#d4d4d4])[/COLOR]
          
            [COLOR=#d4d4d4]            timerSonos [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] createTimer(now[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]plusMinutes([/COLOR][COLOR=#b5cea8]59[/COLOR][COLOR=#d4d4d4])) [|[/COLOR]
          [COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Stop[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#b5cea8]OFF[/COLOR][COLOR=#d4d4d4])[/COLOR]
          [COLOR=#d4d4d4]                logInfo([/COLOR][COLOR=#ce9178]"Sonos >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"Sonos-Wecker Schlafzimmer: Auto-off"[/COLOR][COLOR=#d4d4d4])[/COLOR]
          [COLOR=#d4d4d4]            ][/COLOR]
          [COLOR=#d4d4d4]    }[/COLOR]
          [COLOR=#c586c0]end[/COLOR]
        Parallel habe ich noch eine Rule, die mit einem minütlichen Cron aufgerufen wird.
        @udo1toni: meinst Du, das mein Timer in der Rule und die minütliche Rule sich in die Quere kommen?

        Ich habe jetzt meinen Sonos-Wecker mal auf 2 separate Rules aufgeteil (1 Rule für EIN + 1 Rule für AUS).
        Mal probieren, ob ich morgen früh geweckt werde ;-)

        Ich werde berichten!
        Martin
        Zuletzt geändert von mortyPi; 26.09.2019, 20:13.

        Kommentar


          #5
          Eine andere Möglichkeit ist, die Timer zu staffeln. Meist ist es unerheblich, ob ein Timer exakt zur vollen Minute triggert oder z.B. 5 Sekunden später. Falls Deine minütliche Rule also zur vollen Minute triggert, schieb sie versuchsweise mal ein paar Sekunden nach hinten.

          Was macht die minütliche Rule? In den seltensten Fällen ist eine Minuten-Rule die beste Lösung.

          Kommentar


            #6
            Vielen Dank für Deine Anregungen!

            Mit meiner minütlichen Rule überprüfe ich, ob ich mein Status für die laufende Waschmaschine und Trockner zurücksetzen kann.
            Ich überwache separat die Leistung der Geräte. Wenn die Leitung einen parametrierten Schwellwert X übersteigt wechselst mein Status auf aktiv. Wenn die Leistung unter den Wert Y für eine Zeit Z fällt, dann setze ich den Status zurück. (funktionierte die letzten Monate perfekt).

            Code:
             [COLOR=#6a9955]/*#################################################################[/COLOR]
              [COLOR=#6a9955]Timer für Prgramm-Ende (waschen & trocknen)[/COLOR]
              [COLOR=#6a9955]#################################################################*/[/COLOR]
              [COLOR=#c586c0]rule[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"Waschen_Trockner_AUS_Timer"[/COLOR]
              [COLOR=#c586c0]when[/COLOR][COLOR=#d4d4d4] [/COLOR]
              [COLOR=#569cd6]Time[/COLOR][COLOR=#d4d4d4] cron [/COLOR][COLOR=#ce9178]"0 * * * * ?"[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#6a9955]// jede Minute[/COLOR]
              [COLOR=#c586c0]then[/COLOR][COLOR=#d4d4d4] [/COLOR]
             [COLOR=#6a9955]//Waschmaschine[/COLOR]  
            [COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4]((waschen_aktiv[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) [/COLOR][COLOR=#d4d4d4]&&[/COLOR][COLOR=#d4d4d4] (iShellyPlugS_77_power[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]<[/COLOR][COLOR=#d4d4d4] par_waschen_power_aus)){[/COLOR]
              [COLOR=#6a9955]//wenn Power unterhalb Schwelle, dann inkrementiere den counter[/COLOR]
            [COLOR=#d4d4d4]waschen_counter [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] waschen_counter [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]1[/COLOR]
                [COLOR=#d4d4d4]logInfo([/COLOR][COLOR=#ce9178]"Waschen (5) >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"[Waschen_Trockner_AUS_Timer] Waschm-Power < Parameter [waschen_counter = "[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] waschen_counter [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"]"[/COLOR][COLOR=#d4d4d4])[/COLOR]
              [COLOR=#d4d4d4]}[/COLOR]
             
              [COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ((waschen_aktiv[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) [/COLOR][COLOR=#d4d4d4]&&[/COLOR][COLOR=#d4d4d4] (iShellyPlugS_77_power[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]>[/COLOR][COLOR=#d4d4d4] par_waschen_power_aus)){[/COLOR]
            [COLOR=#6a9955]//wenn Power überhalb der AUS-Schwelle liegt, wird counter auf 0 zurückgesetzt[/COLOR]
              [COLOR=#d4d4d4]waschen_counter [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]0[/COLOR]
                [COLOR=#d4d4d4]logInfo([/COLOR][COLOR=#ce9178]"Waschen (6) >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"[Waschen_Trockner_AUS_Timer] waschen_counter Reset"[/COLOR][COLOR=#d4d4d4])[/COLOR]
              [COLOR=#d4d4d4]}[/COLOR]
                [COLOR=#6a9955]//Trockner[/COLOR]
              [COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4]((trocknen_aktiv[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) [/COLOR][COLOR=#d4d4d4]&&[/COLOR][COLOR=#d4d4d4] (iShellyPlugS_78_power[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]<[/COLOR][COLOR=#d4d4d4] par_trocknen_power_aus)){[/COLOR]
              [COLOR=#6a9955]//wenn Power unterhalb Schwelle, dann inkrementiere den counter[/COLOR]
              [COLOR=#d4d4d4]trocknen_counter [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] trocknen_counter [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]1[/COLOR]
                [COLOR=#d4d4d4]logInfo([/COLOR][COLOR=#ce9178]"Waschen (7) >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"[Waschen_Trockner_AUS_Timer] Trockner-Power < Parameter [trocknen_counter = "[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] trocknen_counter [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"]"[/COLOR][COLOR=#d4d4d4])[/COLOR]
              [COLOR=#d4d4d4]}[/COLOR]
             
              [COLOR=#c586c0]else[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ((trocknen_aktiv[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) [/COLOR][COLOR=#d4d4d4]&&[/COLOR][COLOR=#d4d4d4] (iShellyPlugS_78_power[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]>[/COLOR][COLOR=#d4d4d4] par_trocknen_power_aus)){[/COLOR]
              [COLOR=#6a9955]//wenn Power überhalb der AUS-Schwelle liegt, wird counter auf 0 zurückgesetzt[/COLOR]
              [COLOR=#d4d4d4]trocknen_counter [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]0[/COLOR]
                [COLOR=#d4d4d4]logInfo([/COLOR][COLOR=#ce9178]"Waschen (8) >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"[Waschen_Trockner_AUS_Timer] trocknen_counter Reset"[/COLOR][COLOR=#d4d4d4])[/COLOR]
              [COLOR=#d4d4d4]}[/COLOR]
              [COLOR=#c586c0]end[/COLOR]
            Verstehe ich Dich richtig, das Du empfiehlst den minütlichen cron-job mit einem Offset von beispielsweise 15s laufen zu lassen?
            Ich fand bisher nur cron-Anleitungen und Generatoren für minütliche ODER sekündliche Jobs - nichts kombiniertes. Da muss ich mal weiter suchen oder testen.

            Danke soweit
            Martin

            Kommentar


              #7
              Naja, ich meinte, dass Du in Time cron nicht "0 * ..." schreibst, sondern "15 * ...", damit wird die Rule auch minütlich ausgeführt, aber eben um xx:xx:15 Uhr, nicht um xx:xx:00 Uhr.

              Aber wie ich das sehe, macht die Rule nichts anderes, als einen Counter minütlich hochzuzählen, oder wieder auf 0 zu setzen, sofern die entsprechende Maschine aktiv ist, abhängig vom aktuellen Verbrauch.
              Ich gehe davon aus, dass dass Du in einer anderen Rule dann diesen Counter auswertest, um nach einer gewissen Wartezeit den betreffenden Status auf OFF zu setzen?

              Die Herangehensweise ist vermutlich viel zu kompliziert.

              Aber zuerst noch etwas Grundsätzliches: Du verwendest die Log-Befehle verkehrt. Die LogBefehle erwarten zwei Strings, der erste String ist der Loggername, der zweite String die ausgegebene Meldung. Je nach Logbefehl wird die Meldung auf einem anderen Level ausgegeben.

              Der Loggername ist aber keine beliebige Zeichenkette (auch wenn man eine beliebige Zeichenkette verwenden kann), sondern ein kurzer String (Buchstaben, Ziffern und Unterstrich, der Punkt hat eine Sonderfunktion), der alle zueinander gehörenden Meldungen sozusagen gruppiert.
              Der Witz dabei ist, dass man die Logmeldungen gezielt ein- und ausschalten kann, aber natürlich nur, wenn sie einen gemeinsamen Loggernamen tragen.
              Diese Steuerung erfolgt normalerweise über die Karaf Konsole und ist sofort wirksam, das heißt, Du musst dazu openHAB nicht beenden. Du musst keine Zeilen auskommentieren. Da man das Level setzen kann, ab dem Meldungen ausgegeben (bzw. unterdrückt) werden, kann man die Meldungen so gestalten, dass nur ein Teil der Meldungen ausgegeben wird, obwohl sie logisch zur gleichen Gruppe gehören.
              Sinnvollerweise hat man also pro Rule nur einen Loggernamen, eventuell sogar Rule-übergreifend nur einen Namen, logisch zusammengehörende Rules haben dann einen gemeinsamen Loggernamen.


              Vermutlich lässt sich die Aufgabe besser mit zwei Timern lösen. Der Timer wird gestartet, sobald der Verbrauch unter die definierte Schwelle sinkt (dazu wird lediglich für das entsprechende Item auf changed getriggert und anschließend verglichen).
              Steigt der Verbrauch wieder über den Grenzwert, so wird der Timer abgebrochen.
              Läuft der Timer ab, so ist der Endwert des Counters erreicht und es wird was auch immer gemacht.
              Man könnte sogar beide Geräte mit der selben Rule erschlagen, müsste dann allerdings eine Hasmap für die Timer einsetzen, die betreffenden Items in Gruppen packen und anschließend nur über die Gruppen mit den Items arbeiten, was bei zwei Geräten mehr Overhead erzeugt, als es Code durch geringere Redundanz spart. Wenn Du aber meinetwegen mehr als 4 Geräte so überwachst, wird eine Generalisierung sinnvoll.
              Zuletzt geändert von udo1toni; 28.09.2019, 13:18.

              Kommentar


                #8
                Hallo udo1toni! Wiedermal vielen Dank für Deine ausführliche Erklärung.

                Ich habe meine cron-jobs nun im Sekundenbereich versetzt. Bin mal gespannt ob das nun Besserungen zeigt.
                Wenn das nicht wirkt werde ich Deinen Vorschlag aufgreifen und meine Aufgabe auf 2 Timer umschreiben.

                Und Danke auch für die Erklärung der Log-Befehle. Bisher habe ich die Karaf-Konsole nur benutzt, um zu sehen welche Binding-Versionen ich laufen habe. :-)
                Aber wenn mein aktuelles Problem gelöst ist, schaue ich mir mal die ganzen Log-Funktionen an.

                Schönen Abend

                Kommentar


                  #9
                  Hallo zusammen,

                  hier ein Zwischenstatus zu meinem Problem.
                  Die Vorschläge von udo1toni helfen leider nicht.

                  Allerdings bin ich im Moment der Meinung, das nach einem Neustart von Openhab2 alle Rules wie gewünscht laufen.
                  Wenn ich im laufenden Betrieb eine Rule per FTP aktualsiere, scheint es nicht mehr zu funktionieren. Dir cron-gesteuerten Rules werden nicht mehr ausgeführt.


                  Wie komme ich darauf?
                  --> Ich sende seit gestern in meiner minütlichen cron-Rule einen Zeitstempel in die Log-Datei.

                  Code:
                   [COLOR=#6a9955]/*##############################################################[/COLOR]
                    [COLOR=#6a9955]Sonos-Wecker Schlafzimmer[/COLOR]
                    [COLOR=#6a9955]##############################################################*/[/COLOR]
                    [COLOR=#c586c0]rule[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"SonosWecker Schlafzimmer EIN"[/COLOR]
                    [COLOR=#d4d4d4]    [/COLOR][COLOR=#c586c0]when[/COLOR]
                    [COLOR=#d4d4d4]        [/COLOR][COLOR=#569cd6]Time[/COLOR][COLOR=#d4d4d4] cron [/COLOR][COLOR=#ce9178]"0 33 5 ? * MON-FRI *"[/COLOR][COLOR=#d4d4d4]    [/COLOR]
                    [COLOR=#d4d4d4]    [/COLOR][COLOR=#c586c0]then[/COLOR]
                    [COLOR=#d4d4d4]    logInfo([/COLOR][COLOR=#ce9178]"ZEIT >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"[Sonos_011.rules - Schlafz EIN] Zeit: "[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#d4d4d4]+[/COLOR][COLOR=#d4d4d4] today_time[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state)[/COLOR]
                    [COLOR=#d4d4d4]    [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#4ec9b0]SonosSchlafzimmer_Wecker[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]==[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
                    [COLOR=#d4d4d4]            [/COLOR][COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Control[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]            [/COLOR][COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Favorite[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#ce9178]"Bayern 1"[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]            [/COLOR][COLOR=#4ec9b0]SonosPLAY1Schlafzimmer_Volume[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]sendCommand([/COLOR][COLOR=#b5cea8]6[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]            logInfo([/COLOR][COLOR=#ce9178]"Sonos >>>"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]"Sonos-Wecker Schlafzimmer: on"[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]    }[/COLOR]
                    [COLOR=#c586c0]end[/COLOR]
                  Und dieser minütlicher Log-Eintrag endet, wenn ich eine Rules aktualisiere. Bzw. läuft wieder, nachdem ich OH2 neu gestartet habe.

                  Wirklich seltsam!!!
                  Das hat in der Vergangenheit immer funktioniert.

                  Ich suche mal weiter nach dem Problem .....

                  Viele Grüße
                  Martin

                  Kommentar


                    #10
                    Zitat von mortyPi Beitrag anzeigen
                    Allerdings bin ich im Moment der Meinung, das nach einem Neustart von Openhab2 alle Rules wie gewünscht laufen.
                    Wenn ich im laufenden Betrieb eine Rule per FTP aktualsiere, scheint es nicht mehr zu funktionieren. Dir cron-gesteuerten Rules werden nicht mehr ausgeführt.

                    […]

                    Und dieser minütlicher Log-Eintrag endet, wenn ich eine Rules aktualisiere. Bzw. läuft wieder, nachdem ich OH2 neu gestartet habe.
                    Ich tippe da auf ein Berechtigungsproblem im Dateisystem. Hat die Datei nach dem Update via FTP noch Leseberechtigungen für den User-Account mit dem openhab läuft? (FTP benutzt Du wahrscheinlich nicht mit dem selben User)
                    Zeigt das das Log denn eine Erfolgsmeldung oder einen Fehler beim Update der Rules-Datei?

                    Es gibt ein Script zur Korrektur der Dateisystemberechtigungen der im Config-Verzeichnis. Falls das beim Starten automatisch mit läuft, würde das Deine Beobabachtungen vollständig erklären.

                    Kommentar


                      #11
                      Zitat von mortyPi Beitrag anzeigen
                      Wenn ich im laufenden Betrieb eine Rule per FTP aktualsiere, scheint es nicht mehr zu funktionieren. Dir cron-gesteuerten Rules werden nicht mehr ausgeführt.


                      Wie komme ich darauf?
                      --> Ich sende seit gestern in meiner minütlichen cron-Rule einen Zeitstempel in die Log-Datei.
                      Irgendwie passt die Rule nicht zu Deiner Aussage

                      Gehen denn ab em FTP-Zugriff gar keine Rules mehr, oder nur die cron Rules?

                      Kommentar


                        #12
                        Nach dem FTP Zugriff haben die per Items getriggerten Rules weiterhin stabil funktioniert. Nur die Cron-Rules machen mir Probleme.
                        Die Berechtigungen der Rules-Dateien sind für alle Gruppen lesbar (664).
                        Sorry, ja ich hatte den falschen Code eingefügt.

                        ABER: Über das Wochenende hat mein minütlicher Zeitstempel im Log wieder ausgesetzt. Dieses mal ohne irgendwelche Eingriffe von meiner Seite (ich war nicht zuhause ;-)).
                        Ein Grund dafür ist in der Log Datei nicht zu sehen. Es hört einfach auf.
                        Daher denke ich das meine Vermutung mit den FTP-File Zugriffen nicht die Ursache ist.

                        Ich suche mal weiter.....

                        Kommentar


                          #13
                          Guten Morgen zusammen,

                          ich glaube ich habe das Problem gefunden und gelöst!

                          Seit dem ich die Bindings "CALdav (Command)" und "CALdav (personal)" deinstalliert habe funktionieren die cron getriggerten Regeln wieder zuverlässig.
                          Diese hatte ich mir für den Müll- und andere Kalender installiert, auf die nun erst einmal verzichten werde.

                          Ja in den Log´s habe ich bzgl CALdav einige Warnungen gefunden, wobei die Termine hier zuverlässig ausgelöst wurden.

                          Code:
                          2019-10-03 02:29:44.574 [WARN ] [caldav.internal.job.EventReloaderJob] - Sardine exception reading ics file: 4j2kj4pkaga21j19hc3kp2ddv6_google_com
                          com.github.sardine.impl.SardineException: Unexpected response
                              at com.github.sardine.impl.handler.ValidatingResponseHandler.validateResponse(ValidatingResponseHandler.java:48) ~[253:org.openhab.io.caldav:1.13.0]
                              at com.github.sardine.impl.handler.VoidResponseHandler.handleResponse(VoidResponseHandler.java:34) ~[253:org.openhab.io.caldav:1.13.0]
                              at com.github.sardine.impl.SardineImpl.get(SardineImpl.java:756) ~[253:org.openhab.io.caldav:1.13.0]
                              at com.github.sardine.impl.SardineImpl.get(SardineImpl.java:741) ~[253:org.openhab.io.caldav:1.13.0]
                              at com.github.sardine.impl.SardineImpl.get(SardineImpl.java:732) ~[253:org.openhab.io.caldav:1.13.0]
                              at com.github.sardine.impl.SardineImpl.get(SardineImpl.java:145) ~[253:org.openhab.io.caldav:1.13.0]
                              at org.openhab.io.caldav.internal.job.EventReloaderJob.loadEvents(EventReloaderJob.java:318) [253:org.openhab.io.caldav:1.13.0]
                              at org.openhab.io.caldav.internal.job.EventReloaderJob.execute(EventReloaderJob.java:137) [253:org.openhab.io.caldav:1.13.0]
                              at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
                              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
                          Zu dieser Warnung habe ich auch schon gegoogelt, aber für mich keine Lösung gefunden.
                          Es soll mit den cfg-Dateien von CALdav zusammen hängen. Diese habe ich manuell gelöscht, damit sie beim nächsten Startup automatisch wirder "frisch" angelegt werden.
                          Wie gessagt hat das bei mir nicht funktioniert.
                          Ich werde nun in diese Richtung mal wieder weiter forschen..... ;-(

                          Danke für Eure Hilfe

                          Martin
                          Zuletzt geändert von mortyPi; 12.10.2019, 09:01.

                          Kommentar


                            #14
                            Es reicht in diesem Fall nicht, die *.cfg dateien zu löschen, Du musst Dich auch in Karaf anmelden und dort die Konfiguration löschen, da openHAB die Konfiguration nur anlegt, aber nicht aktiv entfernt.

                            Kommentar


                              #15
                              Hallo udo1toni,

                              danke für Deinen Hiweis/Tipp.
                              Werden die *.cfg Dateien auch durch die Deinstallation gelöscht?

                              Ich frage mich gerade folgendes: Wenn ich die CALdav-Bindings jetzt wieder neue installiere, ob dann die *.cfg neu übernommen werden, oder ob ich diese per Karaf trotzdem bereinigen muss?

                              Kommentar

                              Lädt...
                              X