I Have Some n00b Questions About Z-Wave JS UI

I’m pretty new to HA (HAOS installed via VM on Synology) and have a TubesZB PoE Z-Wave controller along with the Z-Wave JS UI to make it all work. Everything is on the latest stable firmware version available. I’ve got 50+ Z-Wave devices running for several weeks now so… so far, so good.

I’m still a little fuzzy on how everything works though and have a few questions that I’m hoping someone can help me out with. Feel free to chime in on any of these that you feel you have info on. Thanks in advance for taking the time to read and help.

► Item #1: When I first set everything up, I was getting a repair message on my settings screen telling m that an Add-on Failed to start at boot. When I click for details it said that the port incorrect or is used in multiple add-ons. I clicked “start” and then things worked fine for a bit but it would return.

Then, maybe a month or so ago, this error went away and stayed away. It wasn’t until a recent update that it start appearing again. Now when I click on “start” though it says it was successful bit doesn’t seem to correct the issue and the repair error returns pretty soon.

I’m not sure really what it means or how to go about fixing the issue although I’m sure it’s likely on that I caused during setup given how little I know about these things from a technical standpoint. Everything seems to be working properly still though so I’m not sure really what this is even impacting.

► Item #2: None of my connected Z-Wave devices show as connected via Z-Wave LR w/the purple icon even though I have several of the 800LR devices connected. They all appear to be just connected via the legacy blue Z-Wave protocol just like my older Z-Wave devices.

Is there something I should do during the initial inclusion so that these all use the newest and most secure protocol available? I think that most of these were added from the Z-Wave add-on as opposed to the JS UI option but I recently added a device and saw where it gave me more options during inclusion to force various connectivity inclusion methods. I didn’t opt for this however and new 800LR devices still weren’t being included as 800LR seemingly. Which brings me to my next question…

► Item #3: Should I be using the Z-Wave add on or the JS UI add-on for including new devices? I assume it doesn’t matter unless I need to manually specify the Z-Wave type or security protocol but I assume that it’s the same otherwise. I also couldn’t find a way to exclude devices from the Z-Wave add-on so I was using the JS UI interface for exclusion.

► Item #4: How do I modify the routes/hops that devices take from within the JS UI Network Graph screen? I think I saw someone had said that you could easily do that but I don’t see the option. I have some devices that are taking some VERY interesting and seemingly needless routes to get to my TubesZB PoE Z-Wave controller. One such example is an older battery powered sensor that was on the front porch just outside of my office. From my office chair, I can see it on the wall through the window. When I turn my head the other way to my right I can see the hallway where the controller is mounted at the ceiling. It’s almost direct line of site 12ft away with no obstruction other than one drywall wall. It really shouldn’t be any more simple of a direct connect to this. This device chooses to go maybe 45ft to a garage door opener, then from one far corner of the house to the farthest possible corner in the basement to a water valve controller in the basement, back up to the ground level to a 3rd device before finally “seeing” the Z-Wave controller. I’ve been in IT long enough to know that wireless is a tad confusing and a bit of a dark art form but there is no way this provides a better connection than simply connecting directly to the Z-Wave controller. Sure they’re connected but at what battery life cost due to poorly optimized rx/tx? I’ve got a couple others that look a bit odd but I’m not sure how to go about resolving. Should I just go into these few devices that look a bit messy individually and tell them to renegotiate the path that they take or what is the best way to resolve things?

► Item #5: I had some integrations that HA found that I ignored because I was tired of seeing them every time I opened up the dashboard. I don’t think I need to add these but maybe I’m missing something that would be useful or possibly something that would help with any of the above or how I interact with things that would be easier. There were quite a few items (Smart TVs, Printers, etc.) but the three I wanted to know about specifically were: tubeszb-zw zha, tubeszb-zw, esphome. Am I missing anything by not installing these or was I right to just hide them and move on?

Item 1: The error says add-on “Z-Wave JS”, not “Z-Wave JS UI”. If you’re not using the core add-on, which doesn’t support the tubez z-wave controller anyways, than just delete it. You can only use one add-on for a single Z-Wave controller, not both at the same time.

Item 2: LR device needs to be manually switched to LR mode after scanning the QR code and before activating it. There’s a toggle button in the SmartStart panel to switch, or you can edit the entry and change it. You will have to exclude and re-include them to switch to LR.

Item 3: You can’t use the Z-Wave JS add-on to do anything except run the Z-Wave driver. The core add-on does not have a UI, that’s what HA is for. I think you are mixing up add-ons and integrations. https://www.home-assistant.io/docs/glossary/. If you want to use LR or set names on devices prior to inclusion and have them sync to HA, use Z-Wave JS UI for inclusion as HA doesn’t support LR or pre-naming yet. Exclusion doesn’t make a difference where you do it.

