[RELEASE] HomeSeer HS-WX300 Driver (dimmer and switch)

The driver will not affect the ability of a device to pair. If you are having problems with that, I'd try the usual Z-Wave troubleshooting: exclude the device before pairing, check for ghosts in Settings > Z-Wave Details, make sure the frequency of your hub and the device are for the same region, make sure you're following the right inclusion/exclusion sequence for the device according to the manual, etc. If you still have trouble with that, I might start a separate thread.

Regarding the first question, Hubitat does have a built-in driver for this, so you no longer need a community offering, though some may still prefer it for other reasons (e.g., to use more than double-taps).

1 Like

I've just uploaded a new version (1..1) of both drivers with the following changes, mostly for new features in HS-WX300 firmware 1.13 that was recently released:

  • Smart bulb mode preference (device will still internally track on/off or level state but not actually control load)
  • Set LED level command to set brightness/level of indicator LEDs on device (0-6, dimmest to brightest)
  • Toggle mode preference (switch only) -- pressing either top or bottom paddle will toggle light on or off, instead of top turning on and bottom turning off
  • Default level with on press from paddle preference (dimmer only) -- can turn on to specified level instead of last on level (the default) with paddle press if desired

Links to code are in first post, or existing users can select the Import button in the driver code editor window to download/import the latest code via the URL that should be pre-filled. (Not in HPM, but could add if there is interest...)

Would this driver work if the switch is used in a 3-way setup? Thanks

I've never tested that setup specially, but I don't see why it wouldn't. I believe three-way behavior is handled automatically entirely on the device, with nothing to worry about on the Z-Wave (and therefore driver) side, since the only thing I see in their manual regarding this is different wiring.

Thanks for the insight. :+1:

Getting error adding the code: Metadata Error:Please check if you inadvertently pasted driver code into apps code window on line 107. New to hubitat not sure if I missed a step or instruction - any hint/help appreciated.

Cheers.

Did you, by any chance, past the driver code into Apps Code instead of Drivers Code? :slight_smile:

I just want to say thanks for making this. The lack of triple taps on the HE built in driver was driving me mad. I am going to test this out tomorrow with my WX300s

One question though. Should i use the driver from this post or from your earlier post for a WD200 ?

1 Like

I would not recommend that driver anymore--it was a port I attempted before I actually had a device. I haven't tested my WX300 driver with a WD200 and there are a few preferences that won't work (if you use the original release instead of the ones with the updates, those won't even be there--though it should also be fine as long as you don't set them, and even if you try, the device will probably ignore them unless there are in fact undocumented parameters there). But if it doesn't work, there may be a more appropriate version somewhere.

1 Like

Understood, I'll test this new driver out with my 200s before i attempt anything else. Thanks again for all the work on this!!!

So I've been using this driver on my HS-WX300s and it has been fantastic. I do have something a bit odd going on with ONE of my HS-WX300s though - for some reason with this driver it doesn't report state change when triggered physically or through hubitat, when I switch to the hubitat built in driver it works just fine. None of my other HS-WX300s demonstrate this behavior using the custom driver. Switching back to this driver the same behavior pops up right away.

If I press "refresh" on the device page with the custom driver it does update the state just fine.

In case it's useful: C8 hub, latest firmware (2.3.5.113)

here's the details of the HS-WX300 which is direct connected to the hub as is another HS-WX300 which is in the two gang plastic box right next to it (the other one works just fine with the custom driver)
image

Happy to share any other details that might help troubleshoot this - I tend to think it's a driver issue since the thing works fine with the built in driver, but still super weird since none of my other HS-WX300s demonstrate the same problem with the custom driver.

I'd suggest turning on debug logging and sharing what you see in Logs after an "on" or an "off" (especially if there is some skipped report). It's also possible lifeline association got lost, maybe if you did a firmware update, though that would likely have affected the built-in driver too (it's normally set on inclusion and I don't have, but could add, a way to specifically do it).

Here's a debug log using the native driver:

dev:792023-03-20 04:17:54.308 PMinfoBasement Main Lights was turned off
dev:792023-03-20 04:17:54.305 PMinfoBasement Main Lights was set to 0
dev:792023-03-20 04:17:54.301 PMdebugparse:zw device: 5B, command: 2603, payload: 00 00 00 , isMulticast: false
dev:792023-03-20 04:17:52.330 PMinfoBasement Main Lights was turned off
dev:792023-03-20 04:17:52.327 PMinfoBasement Main Lights was set to 0
dev:792023-03-20 04:17:52.322 PMdebugparse:zw device: 5B, command: 2603, payload: 55 00 01 , isMulticast: false
dev:792023-03-20 04:17:51.978 PMdebugoff()
dev:792023-03-20 04:17:41.865 PMdebugparse:zw device: 5B, command: 7006, payload: 1F 01 00 , isMulticast: false
dev:792023-03-20 04:17:41.563 PMdebugparse:zw device: 5B, command: 7006, payload: 1B 01 00 , isMulticast: false
dev:792023-03-20 04:17:41.264 PMdebugparse:zw device: 5B, command: 7006, payload: 1A 01 00 , isMulticast: false
dev:792023-03-20 04:17:40.963 PMdebugparse:zw device: 5B, command: 7006, payload: 19 01 00 , isMulticast: false
dev:792023-03-20 04:17:40.661 PMdebugparse:zw device: 5B, command: 7006, payload: 18 01 00 , isMulticast: false
dev:792023-03-20 04:17:40.364 PMdebugparse:zw device: 5B, command: 7006, payload: 17 01 00 , isMulticast: false
dev:792023-03-20 04:17:40.060 PMdebugparse:zw device: 5B, command: 7006, payload: 16 01 00 , isMulticast: false
dev:792023-03-20 04:17:39.758 PMdebugparse:zw device: 5B, command: 7006, payload: 15 01 00 , isMulticast: false
dev:792023-03-20 04:17:39.458 PMdebugparse:zw device: 5B, command: 7006, payload: 03 01 00 , isMulticast: false
dev:792023-03-20 04:17:39.157 PMdebugparse:zw device: 5B, command: 7006, payload: 0E 01 00 , isMulticast: false
dev:792023-03-20 04:17:38.855 PMdebugparse:zw device: 5B, command: 7006, payload: 04 01 00 , isMulticast: false
dev:792023-03-20 04:17:38.574 PMdebugAssociation Report - Group: 1, Nodes: [01]
dev:792023-03-20 04:17:38.554 PMdebugparse:zw device: 5B, command: 8503, payload: 01 05 00 01 , isMulticast: false
dev:792023-03-20 04:17:37.953 PMdebugparse:zw device: 5B, command: 5B02, payload: 02 83 7F , isMulticast: false
dev:792023-03-20 04:17:37.658 PMinfoBasement Main Lights was turned on
dev:792023-03-20 04:17:37.656 PMinfoBasement Main Lights was set to 99
dev:792023-03-20 04:17:37.651 PMdebugparse:zw device: 5B, command: 2603, payload: 63 63 00 , isMulticast: false
dev:792023-03-20 04:17:37.366 PMdebugDevice Specific Report - DeviceIdType: 1, DeviceIdFormat: 1, Data: [132, 180, 219, 255, 254, 179, 191, 51]
dev:792023-03-20 04:17:37.352 PMdebugparse:zw device: 5B, command: 7207, payload: 01 28 84 B4 DB FF FE B3 BF 33 , isMulticast: false
dev:792023-03-20 04:17:37.069 PMdebugVersion3 Report - FirmwareVersion: 1.13, ProtocolVersion: 7.15, HardwareVersion: 1
dev:792023-03-20 04:17:37.051 PMdebugparse:zw device: 5B, command: 8612, payload: 03 07 0F 01 0D 01 00 , isMulticast: false
dev:792023-03-20 04:17:31.863 PMdebugconfigure()
dev:792023-03-20 04:17:30.706 PMdebugparse:zw device: 5B, command: 7006, payload: 0E 01 00 , isMulticast: false
dev:792023-03-20 04:17:30.104 PMdebugparse:zw device: 5B, command: 7006, payload: 04 01 00 , isMulticast: false
dev:792023-03-20 04:17:29.729 PMwarndescription logging is: true
dev:792023-03-20 04:17:29.727 PMwarndebug logging is: true

