Z-Wave JS discovery debugging

I’m on 2026.3.3.

Shouldn’t HA see a new instance of Z-Wave JS on the LAN via zeroconf?

Discovery is enabled in ZUI:

zwave-js-ui: 11.8.2.a4e8747
zwave-js: 15.17.1

avahi is running on the ZUI machine:

$ ssh gatepi3.local ps aux | grep avahi
avahi        557  0.1  0.4   6360  3908 ?        Ss   16:18   0:05 avahi-daemon: running [gatepi3.local]
avahi        576  0.0  0.1   5656  1632 ?        S    16:18   0:00 avahi-daemon: chroot helper
  • That machine is on the same subnet as HA.

  • I have three instances of HA running on my LAN and none are showing it on the integrations page.

  • HA has that nice zconf browser and it’s not showing up there. There’s a lot of discovered devices so zeroconf is working in general.

  • And it doesn’t show up on the integrations page or if I “Add Hub”, so I’m curious how to debug.

  • And avahi-browse on another host isn’t seeing it either.

How can I check if Z-Wave JS is announcing itself? I see this in the ZUI logs, but is this logging the zconf announcement?

2026-03-30 16:47:10.002 INFO Z-WAVE-SERVER: DNS Service Discovery enabled

I know this isn’t zeroconf (other than mDNS), but the HA machine can see that port 3000 is open on the ZUI instance – so it’s there and alive.

$ ssh ha nmap -p 3000 gatepi3.local
Starting Nmap 7.97 ( https://nmap.org ) at 2026-03-30 16:50 -0700
Nmap scan report for gatepi3.local (192.168.0.51)
Host is up (0.022s latency).
Other addresses for gatepi3.local (not scanned): fe80::ba27:ebff:fe55:7474

PORT     STATE SERVICE
3000/tcp open  ppp
MAC Address: B8:27:EB:55:74:74 (Raspberry Pi Foundation)

Nmap done: 1 IP address (1 host up) scanned in 0.65 seconds

Yes, I know I can configure it manually by IP.

But, that leads to a secondary question. If I click Add Hub and then select a custom install I get this dialog:

I already have the ZUI “app” installed and configured with another hub. Shouldn’t it know that and not offer up to use the app?

You didn’t mention how you are running Z-Wave JS UI… If you’re using Docker you would need to use host networking for the ZUI container. Also make sure a host firewall is not blocking it.

Then, when DNS discovery is enabled, you don’t manually “Add [a] Hub”. You go to the integrations page in settings and under the “Discovered” section it will show up as a discovered integration, and you “Add” it from there. There are multiple ways to add the discovered network, see next message.

To see if the mdns announcement is working, one option is avahi-browse:

❯ avahi-browse --terminate --resolve _zwave-js-server._tcp
+ enp12s0 IPv4 3494921295                                    _zwave-js-server._tcp local
local
= enp12s0 IPv4 3494921295                                    _zwave-js-server._tcp local
   hostname = [3494921295.local]
   address = [192.168.1.118]
   port = [3000]
   txt = ["maxSchemaVersion=44" "minSchemaVersion=0" "serverVersion=3.4.0" "driverVersion=15.22.1" "homeId=3494921295"]

But that’s probably the same thing as HA’s browser.

As a side note, why such an old version of ZUI? v11.8.2 is 4 months old.

I’ve found there are actually multiple ways to install the discovered network:

From the Discovered section in Settings → Devices & Services:

Or, if I go select + Add Integration from the same page I get a list:

That is the same list that shows when you select “Add Hub”, so my previous statement was incorrect.

Or, if I navigate to an already configured Z-Wave integration it’s listed as a discovered hub:

There was one bug I found, which I don’t think applies to your configuration. If 1) you start with zero Z-Wave hubs installed, 2) there is a discovered one pending, then 3) you manually install a different network, 4) the discovered network will disappear. Restart HA and it will appear discovered again.

Darn it, @freshcoast, that was it. And I should know better. My other docker-compose.yaml files have host networking.

The reason the version is old is I set this up months ago to run some holiday lights out by a distant gate (hence the name), and it’s been off since December.

This look better?:
zwave-js-ui: 11.15.1.7f343c1
zwave-js: 15.22.1

Once again, thanks.

I think I ran into that, too. When ZUI first came out as the App I did the same thing of adding and removing just to see what happened. There was a case where I ended up with two Apps installed, but not seeing details in my notes.

I did note how it seemed odd that when adding a Provisioning Entry that HA created a new device (which vanishes on restart). Why not wait for the discovery when the device is added to Z-Wave JS?