[Node-Red] Update des Palettes „node-red-node-serialport 1.0.1“ stürzt Docker Node-Red ab

Wenn Sie das Palette “node-red-node-serialport” installiert haben, um z. B. Rflink zu verwenden, und Sie dieses auf “node-red-node-serialport 1.0.1” aktualisieren, stürzt der Docker Node-Red ab und startet alle 15 Sekunden neu.

Die Diskussion dazu finden Sie hier

Um dies zu beheben, besteht die Lösung darin, eine ältere Version von “node-red-node-serialport” neu zu installieren, die den Docker nicht zum Absturz bringt.

Da ich die Version 0.15.0 hatte, die sehr gut funktionierte, habe ich mich dafür entschieden, diese erneut zu installieren.

Voraussetzung: „node-red-node-serialport 1.0.1“ wurde entfernt

Für Info ist hier die Version „node-red-node-serialport 0.15.0“

  1. Per SSH mit Gladys mit der IP-Adresse von Gladys verbinden
ssh pi@192.xxx.x.xx
  1. Ein Shell in Docker öffnen
$ docker exec -it node_red /bin/bash

das gibt mir

bash-5.0#

  1. Den folgenden Befehl kopieren
npm i node-red-node-serialport@0.15.0

Das läuft und gibt am Ende Folgendes aus

 notice created a lockfile as package-lock.json. You should commit this file.
+ node-red-node-serialport@0.15.0
added 48 packages from 37 contributors and audited 338 packages in 60.866s

45 packages are looking for funding
  run `npm fund` for details

found 4 critical severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
  1. Da es 4 kritische Sicherheitslücken gibt, führen Sie Folgendes aus
npm audit fix

wie vorgeschlagen

  1. Shell schließen und Node-Red neu starten
exit

et

docker restart node_red

node-red-node-serialport Version 0.15.0 ist installiert

Hallo @bjm,
Funktioniert bei dir alles?
Bei mir klappt es nicht mehr, stabil zu bleiben. Ich glaube, mein alter Flow stört die Funktion des Node-Red-Serialport-Knotens. Ich bin auf 0.15.0, und wenn ich einen neuen Serial-Knoten hinzufüge, verbindet er sich, aber wenn ich meine Datenbank importiere, verliert der Server die Verbindung, selbst nachdem ich die Daten in den Serial-Knoten zurückgesetzt habe. Ich weiß nicht mehr, was ich tun soll. Ich bin auf einen zweiten Raspberry Pi mit einer älteren Version von Gladys umgestiegen, aber anscheinend wird bei der Installation wieder auf das neueste 64-Bit-Image von Gladys zurückgegriffen. Selbst meine Xiaomi-Gateway verursacht Verbindungsabbrüche, obwohl alles normal war, als ich deinem Tutorial gefolgt bin. Ich verstehe das nicht mehr.

Bei mir funktioniert alles.
Ich hatte einen großen Schrecken, als ich Telegram aktiviert habe, wodurch ich für 20 Minuten den Zugriff auf die Gladys-Webseite verloren habe. Ich hatte die Frage „Wie wird das Wetter?“ gestellt, um es zu testen, und nach 20 Minuten erhielt ich die Antwort und konnte wieder auf die Webseite zugreifen.

Was meinen Rflink-Flow betrifft:
Ich habe den „serial in node“ und „serial out node“ gelöscht, bevor ich exportiert habe.
Nach dem Import habe ich sie auf dem neuen Gladys 64 Bit neu erstellt.
Ach ja, ich habe einen Raspberry Pi 3

Super, :+1:
Bei mir läuft es auch wieder, aber ich habe nur zwei Nodes, einen „serial in“ und einen „gateway xiaomi“, und sie sind verbunden. Ich habe zehnmal versucht, meine Datenbank neu zu laden, und durch ständiges Herumprobieren habe ich die Adresse TTYUSB0 falsch eingegeben, ich habe USB1 (den USB-Stick des Zigbee-Schlüssels) eingegeben, die Datenbank hat es gespeichert, und jedes Mal ist es natürlich abgestürzt. Aber selbst als ich das gemacht habe, was du gemacht hast, die seriellen Nodes zu löschen, ist es immer noch abgestürzt (vielleicht auch, weil ich nicht geduldig genug war, ich sage das, weil ich an anderen Dingen gearbeitet habe und als ich Node Red erneut angezeigt habe, waren meine Knoten verbunden). Jedenfalls werde ich alle Nodes manuell eingeben, ich habe es satt, jedes Mal neu zu starten. :cold_sweat:
Danke für deine Hilfe, gute Fortsetzung
:wink:

Du hast nicht vergessen, den MQTT-Node zu konfigurieren, denn ich hatte es vergessen.

Letztendlich ist heute ein Tag mit :smiley:. Ich habe meine Flows zurückbekommen. Ich habe die Serial-Nodes und den Xiaomi-Node gelöscht, ebenso alle Verbindungen zum MQTT-Broker, mit den Ports ttyUSB0 von Rflink und der Xiaomi-Gateway. Dann habe ich alle meine Verbindungen neu erstellt und die Serial- und Xiaomi-Nodes konfiguriert. Und schließlich konnte ich alles neu starten, aber ich musste den MQTT-Broker für jeden MQTT-Node einzeln zuweisen. Aber jetzt funktioniert alles wieder wie zuvor.
Nochmals vielen Dank für deine Hilfe :wink:

super :+1:

Hallo,

ich greife das Thema auf, weil ich auf das gleiche Problem stoße, aber die Manipulation hat das Problem nicht gelöst.
Es ist unmöglich, auf NodeRed zuzugreifen, und der Container startet ständig neu.

