---
title: "Z-Wave JS"
description: "Z-Wave JS is an app for Home Assistant. It has 41.6k installs sharing analytics and was last updated October 26, 2026."
canonical: "https://vulpo.app/integrations/apps/zwave-js"
url: "https://vulpo.app/integrations/apps/zwave-js.md"
last-updated: "2026-10-23"
version: "1.4"
---

# Z-Wave JS

> Z-Wave JS is an app for Home Assistant. It has 41.6k installs sharing analytics and was last updated October 26, 2026.

Z-Wave JS is an app that controls a Z-Wave network from Home Assistant. It runs on Home Assistant OS on amd64 and aarch64 systems and opens its own page in the sidebar. The app is pointed at the Z-Wave controller stick through a device option, which takes a path such as a by-id serial path. It also holds separate security keys for S0 and the S2 security classes, and generates any key that is missing at startup. Keys from an older network key setting are migrated to the S0 legacy key on first start. The app can talk to the Supervisor, and the Z-Wave JS integration is added to Home Assistant afterwards.

Automatic summary of the docs and configuration of home-assistant/apps. Something wrong, or are you the maintainer and want your own text here? [Get in touch](https://vulpo.app/contact)

[Open in My Home Assistant](https://my.home-assistant.io/redirect/supervisor_app/?app=core_zwave_js)

Apps need Home Assistant OS. Container and Core installs cannot run them.

## Supports

- **Opens in the sidebar**: Its own page opens inside Home Assistant.
- **Updated with Home Assistant**: Ships and updates with every Home Assistant release.

## Setting it up

Install it under Settings, Apps, then start it.

## Permissions

- **Supervisor API**: Can talk to the Supervisor, which manages apps and the system.

## Configuration

- **Device**: The Z-Wave controller device.
- **Socket**: Instead of using a physical device, you can connect to a Z-Wave adapter via a socket.
- **Log Level**: This option sets the log level of Z-Wave JS.
- **Log to File?**: When this option is enabled, logs will be written to the /addon\_configs/core\_zwave\_js folder with the .log file extension.
- **Max number of log files to keep**: When log\_to\_file is true, Z-Wave JS will create a log file for each day. This option allows you to control the maximum number of files that Z-Wave JS will keep.
- **Network Key**: In previous versions of the app, this was the only key that was needed. With the introduction of S2 security inclusion in zwave-js, this option has been deprecated.
- **Radio Frequency Region**: The radio frequency region that the controller should use.
- **S0 Legacy Key**: S0 Security Z-Wave devices require a network key before being added to the network.
- **S2 Access Control Key**: This must be provided in order to include devices with the S2 Access Control security class.
- **S2 Authenticated Key**: This must be provided in order to include devices with the S2 Authenticated security class.
- **S2 Unauthenticated Key**: This must be provided in order to include devices with the S2 Unauthenticated security class.
- **Z-Wave Long Range S2 Access Control Key**: This must be provided in order to include devices using Z-Wave Long Range with the S2 Access Control security class.
- **Z-Wave Long Range S2 Authenticated Key**: This must be provided in order to include devices using Z-Wave Long Range with the S2 Authenticated security class.
- **500 series controller soft-reset**: This setting tells the app how to handle soft-resets for 500 series controllers. The default setting, Automatic, instructs the app to automatically detect whether or not this needs to be enabled. The default setting should work for most users, so only change this setting if you know what you are doing and/or you are asked to.
- **Disable automatic controller recovery**: This setting will disable Z-Wave JS's automatic recovery process when the controller appears to be unresponsive and will instead let the controller recover on its own if it's capable of doing so. While the controller is unresponsive, commands will start to fail and nodes may randomly get marked as dead. If a controller is not able to recover on its own, you will need to restart the app to attempt recovery. In most cases, users will never need to use this feature, so only change this setting if you know what you are doing and/or you are asked to.

## At a glance

- Kind: App
- Brand: [Z-Wave JS](https://vulpo.app/integrations/z-wave-js.md)
- Number: 41.6k installs sharing analytics
- Connection: Connection not stated
- Upkeep: Part of Home Assistant
- Needs: Needs Home Assistant OS
- Runs on: x86-64, 64-bit ARM
- Latest version: 1.10.0, last updated October 26, 2026
- Source: <https://github.com/home-assistant/apps>

## Other ways in for Z-Wave JS

| Name | Kind | Installs or stars | Connection | Upkeep |
| --- | --- | --- | --- | --- |
| [Z-Wave](https://vulpo.app/integrations/core/zwave-js.md) | Built-in integration | 46.4k installs sharing analytics | Works locally | Part of Home Assistant |
| [Leviton VRCS4 / VRCZ4](https://github.com/ygelfand/vrcx4-zwavejs) | Marketplace integration | No installs sharing analytics yet | Works locally | Updated in the last 6 months |
| [Z-Wave JS UI](https://vulpo.app/integrations/apps/zwavejs2mqtt.md) | App | 16.3k installs sharing analytics | Connection not stated | Updated in the last 6 months |

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. [About these numbers](https://vulpo.app/integrations/about)

Last updated 2026-10-23. Source: https://vulpo.app/integrations/apps/zwave-js

---

- HTML version of this page: https://vulpo.app/integrations/apps/zwave-js
- Site index for agents: https://vulpo.app/llms.txt
- Everything in one document: https://vulpo.app/llms-full.txt
- All pages: https://vulpo.app/sitemap.xml
