ZEN32 Scene Controller - Z-Wave JS

@Papester
So the code i provided only loads the subflow “The second picture”.
This should add it in the nodes list labeled a “ZEN32 scenes Zwave.SJ”

Here is the code for the first screen shot where have the nodes that utilize the sub flow.
Let me know if this works for you.

[{"id":"3985bb90.d67e54","type":"subflow","name":"ZEN32 scenes ZwaveJS","info":"","category":"","in":[{"x":60,"y":180,"wires":[{"id":"fe008dc7.1d271"}]}],"out":[{"x":840,"y":80,"wires":[{"id":"46310b70.e20634","port":0}]},{"x":840,"y":120,"wires":[{"id":"46310b70.e20634","port":1}]},{"x":840,"y":160,"wires":[{"id":"46310b70.e20634","port":2}]},{"x":840,"y":200,"wires":[{"id":"46310b70.e20634","port":3}]},{"x":840,"y":240,"wires":[{"id":"46310b70.e20634","port":4}]},{"x":840,"y":300,"wires":[{"id":"54e15801.d11ee8","port":0}]},{"x":840,"y":340,"wires":[{"id":"54e15801.d11ee8","port":1}]},{"x":840,"y":380,"wires":[{"id":"54e15801.d11ee8","port":2}]},{"x":840,"y":420,"wires":[{"id":"54e15801.d11ee8","port":3}]},{"x":840,"y":460,"wires":[{"id":"54e15801.d11ee8","port":4}]},{"x":840,"y":520,"wires":[{"id":"8c9608dc.26b058","port":0}]},{"x":840,"y":560,"wires":[{"id":"8c9608dc.26b058","port":1}]},{"x":840,"y":600,"wires":[{"id":"8c9608dc.26b058","port":2}]},{"x":840,"y":640,"wires":[{"id":"8c9608dc.26b058","port":3}]},{"x":840,"y":680,"wires":[{"id":"8c9608dc.26b058","port":4}]},{"x":840,"y":740,"wires":[{"id":"5fbe928d.fa05fc","port":0}]},{"x":840,"y":780,"wires":[{"id":"5fbe928d.fa05fc","port":1}]},{"x":840,"y":820,"wires":[{"id":"5fbe928d.fa05fc","port":2}]},{"x":840,"y":860,"wires":[{"id":"5fbe928d.fa05fc","port":3}]},{"x":840,"y":900,"wires":[{"id":"5fbe928d.fa05fc","port":4}]},{"x":840,"y":960,"wires":[{"id":"19d15a6.6a2fca6","port":0}]},{"x":840,"y":1000,"wires":[{"id":"19d15a6.6a2fca6","port":1}]},{"x":840,"y":1040,"wires":[{"id":"19d15a6.6a2fca6","port":2}]},{"x":840,"y":1080,"wires":[{"id":"19d15a6.6a2fca6","port":3}]},{"x":840,"y":1120,"wires":[{"id":"19d15a6.6a2fca6","port":4}]}],"env":[],"meta":{},"color":"#DDAA99","outputLabels":["Main - 1 Press","Main - 2 Press","Main - 3 Press","Main - 4 Press","Main - 5 Press","Scene 1 - 1 Press","Scene 1 - 2 Press","Scene 1 - 3 Press","Scene 1 - 4 Press","Scene 1 - 5 Press","Scene 2 - 1 Press","Scene 2 - 2 Press","Scene 2 - 3 Press","Scene 2 - 4 Press","Scene 2 - 5 Press","Scene 3 - 1 Press","Scene 3 - 2 Press","Scene 3 - 3 Press","Scene 3 - 4 Press","Scene 3 - 5 Press","Scene 4 - 1 Press","Scene 4 - 2 Press","Scene 4 - 3 Press","Scene 4 - 4 Press","Scene 4 - 5 Press"]},{"id":"fe008dc7.1d271","type":"switch","z":"3985bb90.d67e54","name":"Scene ID Button","property":"payload.event.property_key_name","propertyType":"msg","rules":[{"t":"eq","v":"005","vt":"str"},{"t":"eq","v":"001","vt":"num"},{"t":"eq","v":"002","vt":"num"},{"t":"eq","v":"003","vt":"num"},{"t":"eq","v":"004","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":240,"y":180,"wires":[["46310b70.e20634"],["54e15801.d11ee8"],["8c9608dc.26b058"],["5fbe928d.fa05fc"],["19d15a6.6a2fca6"]],"outputLabels":["Main Button","Scene 1","Scene 2","Scene 3","Scene 4"]},{"id":"54e15801.d11ee8","type":"switch","z":"3985bb90.d67e54","name":"Scene Key 1","property":"payload.event.value_raw","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":690,"y":380,"wires":[[],[],[],[],[]],"outputLabels":["1 Press","2 Press","3 Press","4 Press","5 Press"]},{"id":"33b55a97.ca0466","type":"comment","z":"3985bb90.d67e54","name":"Zooz ZEN32 - 5/3/2021","info":"","x":140,"y":20,"wires":[]},{"id":"46310b70.e20634","type":"switch","z":"3985bb90.d67e54","name":"Main Relay","property":"payload.event.value_raw","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":690,"y":160,"wires":[[],[],[],[],[]],"outputLabels":["1 Press","2 Press","3 Press","4 Press","5 Press"]},{"id":"8c9608dc.26b058","type":"switch","z":"3985bb90.d67e54","name":"Scene Key 2","property":"payload.event.value_raw","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":690,"y":600,"wires":[[],[],[],[],[]],"outputLabels":["1 Press","2 Press","3 Press","4 Press","5 Press"]},{"id":"5fbe928d.fa05fc","type":"switch","z":"3985bb90.d67e54","name":"Scene Key 3","property":"payload.event.value_raw","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":690,"y":820,"wires":[[],[],[],[],[]],"outputLabels":["1 Press","2 Press","3 Press","4 Press","5 Press"]},{"id":"19d15a6.6a2fca6","type":"switch","z":"3985bb90.d67e54","name":"Scene Key 4","property":"payload.event.value_raw","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":690,"y":1040,"wires":[[],[],[],[],[]],"outputLabels":["1 Press","2 Press","3 Press","4 Press","5 Press"]},{"id":"f18ec9d8.e1cbf8","type":"comment","z":"3985bb90.d67e54","name":"Each Output Represents a Key Press","info":"","x":190,"y":60,"wires":[]},{"id":"b0776f72.909e2","type":"tab","label":"Scene-export","disabled":false,"info":""},{"id":"d9473beb.de9c58","type":"server-events","z":"b0776f72.909e2","name":"zwave_js_value_notification","server":"8d399f83.3bc09","event_type":"zwave_js_value_notification","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":160,"y":200,"wires":[["bcb031ab.43f3"]]},{"id":"bcb031ab.43f3","type":"switch","z":"b0776f72.909e2","name":"Zen32 Switch","property":"payload.event.node_id","propertyType":"msg","rules":[{"t":"eq","v":"11","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":380,"y":200,"wires":[["861c77b3.db4728"]]},{"id":"861c77b3.db4728","type":"subflow:3985bb90.d67e54","z":"b0776f72.909e2","name":"Zen32","env":[],"x":530,"y":200,"wires":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]},{"id":"8d399f83.3bc09","type":"server","name":"Home Assistant","addon":true}]
1 Like

Got it. Thanks for your help and effort towards this flow.

Anyone know if there’s a way to disable the multi-presses? I notices that pressing the main relay has a slight delay, and activating it through HA actually seems way faster. I’m guessing this is because it has to leave a slight gap for multi-presses. I’d love to get rid of that, as I’m not a big multi-press fan and will probably only have 5 scenes.

My guess is that this responsibility would lie with ZWaveJS, I believe they’d need to set up this device profile as something that shows as 5 switches (or more).

I think some Zooz switches have a configuration bit to do something like you describe, but I don’t see it for this one. You can e-mail the support people at Zooz asking about it, they have been very responsive to my e-mails an inquiries in the past.

If anyone wants to here is an import button which uses the latest version posted by @blhoward2 above, plus some small changes to make it clear which button is for which scene in the automation.

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

3 Likes

Thank you @blhoward2 and @MattMattMattMattttMattMattMatt

I’ve been watching this thread so that keep up with any issues and how to resolve them. I had the old blueprint, and saw that it had issues. Updating and removing traces of the old fixed and got everything working as expected.

Is there a way to control the leds on the Zen32? My automation has multiple steps, and I wanted the led to be a different color for each step. Is this feasible?

@triwizard Absolutely there is, I use a separate automation for that because I also want the LEDs updated when the devices are turned on from other sources. This is an example I did using the MQTT method (Keep states in sync between scene controller and Z-Wave switched outlet - #8 by MattMattMattMatt)

However you can do the same thing with the Zwave JS (not MQTT) method. This is an example of a script that I call to turn on or off the led based on if the fan is running:


alias: 'Patio-DR/LR: Sync Scene Switch Lights: Fan'
sequence:
  - choose:
      - conditions:
          - condition: state
            entity_id: fan.patio_ceiling_fan
            state: 'off'
        sequence:
          - service: zwave_js.bulk_set_partial_config_parameters
            target:
              device_id:
                - 6d0726d77c652e5f37071bf7ad0eae42
                - d7617e673d18382dde61419078f4c021
            data:
              parameter: '5'
              value: 2
    default:
      - service: zwave_js.bulk_set_partial_config_parameters
        target:
          device_id:
            - 6d0726d77c652e5f37071bf7ad0eae42
            - d7617e673d18382dde61419078f4c021
        data:
          parameter: '5'
          value: 3
mode: single

Note the “bulk set” is used to set multiple devices (I’m syncing two switches), not sure if it matters or not if you just want to update one or not.

4 Likes

@MattMattMattMatt Thank you

Thank you so much for creating the sub-flow for the ZEN32. It made adding the ZEN32 to my setup super easy!

Commands triggered via the ZEN32 seem to be super slow, and it may well be a coincidence but I noticed this in the Zwave log and am wondering whether it is excessive:

Node 104 is my new (and only) ZEN32. It keeps repeating “treating BasicCC::Set as a report” but I do not know what that means and google was of no help. Something that might be related is Parameter 20 which I enabled. I disabled the relay and use the main button to turn on/off the LIFX bulb powered by this controller. It was my guess that I had to enable parameter 20 in order for Home Assistant to be able to use Scene 5 (big button) to control my LIFX without switching the relay. Is that not so? If not, what is Parameter 20 for?

2021-09-26T02:31:51.406Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:32:04.657Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:32:11.488Z CNTRLR   [Node 042] treating BasicCC::Set as a value event
2021-09-26T02:32:53.612Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:33:06.860Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:33:19.717Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:33:32.969Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:33:44.984Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:33:54.038Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:34:04.443Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:34:20.482Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:34:29.161Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:34:40.126Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:34:53.362Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:35:08.479Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:35:21.716Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:35:30.396Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:35:42.433Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:35:55.668Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:36:30.609Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:36:44.645Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:36:58.671Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:37:27.315Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:37:41.402Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:37:46.461Z CNTRLR « [Node 079] received wakeup notification
2021-09-26T02:37:46.462Z CNTRLR   [Node 079] The node is now awake.
2021-09-26T02:37:47.514Z CNTRLR » [Node 079] Sending node back to sleep...
2021-09-26T02:37:47.566Z CNTRLR   [Node 079] The node is now asleep.
2021-09-26T02:39:58.520Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:40:09.016Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:40:21.593Z CNTRLR « [Node 064] received wakeup notification
2021-09-26T02:40:21.595Z CNTRLR   [Node 064] The node is now awake.
2021-09-26T02:40:22.258Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:40:22.695Z CNTRLR » [Node 064] Sending node back to sleep...
2021-09-26T02:40:22.745Z CNTRLR   [Node 064] The node is now asleep.
2021-09-26T02:40:37.573Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:40:51.665Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:41:00.345Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:41:13.580Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:42:17.966Z CNTRLR « [Node 063] received wakeup notification
2021-09-26T02:42:17.967Z CNTRLR   [Node 063] The node is now awake.
2021-09-26T02:42:18.969Z CNTRLR » [Node 063] Sending node back to sleep...
2021-09-26T02:42:19.034Z CNTRLR   [Node 063] The node is now asleep.
2021-09-26T02:43:12.142Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:43:27.317Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:44:55.927Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:45:09.159Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:45:20.070Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:45:33.295Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:47:53.947Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:48:02.630Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:48:12.999Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:48:25.495Z CNTRLR   [Node 104] treating BasicCC::Set as a report
2021-09-26T02:48:31.638Z CNTRLR « [Node 055] Received updated node info

Is anybody else having issues with this running under the 2021.10 beta? It’s possible one of the many zwave changes has caused an issue.

Howdy,

Just installed this thing and the blueprint. I have a scene that activates when “pressed once” on scene button 1. however the way the button is set up by default, it acts as a on/off button and only activates the scene button gets turned on which means that it has be pressed twice at times (if the button was already on, i have to press it once to turn it off and again to turn on to make the function work).

Is this as intended or did i setup something wrong? I assumed the scene buttons were buttons and not on/off switches.

Thanks in advance!

@bmac6996 mine do not work that way. I did go to the advanced config and change the lights so they don’t toggle when pressed, not sure if that change effects the z-wave messaging though. You can look at what is happening in Home Assistant by going Developer Tools → Events → “Listen to events” type in “zwave_js_value_notification” then hit subscribe. Hit your physical button and you should see the event information, if it is behaving differently 1 press to the next these messages should have a difference.

For example here is what mine looks like when I press a button:

{
    "event_type": "zwave_js_value_notification",
    "data": {
        "domain": "zwave_js",
        "node_id": 3,
        "home_id": 3638336493,
        "endpoint": 0,
        "device_id": "cfe0eadddc32e367654ef0c5425260bd",
        "command_class": 91,
        "command_class_name": "Central Scene",
        "label": "Scene 004",
        "property": "scene",
        "property_name": "scene",
        "property_key": "004",
        "property_key_name": "004",
        "value": "KeyPressed",
        "value_raw": 0
    },
    "origin": "LOCAL",
    "time_fired": "2021-11-15T15:05:41.120930+00:00",
    "context": {
        "id": "178ca299225342b96bde76692dfc6553",
        "parent_id": null,
        "user_id": null
    }
}
1 Like

Thanks for this subflow! Made setting this up really easy for me.

Anyone else recently having issues with the blueprint? I’ve tried to delete and reimport but having the same issue.

Problem: When I add some scenes to my blueprint my automations stop working. When I restart HA the Automations tab under Configurations disappears and I get a notification that says

The following integrations and platforms could not be set up:

When I look in the logs I see ‘errors during the setup of component automation’ and ‘errors for setup of dependencies of default_config. Setup failed for dependencies: automation’

I didn’t have any issues until the last couple of days

1 Like

Same issue here.

I just added this blueprint yesterday and its my first one. I had the same issue as @jdsthatguy and @rockmonkey4004 It was giving me errors when looking at it in VSC, I used the import link here in post 21 ZEN32 Scene Controller - Z-Wave JS - #21 by MattMattMattMatt. In VSU it didn’t like the {} after action: When looking it would show

action: {} Incorrect type. Expected “null”

I just removed each of the “{}” after action on each of the scenes in the blueprint then saved and it works for me now. So those lines now look like:

action:

Hopefully this helps others running into the same problem. This Blueprint is Great! now to find all the actions I want it to do :smiley:

2 Likes

@csmart30 Thanks for looking into it, I updated my gist to remove the brackets

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

1 Like