GE/Enbrighten motion switch (26931 / ZW4006) No Button Control

I am having the hardest time trying to integrate the buttons on this motion switch:
https://byjasco.com/ge-z-wave-plus-smart-motion-switch
The switch and motion entities are working just fine. I have subscribed to the event zwave_js_value_notification and I was able to see the following event data:

event_type: zwave_js_value_notification
data:
  domain: zwave_js
  node_id: 21
  home_id: 3521166082
  endpoint: 0
  device_id: cc2c98222dbd5e70d66b53ddf141f9c3
  command_class: 32
  command_class_name: Basic
  label: Event value
  property: event
  property_name: event
  property_key: null
  property_key_name: null
  value: 0
  value_raw: 0
origin: LOCAL
time_fired: "2023-04-25T15:06:28.581538+00:00"
context:
  id: 01GYWF79V5WDATF8B3SJFT0C1F
  parent_id: null
  user_id: null

Where raw value is 255 for the top button and 0 for the bottom button. This is unhelpful because the motion sensor fires the same event.
Any info which would point me in a direction to debug this or solve this issue would be very helpful.

Specs:
Switch Firmware: v5.39
Z-Wave JS UI Version: 1.11.1
Home Assistant 2023.4.6
Supervisor 2023.04.1
Operating System 10.0

What are you trying to do?

This device does not support central scene commands therefore multi tap button.

If I click the top button I want it to turn on a scene, if I click it again I want it to change scenes. If I click the bottom button, I want it to turn off the lights.
Here is the yaml I created for the initial events.

### BY Auto Light Top Button ###
- id: BY Auto Light Top Button
  alias: BY Auto Light Top Button
  description: Turn on the backyard lights via the kitchen switch
  mode: single
  trigger:
  - platform: event
    event_type: zwave_js_value_notification
    event_data:
      device_id: !secret kt_motion_id
      command_class: 32
      raw_value: 255
  condition: []
  action:
  - if:
    - condition: state
      entity_id: sensor.by_scene
      state: "warm"
    then:
    - service: scene.turn_on
      target:
        entity_id: scene.by_daylight
    else:
    - service: scene.turn_on
      target:
        entity_id: scene.by_warm

### BY Auto Light Bottom Button ###
- id: BY Auto Light Bottom Button
  alias: BY Auto Light Bottom Button
  description: Turn on the backyard lights via the kitchen switch
  mode: single
  trigger:
  - platform: event
    event_type: zwave_js_value_notification
    event_data:
      device_id: !secret kt_motion_id
      command_class: 32
      raw_value: 0
  action:
  - service: scene.turn_on
    target:
      entity_id: scene.by_off

This device won’t support that. The up and down are hard wired in the switch as on off. You need a device that supports central scene. So if you press up you’re getting load on… Not a scene command. Nothing you can do about it.

IMHO that’s literally the only feature I feel missing from the GE motion switch / dimmer…

That is unfortunate to hear. I currently have the relay disconnected, I will disable the motion config and use the “manual” buttons to actuate the switch. Then have that trigger the scenes. Not the best, but I can make it work temporally. This was a great device when I was using it with smartthings. It has an amazing motion sensor and I was planning on replacing all switches in my house with this if I could get it working. I will look into other 120v motion switches. Any recommendations?

Try removing the controller from association group 3 (Double Tap), and see if that removes the problem with the motion events triggering. Those should be obtainable from other sensors.

I was reading your posts on this topic earlier today:

I was not sure how to do this, but I just figured it out.
I am not getting any events now, even for the motion sensor (entities still work fine).
I have the controller in association group 1 (lifeline) only. I also have a group 2 (local load) available.
I am going to read the above thread in more detail.

It sounds like Group 3 is incorrectly assigned as a “Double tap”. AFAIK, there is no double tap support on these motion switches. The driver automatically assigns the controller to group 3.

Group 2 and Group 3 are exactly the same. They both send Basic Set On/Off for switch and motion.

Not sure what this means. If the motion entity still works, then the motion events are being received. If you are referring to the switch events, then it is impossible to separate those from motion events using Groups 2 and 3.

If the node still sends Multilevel Switch commands when the load is on or off, the zwave_js.value_updated event can be used instead. Watching the driver logs will confirm that.

There’s also a good writeup about this device at Jasco Motion Dimmer Explained – DrZWave.

I think that the motion events are just being received under state_changed instead of zwave_js_value_notification.

I read the event log in the JS UI and I do not see anything which would indicate a button is being pressed. I also do not see any mention of buttons in the debug info or the node .json file. Unless I can alter how homeassistant or js interacts with the buttons, then it feels like a lost cause.

Correct. Is that an issue? I wasn’t sure based on the earlier reply.

I thought you said there’s a switch entity that is working fine? Is that not controlled by button presses?