Fast am selben Tag oder so ähnlich, Zigbee 2 Mqtt ausgefallen und Node Red nicht erreichbar.
Ich habe es geschafft, Zigbee2Mqtt mit dem Tutorial wiederherzustellen, aber bei NodeRed klappt es nicht.
Muss man es komplett deinstallieren und dann neu installieren? Wenn ja, wie sieht die Manipulation aus, bitte?

Hinweis: Manchmal schaffe ich es, in meinem Browser eine Seite mit Node-RED als Tab anzuzeigen, aber die Seite ist weiß.

Wenn du ein Backup deiner Flows hast, kannst du die Datei flows.json löschen
Im Terminal

cd /var/lib/node-red
ls
sudo rm flows.json
docker restart node_red

Danach importierst du deinen Flow erneut

Super danke @bjm.
Ich kann wieder auf Node-Red zugreifen.
Ich hatte meinen Flow auf einem lokalen Node-Red gespeichert, um meine Tests durchzuführen.
:+1:

Hallo, ich grabe das Thema wieder aus, weil ich erneut ein Problem mit node-red habe.
Der Container startet zwar, aber ich kann nicht darauf zugreifen, wenn ich die IP-Adresse mit Port 1880 eingebe. Seite nicht gefunden!
Die Verbindung zum Port 8080 funktioniert jedoch gut zu zigbee.
Ich habe versucht, den Flow zu entfernen, aber es ändert sich nichts ..
Mit einem docker ps wird mir angezeigt:
(health: starting)
Habt ihr eine Idee?

Hallo!
Der Grund ist das letzte Update von Node Red.
Lösung hier

Hallo zusammen!

Entschuldigung, aber ich brauche etwas Hilfe, weil ich nicht verstanden habe, wie man auf Version 0.15 zurückinstalliert.

Danke im Voraus

Guten Abend @jerome,
ich habe diese Liste erstellt, um Node-red von Grund auf neu zu installieren

Installation von Node Red

1 - Geben Sie den Befehl von @VonOx ein

docker run -d \

--log-opt max-size=10m \

--restart=always \

--network=host \

--name node_red \

-u node-red:dialout \

--device=/dev/ttyUSB0 \

--device=/dev/ttyUSB1 \

--label com.centurylinklabs.watchtower.enable=false \

-v /var/lib/node-red:/data \

nodered/node-red

2 - Dann diesen hier

sudo chown -R 1000:1000 /var/lib/node-red

3 - Hash generieren: Für mehr Genauigkeit das Video von Pierre-Gilles ansehen: Intégrer Node-RED avec Gladys Assistant en MQTT | Gladys Assistant

Hash generieren

docker exec -it node_red node-red admin hash-pw

4 - Datei mit nano bearbeiten: Sudo nicht vergessen (für mich ist es notwendig)

sudo nano /var/lib/node-red/settings.js

Die doppelten / zwischen « adminAuth: » und der geschweiften Klammer entfernen, die zu adminAuth: {

5 - Den generierten Hash einfügen

6 - Dann Node Red neu starten

docker restart node_red

Downgrade der Serialport-Version

wir werden Version 0.15.0 statt Version 1.0.1 verwenden

Danke an @Bjm

Daher müssen wir die Version node-red-node-serialport 0.15.0 behalten. Um diese Version zu erhalten, müssen Sie dem Tutorial von @Bjm folgen, das ich Ihnen unten einfüge

Ich habe node-red-node-serialport Version 0.15.0 installiert, die auf meinem 32-Bit-System funktioniert hat
https://www.npmjs.com/package/node-red-node-serialport/v/0.15.0

1 - Im Terminal, um eine Shell in Docker zu öffnen

docker exec -it node_red /bin/bash

Das gibt mir zurück
bash-5.0#

2 - Ich kopiere den folgenden Befehl am Ende

npm i node-red-node-serialport@0.15.0

Es läuft und gibt mir am Ende Folgendes zurück:

notice created a lockfile as package-lock.json. You should commit this file.

node-red-node-serialport@ 0.15.0

added 48 packages from 37 contributors and audited 338 packages in 60 .866s

45 packages are looking for funding

run npm fund for details

found 4 critical severity vulnerabilities
run npm audit fix to fix them, or npm audit for details

3 - Da es 4 kritische Schwachstellen gibt, mache ich

npm audit fix

Wie vorgeschlagen

4 - Dann

exit

5 – Node Red neu starten

docker  restart node_red

anschließend installieren Sie Ihr Serial-Palette erneut. Node Red schlägt Ihnen immer noch die höhere Version vor. Sie klicken darauf und wenn sie installiert wird, wird sie zu 0.15.0
Viel Glück
:wink:

@jerome

Vielleicht müssen diese Zeilen angepasst werden. Sie entsprechen meinen USB-Ports. Einer für meinen Zigbee-Key und der andere für meinen Rflink

cool danke @Psoy

Danke dir! Ich habe endlich Zeit gefunden, Node-red neu zu starten. Allerdings musste ich meine Flows löschen.

cd /var/lib/node-red
ls
sudo rm flows.json
docker restart node_red

Und ich habe den Befehl vergessen, um das Update von Node-red zu blockieren.

Neuer Absturz nach Update auf 1.0.1

Aber ich glaube, ich habe die Lösung gefunden
Flow löschen
node-red-node-serialport auf 1.0.1 aktualisieren
dann

docker exec -it node_red /bin/bash
cd /data
npm rebuild --build-from-source
exit
docker restart node_red

Hier gefunden

Node-RED (Docker) crashes when /dev/ttyACM0 is configured in flow - Raspberry Pi 4 · Issue #3461 · node-red/node-red · GitHub

EDIT: Es ist jetzt einen Tag her, dass ich mit node-red-node-serialport 1.0.1 laufe und kein Absturz.