Zooz Zen24 ignoring ramp up/down

I just finished installing a Zooz Zen24 dimmer and it appears to be ignoring the ramp up/down that I’ve set via parameter 9. When i manually toggle the switch it behaves as it should, but when toggling the switch via the HASS UI or even as a service call and using “transition” it just goes instantly to the value i set. Is there something I’m missing?

Parameter 9 only affects the manual operation of the dimmer, not Z-Wave commands.

Can you post the actual service data you are using?

What does the OZW_Log.txt show when you set the light with transition data? It should show a command with a few parameters, which includes brightness and transition time.

Did not know that but that makes sense.

entity_id: light.upstairs_staircase
transition: 15
brightness_pct: 100

Is what I’m using in the service tab, using the light.turn_on service

Think this is what you’re after:

2020-01-28 20:42:50.342 Info, Node059, Value::Set - COMMAND_CLASS_SWITCH_MULTILEVEL - Level - 0 - 1 - 99
2020-01-28 20:42:50.342 Info, Node059, SwitchMultilevel::Set - Setting to level 99
2020-01-28 20:42:50.342 Detail, Node059, Queuing (Send) SwitchMultilevelCmd_Set (Node=59): 0x01, 0x0a, 0x00, 0x13, 0x3b, 0x03, 0x26, 0x01, 0x63, 0x25, 0xda, 0x65
2020-01-28 20:42:50.342 Detail, Node059, Queuing (Send) SwitchMultilevelCmd_Get (Node=59): 0x01, 0x09, 0x00, 0x13, 0x3b, 0x02, 0x26, 0x02, 0x25, 0xdb, 0x06
2020-01-28 20:42:50.342 Detail,
2020-01-28 20:42:50.343 Info, Node059, Sending (Send) message (Callback ID=0xda, Expected Reply=0x13) - SwitchMultilevelCmd_Set (Node=59): 0x01, 0x0a, 0x00, 0x13, 0x3b, 0x03, 0x26, 0x01, 0x63, 0x25, 0xda, 0x65
2020-01-28 20:42:50.350 Detail, Node059,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2020-01-28 20:42:50.350 Detail, Node059,   ZW_SEND_DATA delivered to Z-Wave stack
2020-01-28 20:42:50.526 Detail, Node059,   Received: 0x01, 0x06, 0x00, 0x04, 0x00, 0x3b, 0x00, 0xc6
2020-01-28 20:42:50.526 Detail,
2020-01-28 20:42:50.526 Info, Node059, ApplicationCommandHandler - Unhandled Command Class 0xc6
2020-01-28 20:42:50.847 Detail, Node059,   Received: 0x01, 0x07, 0x00, 0x13, 0xda, 0x00, 0x00, 0x32, 0x03
2020-01-28 20:42:50.847 Detail, Node059,   ZW_SEND_DATA Request with callback ID 0xda received (expected 0xda)
2020-01-28 20:42:50.847 Info, Node059, Request RTT 503 Average Request RTT 456
2020-01-28 20:42:50.847 Detail,   Expected callbackId was received
2020-01-28 20:42:50.847 Detail,   Expected reply was received
2020-01-28 20:42:50.847 Detail,   Message transaction complete
2020-01-28 20:42:50.847 Detail,
2020-01-28 20:42:50.847 Detail, Node059, Removing current message
2020-01-28 20:42:50.847 Detail,
2020-01-28 20:42:50.847 Info, Node059, Sending (Send) message (Callback ID=0xdb, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=59): 0x01, 0x09, 0x00, 0x13, 0x3b, 0x02, 0x26, 0x02, 0x25, 0xdb, 0x06
2020-01-28 20:42:50.856 Detail, Node059,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2020-01-28 20:42:50.856 Detail, Node059,   ZW_SEND_DATA delivered to Z-Wave stack
2020-01-28 20:42:50.922 Detail, Node059,   Received: 0x01, 0x07, 0x00, 0x13, 0xdb, 0x00, 0x00, 0x07, 0x37
2020-01-28 20:42:50.922 Detail, Node059,   ZW_SEND_DATA Request with callback ID 0xdb received (expected 0xdb)
2020-01-28 20:42:50.922 Info, Node059, Request RTT 75 Average Request RTT 265
2020-01-28 20:42:50.922 Detail,   Expected callbackId was received
2020-01-28 20:42:51.004 Detail, Node059,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x3b, 0x05, 0x26, 0x03, 0x63, 0x63, 0x00, 0xeb
2020-01-28 20:42:51.004 Detail,
2020-01-28 20:42:51.004 Info, Node059, Response RTT 158 Average Response RTT 368
2020-01-28 20:42:51.004 Info, Node059, Received SwitchMultiLevel report: level=99
2020-01-28 20:42:51.004 Detail, Node059, Refreshed Value: old value=0, new value=99, type=byte
2020-01-28 20:42:51.004 Detail, Node059, Changes to this value are not verified
2020-01-28 20:42:51.004 Detail, Node059,   Expected reply and command class was received
2020-01-28 20:42:51.004 Detail, Node059,   Message transaction complete
2020-01-28 20:42:51.004 Detail,
2020-01-28 20:42:51.004 Detail, Node059, Removing current message
2020-01-28 20:42:51.004 Detail, Node059, Notification: ValueChanged
2020-01-28 20:42:51.826 Detail, Node059,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x3b, 0x05, 0x26, 0x03, 0x63, 0x63, 0x00, 0xeb
2020-01-28 20:42:51.826 Detail,
2020-01-28 20:42:51.826 Info, Node059, Received SwitchMultiLevel report: level=99
2020-01-28 20:42:51.826 Detail, Node059, Refreshed Value: old value=99, new value=99, type=byte
2020-01-28 20:42:51.826 Detail, Node059, Changes to this value are not verified
2020-01-28 20:42:51.826 Detail, Node059, Notification: ValueChanged

There would be another log message about “Duration” if the transition time were being set. So the z-wave command that is being sent doesn’t include a transition time.

I bet if you check your zwcfg*.xml file, your COMMAND_CLASS_SWITCH_MULTILEVEL is version 4 (or higher). If you check the supported_features the value is probably missing the flag that says it supports transitions, so HA won’t even try. A value of 33 means “supports transitions and supports dimming”. A value of just 1 means only dimming.

If so, it’s a bug and you’ll need to hand edit your zwcfg*.xml file (stop HA first) to add the value that exposes the transition feature. You’ll find the same discussion in this thread. A dimmer that supports transitions will have XML that looks like this (note the Dimming Duration value):

                        <CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="2" innif="true">
                                <Instance index="1" />
                                <Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="24" />
                                <Value type="button" genre="user" instance="1" index="1" label="Bright" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                                <Value type="button" genre="user" instance="1" index="2" label="Dim" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
                                <Value type="bool" genre="system" instance="1" index="3" label="Ignore Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
                                <Value type="byte" genre="system" instance="1" index="4" label="Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
                                <Value type="byte" genre="system" instance="1" index="5" label="Dimming Duration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="255" />
                        </CommandClass>

Bingo, that’s what it is. Modified the XML and it works. Thanks!