Z-Wave Dongle wird nicht erkannt

Hallo,

der Dongle „sonoff z-wave 800 dongle plus“ Modell: dongle-PZG23 wird von Gladys in Z-WAVE JS UI nicht erkannt.

Danke

Hallo @Frederic_Trehoux und herzlich willkommen im Gladys-Forum!

Dein Hinweis ist völlig normal, da Gladys keine USB-Z-Wave-Schlüssel verwaltet. Dafür ist zwave-js-ui zuständig, wie in der Dokumentation angegeben.

Du musst also eine VM oder einen Docker-Container erstellen, um zwave-js und zwave-js-ui zu installieren.
Ab diesem Zeitpunkt verwaltet diese virtuelle Maschine deinen USB-Schlüssel, der laut der zwave-js-Dokumentation sehr gut unterstützt wird.
Du verbindest dich mit deiner zwave-js-ui-Instanz, gehst dann zu Settings und Z-Wave und wählst dort deinen USB-Schlüssel aus.
Anschließend kannst du im Abschnitt MQTT Gateway der Dokumentation folgen.

Die Dokumentation besagt, dass du dich von zwave-js-ui und von der Z-Wave JS UI-Integration in Gladys aus mit einem MQTT-Broker verbinden musst.
Entweder du nutzt den internen MQTT-Docker der MQTT-Integration in Gladys (muss aktiviert werden) oder du kannst deinen eigenen externen MQTT-Docker erstellen.

Wenn du uns ein wenig mehr über deine Hardware- und Softwareinstallation erzählst, können wir dich bestmöglich unterstützen.
Zögere nicht, wenn du weitere Informationen benötigst.

ok, aber wie installiere ich diesen Docker-Container zwavejs ui? Alles wird über die Befehlszeile von einem Ubuntu-Server aus erledigt, nehme ich an.

Aktuell ja, es gibt keine Automatisierung wie man sie für die Integration von MQTT oder Z2M oder node-red haben kann.

Von dem, was ich für docker compose gesehen habe, würde es so etwas wie das (Quelle) geben:

version: '3.7'
services:
    zwave-js-ui:
        container_name: zwave-js-ui
        image: zwavejs/zwave-js-ui:latest
        restart: always
        tty: true
        stop_signal: SIGINT
        environment:
            - SESSION_SECRET=mysupersecretkey
            - TZ=Europe/Paris
        networks:
            - zwave
        devices:
            # Verwende keine /dev/ttyUSBX-Seriengeräte, da diese Zuordnungen sich im Laufe der Zeit ändern können.
            # Stattdessen verwende das /dev/serial/by-id/X-Seriengerät für deinen Z-Wave-Stick.
            - '/dev/serial/by-id/insert_stick_reference_here:/dev/zwave'
        volumes:
            - zwave-config:/usr/src/app/store
        # Oder durch Verwendung eines lokalen Ordners
        # - ./store:/usr/src/app/store
        ports:
            - '8091:8091' # Port für die Weboberfläche
            - '3000:3000' # Port für den Z-Wave JS Websocket-Server
networks:
    zwave:
volumes:
    zwave-config:
        name: zwave-config

Ich weiß nicht, ob das network zwave (dediziertes Netzwerk) oder host sein muss, damit du auf die UI zugreifen kannst, das muss getestet werden.

Danke, aber für mich ist das Chinesisch. Ich kenne mich überhaupt nicht mit Docker aus. Schade, dass die Integration das nicht abdeckt.

Mist, entschuldige, ich bin einfach drauflosgeprescht, ohne an dein Linux-Kenntnisniveau zu denken :frowning:

Ich kann versuchen, dich zu führen, wenn du möchtest, mit einfacheren Befehlen.
Wie hast du Gladys installiert?

Das ist nett von dir. Ich kenne die grundlegenden Linux-Befehle, aber Docker ist für mich ganz neu. Ich habe es auf Jeedom verwendet, aber es war ein integriertes Plugin. Ich habe Gladys auf einem Mini-PC mit Docker und auf einem Linux-Server installiert. Soweit ich verstehe, muss ich den ZWave JS-Container über die Befehlszeile herunterladen und dann aktivieren.

