Suche Tester für die ZwaveJS UI-Integration!

Hallo zusammen!

Ihr wisst, dass @Romuald_Pochet seit mehreren Monaten hart daran gearbeitet hat, eine ZWaveJS UI-Integration in Gladys zu bringen :slight_smile:

Heute sucht er Tester, die Feedback zu dieser Integration geben können. Wenn alles gut läuft, kann die Integration in die Produktion gehen!

Wie kann ich testen?

Es gibt ein Docker-Image, das diese Integration enthält:

rpochet/gladys-zwave-js-ui:dev

Wie starte ich dieses Image? => Tutorial: Ein Docker-Testimage starten

Für Feedback könnt ihr euch in diesem Forumsthema äußern:

https://community.gladysassistant.com/t/v4-integration-z-wave/6057/230?u=pierre-gilles

Vielen Dank an alle, die sich die Zeit nehmen, diese Integration zu testen :pray:

Ich würde einen Test so schnell wie möglich durchführen, und vor allem, wenn ich meinen Raspberry Pi in der Produktion anhalten könnte, der meinen Z-Wave-Dongle verwendet.

Zuerst, gut gemacht @Romuald_Pochet, ich habe einige Geräte, die nur auf dich gewartet haben :wink:

Nimm die folgende Kritik nicht persönlich, ich werde versuchen, so umfassend wie möglich zu sein, um konstruktiv zu sein und die Integration deiner Entwicklung zu unterstützen :slight_smile:


Meine wenigen Anmerkungen:

Auf der Integrationsseite finde ich, dass das Bild nicht im richtigen Format ist:

(Achtung, man muss « z-wave » mit Bindestrich suchen)


Wenn die Liste der Geräte leer ist, zeigen wir kein blaues « alert »-Quadrat bei den anderen Integrationen an, sondern normalerweise einen Text. Das ist nicht sehr wichtig, aber wir verlieren die Konsistenz mit den anderen Diensten.


Anzeigeproblem auf einem mittelgroßen Bildschirm:


Problem mit der Beschriftung und Code:


Problem mit dem Abstand und der Verständlichkeit (ich bin überhaupt kein Z-Wave-Experte, ich weiß nicht, ob ich alle Felder ausfüllen soll oder was sie bedeuten, ein kleines erklärendes Panel wäre willkommen)

Achtung, der Link localhost funktioniert nicht, weil ich einen entfernten Server (Raspberry) verwende.


Ich bin zunächst bei der integrierten Installation geblieben, und beim Klicken auf « Verbinden/Neu verbinden » erscheinen einige Fehler (nicht blockierend) in den Logs

