Z-Wave - Gladys v4 - Windows WSL

Hallo,

Ich habe tagelang gesucht, aber nichts zu diesem Thema gefunden.

Nach der Installation und Konfiguration von Gladys V4 auf meinem Windows-PC, um Entwicklungen durchführen zu können.

Der erste Schritt ist das Aktualisieren der Distribution:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Installation der Tools/Bibliotheken:
sudo apt install sqlite3 make g++ git coreutils tzdata nmap openssl gzip udev -y

Die Installation von node.js
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh sudo bash nodesource_setup.sh sudo apt install nodejs -y

Die Kompilierung von openzwave
git clone https://github.com/OpenZWave/open-zwave.git cd open-zwave git checkout 5d18bbfb21d8cdc61ee6baae6f478c963297dfc5 make sudo make install sudo sh -c "echo '/usr/local/lib64' > /etc/ld.so.conf.d/openzwave.conf" sudo ldconfig cd && rm -rf open-zwave

Anschließend habe ich das Gladys-Repo geklont
git clone https://github.com/GladysAssistant/Gladys gladys && cd gladys

Ich habe die NPM-Abhängigkeiten installiert und dann die DB-Migration gestartet

Schließlich gelingt es mir, den Server nach einigen Problemen bei der Installation der NPM-Abhängigkeiten auf dem Server zu starten.

udo@LAPTOP-4JPT1TSR:~/gladys/server$ npm start

> gladys-server@ start /home/udo/gladys/server
> cross-env NODE_ENV=development nodemon index.js

