HowTo: Node Red – Automatisches speichern des Node Red journals nach dem Start von Node Red (zu debugging zwecken)

Vor kurzem hatte ich ein Problem mit NodeRed, dass dazu führt, dass der NodeRed Prozess manchmal abstürzte.

Eigentlich nicht weiter schlimm da er ja automatisch neu gestartet wird. Auf der anderen Seite ärgerte es mich irgendwann, weil die Daten in der Dashboardansicht dadurch verloren gehen und auch jedes Mal Status Nachrichten abgeschickt wurden.

Es war also an der Zeit der Sache auf den Grund zu gehen. Dabei habe ich zunächst das journal des NodeRed services vai “sudo journal -f -u nodered” geprüft.

Dieser Befehl zeigt alle Statusmeldungen die im Journal des Services gespeichert sind an. Interessiert war ich aber eigentlich nur an den letzten Meldungen bevor NodeRed neu gestartet wurde.

Dazu habe ich mir den unten gezeigten Flow erstellt. Dieser speichert jedes Mal nach dem Neustart von NodeRed den Inhalt des Journals im Ordner “/home/pi/nodeRedLogFiles”.

Wer mal auf der Suche nach einem Fehler ist der zu einem Neustart führt, sollte so schnell fündig werden. 🙂


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Damit Ihr neue Nodes installieren könnt sollte NodeRed natürlich schon installiert sein.
Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.

Die folgenden drei Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPi – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern

NodeRed – Installation von NodeRed auf dem RaspberryPi

Benötigtes Werkzeug:
-keins-

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.


In die NodeRed Konfigurationsoberfläche einloggen

Bevor Ihr eure NodeRed Konfiguration bearbeiten könnt müsst Ihr Euch - falls aktiviert - zunächst in die NodeRed Konfigurationsoberfläche einloggen.

Ansicht des Login Dialogs. Hier müsst Ihr die Login Daten eingeben die Ihr während der Konfiguration des Logins angegeben habt. Infos dazu findet Ihr im Artikel NodeRed - Benutzerlogin einrichten.

Node-Code importieren

Um diesen Code zu testen könnt Ihr den unten stehenden Code einfach in Eure NodeRed-Installation importieren. Tipps dazu findet Ihr im Artikel NodeRed – Node-Code importieren und exportieren.

Ansicht des NodeRed Flows in der NodeRed-Konfigurationsansicht.
[{"id":"185f8c16.a86d64","type":"exec","z":"2dcf0cc0.aeb894","command":"journalctl -u nodered -all","addpay":false,"append":"","useSpawn":"true","timer":"","oldrc":false,"name":"last","x":410,"y":3480,"wires":[["30e6e36b.45d3fc"],[],[]]},{"id":"30e6e36b.45d3fc","type":"function","z":"2dcf0cc0.aeb894","name":"prepare filename","func":"
var d = new Date();
var t = d.getTime();
var year = d.getFullYear();
var month = d.getMonth()+1; 
var day = d.getDate();
var hour  = d.getHours();
var minute  = d.getMinutes();

if(month.toString().length == 1) 
{
    month = '0'+month;
}

msg.filename = "/home/pi/nodeRedLogFiles/nodeRedLog_"+day+"-"+month+"-"+year+"-"+hour+":"+minute+".csv";

return msg;","outputs":1,"noerr":0,"x":610,"y":3480,"wires":[["9f916f6c.d00cb"]]},{"id":"519cb1ab.0032b","type":"inject","z":"2dcf0cc0.aeb894","name":"save last nodered-journal","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":210,"y":3480,"wires":[["185f8c16.a86d64"]]},{"id":"9f916f6c.d00cb","type":"file","z":"2dcf0cc0.aeb894","name":"","filename":"","appendNewline":true,"createDir":true,"overwriteFile":"false","encoding":"none","x":810,"y":3480,"wires":[[]]},{"id":"510d4143.de0cb","type":"comment","z":"2dcf0cc0.aeb894","name":"Save last journal nodered","info":"","x":170,"y":3420,"wires":[]}]

Ansicht im Dashboard

Ansicht der gesammelten NodeRed-Journals

Im Ordner “/home/pi/nodeRedLogFiles” auf Eurem RaspberryPi findet Ihr nach einem Neu Start von NodeRed dann die gespeicherten NodeRed-Logs.

Ansicht der gespeicherten NodeRed Logfiles.

Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.