And here is one using this custom driver:

dev:792023-03-20 04:20:07.044 PMinfoBasement Main Lights switch is off
dev:792023-03-20 04:20:07.042 PMdebugSwitchMultilevelReport: SwitchMultilevelReport(value:0)
dev:792023-03-20 04:20:07.039 PMdebugparse description: zw device: 5B, command: 2603, payload: 00 00 00 , isMulticast: false
dev:792023-03-20 04:20:04.705 PMdebugoff()
dev:792023-03-20 04:19:57.706 PMinfoBasement Main Lights level is 99%
dev:792023-03-20 04:19:57.703 PMinfoBasement Main Lights switch is on
dev:792023-03-20 04:19:57.701 PMdebugSwitchMultilevelReport: SwitchMultilevelReport(value:99)
dev:792023-03-20 04:19:57.695 PMdebugparse description: zw device: 5B, command: 2603, payload: 63 63 00 , isMulticast: false
dev:792023-03-20 04:19:55.352 PMdebugon()
dev:792023-03-20 04:19:29.925 PMdebugDevice serial number is 84B4DBFFFEB3BF33
dev:792023-03-20 04:19:29.921 PMdebugDeviceSpecificReport v2: DeviceSpecificReport(deviceIdType:1, deviceIdDataFormat:1, deviceIdDataLengthIndicator:8, deviceIdData:[132, 180, 219, 255, 254, 179, 191, 51])
dev:792023-03-20 04:19:29.918 PMdebugparse description: zw device: 5B, command: 7207, payload: 01 28 84 B4 DB FF FE B3 BF 33 , isMulticast: false
dev:792023-03-20 04:19:29.725 PMdebugBasement Main Lights hardwareVersion is 1
dev:792023-03-20 04:19:29.722 PMdebugBasement Main Lights zWaveProtocolVersion and subversion is 7.15
dev:792023-03-20 04:19:29.720 PMdebugBasement Main Lights firmware0Version and subversion is 1.13
dev:792023-03-20 04:19:29.717 PMdebugVersionReport: VersionReport(zWaveLibraryType:3, zWaveProtocolVersion:7, zWaveProtocolSubVersion:15, firmware0Version:1, firmware0SubVersion:13, hardwareVersion:1, firmwareTargets:0, targetVersions:[])
dev:792023-03-20 04:19:29.713 PMdebugparse description: zw device: 5B, command: 8612, payload: 03 07 0F 01 0D 01 00 , isMulticast: false
dev:792023-03-20 04:19:28.569 PMdebugSetting parameter 37 (size: 1) to 0
dev:792023-03-20 04:19:28.567 PMdebugSetting parameter 36 (size: 1) to 0
dev:792023-03-20 04:19:28.564 PMdebugSetting parameter 32 (size: 1) to 0
dev:792023-03-20 04:19:28.561 PMdebugSetting parameter 12 (size: 1) to 2
dev:792023-03-20 04:19:28.558 PMdebugSetting parameter 11 (size: 1) to 2
dev:792023-03-20 04:19:28.528 PMdebugDebug logging will be automatically disabled in 30 minutes...
dev:792023-03-20 04:19:28.525 PMwarnDescription logging is: enabled
dev:792023-03-20 04:19:28.515 PMwarnDebug logging is: enabled
dev:792023-03-20 04:19:28.512 PMdebugupdated()
dev:792023-03-20 04:19:28.468 PMdebugconfigure()
dev:792023-03-20 04:19:26.222 PMdebugDevice serial number is 84B4DBFFFEB3BF33
dev:792023-03-20 04:19:26.218 PMdebugDeviceSpecificReport v2: DeviceSpecificReport(deviceIdType:1, deviceIdDataFormat:1, deviceIdDataLengthIndicator:8, deviceIdData:[132, 180, 219, 255, 254, 179, 191, 51])
dev:792023-03-20 04:19:26.196 PMdebugparse description: zw device: 5B, command: 7207, payload: 01 28 84 B4 DB FF FE B3 BF 33 , isMulticast: false
dev:792023-03-20 04:19:26.034 PMdebugBasement Main Lights hardwareVersion is 1
dev:792023-03-20 04:19:26.031 PMdebugBasement Main Lights zWaveProtocolVersion and subversion is 7.15
dev:792023-03-20 04:19:26.028 PMdebugBasement Main Lights firmware0Version and subversion is 1.13
dev:792023-03-20 04:19:26.026 PMdebugVersionReport: VersionReport(zWaveLibraryType:3, zWaveProtocolVersion:7, zWaveProtocolSubVersion:15, firmware0Version:1, firmware0SubVersion:13, hardwareVersion:1, firmwareTargets:0, targetVersions:[])
dev:792023-03-20 04:19:25.993 PMdebugparse description: zw device: 5B, command: 8612, payload: 03 07 0F 01 0D 01 00 , isMulticast: false
dev:792023-03-20 04:19:24.832 PMdebugSetting parameter 37 (size: 1) to 0
dev:792023-03-20 04:19:24.829 PMdebugSetting parameter 36 (size: 1) to 0
dev:792023-03-20 04:19:24.825 PMdebugSetting parameter 32 (size: 1) to 0
dev:792023-03-20 04:19:24.823 PMdebugSetting parameter 12 (size: 1) to 2
dev:792023-03-20 04:19:24.807 PMdebugSetting parameter 11 (size: 1) to 2
dev:792023-03-20 04:19:24.756 PMdebugDebug logging will be automatically disabled in 30 minutes...
dev:792023-03-20 04:19:24.753 PMwarnDescription logging is: enabled
dev:792023-03-20 04:19:24.751 PMwarnDebug logging is: enabled

