JWave JS UI Frequently Won't Show Nodes

The quick info:

All of my software is up to date as of this writing. I have about 65 ZWave nodes with an Aeotec 700 series USB controller. ZWave JS is -installed-, but not running (completely disabled). ZWave JS UI is installed and running. The system is roughly 2.5 years old (since we moved to this house) as is running on a NUC8 (it was built on a NUC5, but I moved the SSD and the USB controller to the NUC8 - the only configuration change I made was to the LAN networking setup - the issue described below existed from the start).

System is only accessible from inside the house. My complete list of integrations is:

  • Backup
  • Google Calendar
  • HA Supervisor
  • Metereologisk Institutt (met.co)
  • Mobile App
  • Ping
  • Pushbullet
  • Sun
  • Vera
  • Z-Wave

The Vera add-in is used for a couple of devices (t-stats) that were easier to connect to my old Vera Secure as HA gave me a lot of problems with setting these up when I was getting started. The integration allows me to see and manage the t-stats within HA even though they’re connected to the Vera controller.

I would estimate that at least 25% of the time, and more often it feels like at least 50% of the time, launching ZWave JS UI results in zero node info being shown. It shows that it’s attempting to communicate, but never actually renders any content in the web page. I have to navigate away and come back, sometimes a few times, to get the nodes to show up.

Once it’s loaded, it generally seems to work as expected.

Any thoughts on why it’s behaving like this and maybe even how to better troubleshoot it?

Id the ZWave JS add-on installed?
If it is, remove it completely. Sounds to me like your boot is a race condition and depending on whether Zwave JS UI or Zwave JS gets to your coordinator sticl first , that’s the one that runs it.
If you are using ZWave JS UI, you don’t need Zwave JS addon at all.

It’s a guess, but it sounds familiar.
What does this say? Open your Home Assistant instance and show information about your system.

As mentioned in my original post, ZWave JS is installed and disabled. It is not running, it does not attempt to start on boot. There shouldn’t (?) be any sort of race condition.

Here’s the (very slightly modified) output that you asked for:


version | core-2025.12.5
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
container_arch | amd64
user | root
virtualenv | false
python_version | 3.13.9
os_name | Linux
os_version | 6.12.51-haos
arch | x86_64
timezone | America/New_York
config_dir | /config

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 16.3
-- | --
update_channel | stable
supervisor_version | supervisor-2025.12.3
agent_version | 1.7.2
docker_version | 28.3.3
disk_total | 228.5 GB
disk_used | 16.6 GB
nameservers | 192.168.1.13, 192.168.1.11
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
board | generic-x86-64
supervisor_api | ok
version_api | ok
installed_addons | Z-Wave JS (0.27.0), Let's Encrypt (5.4.9), Z-Wave JS UI (6.1.2), Home Assistant Google Drive Backup (0.112.1), Studio Code Server (6.0.1)

</details>

<details><summary>Dashboards</summary>

dashboards | 5
-- | --
resources | 0
views | 3
mode | storage

</details>

<details><summary>Network Configuration</summary>

