@GBoulvin hat Ihnen die Lösung gegeben. Sie müssen in der Gruppe dialout sein, um auf den seriellen Port zuzugreifen.
Hallo @VonOx
Muss ich diesen Befehl eingeben? Selbst wenn Node Red installiert ist und funktioniert, wird das nichts stören?
Entschuldige für meine Unwissenheit, aber ich versuche Lösungen zu finden, aber vergeblich. ![]()
Danke für deine Hilfe
Ich muss sie natürlich an meinen Fall anpassen, die Zeile, die uns interessiert, ist diese:
-u node-red:dialout
Aber ich weiß nicht, wie ich sie an den RPI senden soll, ich habe das eingegeben:
docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
-u root \
--network=host \
--name node_red \
-v /var/lib/node-red:/data \
-u node-red:dialout \
nodered/node-red
Aber offensichtlich ist das falsch
Ich habe diesen Befehl eingegeben
ls -l /dev/ttyUSB1
et als Antwort erhalte ich diese Meldung:
crw-rw---- 1 root dialout 188, 1 Jul 17 21:08 /dev/ttyUSB1
Heißt das, dass wir in der Gruppe Dialout sind?
@Psoy
Hallo,
ich habe nicht alle Elemente, aber in deinem Docker-Befehl docker run gibt es mindestens ein Problem: Du verwendest die Option -u (Benutzer) zweimal, einmal für root und einmal für node-red:dialout, also muss es einen Konflikt geben.
Und du musst deinen bestehenden Container löschen, bevor du ihn neu erstellst
Hallo @Einstein8854
Ich hatte es mir schon gedacht, aber da ich die Struktur dieses Befehls nicht kenne, habe ich es versucht.
Hallo VonOx
Das habe ich vorher gemacht, dann habe ich den geänderten Befehl eingegeben, aber ich habe eine Rückmeldung von PuTTY erhalten, dass es nicht in Ordnung war.
Du hast von Dialout gesprochen, ich habe diesen Befehl eingegeben
ls -l /dev/ttyUSB1
et als Rückmeldung erhalte ich diese Nachricht:
crw-rw---- 1 root dialout 188, 1 Jul 17 21:08 /dev/ttyUSB1
Heißt das, dass man in der Gruppe Dialout ist?
docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name node_red \
-v /dev:/dev \
-v /var/lib/node-red:/data \
nodered/node-red
Das sollte ausreichen, du startest es in privileged, also normalerweise brauchst du keinen Benutzer oder groupadd
Du musst nur /dev mappen, sonst sieht dein Container es nicht
Das ist auf dem Host, da rührt man nichts an
nochmals danke @VonOx für deine Antworten.
Aber ich habe immer noch denselben Fehler
"[serialconfig:5fefad5a76dd3e43] serial port /dev/ttyUSB0 error: Error: Error: Permission denied, cannot open /dev/ttyUSB0"
Ich habe den Node-Red-Container deinstalliert und dann die Node-Red-Ordner in \var\lib gelöscht.
Ich habe deinen Befehl erneut ausgeführt, aber es wurde wie am Anfang neu gestartet, also habe ich den Befehl ausgeführt
sudo chown -R 1000:1000 /var/lib/node-red
Ich habe den Container neu gestartet und dieser ist jetzt wieder gestartet. Aber ich habe immer noch diese Zugriffsverweigerung auf den USB-Port, egal ob 1 oder 0
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 \
-v /var/lib/node-red:/data \
nodered/node-red
Versuch das mal
Nach doppelter Überprüfung scheint es sich weiterentwickelt zu haben. Man könnte sagen, dass wir uns in der Konfiguration des Versionswechsels der Serial-Port-Palette 1.01 gegenüber 0.15 befinden:
.
Ich werde die Version später ändern und Sie auf dem Laufenden halten
nochmals vielen Dank Vonox
Tutorial zum Neuinstallieren von NODE Red in V3
Ein großes Dankeschön an @VonOx, der mich so geduldig angeleitet hat.
Der Installationsbefehl in diesem Video funktioniert nach dem Wechsel zu Node Red V3 nicht mehr. Er muss durch die folgenden Befehle ersetzt werden:
: Intégrer Node-RED avec Gladys Assistant en MQTT | Gladys Assistant
Altes Node Red deinstallieren
1 - Docker-Container stoppen
docker stop node_red
2 - Node Red-Container löschen
docker rm node_red
3 - Node-red-Ordner in \var\lib löschen
cd /var/lib
4 - Wir sind in den lib-Ordner gewechselt, Anzeige der Elemente des Ordners
ls
5 - Node-red-Ordner suchen (Achtung Strich vom 6) und löschen:
sudo rm -r node-red
6 - Überprüfen, ob der Node-red-Ordner nicht mehr vorhanden ist
ls
7 - Rückkehr zur Eingabeaufforderung pi@gladys:~ $
cd /
8 - Ich starte den rpi neu (ich weiß nicht, ob das nötig ist, aber es beruhigt mich)
sudo reboot
9 - Überprüfen, ob der Node Red-Container nicht mehr vorhanden ist
docker ps
Installation von Node Red
1 - Geben Sie den Befehl von @VonOx ein
"Es muss ein System an die USB-Anschlüsse USB0 und USB1 angeschlossen sein, in meinem Fall habe ich einen RFlink am ttyUSB0-Anschluss und den Zigbee-Sonoff-Key am ttyUSB1-Anschluss. Daher müssen Sie möglicherweise in den Zeilen " --device=/dev/ttyUSB0 \ " den Namen des verwendeten Anschlusses anpassen, z. B. « –device=/dev/ttyACM0. »
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 \
-v /var/lib/node-red:/data \
nodered/node-red
2 - Dann dieser hier
sudo chown -R 1000:1000 /var/lib/node-red
3 - Hash generieren: Für mehr Präzision die 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
Beispiel für einen Hash: $2b$08$tfrMEc4pnblhhSDFFBUjeOtGU.Ixh5d19P31NWCf2JZKmwZF888mK
4 - Datei mit nano bearbeiten: Sudo (vor mir ist es nötig) nicht vergessen
sudo nano /var/lib/node-red/settings.js
Doppelte / zwischen « adminAuth: » und der geschweiften Klammer entfernen, die zu adminAuth: {
5 - Generierten Hash einfügen
6 - Dann Node Red neu starten
docker restart node_red
Herabstufen der Serialport-Version
wir werden die Version 0.15.0 anstelle der Version 1.0.1 verwenden
Danke an @Bjm
Daher muss die Version node-red-node-serialport 0.15.0 beibehalten werden. 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 meiner 32-Bit-Version funktionierte
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
Das 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
Installation der « Palette: node-red-node-serialport »
Node RED öffnen, um die Palette « node-red-node-serialport » zu installieren
Klicken Sie oben rechts auf die drei horizontalen Balken, um das Menü oben zu öffnen.
image262×506 4.11 KB
Ich weiß nicht, warum die Bilder nicht angezeigt werden, aber wenn man darauf klickt, öffnen sie sich. Diese Bilder stammen aus dem Tutorial RFlink, NodeRed und Gladys
Klicken Sie in « manage palette » 11. Zeile. Das Fenster unten öffnet sich, klicken Sie auf die Registerkarte „install“, dann geben Sie „serial“ in „search modules“ ein, um die Paletten (Bibliotheken) zu suchen. Bibliotheken werden angezeigt. Wir wählen die Bibliothek (oder Palette) „node-red-node-serialport“ aus, klicken Sie auf das kleine „install“ rechts.
Sobald dies geschehen ist, klicken Sie auf die Registerkarte Nodes.
Überprüfen Sie, ob die Palette vorhanden ist. Dann überprüfen Sie in den „filters nodes“ in der linken Spalte des Bildschirms, ob die folgenden Nodes vorhanden sind:
Das sollte es wieder für Low-Code geben.
@Psoy Achtung, du hast gesagt, dass man den Persistenzordner löschen soll, aber das gilt, glaube ich, nur in deinem Fall. Ich hatte auch ein Berechtigungsproblem und musste das nicht tun.
@VonOx muss ich den Befehl auf dem Blog aktualisieren oder nicht?
Ich habe auf meiner Seite mit Docker überhaupt nichts gemacht ![]()
Guten Abend @VonOx
Der Persistenzordner ist node-red, in /var/lib?
Das sollte man nicht tun, ich dachte, alles zu löschen wäre besser!
Muss ich diesen Teil löschen?
Ich hatte das Glück, diesen Leitfaden mehrmals zu verwenden, leider, aber es hat immer funktioniert ![]()
Guten Abend Pierre-Gilles
Ich spreche zu Beginn des Tutorials darüber, dass der Befehl, der in deinem Video ist, mit der V3 von Node Red nicht mehr funktioniert. Vielleicht solltest du erwähnen, dass es dieses Problem gibt, denn das Erste, was wir tun werden, um Node Red zu installieren, ist, dein Video und die verknüpfte Integrationsseite anzusehen. Ich habe mein Tutorial zu „RFlink Node Red und Gladys“ aktualisiert, ich denke, ich werde es ein wenig neu organisieren müssen
Gute Nacht
Ja, es muss an das Gerät angepasst werden. Deshalb erstellt man normalerweise eine udev-Regel. Dadurch hat man einen dauerhaften „Pfad“.
Das habe ich übersehen, ich werde es präzisieren.
Ich füge das vorher noch hinzu:
"Es muss ein System an die Ports USB0 und USB1 angeschlossen sein, bei mir habe ich einen RFlink am Port ttyUSB0 und den Zigbee-Stick Sonoff am Port ttyUSB1. Daher muss man möglicherweise in den Zeilen " --device=/dev/ttyUSB0 \ " den Namen des verwendeten Ports anpassen, z.B. « –device=/dev/ttyACM0. »
Ist das okay? (Ich frage vorher nochmal!
)