NEWS
Probleme mit Cron-Plus Jobs
-
Ich habe das Problem, dass Cron-.Jobs NICHT ausgelöst werden.
Ein manuelles Anstoßen in Node-red ist möglich.Hier soll 1x tgl z.B. Strom_Bezug_Zaehler 1x tgl um 0:00 Uhr in eine Influx-DB geschrieben werden.
Die Cron-Syntax lautet:
Eigentlich sollte die Syntax korrekt sein- und die Zeiten werden im Job auch korrekt angezeigt:
WO habe ich hier einen "Denkfehler" ?
DANKE
-
@ak68 Und woran siehst Du das es nicht funktioniert - hast Du debug Nodes dran gemacht.
Ich habe hier übrigens einen fertigen Subflow oder hier gemacht, der was ähnliches macht. Ich würde nur alles in eine Cronplus Node stecken und über das topic verzweigen.
-
Das Influx-Archiv ist leer und wird aber bei einem manuellen Senden (Button Tagesimpuls) gefüllt
-
@ak68 Wie gesagt macht debug Nodes mit dem gesamten Nachrichtenobjekt rein und lass es im iobroker Protokoll ausgeben (Systemkonsole)
Du kannst ja auch mal alle Minuten eine Nachricht ausgeben lassen und dann siehst ja ob die cron Node funktioniert.
-
-
@ak68
Leider wurden die Daten wieder nicht in die Influx-DB geschrieben (trotz korrektem debug)Es taucht aber im log folgende Fehlermedlung auf, die evtl damit zu tum haben könnte:
Wie und wo sollte der Context-Speicher definiert sein ?
In den Cron-nodes ist dieser bei mir so definiert:
außerdem:
Ist das korrekt ?
-
@ak68 sagte in Probleme mit Cron-Plus Jobs:
WO habe ich hier einen "Denkfehler" ?
Die Daten, die geschrieben werden sollen, hast du noch nicht gezeigt. Könnte es sein, dass um exakt 0:00 Uhr einfach noch keine Daten vorliegen?
-
@marc-berg sagte in Probleme mit Cron-Plus Jobs:
@ak68 sagte in Probleme mit Cron-Plus Jobs:
WO habe ich hier einen "Denkfehler" ?
Die Daten, die geschrieben werden sollen, hast du noch nicht gezeigt. Könnte es sein, dass um exakt 0:00 Uhr einfach noch keine Daten vorliegen?
Doch die Daten liegen vor (vgl. Thread oben mit Anzeige der Systemkonsole)
z.B. Strom_Bezug_Zähler oder Strom_Bezug_Heute -
@ak68 Jedenfalls siehst Du, dass es an den Cron Nodes erst mal nicht liegt und auch Werte ausgelesen werden.
Angeblich soll es zwar mit dem Adapter 5.2.0 nun einen Filekontext geben für die Kontextvariablen, aber ich habe das noch nie gesehen, dass man das irgendwo im Adapter einstellen kann. Dazu muss man nämlich die settings.js modifizieren:
Ich hatte da auch schon mal nachgefragt, aber keine Antwort bekommen:
https://forum.iobroker.net/topic/73812/nodered-adapter-5-2-0-permanent-kontext?_=1733226649427Insofern gehe ich davon aus, dass es keinen Filekontext gibt.
Wenn Du settings.js richtig konfigurierst kannst Du nämlich sogar wählen, dann bekommst Du nämlich rechts ein zusätzliches Auswahlfeld.
Das geht aber mit dem NOdeRed Adapter nicht, sondern nur in der Standalone Version von NodeRed, da man im Adapter dem Anwender den Zugriff auf die settings.js verwehrt:Die 3 Optionen der Cron Node:
- Standardmässig ist None eingestellt und es wird nichts gespeichert. Ich hab das bis jetzt immer so gelassen, weil den State einer Cron Node zu speichern, nur bei dynamischen Schedules, die Du über Nachrichten definierst einen Vorteil bring.
- Wenn Du wie in Deinem Fall - local File System eingestellt hast, dann hast Du in deinem Datenverzeichnis ein cronplusdata Verzeichnis, wo die States in einer Datei gespeichert sind:
- Wenn im NodeContext gespeichert wird, dann ist der im iobroker Adapter immer im Memory - da ich wie gesagt, obwohl es als Feature in 5.2.0 steht keine Möglichkeit gefunden habe, den Kontext im Dateisystem geschweige den beides zu definieren. In der Standalone Version bzw. wenn man Zugriff auf die settings.js hat, kann man auch das Dateisystem für den Kontext als Standard angeben. Dann hättest Du hier einen Vorteil.
Sprich auch das geht Dir bei einem Neustart verloren. Ist aber nur für dynam. Schedules relevant und die kann man ja über eine Inject Node auch wieder initialisieren.
Wie gesagt, den Status der cronplus zwischen den Neustarts zu speichern, halte ich für überflüssig, wenn Du die Schedules innerhalb der Node konfigurierst. Insofern kannst Du auch den Standard auf None lassen.
Diese globale Kontext Node macht was ganz anderes. Damit kann man nur den globalen Kontext in einer Datei abspeichern. Ob das wieder eingelesen wird, weiß ich nicht.
https://flows.nodered.org/node/node-red-contrib-persistent-global-context
Jedenfalls wird ja nur der globale Kontext und kein Flow oder Node kontext gespeichert. Insofern finde ich die Node eher überflüssig.
Diese Fehlermeldung scheint mir von dieser Node zu stammen
und ich würde die im iobroker Umfeld eh nicht nutzen. Ich gehe aber davon aus, dass Du einen gültigen Pfad zu einer Datei angeben musst.Generell geht der Node-Red Adapter davon aus, dass Du keine Kontextdaten permanent speichern musst, da Du ja alle Daten in Datenpunkten in den Objekten im iobroker speichern kannst und bei Bedarf wieder einlesen kannst.
-
@ak68 Du musst halt in Deinem Flow mit debug Nodes weiter gehen. Meine Vermutung liegt darin, dass in der Influx Db nichts geschrieben wird, warum auch immer. Mach eine Debug Node vor die letzte Node bevor du in Influx was speicherst und schau, ob die Daten DORT ankommen:
Fazit: An der cron-plus Node liegt es nicht, das siehst Du ja - Du musst halt weiter hinten im Flow suchen.
-
So ich habe mir die Node angeschaut:
Wie vermutet, speichert die Node den globalen Kontext in einer Datei und lädt ihn auch wieder.
Das Ganze wird im Datenverzeichnis von NodeRed gespeichert:
Also im iobroker Umfeld kann man auf sowas verzichten.
-
@mickym sagte in Probleme mit Cron-Plus Jobs:
@ak68 Du musst halt in Deinem Flow mit debug Nodes weiter gehen. Meine Vermutung liegt darin, dass in der Influx Db nichts geschrieben wird, warum auch immer. Mach eine Debug Node vor die letzte Node bevor du in Influx was speicherst und schau, ob die Daten DORT ankommen:
Fazit: An der cron-plus Node liegt es nicht, das siehst Du ja - Du musst halt weiter hinten im Flow suchen.
Danke für Deine Mühe
Der debug-node liegt schon VOR der Influx-DB, also hast Du wohl Recht, dass das Schreiben in die InfluxDB fehlschlägt.
ICH lösche noch einmal die DB und lege diese neu an um evtl. weiterzukommen -
Nach Neuanlagen der Influx-Datenbanken werden jetzt die Daten korrekt in die DB übernommen