@pierre-gilles Ist es möglich, eine bessere Integration von ZwaveJS in Gladys wie bei Z2M zu haben?

Alles ist möglich. Wenn ein Entwickler Lust hat, einen Pull Request vorzuschlagen.

Ah ja, das wäre cool, besonders weil Z-Wave ein sehr genutzter Protokoll ist, wegen seines Mesh-Netzwerks wie Thread Matter. Aber ich bin mir bewusst, dass Gladys im Vergleich zu anderen wie Jeedom noch jung ist.

Ich denke, dass für einige Benutzer ein einfaches kleines Tutorial wie das, das online für die Installation von Gladys verfügbar ist, ausreichen würde. Ich musste nur die Befehle kopieren und einfügen, um den Docker-Container zu installieren, ohne alle zu verstehen, aber einen Teil davon. Ich bin zwar kein Programmierer, aber Netzwerkadministrator, also kann ich nur kleine Skripte schreiben, um bestimmte Aufgaben zu automatisieren. Ich habe eine Testbox, auf der ich zwave, rfx und enocean einrichten möchte, also kann ich Dinge testen, wenn jemand etwas entwickelt.

Danke euch allen

Hallo zusammen,

also heute Morgen habe ich ein bisschen im Netz gesucht und es geschafft, einen Container zwavejs2mqtt zu installieren, und er läuft. Aber in der Integration sehe ich immer noch keinen Parameterbereich und mein Aeotec-Schlüssel wird nicht erkannt. Ich habe auch einen Aeotec Gen 5-Schlüssel versucht und es ist das Gleiche.

Ich sehe nicht, was schief läuft.

Ich gebe euch den Verlauf meiner Untersuchungen, falls jemand liest und eine Idee hat. Beim Betrachten der Logs sehe ich Folgendes:

2026-03-01 09:22:39.446 WARN **STORE**: settings.json nicht gefunden

2026-03-01 09:22:39.454 WARN **STORE**: scenes.json nicht gefunden

2026-03-01 09:22:39.456 WARN **STORE**: nodes.json nicht gefunden

2026-03-01 09:22:39.464 INFO **APP**: Hört auf Port 8091 Protokoll HTTP

2026-03-01 09:22:39.471 WARN **BACKUP**: Store-Backup ist deaktiviert

2026-03-01 09:22:39.471 WARN **BACKUP**: Nvm-Backup ist deaktiviert

2026-03-01 09:22:39.473 WARN **Z-WAVE**: Z-Wave-Treiber nicht initialisiert, kein Port konfiguriert

Trotzdem ist der Z-Wave-Schlüssel auf /dev/ttyUISB0, denn ich habe das überprüft. Bei den anderen Fehlern dachte ich, dass die Installation diese Dateien erstellt.

@scoobidou83 kannst du uns den Befehl zeigen, den du verwendet hast, um den Docker von zwave-js-ui zu starten?

Die Protokolle zeigen, dass die Konfigurationsdateien nicht gefunden wurden, aber vor allem meiner Meinung nach nicht erstellt wurden, und natürlich wird nichts anderes in diesem Zustand funktionieren.

Und hast du versucht, dich auf die grafische Oberfläche von zwave-js-ui zu verbinden?
Es sollte etwas in der Art von http://ip-deiner-maschine:8091 mit dem Benutzernamen admin und dem Passwort zwave (Standard, wenn ich mich nicht irre).

Hallo,

hier ist der Befehl, den ich ausgeführt habe:

sudo docker run -d \\

–name=zwavejsui \\

–network=host \\

\-v /chemin/vers/vos/configs:/home/gladys/zwavejs \\

\-e TZ=Europe/Paris \\

–device=/dev/ttyUSB0 \\

zwavejs/zwavejs2mqtt:latest

43fa30ab06a2584ba68e6ca5976bca690addb32786422961ea5674b910736265

ihr habe viel mit KI und dem Internet recherchiert

effektiv kann ich die Seite öffnen und dort sehe ich die Parameter. Ich habe es so konfiguriert, wie in der Dokumentation angegeben, aber nichts passiert.