The naming of these components is unfortunately confusing, but it’s critical to get this right. For Z-Wave to work correctly:

  • The Integration “Z-Wave JS” must be running (Settings → Devices & Services → Integrations)
  • One and only one of the Add-on’s must be running, either “Z-Wave JS” or “Z-Wave JS UI” (Settings → Add-ons)

Yes, I understand that the error wasn’t saying Z-Wave JS UI but that still doesn’t help me much since it’s all Greek to me at this point. When you’re saying that if I’m not using the core Z-Wave add-on, do you mean this one?

I’ve been using this one more because I feel the organization of the individual devices is better plus I can click on a device and see TONS of information about each device. I find information like Controls, Events, Configuration, Diagnostic and logbook to be helpful for me. If you’re saying to remove this I can but I haven’t yet found the same info within the JS UI dashboard and I keep reading posts about how various items within that dashboard are broken or not working properly so it’s confusing. But if this is “the way” and I’m doing it wrong I can certainly remove that Add-on illustrated above if that’s indeed what I’m doing wrong here.

Just to clarify what you’re saying about #2; in order to have 800LR connectivity with a Z-Wave device, I MUST scan the QR code with a camera? I thought it was an either/or thing where I could go through the normal inclusion mode and simply enter the DSK code which would include the device same as if I scanned the QR code. This allows me to use a PC/laptop which is where I was adding all of my devices because it was easier. If I have to use my phone to use the camera to scan the QR code to get LR connectivity this isn’t immediately apparent and it sounds like I will have to now delete and include all of my 800LR devices all over again. Ugh. I wish I had known this on the front end.

I’m absolutely confusing integrations with add-ons. Both seem like you’re adding additional functionality to a base OS via a single package or application/program like on any other device to me. I don’t really parse them as this application comes from this route so it’s an add-on and this one comes from this route so it’s an integration. To the lay person, they really just feel like the same thing in the end regardless of source to install them. So you’re saying that, when I add a new Z-Wave device, I should be using this add-on(?) instead:

I feel like some of the early videos I saw had people using the Z-Wave integration(?) to add & manage devices which is why I’m kind of caught between the best way to go about things. I wish there were better resources that walked n00bs through this stuff as it’s pretty intimidating to even those who have a background in this segment. I think a major challenge if growth is desired is how to make things more approachable for n00bs like myself. I’m trying to absorb knowledge through the school of hard knocks (aka deleted and including 50 devices again and editing all of the associated automations) but this is the exact type of thing that caused me to hesitate for months (years?) in getting going on HA because I wanted to understand it better before starting so I could avoid major time sucks of redoing stuff just like this. Not your fault at all, just venting I guess. Thanks for your post and the information to help get me back on track.

This feels like part of my issues as I see both here but only really remember installing one of them.

Are you saying that I need to uninstall the one on the left that’s gray and keep the one on the right that’s blue? Is there anything I need to save or change before just clicking the uninstall or anything that can’t be undone once I uninstall it that I should be aware of?

That’s the Z-Wave integration. It even says “Integrations” at the top. I hope you read the Glossary I linked to by now, if not please do, as it explains the differences. You should also ready Concepts and terminology - Home Assistant.

Just to clarify what you’re saying about #2; in order to have 800LR connectivity with a Z-Wave device, I MUST scan the QR code with a camera?

You don’t have to use the camera. You can take a picture of the QR code and upload that. Or use a QR code scanner app and import the text code. I do the latter. LR does require using the QR code in any form though.

I will have to now delete and include all of my 800LR devices all over again. Ugh. I wish I had known this on the front end.

Your device’s manual should explain this requirement. If it doesn’t, that’s a failure on their part.

I would guess those are Z-Wave JS UI videos, as the HA implementation is too simple (IMO) to make such a video. Also things change quickly and the videos become out of date. The easiest way to get going with Z-Wave is to use the official add-on as documented. https://www.home-assistant.io/integrations/zwave_js/. The problem is the feature parity, but HA is still catching up. I still recommend ZUI.

This feels like part of my issues as I see both here but only really remember installing one of them.

They don’t install themselves. :laughing: You initiated the installation in some way. It could have been the “Use supervisor” checkbox for the integration. If you want the error from your initial post to go away you will need to delete the Z-Wave JS add-on. You can confirm whether you are actually using it by navigating to the integration configuration page and looking at the Server URL setting. If it shows Z-Wave JS UI’s add-on, it’s safe to delete. If the URL is for “core” add-on, you will need to re-configure it.