[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index.js`
2021-05-04T10:58:49+0200 <debug> brain.train.js:59 (Brain.train) Tregnender Gehirn...
2021-05-04T10:58:49+0200 <debug> brain.train.js:61 (Brain.train) Brain trainiert!
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'node-hue-api' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/philips-hue/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.PhilipsHueService [als philips-hue] (/home/udo/gladys/server/services/philips-hue/index.js:8:21)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 4)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/philips-hue/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'ical' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/caldav/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.CalDAVService [als caldav] (/home/udo/gladys/server/services/caldav/index.js:7:16)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 1)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/caldav/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'node-telegram-bot-api' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/telegram/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.TelegramService [als telegram] (/home/udo/gladys/server/services/telegram/index.js:10:23)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 6)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/telegram/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'serialport' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/usb/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.ZwaveService [als usb] (/home/udo/gladys/server/services/usb/index.js:5:22)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 7)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/usb/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'openzwave-shared' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/zwave/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.ZwaveService [als zwave] (/home/udo/gladys/server/services/zwave/index.js:7:17)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 9)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/zwave/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'mqtt' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/mqtt/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    bei Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    bei Function.Module._load (internal/modules/cjs/loader.js:725:27)
    bei Module.require (internal/modules/cjs/loader.js:952:19)
    bei require (internal/modules/cjs/helpers.js:88:18)
    bei Object.MqttService [als mqtt] (/home/udo/gladys/server/services/mqtt/index.js:6:16)
    bei /home/udo/gladys/server/lib/service/service.load.js:38:65
    bei async Promise.all (Index 3)
    bei async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    bei async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    bei async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/mqtt/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
} 2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'tplink-smarthome-api' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/tp-link/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.TpLinkService [as tp-link] (/home/udo/gladys/server/services/tp-link/index.js:7:22)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 13)
    at async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    at async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    at async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/tp-link/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'ewelink-api' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/ewelink/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.EwelinkService [as ewelink] (/home/udo/gladys/server/services/ewelink/index.js:7:22)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 12)
    at async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    at async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    at async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/ewelink/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'fluent-ffmpeg' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/rtsp-camera/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.RtspCameraService [as rtsp-camera] (/home/udo/gladys/server/services/rtsp-camera/index.js:7:18)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 5)
    at async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    at async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    at async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/rtsp-camera/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Fehler: Modul 'mqtt' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/zigbee2mqtt/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.Zigbee2mqttService [as zigbee2mqtt] (/home/udo/gladys/server/services/zigbee2mqtt/index.js:6:16)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 14)
    at async Service.load (/home/udo/gladys/server/lib/service/service.load.js:15:3)
    at async Object.start (/home/udo/gladys/server/lib/index.js:106:9)
    at async /home/udo/gladys/server/index.js:50:3 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/zigbee2mqtt/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <info> index.js:19 (Object.start) Beispiel-Service wird gestartet
2021-05-04T10:58:49+0200 <info> index.js:15 (Object.start) Bluetooth-Service wird gestartet
2021-05-04T10:58:49+0200 <debug> bluetooth.start.js:14 (BluetoothManager.start) Bluetooth: Bluetooth-Ereignisse werden überwacht
2021-05-04T10:58:49+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection gefangen: Promise {
  <rejected> Error: Modul '@abandonware/noble' nicht gefunden
  Require-Stack:
  - /home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js
  - /home/udo/gladys/server/services/bluetooth/lib/index.js
  - /home/udo/gladys/server/services/bluetooth/index.js
  - /home/udo/gladys/server/services/index.js
  - /home/udo/gladys/server/lib/index.js
  - /home/udo/gladys/server/index.js
      at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
      at Function.Module._load (internal/modules/cjs/loader.js:725:27)
      at Module.require (internal/modules/cjs/loader.js:952:19)
      at require (internal/modules/cjs/helpers.js:88:18)
      at BluetoothManager.start (/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js:16:20)
      at Object.start (/home/udo/gladys/server/services/bluetooth/index.js:16:22)
      at Service.start (/home/udo/gladys/server/lib/service/service.start.js:33:21) {
    code: 'MODULE_NOT_FOUND',
    requireStack: [
      '/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js',
      '/home/udo/gladys/server/services/bluetooth/lib/index.js',
      '/home/udo/gladys/server/services/bluetooth/index.js',
      '/home/udo/gladys/server/services/index.js',
      '/home/udo/gladys/server/lib/index.js',
      '/home/udo/gladys/server/index.js'
    ]
  }
}
2021-05-04T10:58:49+0200 <error> index.js:16 (process.<anonymous>) Fehler: Modul '@abandonware/noble' nicht gefunden
Require-Stack:
- /home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js
- /home/udo/gladys/server/services/bluetooth/lib/index.js
- /home/udo/gladys/server/services/bluetooth/index.js
- /home/udo/gladys/server/services/index.js
- /home/udo/gladys/server/lib/index.js
- /home/udo/gladys/server/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at BluetoothManager.start (/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js:16:20)
    at Object.start (/home/udo/gladys/server/services/bluetooth/index.js:16:22)
    at Service.start (/home/udo/gladys/server/lib/service/service.start.js:33:21) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js',
    '/home/udo/gladys/server/services/bluetooth/lib/index.js',
    '/home/udo/gladys/server/services/bluetooth/index.js',
    '/home/udo/gladys/server/services/index.js',
    '/home/udo/gladys/server/lib/index.js',
    '/home/udo/gladys/server/index.js'
  ]
}
2021-05-04T10:58:49+0200 <info> index.js:14 (Object.start) Starting Xiaomi service
2021-05-04T10:58:49+0200 <info> index.js:15 (Object.start) Starting Tasmota service
2021-05-04T10:58:49+0200 <warn> service.start.js:44 (Service.start) Unable to start service tasmota TypeError: Cannot read property 'device' of null
    at TasmotaMQTTHandler.connect (/home/udo/gladys/server/services/tasmota/lib/mqtt/tasmota.mqtt.connect.js:11:20)
    at /home/udo/gladys/server/services/tasmota/lib/tasmota.connect.js:8:62
    at Array.forEach (<anonymous>)
    at TasmotaHandler.connect (/home/udo/gladys/server/services/tasmota/lib/tasmota.connect.js:8:33)
    at Object.start (/home/udo/gladys/server/services/tasmota/index.js:16:20)
    at Service.start (/home/udo/gladys/server/lib/service/service.start.js:33:21)
2021-05-04T10:58:49+0200 <info> index.js:20 (Object.start) Starting Open Weather service
2021-05-04T10:58:49+0200 <info> service.start.js:40 (Service.start) Service openweather is not configured, so it was not started.
2021-05-04T10:58:49+0200 <debug> scene.init.js:12 (SceneManager.init) Scene.init
2021-05-04T10:58:49+0200 <debug> device.init.js:31 (DeviceManager.init) Device : init : Found 0 devices
2021-05-04T10:58:49+0200 <debug> scheduler.init.js:9 (Scheduler.init) Scheduler.init
2021-05-04T10:58:49+0200 <info> index.js:63 (Server.<anonymous>) Server listening on port 1443

Es gibt viele Module, die anscheinend nicht gefunden werden … nun, ich weiß nicht, ob das ein Problem ist, da ich auf die Gladys-Oberfläche zugreifen kann, also …

Aber … « Gladys ist mit keinem USB-Z-Wave-Schlüssel verbunden. » und kein USB-Stick wird gefunden :frowning: Da ich der Dokumentation gefolgt bin … weiß ich nicht, wann man Docker verwendet … denn in den Voraussetzungen gibt es Docker Desktop für Windows … und ich habe im Forum viele Lösungen für den USB-Z-Wave-Schlüssel gesehen, aber Version Docker …

Ich brauche also eure Hilfe dabei … :pray: :pray: :pray: :pray: :pray:

Es scheint auch, dass meine Gladys-Instanz nicht immer mit dem Internet verbunden ist …

PS: Wenn ihr mir auch helfen könnt, herauszufinden, wie ich « Code . » von Ubuntu WSL ausführen kann, denn es funktioniert von meinem PowerShell aus, aber nicht von meinem Ubuntu :dizzy_face:

Hallo @tagcash

Warum bist du root? Das sollte doch nicht so eingerichtet sein.

Um Gladys zu bauen, nutzt du es im Moment nicht

Kein Problem, wir müssen mal schauen, was beim Installieren der Pakete nicht geklappt hat

Voilà, ich habe meinen ersten Beitrag mit meinen neuen Logs bearbeitet, ich habe es endlich geschafft, Gladys zu installieren, ohne Root zu sein :slight_smile: … Ich musste trotzdem ein sudo npm install durchführen, aber voilà, ich glaube, ich bin jetzt richtig eingerichtet, aber ich habe immer noch das gleiche Problem, mein Z-Wave-USB-Stick wird nicht erkannt …

Stammen diese Logs von deiner letzten Installation?

Falls ja, dann hat dein npm install nicht funktioniert und Gladys wird nicht richtig laufen!

Ja, die Logs sind aktuell im Vergleich zu meiner letzten Installation. Ich habe die Dokumentation wie gewohnt befolgt, aber diesmal gab es keine Fehler bei meinem NPM Install… Aber wenn du sagst, dass trotzdem ein Problem besteht, weiß ich nicht mehr, was ich tun soll :cry:

Hier geht es um die Module der Dienste, die sich im Ordner server/services befinden.

Wenn du sagst:

Ich habe die NPM-Abhängigkeiten installiert

Wie bist du vorgegangen?

Wir sind uns einig, du bist in den Ordner server gewechselt:

cd server

et dann hast du gemacht:

npm install

?

Wenn ja:

Wenn du die Server-Abhängigkeiten installierst, gibt es eine NPM-Postinstall-Aufgabe, die die Abhängigkeiten jedes einzelnen Dienstes nacheinander installiert. Damit dies die Installation für Entwickler, die nicht alles haben, nicht „blockiert“, schlägt diese Aufgabe bei einem Fehler stillschweigend fehl – das ist beabsichtigt.

Wenn du die Abhängigkeiten der Dienste direkt installieren möchtest, um den vollständigen Fehler zu sehen, gehe in den Ordner eines Dienstes: zum Beispiel den zwave-Dienst:

cd server/services/zwave

Dann mache:

npm install

Du solltest den Fehler sehen, den du hattest.

Hallo,

Ich habe herausgefunden, wie man (offensichtlich) eine funktionierende Installation durchführt.

Aktualisierung der Distribution:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Installation der Tools/Bibliotheken:
sudo apt install sqlite3 make g++ git coreutils tzdata nmap openssl gzip udev -y

Installation von Node.js 14:
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs -y

Und das habe ich im Internet gefunden, und nach Tests scheint es tatsächlich besser zu funktionieren, ich habe zusätzlich … Node.js wie folgt installiert:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt -y install nodejs

(vielleicht reicht die zweite Methode, im Zweifel habe ich beide durchgeführt, es scheint zu funktionieren.)

Dann habe ich die Anleitung befolgt:
git clone https://github.com/OpenZWave/open-zwave.git
cd open-zwave
git checkout 5d18bbfb21d8cdc61ee6baae6f478c963297dfc5
make
sudo make install
sudo sh -c "echo '/usr/local/lib64' > /etc/ld.so.conf.d/openzwave.conf"
sudo ldconfig
cd && rm -rf open-zwave

Repo klonen:
git clone https://github.com/GladysAssistant/Gladys gladys && cd gladys

Installation der NPM-Serverabhängigkeiten:
cd server
npm install

Datenbankmigration:
npm run db-migrate:dev

Und zum Schluss:
npm start

Und für das Frontend habe ich der Anleitung gefolgt, kein Problem.

Ich habe Gladys konfiguriert, um die Integration meines Z-Wave-Schlüssels (Aeotec z-stick gen5) durchzuführen, und in meiner Liste stehen 4 Ports …

  • ttyS0
  • ttyS1
  • ttyS2
  • ttyS3

Okay, ich schaue im Internet nach und mein Z-Wave-Schlüssel ist auf einem Port COM3 unter Windows, und das scheint ttyS2 zu entsprechen. Ich wähle ttyS2 und dann ist es vorbei ^^

Ich habe einen Bluetooth-Fehler …

2021-05-05T15:13:20+0200 bluetooth.start.js:14 (BluetooththManager.start) Bluetooth: Bluetooth-Ereignisse werden überwacht
2021-05-05T15:13:20+0200 index.js:15 (process.) unhandledRejection gefangen: Promise {
Error: EAFNOSUPPORT, Adressfamilie wird vom Protokoll nicht unterstützt
at new Hci (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/hci.js:74:18)
at new NobleBindings (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:25:15)
at Object. (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:546:18)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at module.exports (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/resolve-bindings.js:13:12)
at Object. (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/index.js:2:49)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at BluetoothManager.start (/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js:16:20)
at Object.start (/home/udo/gladys/server/services/bluetooth/index.js:16:22)
at Service.start (/home/udo/gladys/server/lib/service/service.start.js:33:21) {
errno: 97,
code: ‹ EAFNOSUPPORT ›,
syscall: ‹ socket ›
}
}
2021-05-05T15:13:20+0200 index.js:16 (process.) Error: EAFNOSUPPORT, Adressfamilie wird vom Protokoll nicht unterstützt
at new Hci (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/hci.js:74:18)
at new NobleBindings (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:25:15)
at Object. (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:546:18)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at module.exports (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/lib/resolve-bindings.js:13:12)
at Object. (/home/udo/gladys/server/services/bluetooth/node_modules/@abandonware/noble/index.js:2:49)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at BluetoothManager.start (/home/udo/gladys/server/services/bluetooth/lib/commands/bluetooth.start.js:16:20)
at Object.start (/home/udo/gladys/server/services/bluetooth/index.js:16:22)
at Service.start (/home/udo/gladys/server/lib/service/service.start.js:33:21) {
errno: 97,
code: ‹ EAFNOSUPPORT ›,
syscall: ‹ socket ›
}

Nicht so schlimm, denke ich…

Und dann habe ich:

2021-05-05T15:29:32+0200 zwave.connect.js:11 (ZwaveManager.connect) Zwave: Verbindung zu USB = /dev/ttyS2 herstellen
2021-05-05T15:29:47+0200 zwave.getNodeNeighbors.js:14 (ZwaveManager.getNodeNeighbors) Zwave: Nachbarknoten abrufen…
2021-05-05T15:29:52+0200 zwave.driverFailed.js:10 (ZwaveManager.driverFailed) Zwave: Treiber konnte nicht gestartet werden.
2021-05-05T15:29:52+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: nicht verbunden. Weiterleitung des Ereignisses verhindern.
2021-05-05T15:29:58+0200 zwave.connect.js:11 (ZwaveManager.connect) Zwave: Verbindung zu USB = /dev/ttyS2 herstellen
2021-05-05T15:30:18+0200 zwave.driverFailed.js:10 (ZwaveManager.driverFailed) Zwave: Treiber konnte nicht gestartet werden.
2021-05-05T15:30:18+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: nicht verbunden. Weiterleitung des Ereignisses verhindern.

Und dann bin ich buchstäblich blockiert:

Und wenn ich den Server (WSL) stoppe und neu starte, ändert sich nichts, außer dass ich nicht mehr verbunden bin.

et das ist, was der Server mir sagt:

2021-05-05T15:32:32+0200 index.js:20 (process.) uncaughtException gefangen: uncaughtException
2021-05-05T15:32:32+0200 index.js:21 (process.) Error: listen EADDRINUSE: Adresse bereits in Verwendung :::1443
at Server.setupListenHandle [as _listen2] (net.js:1318:16)
at listenInCluster (net.js:1366:12)
at Server.listen (net.js:1452:7)
at start (/home/udo/gladys/server/api/index.js:62:10)
at /home/udo/gladys/server/index.js:53:17 {
code: ‹ EADDRINUSE ›,
errno: -98,
syscall: ‹ listen ›,
address: ‹ :: ›,
port: 1443
}
2021-05-05T15:32:52+0200 zwave.driverFailed.js:10 (ZwaveManager.driverFailed) Zwave: Treiber konnte nicht gestartet werden.
2021-05-05T15:32:52+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: nicht verbunden. Weiterleitung des Ereignisses verhindern.

Entschuldigung ‹ ^^ ich würde gerne keine Probleme haben und Ihnen keine Zeit stehlen ^^ ›

PS: Wenn es einen anderen Weg gibt, als jedes Mal, wenn etwas schiefgeht, wsl --unregister <DistributionName> auszuführen und die Installation nicht erneut durchführen zu müssen, wäre ich sehr dankbar für den Tipp

Die 2 Befehle tun genau das Gleiche

Beim Bluetooth ja, das ist normal

Was den Zugriff auf den seriellen Port betrifft, scheint es unter WSL2 unmöglich zu sein, unter WSL1 dagegen schon

Falls du nicht vorhast, Docker zu verwenden, um ein Gladys-Image zu erstellen, kannst du auf WSL1 umsteigen

wsl --set-version Ubuntu 1

Man muss den Prozess einfach beenden, wie unter Windows => Strg+C

Vielen Dank!

Ich würde gerne Docker verwenden, ich denke, das ist einfacher, aber in der Dokumentation habe ich nicht gefunden, wie man das macht, also mache ich es im Moment so einfach wie möglich ^^

Willst du Gladys testen oder entwickeln?

Nicht sicher… In meinem Fall, wenn ich einen npm start des Servers starte… ist es aktuell kaputt. Ich habe Strg+C gedrückt und mit npm start neu gestartet, aber es ist immer noch kaputt.

Tester, ich habe bereits mit einem Raspberry 400 getestet, der Z-Wave-Schlüssel wird sofort erkannt, kein Problem. Ich hatte meinen Fibaro-Bewegungsmelder mit Z-Wave hinzugefügt, aber ich hatte nur eine Info zu allen Daten, die hochgeladen wurden. Da ich Entwickler bin und Z-Wave nicht sehr im Trend liegt und derzeit auch nicht mehr bei Gladys gewartet wird, wollte ich sehen, ob ich einen Weg finde, dies mit dem aktuellen OpenZWave zu debuggen und schauen, ob ich einen neuen Service mit ZWaveJS erstellen kann, wenn nötig.

Ok, ich sehe, das große Problem wird sein, den COM-Port unter Linux in WSL zu bekommen. Wie ich oben schon sagte, ist das unter WSL2 nicht möglich.

Wenn du zu WSL1 wechselst, wirst du etwas unter /dev/ttyS# finden.

Du bist wahrscheinlich von diesem Bug betroffen => Bug avec nodemon en développement local

Möglich: Ich habe STRG+C für Server und Frontend gedrückt, die aktiven PIDs auf den Ports 1443 und 1444 getötet und dann Server und Frontend neu gestartet, aber das Problem besteht weiterhin. Ich werde wsl -unregister unbuntu ausführen und Gladys neu installieren, indem ich WSL1 verwende, da ich nicht weiß, wie ich Docker in der Entwicklung nutzen soll :sweat_smile: Ich habe Gladys Docker zwar problemlos auf einem Raspberry Pi 400 installiert, aber mit der Dokumentation ist es einfach :face_with_hand_over_mouth: Ich habe das Gefühl, ein Newbie zu sein :man_facepalming:t2:

Deshalb deployen wir unter Docker, um die Laufzeitumgebung zu kontrollieren.

In der Entwicklung hängt das von vielen Dingen ab, aber ich muss dir sagen, dass es auf Windows nicht das Einfachste ist.

Jetzt, wo ich drüber nachdenke, stimmt es, dass ich immer mit Node.js auf meinem Mac entwickelt habe und nie zuvor damit konfrontiert wurde :man_facepalming:t2:

Ansonsten habe ich noch nie mit/auf Docker entwickelt, also wenn es eine Seele gibt, die ein Tutorial oder eine Dokumentation macht… ich bin dankbar :folded_hands::folded_hands:

Man entwickelt nicht auf Docker :wink:

Wir verteilen Gladys in Form eines Multi-Architektur-Docker-Images.

Docker ist für die Entwicklung überhaupt nicht zwingend erforderlich.

Stell dir vor, du erstellst einen Pull Request, der zwavejs implementiert. Es wäre einfacher, ein Docker-Image mit deinen Änderungen bereitzustellen, damit diejenigen, die es können, es testen können.
Dieser Teil ist nicht dokumentiert, ich muss eine Dokumentationsseite erstellen.

Ein guter Ansatz, um die Funktionsweise zu verstehen, ist zu sehen, wie der Workflow auf GitHub funktioniert

https://github.com/GladysAssistant/Gladys/actions/runs/806707228

Zögere nicht, Fragen zu stellen, es ist nicht unbedingt einfach, eine einfache und klare Dokumentation zu schreiben, daher können deine Fragen dazu beitragen, diese zu erweitern.

Vielen Dank,

Nein, ich denke nicht, dass eine Dokumentation notwendig ist :sweat_smile:

Ich gebe zu, dass ich Docker vor Gladys noch nie verwendet habe (also vor den letzten zwei Wochen) und ich habe immer mit Git an Projekten mit mehreren Entwicklern gearbeitet (aber gut, in derselben Firma).

Ich werde testen, was du mir gesagt hast, in der Hoffnung, dass es funktioniert.

Also zunächst mal … in WSL V1 … ist es schlimmer, ich habe nichts in der Liste der USB-Z-Wave-Ports

EDIT:

Ich war in den Z-Wave-Diensten und habe ein npm install gemacht und mein Schlüssel wird erkannt!

Danke!!