Package Details: zwave-js-server 1.40.0-2

Git Clone URL: https://aur.archlinux.org/zwave-js-server.git (read-only, click to copy)
Package Base: zwave-js-server
Description: Websocket server wrapper around Home Assistant's Z-Wave JS.
Upstream URL: https://github.com/zwave-js/zwave-js-server
Licenses: Apache-2.0
Submitter: eta-carinae
Maintainer: eta-carinae
Last Packager: eta-carinae
Votes: 4
Popularity: 0.017743
First Submitted: 2021-11-16 14:26 (UTC)
Last Updated: 2024-11-20 19:17 (UTC)

Latest Comments

synthead commented on 2024-11-24 02:39 (UTC)

I'm really glad you liked the suggestions! <3 I upgraded the package, removed my local changes, and everything fired up perfectly. Thank you!

eta-carinae commented on 2024-11-20 19:23 (UTC)

Thanks for the suggestions synthead. They all seemed like good ones, so I've modified the package pretty much exactly as you suggested.

For anyone else, 1.40.0-2 is a breaking change. The systemd template is now instanced using a config file name rather than a device path. The config file should be in /etc/conf.d/zwave-js-server/. If your config file is nortek.conf, then do:

systemctl enable zwave-js-server@nortek systemctl start zwave-js-server@nortek

Of course, stop and disable your existing service first. There's an example config file in /etc/conf.d/zwave-js-server.

synthead commented on 2024-11-19 22:15 (UTC) (edited on 2024-11-19 22:16 (UTC) by synthead)

The zwave-js-server library has support for binding to an IP, choosing a port, setting up encryption keys, logging directories, etc. See https://github.com/zwave-js/zwave-js-server/issues/1345.

To support configuring these settings, I recommend including a /etc/conf.d/zwave-js-server/ directory with .conf files respective to the zwave-js-server deployment.

For example, this is what I have in /etc/conf.d/zwave-js-server/nortek.conf:

ZWAVE_JS_SERVER_ARGS="/dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_C0F00A04-if00-port0 --host=zwave --port=3000 --config=/etc/zwave-js-server/nortek.js"

I also added /etc/zwave-js-server/nortek.js, with the contents being:

module.exports = {
  securityKeys: {
    S0_Legacy: Buffer.from("<censored>", "hex"),
    S2_AccessControl: Buffer.from("<censored>", "hex"),
    S2_Authenticated: Buffer.from("<censored>", "hex"),
    S2_Unauthenticated: Buffer.from("<censored>", "hex")
  }
};

To make this all work, I added my own /etc/systemd/system/zwave-js-server@.service (to override /usr/lib/systemd/system/zwave-js-server@.service from this package) with these contents:

[Unit]
Description=ZWave-JS Server Daemon "%i" instance
Before=home-assistant.service

[Service]
EnvironmentFile=/etc/conf.d/zwave-js-server/%I.conf
ExecStart=/usr/bin/zwave-server $ZWAVE_JS_SERVER_ARGS

[Install]
WantedBy=multi-user.target

It'd be great to have this included in this package :) As the above is written, it'd be a breaking change, so heads up.