Z-Wave JS UI Server without docker for ARM platforms

Hi, as someone without deep linux knowledge, I has a lot of trouble upgrading zwavejs2mqtt to the new version z-wave-js-ui. I’m running the latest HA version (2022.9.4) as core on a venv. In the end, I just used Snap to remove the old version (installed with Snap originally) and do an install of zwave-js-ui instead. Even though the Snap page doesn’t mention it you can put zwave-js-ui in the install command like so:

sudo snap install zwave-js-ui

Check out the snap page:

I wish I could still build this from scratch using your instructions versus using SNAP but this is what I get:

yarn install

Cloning into ‘zwave-js-ui’…

remote: Enumerating objects: 16868, done.

remote: Counting objects: 100% (4225/4225), done.

remote: Compressing objects: 100% (778/778), done.

remote: Total 16868 (delta 3856), reused 3563 (delta 3441), pack-reused 12643

Receiving objects: 100% (16868/16868), 36.43 MiB | 17.87 MiB/s, done.

Resolving deltas: 100% (12133/12133), done.

yarn install v1.22.22

info No lockfile found.

warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.

[1/5] Validating package.json…

[2/5] Resolving packages…

warning [email protected]: Please use another csrf package

warning native-url > [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.

warning [email protected]: Vue 2 has reached EOL and is no longer actively maintained. See Vue.js for more details.

warning @types/[email protected]: This is a stub types definition. extract-zip provides its own type definitions, so you do not need this installed.

warning vite-plugin-pwa > workbox-build > [email protected]: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser

warning vite-plugin-pwa > workbox-build > [email protected]: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained

warning vite-plugin-pwa > workbox-build > @rollup/plugin-replace > magic-string > [email protected]: Please use @jridgewell/sourcemap-codec instead

[3/5] Fetching packages…

error @homebridge/[email protected]: The engine “node” is incompatible with this module. Expected version “^18 || ^20”. Got “21.7.3”

error Found incompatible module.

info Visit yarn install | Yarn for documentation about this command.

pi@zpi5-2:~/zwave-js-ui $ yarn run build

yarn run v1.22.22

$ npm-run-all ‘build:*’

/bin/sh: 1: npm-run-all: not found

error Command failed with exit code 127.

info Visit yarn run | Yarn for documentation about this command.

Z-Wave JS UI doesn’t use yarn anymore, it uses npm. That’s the problem with following posts that are 3 years old…

If you are using a Pi5, what is your goal for building from scratch? Binaries for multiple platforms, including arm64, are available for download. These do not require nodejs to be installed, you can just extract the archive and run them. https://github.com/zwave-js/zwave-js-ui/releases

If you really need to build from scratch, just follow the steps in the official Dockerfile.

Alternatively you can build the bundle (very small build), which the binaries are based on.

npm install
npm run build
npm run bundle

When I originally built this tutorial it used NPM then they decided to use yarn so I updated a couple of steps to use yarn I have not had any issue with it but I guess I should udate it back to using NPM

I reset the tutorial back to use NPM as it was originally give it a try and let me know I did a update on my system as was successful but have not done a from scratch build yet

I ended up just using snap. I figured out that the process has gotten a lot more simple with changes made since the post I was using to get it going.