2023-03-27T19:16:59+0200 <error> installMqttContainer.js:57 (ZwaveJSUIManager.installMqttContainer) MQTT-Broker konnte nicht als Docker-Container installiert werden: Fehler: (HTTP-Code 409) unerwartet - Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet. Sie müssen diesen Container entfernen (oder umbenennen), um diesen Namen wiederverwenden zu können.
    at /src/server/node_modules/docker-modem/lib/modem.js:336:17
    at getCause (/src/server/node_modules/docker-modem/lib/modem.js:366:7)
    at Modem.buildPayload (/src/server/node_modules/docker-modem/lib/modem.js:335:5)
    at IncomingMessage.<anonymous> (/src/server/node_modules/docker-modem/lib/modem.js:303:16)
    at IncomingMessage.emit (node:events:525:35)
    at endReadableNT (node:internal/streams/readable:1359:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  reason: undefined,
  statusCode: 409,
  json: {
    message: 'Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet. Sie müssen diesen Container entfernen (oder umbenennen), um diesen Namen wiederverwenden zu können.'
  }
}
2023-03-27T19:16:59+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection catched: Promise {
  <rejected> Error: (HTTP-Code 409) unerwartet - Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet.

      at /src/server/node_modules/docker-modem/lib/modem.js:336:17
      at getCause (/src/server/node_modules/docker-modem/lib/modem.js:366:7)
      at Modem.buildPayload (/src/server/node_modules/docker-modem/lib/modem.js:335:5)
      at IncomingMessage.<anonymous> (/src/server/node_modules/docker-modem/lib/modem.js:303:16)
      at IncomingMessage.emit (node:events:525:35)
      at endReadableNT (node:internal/streams/readable:1359:12)
      at processTicksAndRejections (node:internal/process/task_queues:82:21) {
    reason: undefined,
    statusCode: 409,
    json: {
      message: 'Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet. Sie müssen diesen Container entfernen (oder umbenennen), um diesen Namen wiederverwenden zu können.'
    }
  }
}
2023-03-27T19:16:59+0200 <error> index.js:16 (process.<anonymous>) Error: (HTTP-Code 409) unerwartet - Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet.
    at /src/server/node_modules/docker-modem/lib/modem.js:336:17
    at getCause (/src/server/node_modules/docker-modem/lib/modem.js:366:7)
    at Modem.buildPayload (/src/server/node_modules/docker-modem/lib/modem.js:335:5)
    at IncomingMessage.<anonymous> (/src/server/node_modules/docker-modem/lib/modem.js:303:16)
    at IncomingMessage.emit (node:events:525:35)
    at endReadableNT (node:internal/streams/readable:1359:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  reason: undefined,
  statusCode: 409,
  json: {
    message: 'Konflikt. Der Container-Name "/gladys-zwave-js-ui-mqtt" wird bereits vom Container "f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d" verwendet. Sie müssen diesen Container entfernen (oder umbenennen), um diesen Namen wiederverwenden zu können.'
  }
}
2023-03-27T19:17:00+0200 <info> scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Mon, 27 Mar 2023 17:17:00 GMT
2023-03-27T19:17:03+0200 <info> installMqttContainer.js:54 (ZwaveJSUIManager.installMqttContainer) {
  name: '/gladys-zwave-js-ui-mqtt',
  image: 'eclipse-mosquitto:2',
  state: 'created',
  id: 'f36daed4ca294ad1555d79172eec835aeacf429c03c6d19bbb0bde8284125d1d',
  networkMode: 'host',
  created_at: 1679937418
}

Danach bin ich auf die Seite « Entdeckung » gegangen, da ich noch kein anderes Gerät als den USB-Dongle angeschlossen hatte, und die Suche läuft in einer Schleife.
Ich habe Angst, dass dieses Verhalten bei der aktiven Suche andere Austausche in anderen Gladys-Diensten blockiert.


Direkt nach der Installation des Containers sehe ich diese Nachricht:

Zwavejs UI nicht unterstützte Version: unterstützte Version 8.9.0, aber aktuelle Version ist 8.11.1

Aber ich habe nichts gemacht!!!


Und um zu betonen, dass ich in Z-Wave inkompetent bin, habe ich auf Z-Wave-UI diese Fehlermeldung:

Driver: Failed to initialize the driver: ZWaveError: Timeout while waiting for an ACK from the controller (ZW0200)
    at Driver.sendMessage (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:4148:23)
    at ZWaveController.identify (/usr/src/app/node_modules/zwave-js/src/lib/controller/Controller.ts:967:33)
    at Driver.initializeControllerAndNodes (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:1291:26)
    at Immediate.<anonymous> (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:1097:16) (ZW0100)

Ich hoffe, dass mein Dongle nicht zu alt ist…


Ich höre für heute Abend auf, ich werde es versuchen, sobald ich etwas mehr Zeit habe.

Aber es ist trotzdem eine super Arbeit, und du kannst auf uns zählen, um dir zu helfen, die Details zu verfeinern :wink:

Hallo!

Zuerst einmal vielen Dank, dass du mit der Entwicklung dieser Z-Wave-Integration begonnen hast! Ich habe es heute Abend getestet, aber es hat nicht funktioniert.

Mein Kontext:

  • Ich nutze eine Docker-Infrastruktur, die auf einem Synology gehostet wird
  • Ich habe Home Assistant in Produktion laufen, mit Z-Wave JS UI konfiguriert

Was ich gemacht habe:

  • Ich habe die Testversion von rpochet/gladys-zwave-js-ui:dev installiert
  • Ich habe die Integration konfiguriert, indem ich das Kästchen „Externe ZwaveJS UI“ angehakt habe, da ich bereits eine habe
  • Ich habe die Verbindungsinformationen zu meinem MQTT angegeben. Ich habe kein Login/Passwort eingegeben, da es keines gibt.