Yes, I know what an integration is because it’s up at the top of my devices screen. That one is pretty straight forward.

My confusion stems from not knowing what Z-Wave JS Add-on is because I literally don’t recall ever installing it. I do recall a check box mentioning “supervised” or “supervisor” and even trying to determine what that was for quite some time before finding something that seemed to indicate it was important to have. I believe whatever I found said that was part of the reason I did an HAOS install via VM rather than a docker, with Add-ons being another. I don’t recall specifics but I recall that’s how that aspect of my initial installation went. That’s why I left that box checked (as I believe this was also the default, further complicating things if it should have been unchecked) when I was installing things that I did authorize installation of.

So it’s less of a basic understanding of terminology so much as it is a lack of understanding on how all of these various pieces play together and what’s necessary and what isn’t for my particular installation as well as just in general. You laugh when you say that it didn’t install itself but, from the end-users perspective, it quite literally did in this case. If it did explain that that’s what that option was on the front end then it certainly wasn’t clear enough to understand what was happening and what the options were along with which one were needed for what reasons. I think I followed the information found on the github for the TubesZB device as I read conflicting things about which things needed to be installed for that PoE device specifically to work and much of what I found was for USB Z-Wave dongles which I wasn’t running.

This is a lot to say… yes, I want that error to go away. You’re saying that I just need to uninstall this to accomplish that goal:


Correct? I just want to confirm before I screw something else up that I don’t know how to un-screw. :rofl:

I understand what you’re saying about the camera but the reality is that if I want 800LR there’s no way to do so w/o using a camera of some form or another at some point in the process to scan the QR code of the device. This is news to me as I felt like it was just the “lazy” way of doing the same thing manually like scanning QR codes often is.

This also wasn’t super clear as everything I was seeing made it seem like an either/or thing. Like the QR code was nice for those who were using a mobile device and just wanted to snap a pic and be done with it. I prefer to do things long-hand though so I can get a better understanding of the process to avoid situations like this since I know better how things were done rather then depending on automations to process the steps for me.

At no point did I think that scanning the QR code somehow did something beyond what simply entering the DSK code did in terms of securing connecting the device via the most secure/advanced protocol available, which would be 800LR. I mean, why wouldn’t that be the default if you left the default to basically consider all methods when those who wanted to do something unique could then manually select one of those older protocols?

I guess I still just don’t understand what scanning the QR code specifically does that entering the DSK manually does not do. That’s a real head scratcher to me is most every other time I’ve seen a QR code used it takes you to a web-based link that can be accessed other ways as well. Understand it or not, it sounds like you’re telling me that if I want to use that shiny new 800LR protocol on all of my newer devices I need to use the QR code no matter what. That’s an adjustment I can make.

If the integration is configured to use Z-Wave JS UI, which as I mentioned you can confirm by the Server URL in the integration configuration, then yes you can delete it.

SmartStart inclusion is required for Long Range, and SmartStart uses QR codes. Doesn’t matter how you personally feel about QR codes, that’s the requirement. The QR code has more information than just the DSK, it also includes a flag as to whether the device supports Long Range, and several other properties.

Here’s a website from the Z-Wave JS creator that will generate a QR code for you https://zwave-js.github.io/qr/. You could try generating a “fake” QR code with the full DSK and and setting the support protocols flags. How will you get the full DSK though? Yeah, you’ll have to scan the QR code anyways.

Circling back to this one, I don’t have “Z-Wave JS” running in my integrations:


The only Z-Wave related item in that Integration list is the Z-Wave one pictured above.

Are you saying I need to install one specific to “Z-Wave JS” instead? I don’t think I ever saw that as an option. I saw a couple integrations specific to the TubesZB controller but I wasn’t sure what they were so I didn’t install them since they didn’t seem necessary.

When I click the Z-Wave integration:


…and then configure:

I see a url for the server:

…but I’m not sure how to verify what that address is referring to. I looked in the settings for both of those add-ons but couldn’t find any service url’s or anything listed to confirm.

The integration is named “Z-Wave”. It was renamed from “Z-Wave JS” about 3 years ago.

I don’t have any interest in creating new QR codes as I don’t understand what that would even accomplish. I have all of the QR codes for the devices that came with them. They all also listed the DSK code right by the QR code as well. This is why I thought I could just manually enter that DSK when prompted for it which is what I did on the 800LR devices.

