Z-Wave - Gladys v4 - Windows WSL

Bonjour,

J’ai cherché pendant des jours, mais je n’ai rien trouver à ce sujet.

Après avoir installé et configurer Gladys V4 sur mon PC Windows afin de pouvoir faire du Dev.

La première étape est de mettre à jour la distribution:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Installation des outils/librairies:
sudo apt install sqlite3 make g++ git coreutils tzdata nmap openssl gzip udev -y

L’installation de 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

La compilation de 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

Ensuite j’ai cloné la repo Gladys
git clone https://github.com/GladysAssistant/Gladys gladys && cd gladys

J’ai installé les dépendances NPM, puis lancer la migration de DB

J’arrive enfin à lancer le serveur après quelques soucis lors de l’installation des dépendances NPM sur serveur.

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) Training brain...
2021-05-04T10:58:49+0200 <debug> brain.train.js:61 (Brain.train) Brain trained!
2021-05-04T10:58:49+0200 <debug> service.load.js:46 () Error: Cannot find module 'node-hue-api'
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
    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.PhilipsHueService [as philips-hue] (/home/udo/gladys/server/services/philips-hue/index.js:8:21)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 4)
    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/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 () Error: Cannot find module 'ical'
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
    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.CalDAVService [as caldav] (/home/udo/gladys/server/services/caldav/index.js:7:16)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 1)
    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/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 () Error: Cannot find module 'node-telegram-bot-api'
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
    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.TelegramService [as telegram] (/home/udo/gladys/server/services/telegram/index.js:10:23)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 6)
    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/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 () Error: Cannot find module 'serialport'
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
    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.ZwaveService [as usb] (/home/udo/gladys/server/services/usb/index.js:5:22)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 7)
    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/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 () Error: Cannot find module 'openzwave-shared'
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
    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.ZwaveService [as zwave] (/home/udo/gladys/server/services/zwave/index.js:7:17)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 9)
    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/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 () Error: Cannot find module 'mqtt'
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
    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.MqttService [as mqtt] (/home/udo/gladys/server/services/mqtt/index.js:6:16)
    at /home/udo/gladys/server/lib/service/service.load.js:38:65
    at async Promise.all (index 3)
    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/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 () Error: Cannot find module 'tplink-smarthome-api'
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 () Error: Cannot find module 'ewelink-api'
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 () Error: Cannot find module 'fluent-ffmpeg'
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 () Error: Cannot find module 'mqtt'
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) Starting example service
2021-05-04T10:58:49+0200 <info> index.js:15 (Object.start) Starting Bluetooth service
2021-05-04T10:58:49+0200 <debug> bluetooth.start.js:14 (BluetoothManager.start) Bluetooth: Listening Bluetooth events
2021-05-04T10:58:49+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection catched: Promise {
  <rejected> Error: Cannot find module '@abandonware/noble'
  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>) Error: Cannot find module '@abandonware/noble'
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

Il y a plein de modules qui ne sont pas trouvé a priori … bon, je sais pas si c’est problématique car j’ai accès à l’interface de Gladys donc …

En revanche … “Gladys n’est connectée à aucune clé USB Z-Wave.” et aucune clé USB n’est trouvée :frowning: Sachant que j’ai suivi l’installation de la doc … je vois pas à quel moment on utilise docker … car dans les prérequis il y Docker Desktop pour Windows … et j’ai vu dans le forum plein de solutions pour la clé USB Z-Wave mais Version Docker …

Donc j’ai besoin de votre aide à ce sujet … :pray: :pray: :pray: :pray: :pray:

Il semblerait également que mon instance Gladys n’est pas connecté à internet … en tout cas pas tout le temps …

PS : Si vous pouvez également m’aider à savoir comment faire pour pouvoir exécuter “Code .” depuis Ubuntu WSL, car ça fonctionne depuis mon powershell mais pas depuis mon Ubuntu :dizzy_face:

Hello @tagcash

Why are you root? It’s not supposed to be set up like that.

To build gladys, for now you are not using it

No problem, we should check what was causing the issue with the package installation

Here you go, I edited my initial post with my new logs, I finally managed to install Gladys without being root :slight_smile: … I still had to do a sudo npm install but here it is, I think I’m set up correctly now but I still have the same problem, my Z-Wave USB key is not recognized …

Are these logs from your last installation?

If yes, your npm install did not work and therefore Gladys will not work correctly!

Yes, the logs are up to date with respect to my last installation, I followed the Doc as usual but this time I didn’t see any errors during my NPM Install… But if you tell me there is still a problem I don’t know what to do :cry:

Here we discuss the service modules, which are located in the server/services folder.

When you say:

I’ve installed the NPM dependencies

How did you proceed?

We agree, you went into the server folder:

cd server

And you did:

npm install

If yes:

When you install the server dependencies, there is an NPM postinstall task that will install one by one the dependencies of each service. To prevent this from « blocking » the installation for developers who don’t have everything, this task fails silently when there is an error, which is intentional.

If you want to install the service dependencies directly to see the full error, go to the folder of a service: for example the zwave service:

cd server/services/zwave

Then do:

npm install

You should see the error you have.

Hello,

I found out how to (apparently) make a functional installation every time.

Update the distribution:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

Install tools/libraries:
sudo apt install sqlite3 make g++ git coreutils tzdata nmap openssl gzip udev -y

Install 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

And I found this on the internet and after testing it seems to work better, I installed node.js as follows:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt -y install nodejs

(Perhaps just the second method is enough, in doubt I did both, it seems to work.)

Then I followed the doc:
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

Clone repo:
git clone https://github.com/GladysAssistant/Gladys gladys && cd gladys