hast du den Pfad /chemin/vers/vos/configs geändert?
Existiert dieses Verzeichnis wirklich?

Für mich ist dein Befehl etwas unvollständig, ich schlage vor, dass du die folgenden Befehle ausführst.

  1. wir wechseln in das Verzeichnis deines Benutzers:
cd
  1. wir erstellen ein Verzeichnis zum Speichern der Dateien von zwave-js:
mkdir data-zwave-js-ui
  1. wir starten den Docker-Container:
docker run --rm -it -p 8091:8091 -p 3000:3000 --name=zwavejsui -e TZ=Europe/Paris --network=host --device=/dev/ttyUSB0:/dev/zwave -v $(pwd)/data-zwave-js-ui:/usr/src/app/store zwavejs/zwave-js-ui:latest

Ich bevorzuge docker compose gegenüber docker run, daher habe ich diesen Befehl noch nicht getestet. Sag mir, ob es funktioniert oder nicht, und wir passen es entsprechend an.

was ist das?

Für das Kopieren/Einfügen von Code kannst du den Vorformatierten Text verwenden, das erleichtert das Lesen:
image

effektiv hatte ich den Befehl nicht verstanden, ich habe diesen hier noch einmal gemacht

docker run -d \\
  --name=zwavejsui \\
  --network=host \\
  -v \~/zwavejsui_config:/usr/src/app/store \\ 
  -e TZ=Europe/Paris \\
  --device=/dev/ttyUSB0 \\ 
  zwavejs/zwavejs2mqtt:latest

Ich habe die vorhandenen Dateien überprüft und sehe tatsächlich Dateien darin:

ls \~/zwavejsui_config/ -al
total 28
drwxr-xr-x 5 root   root   4096 März   1 10:30 **.**
drwxr-x--- 5 gladys gladys 4096 März   1 10:20 **..**
drwxr-xr-x 2 root   root   4096 März   1 10:29 **logs**
drwxr-xr-x 2 root   root   4096 März   1 10:29 **sessions**
\-rw-r--r-- 1 root   root    246 März   1 10:30 settings.json
drwxr-xr-x 2 root   root   4096 März   1 10:29 **snippets**
\-rw-r--r-- 1 root   root    186 März   1 10:29 users.json

und meine Logs zeigen:

2026-03-01 11:29:41.989 WARN **STORE**: settings.json nicht gefunden
2026-03-01 11:29:41.996 WARN **STORE**: scenes.json nicht gefunden
2026-03-01 11:29:41.998 WARN **STORE**: nodes.json nicht gefunden
2026-03-01 11:29:41.998 WARN **STORE**: users.json nicht gefunden
2026-03-01 11:29:42.004 INFO **APP**: Höre auf Port 8091 Protokoll HTTP
2026-03-01 11:29:42.083 WARN **BACKUP**: Store-Backup ist deaktiviert
2026-03-01 11:29:42.084 WARN **BACKUP**: Nvm-Backup ist deaktiviert
2026-03-01 11:29:42.085 WARN **Z-WAVE**: Z-Wave-Treiber nicht initialisiert, kein Port konfiguriert
2026-03-01 11:30:20.640 INFO **APP**: ::ffff:192.168.1.63 GET / 200 - - 15.021 ms
2026-03-01 11:30:20.692 INFO **APP**: ::ffff:192.168.1.63 GET /manifest.webmanifest 200 504 - 4.647 ms
2026-03-01 11:30:20.695 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-CNaszFFP.js 304 - - 5.081 ms
2026-03-01 11:30:20.699 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-Bv4Vn0Cm.css 304 - - 1.377 ms
2026-03-01 11:30:20.827 INFO **APP**: ::ffff:192.168.1.63 GET /api/auth-enabled 304 - - 25.214 ms
2026-03-01 11:30:20.884 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VExpansionPanels-4YP_LGPZ.js 304 - - 2.431 ms
2026-03-01 11:30:20.887 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VTable-BsI6FsWH.css 304 - - 4.459 ms
2026-03-01 11:30:20.888 INFO **APP**: ::ffff:192.168.1.63 GET /assets/Settings-26_qgVl3.js 304 - - 2.644 ms
2026-03-01 11:30:20.894 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VExpansionPanels-Dyw0hWW-.css 304 - - 2.122 ms
2026-03-01 11:30:20.897 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VDataTable-CLcLRj9B.css 304 - - 1.381 ms
2026-03-01 11:30:20.901 INFO **APP**: ::ffff:192.168.1.63 GET /assets/Settings-CP_TZtGE.css 304 - - 2.610 ms
2026-03-01 11:30:20.915 INFO **APP**: ::ffff:192.168.1.63 GET /assets/Settings-26_qgVl3.js 304 - - 1.142 ms
2026-03-01 11:30:20.922 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VExpansionPanels-4YP_LGPZ.js 304 - - 0.963 ms
2026-03-01 11:30:20.953 INFO **APP**: ::ffff:192.168.1.63 GET /logo.svg 304 - - 0.978 ms
2026-03-01 11:30:21.072 INFO **APP**: ::ffff:192.168.1.63 GET /assets/MaterialIcons-Regular-DOtZ65Va.woff2 304 - - 0.945 ms
2026-03-01 11:30:21.094 INFO **APP**: ::ffff:192.168.1.63 GET /api/settings 200 - - 6.037 ms
2026-03-01 11:30:21.139 INFO **APP**: ::ffff:192.168.1.63 GET /api/auth-enabled 304 - - 2.112 ms
2026-03-01 11:30:21.173 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-CNaszFFP.js 304 - - 0.890 ms
2026-03-01 11:30:21.175 INFO **APP**: ::ffff:192.168.1.63 GET /assets/InvertedCheckbox-RDU4mTUT.js 304 - - 0.870 ms
2026-03-01 11:30:21.199 INFO **APP**: ::ffff:192.168.1.63 GET /assets/DialogGatewayValue-D4W0vBRW.css 304 - - 1.020 ms
2026-03-01 11:30:21.202 INFO **APP**: ::ffff:192.168.1.63 GET /assets/DialogGatewayValue-CFgSzVP7.js 304 - - 0.802 ms
2026-03-01 11:30:21.263 INFO **APP**: ::ffff:192.168.1.63 GET /api/settings 304 - - 3.123 ms
2026-03-01 11:30:21.288 INFO **APP**: ::ffff:192.168.1.63 GET /api/auth-enabled 304 - - 1.655 ms
2026-03-01 11:30:21.380 INFO **APP**: ::ffff:192.168.1.63 GET /assets/DialogGatewayValue-CFgSzVP7.js 304 - - 0.506 ms
2026-03-01 11:30:25.769 WARN **Z-WAVE**: Zwavejs-Treiber ist noch nicht bereit, Statistiken werden nach der Treiberinitialisierung aktiviert
2026-03-01 11:30:25.771 INFO **APP**: ::ffff:192.168.1.63 POST /api/statistics 200 89 - 23.031 ms
2026-03-01 11:30:26.001 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-Blr6EMNg.js 304 - - 0.967 ms
2026-03-01 11:30:30.572 INFO **APP**: ::ffff:192.168.1.63 POST /api/versions 200 58 - 4.416 ms
2026-03-01 11:30:47.839 INFO **APP**: ::ffff:192.168.1.63 GET /assets/ControlPanel-YmA8THz5.js 304 - - 0.541 ms
2026-03-01 11:30:47.870 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-CJ89FoNi.js 304 - - 0.918 ms
2026-03-01 11:30:47.882 INFO **APP**: ::ffff:192.168.1.63 GET /assets/BaseFab-CCixA4el.js 304 - - 2.208 ms
2026-03-01 11:30:47.886 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VFab-DjF3rOkJ.js 304 - - 1.646 ms
2026-03-01 11:30:47.887 INFO **APP**: ::ffff:192.168.1.63 GET /assets/colors-DoZdCu1D.js 304 - - 2.709 ms
2026-03-01 11:30:47.892 INFO **APP**: ::ffff:192.168.1.63 GET /assets/index-DwLHofmu.css 304 - - 3.253 ms
2026-03-01 11:30:47.894 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VFab-ByB_rPoF.css 304 - - 3.683 ms
2026-03-01 11:30:47.895 INFO **APP**: ::ffff:192.168.1.63 GET /assets/BaseFab-BUyXt8fM.css 304 - - 4.475 ms
2026-03-01 11:30:47.896 INFO **APP**: ::ffff:192.168.1.63 GET /assets/vuedraggable.umd-V0tNSFsP.js 304 - - 5.228 ms
2026-03-01 11:30:47.900 INFO **APP**: ::ffff:192.168.1.63 GET /assets/DialogAdvanced-DDU9DPqQ.js 304 - - 2.232 ms
2026-03-01 11:30:47.901 INFO **APP**: ::ffff:192.168.1.63 GET /assets/BaseFab-CCixA4el.js 304 - - 2.809 ms
2026-03-01 11:30:47.904 INFO **APP**: ::ffff:192.168.1.63 GET /assets/DialogAdvanced-D5h3KQey.css 304 - - 4.901 ms
2026-03-01 11:30:47.932 INFO **APP**: ::ffff:192.168.1.63 GET /assets/ColumnFilter-C0wWxFOe.js 304 - - 0.832 ms
2026-03-01 11:30:47.958 INFO **APP**: ::ffff:192.168.1.63 GET /assets/VFab-DjF3rOkJ.js 304 - - 0.764 ms
2026-03-01 11:36:50.512 INFO **APP**: ::ffff:192.168.1.63 GET /assets/SmartStart-DTXuN_dr.js 304 - - 0.925 ms
2026-03-01 11:36:50.572 INFO **APP**: ::ffff:192.168.1.63 GET /assets/MissingKeysAlert-CQSPBdZa.js 304 - - 1.106 ms
2026-03-01 11:36:50.634 INFO **Z-WAVE**: Aufruf der api getProvisioningEntries mit Argumenten: \[ \[length\]: 0 \]
2026-03-01 11:36:50.635 INFO **Z-WAVE**: Z-Wave-Client nicht verbunden getProvisioningEntries undefined

