Best way to determine if Zwave device is supported

I just discovered the HomeSeer HS-WD100+
It’s a switch that also acts as a scene controller for double-taps, triple-taps, press-and-hold. And it supports instant status.

So it occurred to me that I don’t know how to tell if it’s supported by HA.

Is the best way to check the OpenZwave device database?

If something’s in there, does that mean that HA will automatically support it? Or is there a method to import new devices?

1 Like

Did you ever find an answer to this?

Nope! No luck.

Since HA doesn’t directly support Zwave, but rather indirectly by OpenZwave the question might better be answered by the openzwave group. It will undoubtedly function as standard zwave switch, but will unlikely support the additional features without direct OpenZwave support. I have decided that my next zwave dimmer will be one of the Homeseer devices. Support for the extra features may follow in time.

As mentioned by @zarthan, Z-Wave support with hass is done via Open Z-Wave. So the question you should be asking is “does this Z-Wave device work with Open Z-Wave?”

Generally, that answer is always going to be yes, to an extent, especially with newer Z-Wave Plus devices. Z-Wave devices do follow a standard that should allow something like a switch to automatically be detected, but if support hasn’t been added to Open Z-Wave, you won’t be able to change any configurable options. For those configurable options to be available, they must be specified in a xml file with Open Z-Wave, which will then assign a config file to a device based on the manufacturer, type, and id fields.

So to be more specific, this is the file that does all the mapping:

Up one directory is the folders containing config files:

Ideally, the device database you listed should be updated to mirror these config files, but that doesn’t appear to be the case. For example, I’ve added 3 Zooz-brand devices within the last month to the Open Z-Wave configs, but they weren’t added to the device database.

So now you’re probably wondering, “how do I find out the manufacture, type and ID codes for a device I’m looking at?” Best way, IMO, is to use the z-wavealliance.org website. Any certified Z-Wave device SHOULD be listed on this website. For example, here is the product page for the HomeSeer HS-WD100+ that you listed:
http://products.z-wavealliance.org/products/1730

In the description you will find:
Brand Name: HomeSeer
Product Type ID: 0x4447
Product ID: 0x3034

Now if we go to the manufacturer_specific.xml file:

We can search for HomeSeer, and we find that it’s Manufacturer ID is 001e. Under that section, there are a total of 4 devices listed:

		<Product type="0001" id="0002" name="ZTroller" config="homeseer/ztroller.xml"/>
		<Product type="0002" id="0001" name="HSM100 Wireless Multi-Sensor" config="homeseer/hsm100.xml"/>
		<Product type="0002" id="0002" name="EZMotion+ 3-in-1 Sensor" config="homeseer/ezmotionplus.xml"/>
		<Product type="0004" id="0001" name="HSM200 Wireless Multi-Sensor" config="homeseer/hsm200.xml"/>

Based on what we found from the Z-Wave Alliance website, we are looking for type="4447" id="3034", which does not exist.

So to answer your question about that device…no, Z-Wave (nor Home Assistant) has FULL support of that device. It’s highly likely that you will still be able to control the device from Open Z-Wave (or Home Assistant) because Open Z-Wave does have an auto-discover behavior. If you want to read more about this auto-discover behavior, read the Introduction section here:

Now if you want to create the configuration file for Open Z-Wave for this device, it’s actually very easy. Also in that doc I just linked is how the device configuration files work (standard xml), but it’s also very easy to copy and paste from other device configuration files. To know what Configuration Capabilities that specific device has, we can go back to the Z-Wave Alliance website (again, seriously fantastic resource). Also on the same product page as the Type and ID’s, is this:
Configuration Capabilities: View Configuration Parameters

And that View Configuration Parameters link for the HomeSeer HS-WD100+ takes you to this page:
http://products.z-wavealliance.org/products/1730/configs

From there we can see that this device, as documented by the device manufacturer, only has 3 configurable parameters. That link lists the parameter number, size (in bytes), name, and vale (with defaults if applicable). Simple create a config file based on that and commit/share with the Open Z-Wave project, and you’ve now got full control of that device, and so does everyone else who pulls that code.

If you do commit your new device configuration file to the Open Z-Wave project, you will have to download the updates to the config dir to your local Open Z-Wave installation dir, so you can utilize them.