adapters | lo (disabled), eno1 (enabled, default, auto), docker0 (disabled), hassio (disabled), vethb4fa27c (disabled), veth11b3b26 (disabled), veth351ec04 (disabled), veth4883efb (disabled), vethd70598b (disabled), vethab19333 (disabled), veth371378e (disabled), vethbcdea48 (disabled)
-- | --
ipv4_addresses | lo (127.0.0.1/8), eno1 (XXX.XXX.XXX.XXX/YYY), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), vethb4fa27c (), veth11b3b26 (), veth351ec04 (), veth4883efb (), vethd70598b (), vethab19333 (), veth371378e (), vethbcdea48 ()
ipv6_addresses | lo (::1/128), eno1 (fd15:83c5:b6ea:bb4e:8fdb:39c5:705:99a5/64, fe80::86c8:327a:8db5:e6fa/64), docker0 (fe80::b4fc:52ff:fe79:e13e/64), hassio (fe80::107d:19ff:fe65:80f9/64), vethb4fa27c (fe80::c821:c3ff:fe25:fb5/64), veth11b3b26 (fe80::7848:88ff:fe0d:54dc/64), veth351ec04 (fe80::e06c:52ff:fe36:9cd8/64), veth4883efb (fe80::18ae:d5ff:fe0c:8dbf/64), vethd70598b (fe80::485b:feff:fe3d:9001/64), vethab19333 (fe80::a065:3dff:fe7b:3a4c/64), veth371378e (fe80::18be:9aff:fee5:2924/64), vethbcdea48 (fe80::74fc:d2ff:fe2b:1c18/64)
announce_addresses | XXX.XXX.XXX.XXX, fd15:83c5:b6ea:bb4e:8fdb:39c5:705:99a5, fe80::86c8:327a:8db5:e6fa

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | December 20, 2025 at 9:02 AM
-- | --
current_recorder_run | December 30, 2025 at 7:11 AM
estimated_db_size | 305.09 MiB
database_engine | sqlite
database_version | 3.49.2

</details>

The Z-Wave integration can control whether the add-on is running or not, it doesn’t matter if you’ve disabled it. What is the Server URL shown in the Z-Wave integration page?

Fair point… I’m fairly certain that the integration is pointed to ZWave JS UI

ws://a0d7b954-zwavejs2mqtt:3000

Yeah, that’s correct. You can delete the Z-Wave JS core add-on if you want.

I have never seen the behavior you describe in Z-Wave JS UI, but there is a known issue in that it takes at least 1-2 seconds for the control panel to load. You might try opening the browser devtools (F12 key), go to the Network tab, reload the page, and see if any of the requests are taking a long time or not finishing. The settings request is the one I’m referring to.

When it’s being problematic, I’ve waited for 30 seconds or more and it never renders - I navigate away and then come back (sometimes multiple times) to get it to load. When it works, I do see the typical second or two of delay while it’s collecting data to render.

It happens seemingly randomly, although it is far less likely to happen if I try to load the page a couple of minutes after the system is (re)booted. I know that there are issues still with the ZWave communications that SiL is simply never going to fix, and I don’t know if the quantity of devices in my network is playing into the problem… I do have everything toned down in terms of what information is transmitted, why, and how often specifically to reduce the volume of packets on the ZWave network.

That happens to me, too. Not that often, and it seems like it was worse months ago, but noticed it yesterday. I just reload.

If it happens that frequently then maybe you can see something useful in the zwave-js logs. I always assumed it timed out becuase the network was busy, but never bothered me enough to research.

Just had it delay on me, and I opened Dev Tools before going any further. Found a number of websocket connections that return a status code of 101 with a message of “Switching protocols”. Immediately after is a GET on all of them excet the final one which has a PUT, then a GET, then the page loaded.

Here is what the ZWave JS UI Log looks like when I attempt to load the page, it lags, and eventually loads:

2026-01-02 10:33:23.652 DEBUG SOCKET: New connection aZGYrlCr9k_kPOj-AAA_
2026-01-02 10:33:23.668 DEBUG SOCKET: Event INITED emitted to aZGYrlCr9k_kPOj-AAA_
2026-01-02 10:33:23.826 DEBUG SOCKET: User disconnected from aZGYrlCr9k_kPOj-AAA_: transport close
2026-01-02 10:33:25.177 DEBUG SOCKET: New connection P9c9Zhs6XLpmpz5eAABB
2026-01-02 10:33:25.193 DEBUG SOCKET: Event INITED emitted to P9c9Zhs6XLpmpz5eAABB
2026-01-02 10:33:25.336 DEBUG SOCKET: User disconnected from P9c9Zhs6XLpmpz5eAABB: transport close
2026-01-02 10:33:27.037 DEBUG SOCKET: New connection KH03rLbIVFy7c6DhAABD
2026-01-02 10:33:27.052 DEBUG SOCKET: Event INITED emitted to KH03rLbIVFy7c6DhAABD
2026-01-02 10:33:27.200 DEBUG SOCKET: User disconnected from KH03rLbIVFy7c6DhAABD: transport close
2026-01-02 10:33:27.769 INFO Z-WAVE: [Node 114] Is now awake
2026-01-02 10:33:28.043 INFO Z-WAVE: [Node 114] Is now asleep
2026-01-02 10:33:28.257 DEBUG SOCKET: New connection SIrzmxFAmQxs0el9AABF
2026-01-02 10:33:28.271 DEBUG SOCKET: Event INITED emitted to SIrzmxFAmQxs0el9AABF
2026-01-02 10:33:28.397 DEBUG SOCKET: User disconnected from SIrzmxFAmQxs0el9AABF: transport close
2026-01-02 10:33:29.208 DEBUG SOCKET: New connection hXPJNjA_znMPT75jAABH
2026-01-02 10:33:29.222 DEBUG SOCKET: Event INITED emitted to hXPJNjA_znMPT75jAABH
2026-01-02 10:33:29.349 DEBUG SOCKET: User disconnected from hXPJNjA_znMPT75jAABH: transport close
2026-01-02 10:33:29.455 INFO APP: ::ffff:127.0.0.1 GET /health/zwave 301 162 - 0.463 ms
2026-01-02 10:33:30.759 DEBUG SOCKET: New connection timXDvYhuYOkEt_FAABJ
2026-01-02 10:33:30.771 DEBUG SOCKET: Event INITED emitted to timXDvYhuYOkEt_FAABJ
2026-01-02 10:33:30.893 DEBUG SOCKET: User disconnected from timXDvYhuYOkEt_FAABJ: transport close
2026-01-02 10:33:31.772 DEBUG SOCKET: New connection -Mj3IzN49Jp_O6ycAABL
2026-01-02 10:33:31.785 DEBUG SOCKET: Event INITED emitted to -Mj3IzN49Jp_O6ycAABL
2026-01-02 10:33:31.913 DEBUG SOCKET: User disconnected from -Mj3IzN49Jp_O6ycAABL: transport close
2026-01-02 10:33:32.699 DEBUG SOCKET: New connection qRU1GqHmuCdpCQCpAABN
2026-01-02 10:33:32.712 DEBUG SOCKET: Event INITED emitted to qRU1GqHmuCdpCQCpAABN
2026-01-02 10:33:32.835 DEBUG SOCKET: User disconnected from qRU1GqHmuCdpCQCpAABN: transport close
2026-01-02 10:33:34.123 DEBUG SOCKET: New connection 5R47J1Rh2Xr54Y1BAABP
2026-01-02 10:33:34.135 DEBUG SOCKET: Event INITED emitted to 5R47J1Rh2Xr54Y1BAABP
2026-01-02 10:33:34.257 DEBUG SOCKET: User disconnected from 5R47J1Rh2Xr54Y1BAABP: transport close
2026-01-02 10:33:35.157 DEBUG SOCKET: New connection Ty7snZ5S-AyiOYQ5AABR
2026-01-02 10:33:35.170 DEBUG SOCKET: Event INITED emitted to Ty7snZ5S-AyiOYQ5AABR
2026-01-02 10:33:35.295 DEBUG SOCKET: User disconnected from Ty7snZ5S-AyiOYQ5AABR: transport close
2026-01-02 10:33:36.268 DEBUG SOCKET: New connection 6H4Xseb5OZf50DT1AABT
2026-01-02 10:33:36.282 DEBUG SOCKET: Event INITED emitted to 6H4Xseb5OZf50DT1AABT
2026-01-02 10:33:36.391 INFO Z-WAVE: [Node 086] Metadata updated: 50-0-value-66561
2026-01-02 10:33:36.391 INFO Z-WAVE: [Node 086] Value updated: 50-0-value-66561 120.91 => 120.85
2026-01-02 10:33:36.407 DEBUG SOCKET: User disconnected from 6H4Xseb5OZf50DT1AABT: transport close
2026-01-02 10:33:38.175 DEBUG SOCKET: New connection wFEqtEThr_Mi2hGbAABV
2026-01-02 10:33:38.195 DEBUG SOCKET: Event INITED emitted to wFEqtEThr_Mi2hGbAABV
2026-01-02 10:33:38.317 DEBUG SOCKET: User disconnected from wFEqtEThr_Mi2hGbAABV: transport close
2026-01-02 10:33:39.177 DEBUG SOCKET: New connection gwXEb89K2B_zvkW1AABX
2026-01-02 10:33:39.191 DEBUG SOCKET: Event INITED emitted to gwXEb89K2B_zvkW1AABX
2026-01-02 10:33:39.316 DEBUG SOCKET: User disconnected from gwXEb89K2B_zvkW1AABX: transport close
2026-01-02 10:33:40.445 INFO Z-WAVE: [Node 058] Metadata updated: 50-0-value-66817
2026-01-02 10:33:40.447 INFO Z-WAVE: [Node 058] Value updated: 50-0-value-66817 0.69 => 0.69
2026-01-02 10:33:41.177 DEBUG SOCKET: New connection ygDejEo2fo0WgyImAABZ
2026-01-02 10:33:41.191 DEBUG SOCKET: Event INITED emitted to ygDejEo2fo0WgyImAABZ
2026-01-02 10:33:41.312 DEBUG SOCKET: User disconnected from ygDejEo2fo0WgyImAABZ: transport close
2026-01-02 10:33:42.402 DEBUG SOCKET: New connection 92K_cSWdR1uzP-oIAABb
2026-01-02 10:33:42.415 DEBUG SOCKET: Event INITED emitted to 92K_cSWdR1uzP-oIAABb
2026-01-02 10:33:42.535 DEBUG SOCKET: User disconnected from 92K_cSWdR1uzP-oIAABb: transport close
2026-01-02 10:33:43.513 DEBUG SOCKET: New connection XBmzL7HAkRWfm92kAABd
2026-01-02 10:33:43.525 DEBUG SOCKET: Event INITED emitted to XBmzL7HAkRWfm92kAABd
2026-01-02 10:33:43.647 DEBUG SOCKET: User disconnected from XBmzL7HAkRWfm92kAABd: transport close
2026-01-02 10:33:44.737 DEBUG SOCKET: New connection JjKI52i50Xwz2Y9GAABf
2026-01-02 10:33:44.757 DEBUG SOCKET: Event INITED emitted to JjKI52i50Xwz2Y9GAABf
2026-01-02 10:33:44.881 DEBUG SOCKET: User disconnected from JjKI52i50Xwz2Y9GAABf: transport close
2026-01-02 10:33:45.659 DEBUG SOCKET: New connection jzP0VI6Rb66IGKTwAABh
2026-01-02 10:33:45.670 DEBUG SOCKET: Event INITED emitted to jzP0VI6Rb66IGKTwAABh
2026-01-02 10:33:45.828 DEBUG SOCKET: User disconnected from jzP0VI6Rb66IGKTwAABh: transport close
2026-01-02 10:33:47.145 DEBUG SOCKET: New connection HIBOaz3wOp55I4goAABj
2026-01-02 10:33:47.162 DEBUG SOCKET: Event INITED emitted to HIBOaz3wOp55I4goAABj
2026-01-02 10:33:47.285 DEBUG SOCKET: User disconnected from HIBOaz3wOp55I4goAABj: transport close
2026-01-02 10:33:47.984 DEBUG SOCKET: New connection PkoCdIXt7oRTbkAXAABl
2026-01-02 10:33:47.995 DEBUG SOCKET: Event INITED emitted to PkoCdIXt7oRTbkAXAABl
2026-01-02 10:33:48.114 DEBUG SOCKET: User disconnected from PkoCdIXt7oRTbkAXAABl: transport close
2026-01-02 10:33:48.567 INFO Z-WAVE: [Node 069] Metadata updated: 50-1-value-65537
2026-01-02 10:33:48.568 INFO Z-WAVE: [Node 069] Value updated: 50-1-value-65537 62.148 => 62.148
2026-01-02 10:33:48.656 INFO Z-WAVE: [Node 069] Metadata updated: 50-1-value-66049
2026-01-02 10:33:48.657 INFO Z-WAVE: [Node 069] Value updated: 50-1-value-66049 1.5 => 1.5
2026-01-02 10:33:49.179 INFO Z-WAVE: [Node 069] Metadata updated: 50-1-value-66817
2026-01-02 10:33:49.180 INFO Z-WAVE: [Node 069] Value updated: 50-1-value-66817 0.053 => 0.053
2026-01-02 10:33:49.218 DEBUG SOCKET: New connection ZQ3I-zk8JZhcLSCpAABn
2026-01-02 10:33:49.235 DEBUG SOCKET: Event INITED emitted to ZQ3I-zk8JZhcLSCpAABn
2026-01-02 10:33:49.370 DEBUG SOCKET: User disconnected from ZQ3I-zk8JZhcLSCpAABn: transport close
2026-01-02 10:33:49.702 INFO Z-WAVE: [Node 069] Metadata updated: 50-1-value-66561
2026-01-02 10:33:49.703 INFO Z-WAVE: [Node 069] Value updated: 50-1-value-66561 122.4 => 122.3
2026-01-02 10:33:50.229 INFO Z-WAVE: [Node 069] Metadata updated: 50-1-value-65537
2026-01-02 10:33:50.230 INFO Z-WAVE: [Node 069] Value updated: 50-1-value-65537 62.148 => 62.148
2026-01-02 10:33:50.290 DEBUG SOCKET: New connection zxCOjmpBOdLdowElAABp
2026-01-02 10:33:50.308 DEBUG SOCKET: Event INITED emitted to zxCOjmpBOdLdowElAABp
2026-01-02 10:33:50.448 DEBUG SOCKET: User disconnected from zxCOjmpBOdLdowElAABp: transport close
2026-01-02 10:33:51.177 DEBUG SOCKET: New connection adkyGHjHHYNLDUFfAABr
2026-01-02 10:33:51.192 DEBUG SOCKET: Event INITED emitted to adkyGHjHHYNLDUFfAABr
2026-01-02 10:33:51.480 INFO APP: ::ffff:127.0.0.1 GET /assets/StatisticsCard-emye03Bo.js 304 - - 0.898 ms
2026-01-02 10:33:51.567 INFO APP: ::ffff:127.0.0.1 GET /assets/ReinterviewBadge-CI2lh95C.js 304 - - 0.773 ms
2026-01-02 10:33:51.893 INFO APP: ::ffff:127.0.0.1 GET /assets/RichValue-C1OidLuR.css 304 - - 0.938 ms
2026-01-02 10:33:51.896 INFO APP: ::ffff:127.0.0.1 GET /assets/StatisticsArrows-d3MYDRGU.css 304 - - 0.876 ms
2026-01-02 10:33:51.906 INFO APP: ::ffff:127.0.0.1 GET /assets/FirmwareUpdateBadge-7z3DHTab.js 304 - - 0.839 ms
2026-01-02 10:33:51.910 INFO APP: ::ffff:127.0.0.1 GET /assets/RichValue-C6k4f1Kc.js 304 - - 0.948 ms
2026-01-02 10:33:51.919 INFO APP: ::ffff:127.0.0.1 GET /assets/StatisticsArrows-Bm1aTFxg.js 304 - - 0.718 ms
2026-01-02 10:33:52.657 INFO APP: ::ffff:127.0.0.1 GET /assets/BlinkIcon-CbLX7KQs.js 304 - - 0.672 ms
2026-01-02 10:33:59.487 INFO APP: ::ffff:127.0.0.1 GET /health/zwave 301 162 - 0.464 ms