Will the Leviton VRCZ4-M0Z zone controller work with SmartThings?

I have 6 of VRCZ4-MRZ in my kitchen currently configured with homeseer and z-troller. Bought smartthings hub over Christmas and slowly experimenting to see if I can make the move away from homeseer. Leviton Vizia RF+ z-wave dimmers work fine.

Is there an official response from smartthings on this? If I can’t make these work, it would be a showstopper for me

As for official response, see the list of supported devices. I’m pretty sure VRCZ4 will not work with ST, but I may have missed someone figuring it out.

To clarify, this process lets me control my dimmers BOTH with the ST Hub AND with the in-wall button controller through association?

I know leviton and ST are working on a solution. So far I needed the leviton VRUSB and the installertool software to program the scenes.
I know it’s another step but you can program the buttons on the software. To preform a scene from the app duplicate it with an activity.
It’s under 100 solution to get those switches working

Hi Rob, how do you link the VRUSB to ST?

In case anyone here is interested, I was able to get limited capabilities in ST with the VRCZ4 by using the work listed here:

The Device Handler listed on that thread DOES work, but with the caveats mentioned in both threads regarding the inability to use the on/off capabilities of the Z model.

@Ash did you have any follow-up success here?

I just committed a first-cut DTH and SmartApp for the Leviton VRCZ4-M0Z, adapted from the VRCS4 modules by @ygelfand.

They seem to be working perfectly for on/off with my various Philips Hue bulbs and strips – still have to look at adding dimmer functionality. I’ve also left (most) of @ygelfand’s Z-Wave code in place, so it should be possible to support both Z-Wave Direct Association and plain-old SmartThings integration.

Will update the repository if/when I get dimmer functionality added.

2 Likes

Not much luck getting this to work. Feedback so far:

Device Driver:

  • Icon seems to be too big (see screenshot)
  • Configure / Get my state buttons don’t seem do anything when tapped

App:

  • Doesn’t seem to work, will update if I can get settings to save. No obvious error, but my switch has gone dumb (Neither individual device mappings or multi-device mappings seem to work, pushing buttons causes some light flashing but no changes in device states)
  • Will update if I can get it working…
  • Like the ability to assign multiple devices, are scenes a possibility?

1 Like

Update – I forked and turned debugging on. Error seems to be:

e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 4:25:21 PM: error groovy.lang.MissingMethodException: No signature of method: java.lang.String.join() is applicable for argument types: (java.lang.String) values: [,]
Possible solutions: find(java.lang.String), count(java.lang.String), wait(), trim(), find(), wait(long) @line 60 (doCall)

Going to take a look if my terrible groovy skills can fix.

Hi Kevin,

Thanks for giving it a go – happy to try to help you get it sorted.

That groovy error seems strange, as I don’t believe I’ve changed any code related to java.lang.String.join(). Can you give me more log context (i.e., when is this error occurring)?

Meanwhile, let me look through my code to see if I can’t locate where this error is happening…

OK – on closer inspection, it looks like your log excerpt is trying to join() two empty values:

    No signature of method…is applicable for argument types: (java.lang.String) values: [,]

Not quite sure how/why that would be happening? A few questions:

  • I’m presuming that 3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 is your smartApp? (If you click it, it’ll filter for that module)

  • What’s selected when you get this error? Can you try just one selection and see if the error is the same?

  • What phone/OS-version are you using this on?

Maybe let’s get you to add some extra debugging (I suspect this is in the smartApp initialize() loop) to see which button is generating the error, and examine the corresponding value of devices.deviceNetworkId for settings[‘switches_’+it]?

Okay, I think the issue is that I’m only toggling a single device for those buttons. deviceNetworkID seems to be a String if one device is present and an Array if more than one (ugghh…) fix I’m trying is here: https://github.com/michaelphilip/SmartThings/pull/1 – Clears the error and debug seems to show that all devices are assigned. (at least in logging) without error. Buttons still lifeless however.

Well it’s written to handle both cases, and I’ve tested it successfully here both ways.

Can I see what your deviceNetworkIds look like?

