Button Controller Missing S2 Device Events

I am having some problems getting key presses on my Inovelli LZW36 switch (firmware 1.34, on S2) to be caught by my Button Controller-3.1 app. It doesn't look like the button presses are being caught, none of my actions are being run. I was originally trying to have the "light" button, button 1, pushed, toggle the 3 Philips Hue bulbs that live in the ceiling fan fixture. The "Local Protection Settings" is set to "Light", which disables the relay on that button and prevents the switch from cutting power to the smart bulbs. But it still sends the button event to the hub.

Here's the Button Controller app, very simple:


The "button 1 held" action is just one I added for testing. It is based off the "Fan" button, which is not disabled by the Local Protection Settings. I do have "log button actions" enabled, but I've not seen any log lines from it that I recognized.

Neither of these actions stanzas seem to be triggered no matter what I press. I can set the intended result conditions on my own from the hub (toggling the Hue bulbs or LED strip on a different, nearby switch).

However the hub does see the button presses right away.

When I'm using the Inovelli drivers (2020-08-14), the Event Details from the device look like:

id:	35945
Date:	2020-08-15 21:19:28.000
Name:	lastEvent
isStateChange:	true
source:	DEVICE
value:	Tap ā–²

And the INFO log looks like:

2020-08-15 09:19:28.888 pm info Theater Fan/Light Switch: Button 1 was pushed

On the built-in Hubitat "Inovelli Fan/Light Switch" drivers, I don't get any entries at all in the "Theater Fan/Light Switch Events" log when I press the button, and the INFO log is just a null entry:

2020-08-15 09:39:39.117 pm info 

But my Button Controller automation doesn't seem to catch the button press event under either driver. My LZW30-SN and LZW31-SN automations do seem to work as intended (but use on/off instead of toggle).

Any tips? Thanks.

Turn on Description Logging in whatever driver you are using, and inspect Events from the device page. If the events aren't there, then Button Controller certainly can't respond to them. If the events aren't there, then it becomes necessary to figure out why.

Since that is newer than the factory version, I have a guess if you discover from Bruce's advice above that the button events aren't getting generated. Check the value of parameter 51, either with the Hubitat's unofficial Basic Z-Wave Tool (not sure if that works with S2 devices) or Inovelli's custom driver (where you won't see the number but it's called something like "Disable Physical On/Off Delay" and should be set to "No" or 1).

When Z-Wave firmware upgrades add new parameters (as this one did), sometimes they are set to garbage values unless you set them yourself, which the device itself might interpret in unexpected ways.

Thanks to you both for your advice.

In the Hubitat driver, I verified that "debug logging" and "descriptionText logging" were both already enabled. In the Inovelli driver, I verified that "debug logging" and "informational logging" were both already enabled. Also in the Inovelli driver, I changed "Disable Physical On/Off Delay" from being unset to explicitly "No". However, even after I did so I don't see an entry for parameter51value in the State Variables list on the device page. But it's not acting as though parameter 51 is enabled in terms of controlling the loads.

2020-08-16 07:25:45.299 am info Theater Fan/Light Switch: Setting parameter 51 with a size of 1 bytes to 1

I also have "Log button actions" enabled in the button controller.

When using the Hubitat driver, and I inspect events from pressing either the Light (Local Protection enabled) or Fan (Local Protection disabled) button, I get no log line on the device's Events page.

When using the Inovelli driver, and I inspect events from pressing either button, I get a log line on the device's Events page for each button press:

Light (Local Protection enabled):

id:	37215
Date:	2020-08-16 07:26:16.000
Name:	lastEvent
isStateChange:	true
source:	DEVICE
value:	Tap ā–²

Fan (Local Protection disabled):

id:	37220
Date:	2020-08-16 07:26:18.000
Name:	lastEvent
isStateChange:	true
source:	DEVICE
value:	Tap ā–¼

And I get the matching INFO log lines in the system log, which unlike the ā–²andā–¼ labels appears to match what I put into the button controller.

2020-08-16 07:26:16.142 am info Theater Fan/Light Switch: Button 1 was pushed
2020-08-16 07:26:18.803 am info Theater Fan/Light Switch: Button 1 was held