Overall it’s not a difficult process, once you know what is going on. I started using Home Assistant about 2 months ago, and have basically figured all of those out myself. I’m surprised it’s not really documented anywhere.

But hopefully others will find this and contribute to the Open Z-Wave project!

For further info on the Z-Wave Alliance page, my understanding is that any released product that wants to be “Z-Wave Certified” has to submit all this information to the organization in order to receive a certification number. It’s possible you could have built your own Z-Wave device, but 100% of Z-Wave CERTIFIED products SHOULD be listed on that website; including new products that haven’t released yet. For example, I’ve been keeping up with, and testing Zooz-brand products the past month or so. I’ve added a few configuration files to the Open Z-Wave project, and also found this:
http://products.z-wavealliance.org/products/1901

A new smart plug that received it’s certification on 8/8/2016, but hasn’t been released to the public yet (I’ve confirmed with Zooz directly). So it’s a cool way to check out the latest and greatest Z-Wave products as well!

EDIT: Shameless plug. I run https://deviantengineer.com, and over the past few months I have been testing and reviewing Z-Wave modules/sensors. In the course of testing out products, I have run into about 4 (so far) that didn’t have Open Z-Wave configurations. I know I’ve got 2 more products still in the box on my desk that I haven’t tested yet, that I will have to create configurations for.
If you’re interested in a device but don’t feel that you can create the configuration file, I’d be glad to do it if you want to send me the module/sensor to be added (after we confirm it doesn’t exist). I would also take the opportunity to write a review about it. My contact information is on my blog if anyone wants to take me up on my offer.

5 Likes

Thanks a lot - this is interesting and useful. I appreciate you putting all of this info in one place.

I have also found some z=wave items I have been able to add to my data base. I have not been able to locate the zwave information for the zen22 dimmer switch.Alliance website doesn’t have the configuration file as your example. If you run into it that wluld be awesome if you shared :slight_smile:

I’ve gotten my hs-wd100+ to work with my Home Assistant for on/off, now i’d like to figure out how to get double and triple taps working to control other things in HA. Anyone have any luck with that?

Tycoonbob, I noticed that the specific device config still isn’t up there on the open z-wave file, but is that necessary if I’m not trying to configure one of the 3 configurable options?

Just FYI, since it doesn’t seem like anyone’s added the HS-WD100+ to OpenZwave, I went ahead and added it. https://github.com/OpenZWave/open-zwave/pull/1068

This will only affect its configurations (like dimming rate) and not the double/triple tap compatibility.

1 Like

Thanks sterling. I was just looking for something like this! Hopefully the pull request gets merged soon!

Thanks for this this super detailed reply.

Just wanted to add I’ve also found many config files in this database

1 Like

I think Chris Jackson is part of the Open Zwave development team.

I don’t see any Commits to Open Z-Wave for Christ Jackson, but I know he does a lot with the OpenHAB community.

@droberts84 That’s also another great resource to compare against, but I’d recommend that as a second resource to the Z-Wave Alliance page.

Hi all,

I don’t know if this is the proper place for this infomation, but I am also trying to get the HS-WD100+ switches to work. I was able to get the basic on off working with the xml files in the github pull request, but still want to get scenes working. I am new to both home-assistant and z-wave so I don’t know the code base very well. Below are the OpenZWave Control Panel logs for single click, double click, and triple click of the HS-WD100+ with the pull request applied. It shows up as Node003 in my control panel. To summarize the the logs below, I see this behavior on various clicks

All messages are Central Scene Set messages

Click Count SceneID Time
1 up ---------- 1----------- 0 sec
2 up ---------- 1 ---------- 3 sec
3 up ---------- 1----------- 4 sec
1 down ------- 2----------- 0 sec
2 down ------- 2----------- 3 sec
3 down ------- 2----------- 4 sec

Single Click (up)