Yeah…so I’ve looked at your changes: The change at line 57 ('switches_’+it vs ‘switches_${it}’) shouldn’t make a difference either way. And your conditional wrapping of a single string as a one-element array (lines 58 and 62) certainly can’t hurt…but should really be unnecessary?

I inherited that code straight from @ygelfand (here), and it works fine for me (and presumably for him as well) on single-device selections – I mean, save for a one-time test of multiple-device support, all my buttons have always been mapped to single devices, and are working just fine.

Which has me wondering…could it be something to do with an older version of Java running on your end?

As for the buttons still not doing anything: Can you un-comment the log.debug statements in the smartApp’s buttonEvent(), and see if you’re even getting to it? Also maybe uncomment the log.debugs in the DTH’s handleManufacturerProprietary() and see what’s happening there?

(Oh, and…when did you grab my code? An earlier commit had the VRCZ4’s deviceNetworkId hard-wired, which would likely make it unworkable for you.)

Meanwhile, looking back to your first message: Configure and Get My State will give you diagnostic output if you uncomment some of the log.debug lines in my DTH…but are really more about z-wave direct association (which is what I was trying to work around, since I’m currently controlling Zigbee [Philips Hue] bulbs). And that .png on the preferences page was just a placeholder; I figure I’ll try to make the whole page prettier after I get the device functionality refined. (I still want to fine-tune the dimmer support.)

BTW, just committed a new version that greatly improves dimming behavior – see here

shouldn’t make a difference either way

Yeah, just saw that a number of blogs recommend against the + operator for strings in groovy, thought it might be it. Probably isn’t.

And your conditional wrapping of a single string as a one-element array (lines 58 and 62) certainly can’t hurt…but should really be unnecessary?

This is the thing that fixes the error for me. (Though it’s still not working, I’ll troubleshoot more later as well as try and capture some debug logs) – The issue is that (For whatever reason) the ID’s is an Array if more than one item is present and a String otherwise – and the Error “Join doesn’t accept Strings” basically says that join expects it to be an array. The fix here is to wrap any lone strings in a 1 element array.

could it be something to do with an older version of Java running on your end

I checked that my smart things is running the latest firmware… is there another thing to update?

(Oh, and…when did you grab my code? An earlier commit had the VRCZ4’s deviceNetworkId hard-wired, which would likely make it unworkable for you.)

Yesterday, you can see the version I used in the “badpirate” GitHub fork. I’ll try again with your latest and we’ll see. Would love for this to work.

Perhaps I don’t have your driver software installed right? I noticed that the button color stuff comes through, although tapping them still seems to have no logical effect, and the status of the lights seems to be somewhat arbitrary. Thinking somehow the device ID is not mapping right.

I’d still like to see those extra log. debug outputs I suggested in my last post? That should be a great help in resolving why your buttons aren’t working…

Quick update for you, @BadPirate – I’ve just installed my second VRCZ4-M0Z, and it appears to be behaving just like yours: The LEDs on the buttons respond/sync to activity on the attached devices, and all the (uncommented) log.debugs show info during Configure and Get My State…but nothing happens when I press any of buttons 1-4.

Interestingly, my first button this time happens to be mapped to a Z-Wave dimmer (Cooper)…and the (newly enhanced) dim/bright buttons do successfully fade that dimmer up and down. But even the first button (seemingly) doesn’t get captured and used to turn that same Z-Wave dimmer on and off.

It seems like the Parse() method on the DTH isn’t even getting called. (Any thoughts, @ygelfand or @jdroberts?) In fact, I can’t see any log activity at all when I press buttons 1-4.

Will keep you posted

Logs, from switch mapper, when I configure the buttons, using your current master with all logging uncommented:

e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug 2A,28,2C,29,38,25,21,22,37,2B,1B,1C,17,16,1D,20,39,3E,24
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug Devices for Button 4: [Bedroom Lamps, Bedroom Lights, Bedroom Sconce, Bedroom Sound Machine, Garage Lights, Garden Lights, Great Room Front, Great Room Rear, Guest Lamp, Hallway Sconce, Kitchen Fan, Kitchen Lights, Living Room Lights, Living Room Switch, Nursery Lamp, Nursery Light, Nursery Switch, Office Switch, Yard Lights]
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug 17,16
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug Devices for Button 3: [Living Room Lights, Living Room Switch]
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug 1C
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:36 PM: debug Devices for Button 2: Kitchen Lights
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:35 PM: debug 1B
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:06:35 PM: debug Devices for Button 1: Kitchen Fan

From zone controller during that same button config:

130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:49 PM: debug Parsed AssociationReport(groupingIdentifier: 4, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0) to [:] from description zw device: 19, command: 8503, payload: 04 E8 00 01
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:49 PM: debug AssociationReport: 'AssociationReport(groupingIdentifier: 4, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0)', hub: '1' reports nodeId: '1' is associated in group: '4'
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:49 PM: debug buttonlist: [x, [1B], [1C], [17, 16], [2A, 28, 2C, 29, 38, 25, 21, 22, 37, 2B, 1B, 1C, 17, 16, 1D, 20, 39, 3E, 24]]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:49 PM: debug Association report V2: AssociationReport(groupingIdentifier: 4, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:49 PM: debug Parsing 'zw device: 19, command: 8503, payload: 04 E8 00 01 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:42 PM: debug Parsed AssociationReport(groupingIdentifier: 1, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0) to [:] from description zw device: 19, command: 8503, payload: 01 E8 00 01
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:42 PM: debug AssociationReport: 'AssociationReport(groupingIdentifier: 1, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0)', hub: '1' reports nodeId: '1' is associated in group: '1'
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:42 PM: debug buttonlist: [x, [1B], [1C], [17, 16], [2A, 28, 2C, 29, 38, 25, 21, 22, 37, 2B, 1B, 1C, 17, 16, 1D, 20, 39, 3E, 24]]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:42 PM: debug Association report V2: AssociationReport(groupingIdentifier: 1, maxNodesSupported: 232, nodeId: [1], reportsToFollow: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:42 PM: debug Parsing 'zw device: 19, command: 8503, payload: 01 E8 00 01 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsed SceneControllerConfReport(dimmingDuration: 0, groupId: 2, sceneId: 0) to ['descriptionText':Kitchen Controller: SceneControllerConfReport(dimmingDuration: 0, groupId: 2, sceneId: 0), 'isStateChange':false, 'displayed':false, 'linkText':'Kitchen Controller'] from description zw device: 19, command: 2D03, payload: 02 00 00
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Default zwaveEvent handler: SceneControllerConfReport(dimmingDuration: 0, groupId: 2, sceneId: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsing 'zw device: 19, command: 2D03, payload: 02 00 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsed SceneControllerConfReport(dimmingDuration: 0, groupId: 1, sceneId: 0) to ['descriptionText':Kitchen Controller: SceneControllerConfReport(dimmingDuration: 0, groupId: 1, sceneId: 0), 'isStateChange':false, 'displayed':false, 'linkText':'Kitchen Controller'] from description zw device: 19, command: 2D03, payload: 01 00 00
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Default zwaveEvent handler: SceneControllerConfReport(dimmingDuration: 0, groupId: 1, sceneId: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsing 'zw device: 19, command: 2D03, payload: 01 00 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsed AssociationGroupingsReport(supportedGroupings: 4) to [['name':'numButtons', 'value':4, 'displayed':false, 'isStateChange':false, 'linkText':'Kitchen Controller', 'descriptionText':Kitchen Controller num buttons is 4]] from description zw device: 19, command: 8506, payload: 04
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug 4 buttons stored
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Association grouping report: AssociationGroupingsReport(supportedGroupings: 4)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsing 'zw device: 19, command: 8506, payload: 04 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsed ManufacturerSpecificReport(manufacturerId: 29, manufacturerName: Leviton, productId: 609, productTypeId: 1794) to ['isStateChange':false, 'displayed':false, 'linkText':'Kitchen Controller'] from description zw device: 19, command: 7205, payload: 00 1D 07 02 02 61
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Manufacturer-specific report: ManufacturerSpecificReport(manufacturerId: 29, manufacturerName: Leviton, productId: 609, productTypeId: 1794)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:41 PM: debug Parsing 'zw device: 19, command: 7205, payload: 00 1D 07 02 02 61 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Sending configuration: [7204, delay 100, 8505, delay 100, 2D01010000, delay 100, 85040101, delay 100, 85010101, delay 100, 2D0201, delay 100, 2C0201, delay 100, 2C01010000FF, delay 100, 2C0101FF0020, delay 100, 850201, delay 100, 8503010000, delay 100, 850C01, delay 100, 2D01020000, delay 100, 85040201, delay 100, 85010201, delay 100, 2D0202, delay 100, 2C0202, delay 100, 2C01020000FF, delay 100, 2C0102FF0020, delay 100, 850202, delay 100, 8503020000, delay 100, 850C02, delay 100, 2D01030000, delay 100, 85040301, delay 100, 85010301, delay 100, 2D0203, delay 100, 2C0203, delay 100, 2C01030000FF, delay 100, 2C0103FF0020, delay 100, 850203, delay 100, 8503030000, delay 100, 850C03, delay 100, 2D01040000, delay 100, 85040401, delay 100, 85010401, delay 100, 2D0204, delay 100, 2C0204, delay 100, 2C01040000FF, delay 100, 2C0104FF0020, delay 100, 850204, delay 100, 8503040000, delay 100, 850C04]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug configurationCmds: [7204, 8505, 2D01010000, 85040101, 85010101, 2D0201, 2C0201, 2C01010000FF, 2C0101FF0020, 850201, 8503010000, 850C01, 2D01020000, 85040201, 85010201, 2D0202, 2C0202, 2C01020000FF, 2C0102FF0020, 850202, 8503020000, 850C02, 2D01030000, 85040301, 85010301, 2D0203, 2C0203, 2C01030000FF, 2C0103FF0020, 850203, 8503030000, 850C03, 2D01040000, 85040401, 85010401, 2D0204, 2C0204, 2C01040000FF, 2C0104FF0020, 850204, 8503040000, 850C04]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Loop for buttonNum = 4
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug commands: [2D01010000, 85040101, 85010101, 2D0201, 2C0201, 2C01010000FF, 2C0101FF0020, 850201, 8503010000, 850C01, 2D01020000, 85040201, 85010201, 2D0202, 2C0202, 2C01020000FF, 2C0102FF0020, 850202, 8503020000, 850C02, 2D01030000, 85040301, 85010301, 2D0203, 2C0203, 2C01030000FF, 2C0103FF0020, 850203, 8503030000, 850C03]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug commands: [2D01010000, 85040101, 85010101, 2D0201, 2C0201, 2C01010000FF, 2C0101FF0020, 850201, 8503010000, 850C01, 2D01020000, 85040201, 85010201, 2D0202, 2C0202, 2C01020000FF, 2C0102FF0020, 850202, 8503020000, 850C02]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Loop for buttonNum = 1
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug commands: [2D01010000, 85040101, 85010101, 2D0201, 2C0201, 2C01010000FF, 2C0101FF0020, 850201, 8503010000, 850C01, 2D01020000, 85040201, 85010201, 2D0202, 2C0202, 2C01020000FF, 2C0102FF0020, 850202, 8503020000, 850C02, 2D01030000, 85040301, 85010301, 2D0203, 2C0203, 2C01030000FF, 2C0103FF0020, 850203, 8503030000, 850C03, 2D01040000, 85040401, 85010401, 2D0204, 2C0204, 2C01040000FF, 2C0104FF0020, 850204, 8503040000, 850C04]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Loop for buttonNum = 2
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug commands: [2D01010000, 85040101, 85010101, 2D0201, 2C0201, 2C01010000FF, 2C0101FF0020, 850201, 8503010000, 850C01]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Loop for buttonNum = 3
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug buttonlist = [x, 1B, 1C, 17,16, 2A,28,2C,29,38,25,21,22,37,2B,1B,1C,17,16,1D,20,39,3E,24]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug zwaveHubNodeId = [1]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug state = [numButtons:4, button4:2A,28,2C,29,38,25,21,22,37,2B,1B,1C,17,16,1D,20,39,3E,24, button2:1C, manufacturer:Leviton, button3:17,16, repeatCount:3, lastLevel:0, repeatStart:1528687353834, currentButton:0, button1:1B, lastScene:1]
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Entering associateHub() for Kitchen Controller...
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Updating button4 to 2A,28,2C,29,38,25,21,22,37,2B,1B,1C,17,16,1D,20,39,3E,24
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Setting button4 to 2A,28,2C,29,38,25,21,22,37,2B,1B,1C,17,16,1D,20,39,3E,24
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Updating button3 to 17,16
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Setting button3 to 17,16
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Updating button2 to 1C
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Setting button2 to 1C
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Updating button1 to 1B
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:06:36 PM: debug Setting button1 to 1B

And perhaps more usefully, when I push button 0 (top button) in the on position, note… this doesn’t toggle button state or turn on associated light… Switch Mapper:

e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:10:33 PM: debug Falling through to default case for buttonEvent() on event physicalgraph.app.EventWrapper@7768d421 with evt.data {"microDeviceTile":{"type":"standard","icon":"http://schemalive.com/vrcz4-m0z.png","backgroundColor":"#ffffff"}} parsed to [microDeviceTile:[icon:http://schemalive.com/vrcz4-m0z.png, backgroundColor:#ffffff, type:standard]] with status null for button null
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:10:33 PM: debug buttonEvent data: [microDeviceTile:[icon:http://schemalive.com/vrcz4-m0z.png, backgroundColor:#ffffff, type:standard]]
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:09:58 PM: debug Falling through to default case for buttonEvent() on event physicalgraph.app.EventWrapper@3ba4fd2a with evt.data {"microDeviceTile":{"type":"standard","icon":"http://schemalive.com/vrcz4-m0z.png","backgroundColor":"#ffffff"}} parsed to [microDeviceTile:[icon:http://schemalive.com/vrcz4-m0z.png, backgroundColor:#ffffff, type:standard]] with status null for button null
e3ff1dea-8ec6-4b6f-b6b5-4af81942f6c1 1:09:58 PM: debug buttonEvent data: [microDeviceTile:[icon:http://schemalive.com/vrcz4-m0z.png, backgroundColor:#ffffff, type:standard]]

Zone Controller:

130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug Parsed SceneActuatorConfGet(sceneId: 0) to [['name':'button', 'value':'default', 'descriptionText':Kitchen Controller button was released, 'isStateChange':true, 'displayed':true, 'linkText':'Kitchen Controller']] from description zw device: 19, command: 2C02, payload: 00
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug Kitchen Controller button 0 was released
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug Entering buttonEvent() for button 0...
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug SceneActuatorConfGet: SceneActuatorConfGet(sceneId: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug Parsing 'zw device: 19, command: 2C02, payload: 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:57 PM: debug Parsing 'zw device: 19, command: 2C02, payload: 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug Parsed SceneActuatorConfGet(sceneId: 0) to [['name':'button', 'value':'default', 'descriptionText':Kitchen Controller button was released, 'isStateChange':true, 'displayed':true, 'linkText':'Kitchen Controller']] from description zw device: 19, command: 2C02, payload: 00
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug Kitchen Controller button 0 was released
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug Entering buttonEvent() for button 0...
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug SceneActuatorConfGet: SceneActuatorConfGet(sceneId: 0)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug Parsing 'zw device: 19, command: 2C02, payload: 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:25 PM: debug Parsing 'zw device: 19, command: 2C02, payload: 00 '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:22 PM: debug Parsed BasicSet(value: 255) to null from description zw device: 19, command: 2001, payload: FF
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:22 PM: debug Kitchen Controller bzone button was pressed: BasicSet(value: 255)
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:22 PM: debug Parsing 'zw device: 19, command: 2001, payload: FF '
130eec72-e7aa-4fd8-9cc7-a0fd7df94ed5 1:09:22 PM: debug Parsing 'zw device: 19, command: 2001, payload: FF '

I’m going to dig a little more today, but hope this helps.

This is defintely helpful, thanks – and I have an idea what may be (at least a part of) the problem. Will have a closer look when I get home.

Meanwhile, can you try the other buttons? (Strangely, my topmost buttons register as 1-4, and it’s my dim/bright that comes in as 0)