Install NPM server dependencies:
cd server
npm install

DB Migration:
npm run db-migrate:dev

And finally:
npm start

And for the front I followed the Doc, no problem.

I configured Gladys, I am going to do the integration of my Z-Wave key (Aeotec z-stick gen5) and I have 4 ports in my list…

  • ttyS0
  • ttyS1
  • ttyS2
  • ttyS3

Well, I look on the internet and my Z-Wave key is on a COM3 port on Windows and it seems to correspond to ttyS2 I select ttyS2 and that’s the drama ^^

I have a Bluetooth error apparently…

2021-05-05T15:13:20+0200 bluetooth.start.js:14 (BluetooththManager.start) Bluetooth: Listening to Bluetooth events
2021-05-05T15:13:20+0200 index.js:15 (process.) unhandledRejection caught: Promise {
Error: EAFNOSUPPORT, Address family not supported by protocol
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, Address family not supported by protocol
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 ›
}

Not very serious in my opinion…

And then I have:

2021-05-05T15:29:32+0200 zwave.connect.js:11 (ZwaveManager.connect) Zwave: Connecting to USB = /dev/ttyS2
2021-05-05T15:29:47+0200 zwave.getNodeNeighbors.js:14 (ZwaveManager.getNodeNeighbors) Zwave: Getting node neighbors…
2021-05-05T15:29:52+0200 zwave.driverFailed.js:10 (ZwaveManager.driverFailed) Zwave: Failed to start driver.
2021-05-05T15:29:52+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.
2021-05-05T15:29:58+0200 zwave.connect.js:11 (ZwaveManager.connect) Zwave: Connecting to USB = /dev/ttyS2
2021-05-05T15:30:18+0200 zwave.driverFailed.js:10 (ZwaveManager.driverFailed) Zwave: Failed to start driver.
2021-05-05T15:30:18+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.

And then I am literally stuck:

And if I stop the server (WSL) and restart it… nothing changes except that I am no longer connected.

And here is what the server tells me:

2021-05-05T15:32:32+0200 index.js:20 (process.) uncaughtException caught: uncaughtException
2021-05-05T15:32:32+0200 index.js:21 (process.) Error: listen EADDRINUSE: address already in use :::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: Failed to start driver.
2021-05-05T15:32:52+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.

Sorry ‹ ^^ I would like not to have any problems and not to take your time ^^ ›

PS: if there is another way than doing a wsl --unregister <DistributionName> every time it bugs and avoid having to reinstall everything, I would be happy to have the tip

Both commands do exactly the same thing

For Bluetooth, yes it’s normal

Regarding serial port access, it seems impossible under WSL2, apparently it is under WSL1

So if you don’t plan to use Docker to create a Gladys image you can switch to WSL1

wsl --set-version Ubuntu 1

Just kill the process like on Windows => Ctrl+C

Thank you so much!

I would really like to use Docker, I think it’s simpler, but in the documentation I couldn’t find how to do it, so for now I’m doing the simplest thing I can ^^

Do you want to test Gladys or develop?

Not sure… in my case when I do an npm start of the server.. it’s currently bugged I did Ctrl+C and restarted with npm start it’s still bugged

I already tested with a Raspberry 400, the Z-Wave key is immediately recognized, no problem. I had added my Fibaro motion sensor with Z-Wave but only 1 piece of information out of all the data that was coming up. Since I am a developer and Z-Wave is not very trendy and not well maintained at the moment on Gladys, I wanted to see if I could find a way to debug it with the current OpenZWave and see if I can create a new service with ZWaveJS if necessary.

Ok I see, so the big issue will be to get the com port on Linux in WSL. So as I said earlier it’s not possible under WSL2

If you switch to WSL1 you will have something on /dev/ttyS#

You must be affected by this bug → Bug avec nodemon en développement local

Possible: I did CTRL+C on the server and front end, I killed the active PIDs on ports 1443 and 1444 and then started the server and front end, but the same problem persists. I’m going to do wsl -unregister unbuntu and reinstall Gladys using WSL1 since I don’t know how to use Docker in development :sweat_smile: I even installed Gladys Docker on a Raspberry Pi 400 without any issues, but with the documentation, it’s easy :face_with_hand_over_mouth: I feel like a newbie :man_facepalming:t2:

That’s why we deploy using Docker, we control the execution environment.

In dev mode, it depends on many things, but I’ll tell you that it’s not the easiest on Windows.

Now that I think about it, it’s true that I’ve always developed with Node.js on my Mac and I had never encountered this before :man_facepalming:t2:

Otherwise, I’ve never developed with/on Docker, so if there’s a kind soul who makes a tutorial or documentation… I’m interested :folded_hands::folded_hands:

We don’t use Docker for development :wink:

We distribute Gladys in the form of a multi-architecture Docker image.

Docker is not at all mandatory for development.

Imagine you make a pull request that implements zwavejs, it will be easier to provide a Docker image with your changes so that those who can test.

This part is not documented, I need to create a documentation page.

A good way to understand how it works is to see how the workflow works on GitHub

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

Don’t hesitate if you have questions, it’s not necessarily easy to write simple and clear documentation, so your questions can help expand it.

Thank you so much,

No, I don’t think a Doc is necessary after all :sweat_smile:

I admit I’ve never used Docker before Gladys (so before the last two weeks) and I’ve always developed with Git on multi-developer projects (but in the same company).

I’ll try what you told me, hoping it works.

Well, at first glance… in WSL V1… it’s worse, I have nothing in the USB port list for Z-Wave

EDIT:

I went into the zwave services to do a npm install and my key is recognized!

Thanks!!