Z-Wave Secure Inclusion

I will look to merge this into master in the new year. This is a major breaking change, so everyones ZWave binding will stop working when this merge is done so it’s not something to be done too lightly :wink:

Hi Chris,

Thanks for the response. I’m also having trouble with the new Outdoor Smart Switch with the ZWave Plus. I’m a coder. I can help. Just point me in the right direction. I’m sure it’s a matter of updating some database.

With respect to the breaking change, could you introduce it as a new Z-wave binding - preserving the legacy binding for those who need it, and making the new binding available as the latest/greatest?

Thanks,
Mike

Hi Chris,

Wondering if this is imminent… Is it possible to declare it as a new Z-Wave binding (Z-Wave Secure, for example)? That way, people can select the new binding if they need it. Then, deprecate the original binding so people are forewarned it’s on its way out - but at least that way, there are no breaking changes.

Maybe that’s too simplistic, but that’s an idea anyway.

Reasonably imminent - probably a couple of weeks while I try and iron out some issues…

It’s not really very easy as it’s all in the same repository, but it’s currently possible to download this from the Marketplace so I guess that does the same thing?

There will now be about 6 months before the next release - we can’t avoid the breaking changes, but getting this merged well in advance of the next release gives people the best possible chance to update.

Which version do we need to be running to have secure inclusion?

Thanks! I got it working.

Is this included now or do I still have to download?
(I have the Secure Inclusion Mode set at “Entry Control Devices” in my Z-wave serial controller.)

It is not currently included in the snapshot version.

Sorry to ask the same stuff again but just to confirm I got this right:

  • secure inclusion is not yet possible on stable/public version
  • if I want to use it right away I should download the snapshot
  • it will be part of the public version soonish
  • even though Paper UI (in Z-Wave Thing settings) has an option for secure inclusion it shouldn’t be used/doesn’t work yet

What if I have securely included a device earlier through different software, will this device not work with the current Z-Wave binding at all or is this just about the inclusion process itself?

if I want to use it right away I should download the snapshot

No. The snapshot still does not have the security built-in. You must download the jar file from here and add it to your addons directory (and remove the built in binding through karaf).

even though Paper UI (in Z-Wave Thing settings) has an option for secure inclusion it shouldn’t be used/doesn’t work yet

Correct. You really should be using habmin for any zwave inclusion, secure or insecure.

What if I have securely included a device earlier through different software, will this device not work with the current Z-Wave binding at all or is this just about the inclusion process itself?

If you switch bindings, this is the breaking change that Chris has referenced. Your previously included devices will not work when switching to the security-included zwave binding. While you won’t have to exclude and re-include them, you will have to delete each thing and re-initialize the devices.

Chris or anyone is welcome to correct anything that I have not explained clearly or incorrectly. :slight_smile:

Thanks for the clarification. I had this idea that secure inclusion, once done, would be independent from the software layer that speaks to the controller, but it looks like there’s more to it than that. ´

I wonder why Habmin should be used over Paper UI? It seems like they could both use the same process for inclusion these days (based on just what I’m seeing, no idea what’s going on behind the scenes).

I think it would be beneficial to mention the current state of secure inclusion in documentation/UI, so that there would be no possibility for someone to think they are using secure communications while they actually aren’t.

Security is handled in the binding - not in the controller, so it’s down to the binding software to handle this.

HABmin provides more information on the progress than PaperUI which provides no feedback. Other than that it’s the same for inclusion. However, I would strongly recommend HABmin for configuring devices as it better handles configuration. PaperUI will update all parameters on a device which can cause a lot of network traffic (especially a problem in battery devices).

1 Like

Pardon the pun I think I have myself in a bind… I have a Yale 220YRD lock that is recognized in the 2.3.0 version but not in this 2.2.0.xxxx interim binding.

So I can get it to show up properly and add items etc. but not operate the lock in 2.3.0.xxxx. The attribute “Using Security” check box was a grey “?”.

In this 2.2.0.xxx version you guys are using successfully it only show up in Things as a generic “Z-Wave Node 5” Thing.

Any ideas on how to fix or do I need to wait for the Snapshot?

Ok updated latest Snapshot to see:

 203 | Active   |  80 | 2.3.0.201802031138     | ZWave Binding

Took the excluded the lock successfully then removed the USB controller. Included it using Habmin and getting this log error

SECURITY_ERROR Invalid state! Secure inclusion has not completed and we are not in inclusion 
 mode. Aborting

I’ve got it in High Power Inclusion and Security Inclusion mode is set to “Entry Control Devices”.

Went back to that above interim build and the Yale lock still no workie workie…all my other devices are solid though. Even got Alexa to work…y’all are awesome!!!

Is the code in the .jar file modular enough that I can grab the 2.3.0 Yale lock stuff and put in into this interim 2.2.xxxx build? Kind of a shadetree java guy (aka. unreliably dangerous).

I doubt going back to an older version will work given there haven’t really been any changes in the security handler for a long time. I would suggest to look at the debug logs and try and work out what’s wrong - going backwards isn’t ultimately going to work :wink:

OK thanks got it showing up with the Using Security attribute as green now. So I had the latest SNAPSHOT from the other day with the 2.2.0xxx .jar file earlier which didn’t work. I dropped in the .jar file from above (or here).

Now I just have to figure out how to add it as an item correctly. ON/OFF doesn’t work but no errors. Not sure what command the lock is expecting…

I’m struggling trying to securely include my door lock (IdLock). I see this in the log:

2018-02-05 17:51:15.933 [INFO ] [alization.ZWaveNodeInitStageAdvancer] - NODE 26: SECURITY_INC State=FAILED, Reason=GET_SCHEME

a previous attempt after exluding and including again (using habmin) gave me this:

2018-02-05 17:37:57.847 [INFO ] [mmandclass.ZWaveSecurityCommandClass] - NODE 24: Using Scheme0 Network Key for Key Exchange since we are in inclusion mode.

2018-02-05 17:38:18.270 [INFO ] [alization.ZWaveNodeInitStageAdvancer] - NODE 24: SECURITY_INC State=FAILED, Reason=SET_KEY

any pointer to what I should try next? (I’ve already tried excluding and adding 6 or so times, network inclusion is set to high)

I finally got my lock included. I had to change the z-wave network security key to make it work