ZwaveJS - Heatit Z-Push button 8 Scene Controller

I have created a blueprint for using the Heatit Z-Push 8 button controller. ( https://heatit.com/product/9311/products/controllers/heatit-z-push-button-8-white/1107 )
This Z-wave unit has 8 push buttons, and can trigger 3 events per button:

  • Button pressed
  • Button Held
  • Button Released (only after held for 2 seconds)

This blueprint can be used to assign actions to a button event.

Also some credits to @robinsmidsrod, i used his ZDim scene controller blueprint as a template to create the blueprint for the Z-Push controller.

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

blueprint:
  name: ZWaveJS - Heatit Z-Push Button 8 scene controller
  description: |
    Perform actions when a Heatit Z-Push Button is pressed.

    You can also assign actions to long pressing a button and an action when you release the button.

  domain: automation
  input:
    zwavejs_device:
      name: ZWaveJS Device
      description: The Heatit Z-Push Button 8 to listen for events on.
      selector:
        device:
          integration: zwave_js
          manufacturer: Sunricher
          model: Heatit Z-Push Button 8
    button_selector:
      name: Selected button
      description: The button to assign an action to.
      selector: 
        number:
          min: 1
          max: 8
          step: 1
          mode: box
      default: 1
    button_pressed_actions:
      name: Button pressed Actions
      description: The actions to perform when the button is pressed.
      selector:
        action: null
      default: []
    button_hold_actions:
      name: Button hold Actions
      description: The actions to perform when the button is hold.
      selector:
        action: null
      default: []
    button_release_actions:
      name: Button release Actions
      description: The actions to perform when the button is released.
      selector:
        action: null
      default: []

mode: single

# If you haven't upgraded to 2021.4.0 or newer yet, you'll need to use this trigger code instead
#trigger:
#  - platform: event
#    event_type: zwave_js_event
#    event_data:
#      type: value_notification

trigger:
  - platform: event
    event_type: zwave_js_value_notification

variables:
  logger: blueprint.zwavejs_scene_activation
  zwavejs_device: !input zwavejs_device
  button_selector: !input button_selector
  button: 'Scene 00{{button_selector}}'

action:
  - choose:
      # IF triggered device_id is zwavejs_device
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.device_id == zwavejs_device }}"
          - condition: template
            value_template: "{{ trigger.event.data.command_class_name == 'Central Scene' }}"
        sequence:
          - choose:
              # IF button pressed
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.label == button and trigger.event.data.value == 'KeyPressed' }}"
                sequence: !input button_pressed_actions
              # IF button hold
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.label == button and trigger.event.data.value == 'KeyHeldDown' }}"
                sequence: !input button_hold_actions 
              # IF button release
              - conditions:
                  - condition: template
                    value_template: "{{ trigger.event.data.label == button and trigger.event.data.value == 'KeyReleased' }}"
                sequence: !input button_release_actions 
                  
            # ELSE: unhandled scene label/value
            default:
              - service: system_log.write
                data:
                  level: debug
                  logger: "{{ logger }}"
                  message: "Activated scene '{{ trigger.event.data.label }}' with value '{{ trigger.event.data.value }}' for node '{{ zwavejs_device }}' ({{ trigger.event.data.node_id }})"
    # ELSE: unhandled ozw event
    default: []

I get “no matching devices found” when i try to make a automation.

Do i need to rename something?

Edit:
Got it working.
Find /config/blueprints/automation/AutoRon/zwavejs-heatit-z-push-button-8-scene-controller.yaml
Edited those 2 lines:
manufacturer: Heatit
model: Z Push Button 8

1 Like

Seems like you have a slightly different firmware on the device.

heatit

Nice job making it work!

1 Like

Don’t forget the quotes around manufacturer: “Heatit” and model: “Heatit Z Push Button 8”. The blueprint is working flawlessly

This is the settings I’ve used for the Namron version of the Heatit switch:

  domain: automation
  input:
    zwavejs_device:
      name: ZWaveJS Device
      description: The Heatit Z-Push Button 8 to listen for events on.
      selector:
        device:
          integration: zwave_js
          manufacturer: "Namron"
          model: "K8"
1 Like

Hi @AutoRon

Thanks for creating this blueprint, it makes it so much easier for us new to HA to move over. However, I have a problem, or maybe just a question, on how to configure this one for the Heatit 8 button controller.

When I add the blueprint and go to configure the automation, I get this view.

I can add my device and the action there, and when I Save it looks to be saving it. When I tested with just button 1, it did turn on the light I use for testing. However, when I go back in the automation and chose button 2, the actions remain the same as button 1, and when I edit them and then save, it does not work.

I have now tried to add in for 4 of the buttons, and basically nothing works at the moment. I am also using another type of scene controller, at that blueprint it shows all 8 buttons in the same view with the 3 actions on each, and when saved they all work as intended.

Am I using this blueprint wrong, is there something I’m not getting right? Any help would be greatly appreciated as I have removed my controllers from HomeSeer and now cannot use them in HA yet, and they are the most used buttons in the house :slight_smile:

Edit: Short update, it seems to save only the latest one, so now button 1 works again after re-configuring it. But when I then went to button 2, the content from button 1 remained, and when I set button 2 (turn off light), button 1 does not work again.

And second edit: I can configure both press and hold actions on button 1 and both works, it just seems I am not able to save properly across buttons.

It does not seem that @AutoRon has been active for half a year. Are there anyone else here who has setup this scene controller and can give me some pointers as to how to assign to each button since the blueprint does not really update properly?

I did try to use YAML directly but the problem is that it overwrites straight back when I switch back, and even when putting into automations.yaml myself, it did not work as expected.

Any help would be greatly apprecaited.

You have to create one Automation for each Button using the Blueprint. So you have 8 Automations using the blueprint where you can configure long press, short press and hold.

Hope that helps