Ich habe mir erlaubt, deinen Beitrag zu bearbeiten und den Text vorzuformatieren, da er unleserlich wurde.

oK für den Docker run, aber du hast die Ports 8091 und 3000 nicht freigegeben und den USB-Port nicht gemappt:

docker run -d \
  --name=zwavejsui \
  --network=host \
  -p 8091:8091 \
  -p 3000:3000 \
  -v ~/zwavejsui_config:/usr/src/app/store \
  -e TZ=Europe/Paris \
  --device=/dev/ttyUSB0:/dev/zwave \
  zwavejs/zwavejs2mqtt:latest

Kannst du dich auf http:192.168.1.63:8091 verbinden?
Sobald du verbunden bist, musst du den ZWAVE- und MQTT-Gateway-Bereich ausfüllen.

ok, ja, ich kann mich mit 8091 verbinden und habe die ZWave- und MQTT-Parameter wie in der Dokumentation angegeben eingegeben.

außer bei ZWave, weil es nicht in der Dokumentation stand. Was gebe ich im Bereich Sicherheitsschlüssel ein?

ok, ich denke, ich habe es bei den Schlüsseln verstanden, ich habe gespeichert und sehe, dass Daten hochgeladen werden.

hier ein Screenshot

hingegen kommt nichts in zwavejsui von Gladys an

manchmal oben rechts sehe ich

controller is unable to transmit, aber sehr kurz

ich bin zufrieden, weil es ein bisschen vorwärts geht.

daher dauert es eine Weile, aber die Node-Infos werden nach und nach in der zwavejsui-Oberfläche angezeigt, aber noch nicht in der Gladys-Integration

Sehr gute Nachricht, wenn zwave-js-ui mit deinem Dongle funktioniert!
Ein Problem gelöst :wink:

Okay, jetzt schauen wir uns den MQTT-Teil an, denn dort holt Gladys die Zwave-Infos.

Kannst du einen Screenshot deiner MQTT-Gateway-Konfiguration von zwave-js-ui machen?
Und einen von der zigbee2mqtt-Integration von Gladys?
Die Passwörter kannst du natürlich ausblenden.

danke dir

allerdings habe ich kein Zigbee, ich habe nur MQTT auf Gladys installiert