2016-12-26 12:42:36.198 Detail, Node003, Received: 0x01, 0x19, 0x00, 0x49, 0x84, 0x03, 0x13, 0x04, 0x11, 0x01, 0x5e, 0x86, 0x72, 0x5a, 0x85, 0x59, 0x73, 0x26, 0x27, 0x70, 0x2c, 0x2b, 0x5b, 0x7a, 0xef, 0x5b, 0x93
2016-12-26 12:42:36.199 Detail,
2016-12-26 12:42:36.199 Info, Node003, UPDATE_STATE_NODE_INFO_RECEIVED from node 3
2016-12-26 12:42:36.199 Detail, Node003, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Dynamic live=1
2016-12-26 12:42:36.199 Detail, Node003, QueryStage_Dynamic
2016-12-26 12:42:36.199 Detail, Node003, Queuing (Send) SwitchMultilevelCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x26, 0x02, 0x25, 0x1f, 0xfa
2016-12-26 12:42:36.199 Info, Node003, CentralScene RequestState: 4
2016-12-26 12:42:36.199 Info, Node003, CentralScene: Not a StaticRequest
2016-12-26 12:42:36.199 Detail, Node003, Queuing (Query) Query Stage Complete (Dynamic)
2016-12-26 12:42:36.200 Detail,
2016-12-26 12:42:36.200 Info, Node003, Sending (Send) message (Callback ID=0x1f, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x26, 0x02, 0x25, 0x1f, 0xfa
2016-12-26 12:42:36.215 Detail, Node003, Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2016-12-26 12:42:36.215 Detail, Node003, ZW_SEND_DATA delivered to Z-Wave stack
2016-12-26 12:42:36.219 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xb9, 0x00, 0x01, 0x16
2016-12-26 12:42:36.219 Detail,
2016-12-26 12:42:36.219 Info, Node003, Response RTT 19 Average Response RTT 27
2016-12-26 12:42:36.219 Info, Node003, Received Central Scene set from node 3: scene id=1 in 0 seconds. Sending event notification.
2016-12-26 12:42:36.219 Warning, Node003, No ValueID created for Scene 1
2016-12-26 12:42:36.233 Detail, Node003, Received: 0x01, 0x07, 0x00, 0x13, 0x1f, 0x00, 0x00, 0x03, 0xf7
2016-12-26 12:42:36.233 Detail, Node003, ZW_SEND_DATA Request with callback ID 0x1f received (expected 0x1f)
2016-12-26 12:42:36.233 Info, Node003, Request RTT 33 Average Request RTT 32
2016-12-26 12:42:36.233 Detail, Expected callbackId was received
2016-12-26 12:42:36.244 Detail, Node003, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x03, 0x03, 0x26, 0x03, 0x03, 0xd4
2016-12-26 12:42:36.244 Detail,
2016-12-26 12:42:36.244 Info, Node003, Response RTT 44 Average Response RTT 35
2016-12-26 12:42:36.245 Info, Node003, Received SwitchMultiLevel report: level=3
2016-12-26 12:42:36.245 Detail, Node003, Refreshed Value: old value=0, new value=3, type=byte
2016-12-26 12:42:36.245 Detail, Node003, Changes to this value are not verified
2016-12-26 12:42:36.245 Detail, Node003, Expected reply and command class was received
2016-12-26 12:42:36.245 Detail, Node003, Message transaction complete
2016-12-26 12:42:36.245 Detail,
2016-12-26 12:42:36.245 Detail, Node003, Removing current message
2016-12-26 12:42:36.245 Detail, Node003, Notification: ValueChanged
2016-12-26 12:42:36.245 Info, Notification: Value Changed Home 0xf7caab7e Node 3 Genre user Class SWITCH MULTILEVEL Instance 1 Index 0 Type byte
2016-12-26 12:42:36.245 Detail, Node003, Query Stage Complete (Dynamic)
2016-12-26 12:42:36.246 Detail, Node003, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Configuration live=1
2016-12-26 12:42:36.246 Detail, Node003, QueryStage_Configuration
2016-12-26 12:42:36.246 Detail, Node003, QueryStage_Complete
2016-12-26 12:42:36.246 Warning, CheckCompletedNodeQueries m_allNodesQueried=1 m_awakeNodesQueried=1
2016-12-26 12:42:36.246 Detail, Node003, Notification: NodeQueriesComplete
2016-12-26 12:42:36.246 Info, Notification: Node 3 Queries Complete
2016-12-26 12:42:39.100 Detail, Node003, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x03, 0x03, 0x26, 0x03, 0x63, 0xb4
2016-12-26 12:42:39.100 Detail,
2016-12-26 12:42:39.100 Info, Node003, Received SwitchMultiLevel report: level=99
2016-12-26 12:42:39.100 Detail, Node003, Refreshed Value: old value=3, new value=99, type=byte
2016-12-26 12:42:39.101 Detail, Node003, Changes to this value are not verified
2016-12-26 12:42:39.101 Detail, Node003, Notification: ValueChanged
2016-12-26 12:42:39.101 Info, Notification: Value Changed Home 0xf7caab7e Node 3 Genre user Class SWITCH MULTILEVEL Instance 1 Index 0 Type byte

Single Click (down)

2016-12-26 12:42:58.665 Detail, Node003, Received: 0x01, 0x19, 0x00, 0x49, 0x84, 0x03, 0x13, 0x04, 0x11, 0x01, 0x5e, 0x86, 0x72, 0x5a, 0x85, 0x59, 0x73, 0x26, 0x27, 0x70, 0x2c, 0x2b, 0x5b, 0x7a, 0xef, 0x5b, 0x93
2016-12-26 12:42:58.665 Detail,
2016-12-26 12:42:58.665 Info, Node003, UPDATE_STATE_NODE_INFO_RECEIVED from node 3
2016-12-26 12:42:58.665 Detail, Node003, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Dynamic live=1
2016-12-26 12:42:58.666 Detail, Node003, QueryStage_Dynamic
2016-12-26 12:42:58.666 Detail, Node003, Queuing (Send) SwitchMultilevelCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x26, 0x02, 0x25, 0x20, 0xc5
2016-12-26 12:42:58.666 Info, Node003, CentralScene RequestState: 4
2016-12-26 12:42:58.666 Info, Node003, CentralScene: Not a StaticRequest
2016-12-26 12:42:58.667 Detail, Node003, Queuing (Query) Query Stage Complete (Dynamic)
2016-12-26 12:42:58.667 Detail,
2016-12-26 12:42:58.667 Info, Node003, Sending (Send) message (Callback ID=0x20, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x26, 0x02, 0x25, 0x20, 0xc5
2016-12-26 12:42:58.675 Detail, Unsolicited message received while waiting for ACK.
2016-12-26 12:42:58.676 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xba, 0x00, 0x02, 0x16
2016-12-26 12:42:58.676 Detail,
2016-12-26 12:42:58.677 Info, Node003, Response RTT 8 Average Response RTT 21
2016-12-26 12:42:58.677 Info, Node003, Received Central Scene set from node 3: scene id=2 in 0 seconds. Sending event notification.
2016-12-26 12:42:58.677 Warning, Node003, No ValueID created for Scene 2
2016-12-26 12:42:58.678 Detail, Node003, CAN received…triggering resend
2016-12-26 12:42:58.678 Detail,
2016-12-26 12:42:58.678 Info, Node003, Sending (Send) message (Attempt 2, Callback ID=0x21, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=3): 0x01, 0x09, 0x00, 0x13, 0x03, 0x02, 0x26, 0x02, 0x25, 0x21, 0xc4
2016-12-26 12:42:58.687 Detail, Node003, Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2016-12-26 12:42:58.687 Detail, Node003, ZW_SEND_DATA delivered to Z-Wave stack
2016-12-26 12:42:58.703 Detail, Node003, Received: 0x01, 0x07, 0x00, 0x13, 0x21, 0x00, 0x00, 0x02, 0xc8
2016-12-26 12:42:58.704 Detail, Node003, ZW_SEND_DATA Request with callback ID 0x21 received (expected 0x21)
2016-12-26 12:42:58.704 Info, Node003, Request RTT 25 Average Request RTT 28
2016-12-26 12:42:58.705 Detail, Expected callbackId was received
2016-12-26 12:42:58.715 Detail, Node003, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x03, 0x03, 0x26, 0x03, 0x61, 0xb6
2016-12-26 12:42:58.715 Detail,
2016-12-26 12:42:58.716 Info, Node003, Response RTT 36 Average Response RTT 28
2016-12-26 12:42:58.716 Info, Node003, Received SwitchMultiLevel report: level=97
2016-12-26 12:42:58.717 Detail, Node003, Refreshed Value: old value=99, new value=97, type=byte
2016-12-26 12:42:58.717 Detail, Node003, Changes to this value are not verified
2016-12-26 12:42:58.717 Detail, Node003, Expected reply and command class was received
2016-12-26 12:42:58.717 Detail, Node003, Message transaction complete
2016-12-26 12:42:58.718 Detail,
2016-12-26 12:42:58.718 Detail, Node003, Removing current message
2016-12-26 12:42:58.718 Detail, Node003, Notification: ValueChanged
2016-12-26 12:42:58.719 Info, Notification: Value Changed Home 0xf7caab7e Node 3 Genre user Class SWITCH MULTILEVEL Instance 1 Index 0 Type byte
2016-12-26 12:42:58.719 Detail, Node003, Query Stage Complete (Dynamic)
2016-12-26 12:42:58.719 Detail, Node003, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Configuration live=1
2016-12-26 12:42:58.720 Detail, Node003, QueryStage_Configuration
2016-12-26 12:42:58.720 Detail, Node003, QueryStage_Complete
2016-12-26 12:42:58.720 Warning, CheckCompletedNodeQueries m_allNodesQueried=1 m_awakeNodesQueried=1
2016-12-26 12:42:58.721 Detail, Node003, Notification: NodeQueriesComplete
2016-12-26 12:42:58.721 Info, Notification: Node 3 Queries Complete
2016-12-26 12:43:01.567 Detail, Node003, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x03, 0x03, 0x26, 0x03, 0x00, 0xd7
2016-12-26 12:43:01.567 Detail,
2016-12-26 12:43:01.568 Info, Node003, Received SwitchMultiLevel report: level=0
2016-12-26 12:43:01.568 Detail, Node003, Refreshed Value: old value=97, new value=0, type=byte
2016-12-26 12:43:01.568 Detail, Node003, Changes to this value are not verified
2016-12-26 12:43:01.569 Detail, Node003, Notification: ValueChanged
2016-12-26 12:43:01.569 Info, Notification: Value Changed Home 0xf7caab7e Node 3 Genre user Class SWITCH MULTILEVEL Instance 1 Index 0 Type byte

Double Click (up)

2016-12-26 12:41:03.990 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xb5, 0x03, 0x01, 0x19
2016-12-26 12:41:03.990 Detail,
2016-12-26 12:41:03.990 Info, Node003, Received Central Scene set from node 3: scene id=1 in 3 seconds. Sending event notification.
2016-12-26 12:41:03.990 Warning, Node003, No ValueID created for Scene 1

Double Click (down)

2016-12-26 12:41:43.110 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xb6, 0x03, 0x02, 0x19
2016-12-26 12:41:43.110 Detail,
2016-12-26 12:41:43.111 Info, Node003, Received Central Scene set from node 3: scene id=2 in 3 seconds. Sending event notification.
2016-12-26 12:41:43.111 Warning, Node003, No ValueID created for Scene 2

Triple Click (up)

2016-12-26 12:41:56.869 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xb7, 0x04, 0x01, 0x1c
2016-12-26 12:41:56.869 Detail,
2016-12-26 12:41:56.869 Info, Node003, Received Central Scene set from node 3: scene id=1 in 4 seconds. Sending event notification.
2016-12-26 12:41:56.869 Warning, Node003, No ValueID created for Scene 1

Triple Click (down)

2016-12-26 12:42:18.503 Detail, Node003, Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x03, 0x05, 0x5b, 0x03, 0xb8, 0x04, 0x02, 0x10
2016-12-26 12:42:18.504 Detail,
2016-12-26 12:42:18.504 Info, Node003, Received Central Scene set from node 3: scene id=2 in 4 seconds. Sending event notification.
2016-12-26 12:42:18.505 Warning, Node003, No ValueID created for Scene 2

Did anyone ever get the double/triple tap working? I just got one to play around with and quickly got it working for basic on/off functionality but I primarily got it for the double/triple tap functionality.

If HA can’t do it, could it be something handled by a Wink hub or something like that?