NodeRED: per Editor unlöschbaren Node entfernen

Neulich hatte ich einen Node, den ich im Web-Editor nicht mehr entfernen konnte. Sobald ich ihn konfiguriert oder gelöscht hatte, konnte ich nicht mehr deployen – der Deploy-Button blieb aktiv. Da half nur ein Reload des Editors im Browser, um wieder auf den Vorzustand zu gehen und deployen zu können.

Vermutliche Ursache

Den Node hatte ich aus einem Beispiel im Internet importiert. Der Node benötigte einen Konfigurations-Node, der jedoch bei mir nicht (mehr) vorhanden war.

Lösung

Ich hatte ein paar weitere Lösungsmöglichkeiten aus dem Web im Webeditor probiert:

  • Löschen aller anderen Nodes aus dem Flow, so dass er der einzige war und dann Löschen des Flows. Das war leider nicht von Erfolg gekrönt
  • Wenn man den Node exportiert, so sieht man im JSON die erwarteten Verknüpfungen. Da diese mit einer automatisch vergebenen ID kommen, kann man diese leider nicht einfach anlegen, obwohl der Namen gleich ist.

Da ich RedMatic einsetze, befinden sich die Flows auf der CCU in der Datei /usr/local/addons/redmatic/var/flows.json. Also musste ich den Node nur aus dieser Datei entfernen. Dazu bin ich wie folgt vorgegangen:

  1. Backup: Führe ein Backup deiner CCU-Konfiguration über die Systemsteuerung durch (siehe auch RedMatic-Backup).
  2. ssh aktivieren: Falls du den SSH-Zugang zu deiner CCU bereits eingerichtet hast, kannst du diesen Punkt überspringen. In der CCU-Systemsteuerung deiner RaspberryMatic ist im Punkt “Sicherheit” die Sektion “SSH” zu finden. Diese muss für die folgenden Schritte konfiguriert sein. Verwende für das Passwort wieder dein Passwort-Tool, um ein sicheres Passwort zu generieren und es dort abzuspeichern.


  3. NodeRED stoppen: Dazu gehst du in die Systemsteuerung deiner CCU und dort auf das Addon “RedMatic”.


  4. zur CCU per SSH verbinden: Unter Linux gibt es das Tool “ssh”, mit welchem Du dich zu deiner CCU mit dem vorher vergebenen Passwort einloggen kannst.
    ssh <ccu-Name/IP-Adresse>
  5. Datei editieren: Auf der CCU ist der Editor “vi” installiert. Die Bedienung ist etwas ungewöhnlich, ein CheetSheet findest du hier. Alternativ kannst Du die Datei jedoch auch mit einem Programm wie WinSCP editieren. Die folgenden Schritte mit dem vi sind daher nur als Beispiel zu sehen.
    1. Falls Du dir unsicher bist, kannst du optional auch vor Ort von der Datei eine Sicherung anlegen. Der Parameter “-p” beim cp-Kommando bewirkt, dass der Zeitstempel der Originaldatei übernommen wird.
      cd /usr/local/addons/redmatic/var/
      cp -p flows.json flows.json~

      Falls du Projekte aktiviert hast, befindet sich die Datei im projects-Unterordner:

      cd /usr/local/addons/redmatic/var/projects/redmatic
      cp -p flows.json flows.json~
    2. Datei öffnen:
      vi /usr/local/addons/redmatic/var/flows.json

      Auch hier gilt wieder ein anderer Speicherort, falls du Projekte verwendest:

      vi /usr/local/addons/redmatic/var/projects/redmatic/flows.json
    3. Suche den zu löschenden Flow mit “/FlowName<Enter>”, wobei “FlowName” der Name des Flows ist. Weitersuchen geht mit “n”.
    4. Gehe dann mit den Cursor-Tasten auf die öffnende geschweifte Klammer “{” und drücke solange “dd” zum Löschen der aktuellen Zeile, bis Du auch die zugehörige schließende geschweifte Klammer “},” gelöscht hast.
    5. Zum Speichern und Beenden des vi-Editors drückst du die Zeichenfolge “:x”.
  6. Verlassen der CCU: Nun kannst du die CCU-Shell wieder verlassen, bspw. mit “Strg+d” oder “exit<Enter>”.
  7. Start von RedMatic: Nach dem Starten des Addons RedMatic über die CCU-Systemsteuerung werden Änderungen durch NodeRed erkannt. Diese kannst du dann “Zusammenführen”. Der Node sollte nun verschwunden sein.

 

André

War dieser Artikel nützlich für Dich? Dann hinterlasse gern eine Bewertung. So erkenne ich, welche Informationen hilfreich sind und investiere weiter in diese Richtung. Vielleicht habe ich auch bereits eine neuere Version und muss sie nur in den Artikel einarbeiten. Hast Du Meinungen, Hinweise oder Fragen? Dann hinterlasse einen Kommentar, kontaktiere mich per E-Mail an oder schreibe in die Telegram-Diskussionsgruppe https://t.me/joinchat/4v43ZhqxG2sxOTMy.

Alle Beiträge ansehen von André →

Sag mir deine Meinung! (Kommentar-Regeln)

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