So I can definitely see why Button Controller is not working with the built-in drivers, since the events seem to be missing. But it seems like it should be working with the Inovelli driver?

I created several additional button controllers for testing and I have been able to duplicate this problem across all of my S2-connected Inovelli switches (LZW30-SN, LZW31-SN, and LZW36). It's the same story without respect to Local Protection settings.

Long story short, my S2-connected devices are NOT triggering the button controller 3.1 automations. My switches having an identical model and firmware that are connected without security are working as expected and do trigger the automations.

I think there is a problem with S2-connected devices having their events seen by the app.

(Totally separately, I think Hubitat's LZW36 driver may still need some work.)

If you did the firmware upgrade on all of these, it definitely sounds like a device issue regarding this parameter (as Bruce said, if the event doesn't get generated, Button Controller won't respond to it, but it's a device issue and not an app problem). This is pretty likely after a firmware upgrade, though I don't know why Inovelli's driver wouldn't let you set this. Maybe try changing it to 0 and then back to 1, or try the Basic Z-Wave Tool to see if it lets you (parameter 51, size 1, desired value 1). With the parameter set to 0 or, apparently, garbage, you'll only get a scene/button event (as you do) for a single tap.

Looks like parameter51 was introduced in firmware 1.36 and I was running 1.34. When I use the Basic Z-Wave Tool, the final log line it prints for a configuration report query across all parameters ends at parameter31, as I would expect from 1.34:

2020-08-16 08:01:18.446 pm info ConfigurationReport- parameterNumber:31, size:1, value:1

It seems that either the driver or the Hubitat device interface is clever enough to not show me a parameter not yet supported by the device.

So, next I decided to try upgrading the firmware to 1.36 to see if that works, and since I will have to take it off of S2 in order to do so, I will run some more tests first using 1.34 and no security.

First, using the Hubitat driver, I tested whether I could now see events in the event log, now that it had no security. And indeed, I can:

pushed	1			DEVICE	2020-08-16 08:21:34.334 PM EDT
pushed	2			DEVICE	2020-08-16 08:21:26.023 PM EDT

And with the Inovelli driver:

held	1			DEVICE	2020-08-16 08:26:07.330 PM EDT
lastEvent	Tap ā–¼	DEVICE	2020-08-16 08:26:07.321 PM EDT
pushed	1			DEVICE	2020-08-16 08:26:04.781 PM EDT
lastEvent	Tap ā–²	DEVICE	2020-08-16 08:26:04.771 PM EDT

Note the difference to the above logs from when the switch was on S2 - in these logs I am getting the pushed/held events. In the logs with the device on S2, I only got the lastEvent lines, not pushed/held.

Note as well that while the Inovelli driver treats a fan button single press as a held 1 event (as my button controller expects), the Hubitat driver treats it as pushed 2 instead. The button numbering assignments are not consistent, as perhaps I should have surmised from Hubitat's double-click driver feature.

Going into the button controller app and editing the existing app just to reassign the same device and same buttons to my testing action:

And boom, everything works when using the Inovelli driver. All elements of both actions. Nothing at all works when I press either button when using the Hubitat driver, even though now we're connected without security and the events do appear in the device logs, and even though this driver reports pushed 1 events in the same way as the Inovelli driver.

So, new theory, there are actually 2 issues:

  1. Some problem with incomplete event delivery on S2-connected Inovelli switches.
  2. Some problem with the Hubitat LZW36 driver preventing it from triggering the events.

Next, I upgraded the switch to 1.36, leaving it on the unsecure join. This yielded basically no change. I was able to now see and set parameter 51:

parameter51value : 1

The event log using the Hubitat drivers was the same as in 1.34. And still, none of the Button Controller automations triggered. Using the Inovelli drivers, logs are the same and everything works.

If anyone is interested I can put it back on S2 and verify that stuff breaks again.

I've messaged Hubitat about this and am waiting to hear back. It seems like the driver capabilities are not being updated when switching over to our driver. Not sure if something needs to be changed in the driver or not, but I believe it worked before 2.2.3 on the C7. The driver has worked for many months before the latest update, but I am more than willing to make changes if something has changed.

Edit: Didn't notice I had a PM yesterday saying that the issue is being addressed in a hotfix.

2 Likes

The issue has been partially addressed in Hubitat 2.2.3.132. However, problems when using the Inovelli driver remain.

When testing with an S2-joined (included using the previous Hubitat version) LZW31-SN and the Inovelli driver, I don't get the pushed/held events in the device log, just lastEvent.

lastActivity	2020 Aug 24 Mon 7:04:28 PM			DEVICE		2020-08-24 07:04:28.325 PM EDT
lastEvent	Tap ā–²ā–²			DEVICE		2020-08-24 07:04:28.314 PM EDT

Here's all I get from the system log (single then double taps, first on then off):

dev:1257 2020-08-24 07:07:34.663 pm debug Kitchen Rear Switch: CentralSceneNotification(keyAttributes:3, sceneNumber:1, sequenceNumber:22)
dev:1257 2020-08-24 07:07:30.749 pm debug Kitchen Rear Switch: CentralSceneNotification(keyAttributes:3, sceneNumber:2, sequenceNumber:21)
dev:1257 2020-08-24 07:07:26.561 pm debug Kitchen Rear Switch: CentralSceneNotification(keyAttributes:0, sceneNumber:1, sequenceNumber:20)
dev:1257 2020-08-24 07:07:22.662 pm debug Kitchen Rear Switch: CentralSceneNotification(keyAttributes:0, sceneNumber:2, sequenceNumber:19)

The Hubitat driver does work and does now correctly trigger Button Controller events:

doubleTapped	1		Kitchen Rear Switch button 1 was doubleTapped	DEVICE		2020-08-24 08:34:24.861 PM EDT

Using the same unsecured LZW36 as above, first I verified that I still get the pushed event in the new Hubitat version:

pushed	1			DEVICE		2020-08-24 07:59:58.688 PM EDT

Then I reincluded it with S2.

The Hubitat driver now correctly reports pushes as it does without security:

pushed	1			DEVICE		2020-08-24 08:08:05.780 PM EDT
pushed	2			DEVICE		2020-08-24 08:08:00.585 PM EDT

Very strangely, I think the buttons got reversed from the previous version. Pressing the fan button now triggers pushed 1 events and the light button triggers pushed 2. This seems strange to me since light is on the top.

In any event, the Button Controller actions do trigger now when using the Hubitat driver, both on S2 and unsecured.

But, much like the LZW31-SN above, using the Inovelli driver causes the device log to report lastEvent and lastActivity changes in response to presses, but no pushed or held events like you get when including the switch without security:

lastActivity	2020 Aug 24 Mon 8:10:15 PM			DEVICE		2020-08-24 08:10:15.790 PM EDT
lastActivity	2020 Aug 24 Mon 8:10:12 PM			DEVICE		2020-08-24 08:10:12.798 PM EDT
lastEvent	Tap ā–¼			DEVICE		2020-08-24 08:10:12.796 PM EDT
lastActivity	2020 Aug 24 Mon 8:10:11 PM			DEVICE		2020-08-24 08:10:11.974 PM EDT
lastActivity	2020 Aug 24 Mon 8:10:08 PM			DEVICE		2020-08-24 08:10:08.982 PM EDT
lastEvent	Tap ā–²			DEVICE		2020-08-24 08:10:08.980 PM EDT

Predictably, the Button Controller does not work under these conditions.

So I think the only remaining problem here remains in the Inovelli drivers, at least for the LZW31-SN and LZW36, and only when the switches are connected with S2.

Thanks for the info. I'm not sure why the driver wasn't working with button events on the C7, but I've fixed it so that it should.

1 Like

Fix verified using the LZW31-SN and LZW36 from the posts above.

If you are using Hubitat 2.2.3.132 and Inovelli drivers 2020-08-25 everything reported above should be working and switches deliver as expected when connected with S2.

Thank you to both the Hubitat and Inovelli teams for your attention and rapid turnaround on these fixes.

1 Like