sigh.... of course NOW it has started working. I have no earthly idea why it would have, nothing else has changed. If it happens again I'll try to capture logs immediately

Thank you! Thank you! Thank you!

I have been searching for a driver that allows access to all of the features of the WD200+ since I switched to hubitat!

I think it works better than the driver for Smartthings as you have the button numbers in a logical order. (top = 1,3,4,5,9 | bottom 2, 4, 6, 8, 10).

Would anyone be willing to share what app they are using to program the 3,4,5 taps with with a few steps to get me started. I did a few test with multiple app options but I was not able to get it to work properly. I am coming over over from a homeseer hub with HS4. Only have homeseer light switches about 50 of them. Would love to get this functionality working.

The easiest and most powerful way is to use Button Controller. If you are intimidated by its UI, I might suggest Basic Button Controller instead. Depending on what you're actually trying to do (I don't see a description of that above), another app may be more appropriate, but these two are capable of creating about any automation that you want that is "triggered" by a button event, which you'll get from taps/multi-taps on these devices.

One piece of information you'll need to know -- no matter what app you use -- is what button numbers correspond to what real-world events. This is summarized in the first post.

If you need more help, I'd suggest creating another topic describing what you want to do and where you have problems:

I tried both of those multiple times. possibly could have an issue somewhere else.

Do all my switches need to be running this driver in oder to execute the scene successfully or just the switch the scene originates from?

You would only need the driver in the specific switch/dimmer you are using.

If you are still having problems, I suggest creating a new topic and providing more information about what you've done (screenshots are often helpful), what you want to do, and what isn't working.

Thanks for this driver, it works very well for me in switch mode. One question: have you tried using the SetStatusLED from rule machine? I'm trying to do it as a custom action but it's not having any effect at the moment. It works fine from the driver UI, so I suspect I'm doing something wrong with the parameters. Are they integers or do they have to be strings (or is there some other magic required?)

Thanks again for the driver!

All strings should work for sure; that's what the UI does.