Ich dachte, alles sei in Ordnung, da ich eine Meldung erhielt, dass Z-Wave JS UI gestartet wird und die Logos von gladys, mqtt und zwavejs alle mit einem grünen Häkchen am unteren Rand des Konfigurationsbildschirms angezeigt werden.

Als ich jedoch in den Bereich „Z-Wave-Erkennung“ ging, lief es im Kreis und dann passierte nichts.

Habe ich in meinem Fall richtig gehandelt, indem ich die externe Z-WaveJS UI verwendet habe?

Zur Information, ich habe versucht, das USB-Gerät zu ändern, und erhielt folgenden Fehler:

2023-04-06T09:52:19+0200 <error> index.js:16 (process.<anonymous>) Error: Command failed: sh ./server/services/zwave-js-ui/docker/gladys-zwave-js-ui-zwave-js-ui-env.sh /var/lib/gladysassistant gladys "8xq40A9xvDtxjsdUmJHZ" /dev/ttyUSB1 "8898addcfd8030d9a98c324fc30d9bf9" "5382adb3164e66f40bf6e56be47bc156" "2538700facb776db830721887a0be8f4" "4d3753aae63087ed7b32680c71f914df"
sh: can't open './server/services/zwave-js-ui/docker/gladys-zwave-js-ui-zwave-js-ui-env.sh': No such file or directory

    at ChildProcess.exithandler (node:child_process:419:12)
    at ChildProcess.emit (node:events:513:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Socket.<anonymous> (node:internal/child_process:449:11)
    at Socket.emit (node:events:513:28)
    at Pipe.<anonymous> (node:net:322:12) {
  code: 2,
  killed: false,
  signal: null,
  cmd: 'sh ./server/services/zwave-js-ui/docker/gladys-zwave-js-ui-zwave-js-ui-env.sh /var/lib/gladysassistant gladys "8xq40A9xvDtxjsdUmJHZ" /dev/ttyUSB1 "8898addcfd8030d9a98c324fc30d9bf9" "5382adb3164e66f40bf6e56be47bc156" "2538700facb776db830721887a0be8f4" "4d3753aae63087ed7b32680c71f914df"'
}

Ich habe das Bild so übernommen, wie es auf dem GitHub ist, ist es so besser?

Einmal hatte ich ein Kompatibilitätsproblem nach einem Update von ZWave JS UI. Mal sehen, ob wir z. B. eine Version von ZWave JS UI festlegen oder eine andere Idee haben.

Ja, aber ich unterstützte den Fall „kein Passwort“, ich habe es korrigiert.

Pfadproblem, behoben

Ich bleibe dran.

Ich habe es geschafft, meinen Dongle anzuschließen, ohne dass es am Ende zu viele Probleme gab, man musste nur den richtigen USB-Anschluss wählen :smiley:

Ich sehe also Geräte im Entdeckungs-Tab, aber ich bin verwirrt:

  1. Fall (Knoten 4):
  • Ich bin mir nicht sicher, ob „toter Knoten“ die richtige Bezeichnung ist
  • Der Name ist „tot“, aber es scheint, dass man ihn trotzdem in Gladys „verbinden“ kann
  • Auf dieser Karte ist der Link sauber, mit dem Indikator für externen Link
  1. Fall (Knoten 1):
  • Ich kann mein Gerät korrekt in Gladys hinzufügen
  • Auch wenn es keine Funktion hat
  • Ich habe also ein nutzloses Gerät in Gladys
  • Wenn es bereits hinzugefügt wurde, weiß ich es nicht im Entdeckungs-Tab
  • Auf dieser Karte ist der Link weniger sauber als im ersten, der Indikator für externen Link wird nicht angezeigt
EDIT: Ich sehe meinen Dimmer

Zur Information, dieses Gerät ohne Funktion ist ein Dimmer-Schalter.
Laut Code hätte ich erwartet, dass ich in

  // dimmer binary
  {
    CATEGORY: DEVICE_FEATURE_CATEGORIES.SWITCH,
    COMMAND_CLASSES: [COMMAND_CLASSES.COMMAND_CLASS_SWITCH_MULTILEVEL],
    PROPERTIES: [PROPERTIES.TARGET_VALUE],
    TYPE: DEVICE_FEATURE_TYPES.SWITCH.DIMMER,
  },

Hier ist der Wert, der passen sollte (laut meinen Anfängeraugen)

{
      "id": "11-38-0-targetValue",
      "nodeId": 11,
      "toUpdate": false,
      "commandClass": 38,
      "commandClassName": "Multilevel Switch",
      "endpoint": 0,
      "property": "targetValue",
      "propertyName": "targetValue",
      "type": "number",
      "readable": true,
      "writeable": true,
      "label": "Target value",
      "stateless": false,
      "commandClassVersion": 1,
      "min": 0,
      "max": 99,
      "list": false,
      "value": 0,
      "lastUpdate": 1680778550437,
      "newValue": 0
    }

(Ich bin mir nicht sicher, ob ich die richtigen Hinweise für das Debugging gebe)

Mort oder Dead ist der Begriff von ZWave, danach ist es eine Frage des Timings, denn wenn das Gerät geweckt wird, wird es erkannt, da mindestens eine Nachricht von ZWave JS UI empfangen wurde. Danach habe ich die Nachrichten der alten ZWave-Integration übernommen und es wäre vielleicht sinnvoller, 2 Nachrichten zu definieren (da Dead nur selten auftreten sollte).

Das ist dein ZWave-Controller, tatsächlich hat er keine Funktion und könnte daher aus der Liste « ausgeschlossen » werden.

Das Gerät, das du als Dimmer-Schalter angegeben hast, ist Knoten 11 und nicht Knoten 1.

Danke. Funktioniert das Topic-Prefix? Ich frage mich, weil wenn ich es eingebe, die Seite verlasse und wiederkomme, verschwindet es.

Mit der neuen Version sehe ich immer noch nicht meine Geräte. Es läuft in einer Schleife. Bleibt abzuwarten :wink:

Und nur zur Information, mein MQTT-Container zeigt mir an, dass ein Client verbunden ist.

Ich habe eine neue Version veröffentlicht, kannst du das aktualisieren?

Ich konnte es heute Abend testen. Die neue Version hat das Problem mit dem Präfix behoben. Allerdings habe ich gerade festgestellt, dass ich das gleiche Problem mit der Schaltfläche „Thema mit Standort“ habe: Wenn ich den Status ändere, die Seite verlasse und zurückkehre, kehrt die Schaltfläche in den ursprünglichen Zustand zurück.

Die Entdeckung dreht sich immer im Kreis und ich sehe keine Geräte ankommen. Auf der Log-Seite gibt es Fortschritte, neben der Verbindung zu MQTT sehe ich eine Meldung, dass ein Scan läuft. Aber er findet im Moment nichts.

Hallo,

Hast du einen MQTT-Explorer, wie MQTT Explorer? Du solltest eine Nachricht im Topic sehen: <zwave-js-ui_prefix>/_CLIENTS/ZWAVE_GATEWAY-Gladys/api/getNodes

Falls nicht, kannst du mir die Logs deiner Gladys-Instanz schicken?

Guten Abend,

hier ist, was ich in MQTT Explorer habe:

Kein Problem, dir die Gladys-Logs zu geben, aber du müsstest mir sagen, wie ich sie über Docker abrufen kann.

Hallo,

Hast du nichts in der Topic getNodes? Ist das dein ZWave JS in der Produktion oder wurde die Installation von Gladys durchgeführt? Ich hatte vor zwei Tagen ein Problem nach einem Update von ZWave JS, nichts funktionierte mehr bei mir, ich musste ein Update durchführen, damit alles wieder in Ordnung kam…

Für die Gladys-Logs kannst du in der Befehlszeile Folgendes tun (abhängig vom Namen deiner Container):

$ docker logs gladys > gladys.log
$ docker logs gladys-zwave-js-ui-zwave-js-ui > gladys-zwave-js-ui-zwave-js-ui.log

Das ist mein produktives zwavejs. Ich habe nichts in dem von dir genannten Topic.
Ich schicke dir die Logs heute Abend oder mittags, wenn ich etwas Zeit habe.

Hallo,

Ich habe den Glayds-Container neu gestartet und die Logs geleert, um dir etwas halbwegs Sauberes zu geben:

2023-04-23T20:50:36+0000 enedis.sync.js:57 (EnedisHandler.sync) Enedis: Synchronisiere Konto
2023-04-23T20:50:36+0000 enedis.sync.js:61 (EnedisHandler.sync) Enedis: 0 Verbrauchspunkte zum Synchronisieren gefunden
2023-04-23T20:51:00+0000 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Überprüfe Kalenderauslöser am So, 23. Apr. 2023 20:51:00 GMT
2023-04-23T20:52:00+0000 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Überprüfe Kalenderauslöser am So, 23. Apr. 2023 20:52:00 GMT
2023-04-23T20:53:00+0000 scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Überprüfe Kalenderauslöser am So, 23. Apr. 2023 20:53:00 GMT
2023-04-23T20:53:06+0000 connect.js:33 (ZwaveJSUIManager.connect) ZwaveJS UI USB-Dongle wird als angeschlossen angenommen
2023-04-23T20:53:06+0000 connect.js:33 (ZwaveJSUIManager.connect) ZwaveJS UI USB-Dongle wird als angeschlossen angenommen
2023-04-23T20:53:06+0000 connect.js:152 (MqttClient.) Verbunden mit MQTT-Container
2023-04-23T20:53:06+0000 connect.js:154 (MqttClient.) Höre auf MQTT-Themen zwave-js-ui/#
2023-04-23T20:53:06+0000 connect.js:152 (MqttClient.) Verbunden mit MQTT-Container
2023-04-23T20:53:06+0000 connect.js:154 (MqttClient.) Höre auf MQTT-Themen zwave/#
2023-04-23T20:53:06+0000 handleMqttMessage.js:81 (ZwaveJSUIManager.handleMqttMessage) ZwaveJSUI-Scan läuft. Nachricht überspringen.

Man sieht, dass es sich mit MQTT verbindet und auf das Thema zwave hört. Das ist das Thema, das ich in der Konfiguration angegeben habe. Allerdings habe ich keine Ahnung, warum es auf zwave-js-ui hört.

Die Logs wiederholen sich in der letzten Zeile, es scannt, findet aber nichts.

Auf der Seite von zwaveJS UI gibt es so viele Dinge, dass es sehr kompliziert ist, ohne zu wissen, wonach ich suche.

Es ist schon seltsam, dass er auf zwei Themen hört, zwave und zwave-js-ui…

Allerdings wird eine Nachricht tatsächlich an zwave/_CLIENTS/ZWAVE_GATEWAY-Gladys/api/getNodes/set gesendet, was eine Antwort im Thema zwave/_CLIENTS/ZWAVE_GATEWAY-Gladys/api/getNodes auslösen sollte. Ich werde prüfen, ob es nicht eine Konfiguration in ZWave JS UI ist.

Hallo zusammen,
Ich nutze Zwave seit 7 Jahren mit Domoticz.
Seit ich Gladys verwende, warte ich gespannt auf diese Integration.

Ich versuche seit 3 Tagen, das zu tun, was auf der Website Z-Wave JS UI steht, stoße aber auf Probleme:

  • Ich kann auf die Oberfläche ip_gladys:port_zwavejs-ui zugreifen, aber nach einer Weile, wenn ich die Seite aktualisiere, lande ich bei „Die Verbindung ist fehlgeschlagen“
  • In MQTT Explorer habe ich das

    Ich habe die Installation mit der Option " Lokalen Ordner verwenden" durchgeführt
    Der von mir verwendete Ordner ist leer
    Hier sind die Logs aus der Oberfläche:
    https://github.com/Gaetanb76/GladysGB/tree/main
    Mein Dongle wird auf dem Port ACM0 erkannt
    Es handelt sich um einen Everspring SA413
    Ich habe auch einen Z-Stick Gen 5, aber er ist mit Domoticz verbunden und konfiguriert, um meine gesamte elektrische Heizung zu steuern.