None of my older non-LR devices prompted for a DSK code (as expected) so since the inclusion process asked for it on the newer LR devices, I assumed that HAOS/Z-Wave JS/whatever was distinguishing between those types and therefore the DSK entered was the same thing that scanning the QR code was doing. Why would the inclusion process even prompt for the DSK code if it was just adding it via the legacy protocols anyway?

I still don’t understand what specifically scanning the QR code is doing that typing in the DSK isn’t. That’s a pretty big missing piece of the puzzle and one I want to understand before I delete and add dozens of devices and edit related automations all over again.

Ok, that’s annoying. I think you may have installed the integration using the auto-discovery methods, which is unfortunately not documented nor has not existed until recently.

Well, it should be easy to tell. Make sure the “Z-Wave JS” add-on is completely off. If everything is working in HA, then you aren’t using it.

You can probably find the IP address of the add-on somewhere, but I don’t have the steps available ATM.

Are you serious? This “Z-Wave” add-on has been Z-Wave JS all along? This is the exact type of thing that’s confusing the situation. When someone tells me Z-Wave JS… that’s what I’m looking for. Hence why I see no “Z-Wave JS” in my integrations which is thoroughly confusing. Especially in a trouble shooting situation where I stated that I don’t understand all of the differences as it’s all intermixed in every bit if research I can do myself. I even saw reference several times to “Z-Wave JS” being an older version of “Z-Wave JS UI” so I was literally trying to avoid using the older one wherever possible.

I set out to try to educate myself on something that doesn’t seem like it should be that complicated. I’m more confused than ever.

Smart Start is a Z-Wave requirement to use LR.

Previously the Z-Wave integration was based on OpenZWave. It was replaced by the Z-Wave JS integration and they briefly co-existed, you could even migrate from the old to the new. Then the OZW based integration was removed and Z-Wave JS was renamed to Z-Wave. That was almost 3 years ago. I’d suggest you stop referring to any videos, blogs or posts that are that old since they are outdated.

The Z-Wave JS add-on has not ever been “an older version” of Z-Wave JS UI. They are independent software projects that both use the Z-Wave JS driver software (the code that runs the Z-Wave network). One is officially supported by the HA organization, the other is a 3rd party project.

I’m not referring to any videos older than 3 years, I’m referring to posts in this conversation that first brought up “Z-Wave JS” before I ever did. The exact phrase was put in quotes indicating an exact match multiple times. I was even looking for a separate add-on by that exact name since it was put into quotes.

That’s why I’m confused. Two different people now are referring to “Z-Wave JS” in this thread, I go to add-ons looking for “Z-Wave JS” and I see nothing. Hence my post above seeking clarification. This whole time I thought that these were two different things since people keep calling it “Z-Wave JS” and had it just been called “The Z-Wave Add-On” I’d know instantly what we’re talking about as I tend to be a very literal person.

Any time I’ve mentioned it since then I’m trying to use the terminology used here in an effort to better understand all of this which I (admittedly) don’t have a firm grasp of. Even the things I think I understand are all wrong and I’m becoming even more confused in trying to understand better.

I now understand for the first time that, in terms of add-ons… Z-Wave JS doesn’t exist but once did and is now called Z-Wave. Full stop. That is helpful information and likely could have saved lots of confusion on my part but doesn’t really undo the predicament I’m currently in.

Both of the screenshots you have previously posted of the add-ons page show both “Z-Wave JS” and “Z-Wave JS UI”.

Here: I Have Some n00b Questions About Z-Wave JS UI - #5 by Ostrichsak
And here: I Have Some n00b Questions About Z-Wave JS UI - #7 by Ostrichsak

Nope, you are mixing up add-ons and integrations again. That is the integration.

Add-ons:

  1. Z-Wave JS → provided by HA, the official add-on to install Z-Wave JS
  2. Z-Wave JS UI → a community add-on, 3rd party add-on to install Z-Wave JS and also includes it’s own control panel UI and other features

Integration:

  1. Z-Wave (has not been called “Z-Wave JS” for almost 3 years now). This integration connects to the Z-Wave driver, which is provided by one of the above add-ons.

Yeah, the naming is confusing, but that’s how it is. No one over the last 4 years has come up with a solution to that.

And miss these fun episodes of “Home Assistant Z-wave Confusion Groundhog Day” that seem to repeat at least once a week or so? :slight_smile:

It seems pretty obvious to me that the Home Assistant team has no interest in solving this problem. These episodic confusion threads will go on forever.

That said, I for one appreciate your efforts to educate and set the confused on the right path!

1 Like

Well, the HA team is not responsible for Z-Wave JS UI. So they have zero input into what it’s called.

I don’t know what name you would call the “Z-Wave JS” add-on that is relevant but not confusing.