Z-WAVE EXPLAINED
Z-Wave configuration parameters are numbered settings stored inside the device itself, and on a plug-in dimmer they control the things no app screen shows you: the lowest brightness the lamp will hold, how fast it fades, what a double-tap does, and whether the status LED glows at all.
The Versa LAMP-ZW2 ships with 20 of them, numbered 1 through 21. Most people never open one, run the dimmer on its factory defaults, and never find out that the reason their LED bulb flickers at the bottom of the dial is a single number they are allowed to change. This guide explains what parameters are, why manufacturers put them there, how to read a parameter table, where to find them in Home Assistant, Homey and SmartThings, and what association groups do once you understand the difference between the two.
What a Z-Wave configuration parameter actually is
A configuration parameter is a numbered storage slot in the device's own firmware. The number identifies the setting, the value tells the device how to behave, and the device - not the hub - decides what that number means. Your hub writes to those slots using the Z-Wave Configuration command class, listed as 0x70 CONFIGURATION_V4 in the LAMP-ZW2's supported command classes.
That last point is the part almost every explanation skips, and it is the source of most confusion. Parameter 11 means minimum brightness on the LAMP-ZW2. On some other smart dimmer, parameter 11 means something else entirely. There is no industry-wide registry of parameter numbers. Similar devices often expose similar controls, but the numbering is per-product, which is why the device's own installation manual is the only authority on what any given number does.
The number
Which setting you are writing to. Assigned by the manufacturer, documented only in that product's manual. Parameter 11 on one device has no relationship to parameter 11 on another.
The size
How many bytes the slot holds - 1, 2 or 4. A 1-byte parameter covers a range of -128 to 127, which is why brightness settings run 0-99 and a timer that needs minutes up to 65535 uses a wider slot.
The value
What you are setting it to. Sometimes a real quantity (seconds, minutes, percent) and sometimes a code where each number selects a mode - 0 means one behaviour, 1 means another.
Why manufacturers put them there
A Z-Wave smart dimmer is one piece of hardware running one firmware image, and it gets installed in tens of thousands of rooms that have nothing in common. One person plugs it into a bedside lamp with a 4-watt dimmable LED. Another runs a 150-watt incandescent floor lamp in a den. A third puts it in a hallway and wants the light to come up gently at 2 a.m. instead of snapping to full.
No single default satisfies all three. So the manufacturer picks a safe average, ships it, and exposes the trade-offs as parameters. The defaults are good - the LAMP-ZW2 arrives usable out of the box, which is why most people stop there. But "good average" and "right for your lamp" are different things, and the gap between them is exactly what these settings close.
Take the status LED. The LAMP-ZW2 defaults its LED to 60 percent brightness and lights it when the outlet is off, so you can find the dimmer in a dark room. In a bedroom that same glow is a nuisance. Parameter 1 sets the LED brightness level, parameter 2 sets when it lights, and parameter 3 picks the colour from six options. None of that is a defect being worked around. It is a decision the manufacturer deliberately handed to you.
How to read a parameter table
Every parameter table has the same four columns, and once you can read one you can read all of them. Here is the complete set from the LAMP-ZW2 installation manual, quoted from the printed document rather than a retail listing. Note that there is no parameter 5 - the numbering skips it, which is normal and not a documentation gap.
| # | Parameter | Default | Values |
|---|---|---|---|
| 1 | LED Brightness | 1 | 0 = 100%, 1 = 60% (default), 2 = 30% |
| 2 | LED Mode | 0 | 0 = on when off (default), 1 = on when on, 2 = always off, 3 = always on |
| 3 | LED Color | 0 | 0 = blue (default), 1 = green, 2 = red, 3 = yellow, 4 = cyan, 5 = magenta |
| 4 | Auto Turn-Off | 0 | Minutes 1-65535. 0 = disabled. |
| 6 | Auto Turn-On | 0 | Minutes 1-65535. 0 = disabled. |
| 7 | Night Light | 2 | 1-10 = 10-100% brightness |
| 8 | Restore After Power Fail | 2 | 0 = off, 1 = on, 2 = last state (default) |
| 9 | Ramp Rate - Btn ON | 2 | 0 = instant, 1-99 sec |
| 10 | Ramp Rate - Hold | 4 | 1-99 sec when held |
| 11 | Min Brightness | 10 | 0 = disabled, 1-99% |
| 12 | Max Brightness | 99 | 0 = disabled, 1-99% |
| 13 | Single-Tap Brightness | 0 | 0 = last (default), 1 = Param 15, 2 = max, 3 = 100% |
| 14 | Double-Tap Behavior | 1 | 0 = 100%, 1 = night-light (default), 2 = max, 3 = disabled |
| 15 | Custom Brightness | 0 | 0 = last, 1-99% custom |
| 16 | Local/Z-Wave Lockout | 1 | 0 = Z-Wave only, 1 = both (default), 2 = disable both |
| 17 | Disable Btn Programming | 0 | 0 = enabled (default), 1 = lock out programming |
| 18 | Ramp Rate - Btn OFF | 2 | 0 = instant, 1-99 sec |
| 19 | Ramp Rate - Hub ON | 255 | 1-254 sec; 255 = use Param 9 (default) |
| 20 | Ramp Rate - Hub OFF | 255 | 1-254 sec; 255 = use Param 18 (default) |
| 21 | LED Confirm Blink | 0 | 0 = enabled (default), 1 = disabled |
Three habits make a table like this readable. First, the default column tells you what the device is doing right now - it is your baseline, and writing the default back is always the safe undo. Second, 0 usually means "off" or "don't do this", which is why parameter 4 uses 0 for disabled rather than zero minutes. Third, a sentinel value points at another parameter: parameters 19 and 20 default to 255, and 255 does not mean 255 seconds, it means "follow whatever parameters 9 and 18 say." Sentinels like that are common and they are the single easiest thing to misread.
The Z-Wave dimmer settings worth changing first
Twenty parameters is a lot to work through. In practice four of them account for nearly every real complaint about a plug-in smart dimmer.
Your dimmable LED flickers or drops out at the bottom of the dial
Set parameter 11, minimum brightness. The default is 10 percent, chosen to suit a wide mix of loads. An LED bulb that needs more current than that to hold a stable arc will stutter, buzz or cut out below its own threshold. Raise parameter 11 until the flicker stops - the dimmer then refuses to go below that level no matter how far you drag the slider, which removes the bad zone from the range entirely instead of asking you to avoid it.
The lamp is brighter than you ever want it
Set parameter 12, maximum brightness, default 99. Capping it means 100 percent on your dial is whatever ceiling you set. This is the parameter people reach for on a bedside lamp, and it pairs naturally with parameter 11: together they compress the full range into just the useful part, so brightness control feels finer everywhere.
The light snaps on instead of fading
Set the ramp rates. Parameter 9 covers pressing the button on, parameter 18 covers pressing it off, and parameter 10 covers holding the button to dim. All three take 0 for instant or 1 to 99 seconds. Parameters 19 and 20 do the same job for commands arriving from the hub, and they default to 255, which means they inherit from parameters 9 and 18. Change 9 and 18 first and hub-triggered fades follow along.
You want one press to do something specific
Set parameter 13 for single-tap and parameter 14 for double-tap. Single-tap defaults to restoring the last level. Double-tap defaults to the night-light level set in parameter 7. Point parameter 13 at parameter 15 and a single press jumps straight to a custom brightness level you chose - useful when one lamp has exactly one job.
Where to find the parameters in each smart home ecosystem
This is where most guides stop being useful, because every controller presents the same underlying command class differently. The parameter numbers never change no matter which app you use for Z-Wave control. What changes is how much your hub is willing to show you.
Home Assistant (Z-Wave JS)
The most direct of the three. Open the device page and use the Configure button, which Home Assistant's own documentation describes as an easy way to "look up and update configuration parameters for the device," and recommends for one-off changes. For anything you want to script or repeat, the integration exposes the zwave_js.set_config_parameter action, plus zwave_js.bulk_set_partial_config_parameters for writing several at once. If expected settings are missing, run Re-interview from the same device page - that forces the device through discovery again so Z-Wave JS picks up all of its capabilities. Full detail is in the Home Assistant Z-Wave documentation.
Homey
Homey presents parameters as named, labelled fields in the device's settings rather than as raw numbers, so you adjust "Minimum brightness level" instead of writing to slot 11. That mapping is done by the device app, which tells Homey which setting corresponds to which parameter index and byte size - the Homey Apps SDK documentation uses a minimum-brightness parameter as its own worked example. Homey's docs confirm parameters are 1, 2 or 4 bytes and that values are read as signed integers by default. Where a device app has not surfaced a particular parameter, Homey Pro's advanced device settings include a raw configuration field that accepts the parameter index, size and value directly.
SmartThings
On SmartThings, what you can change is exactly what the Edge driver author chose to expose as a preference - the Settings screen on the device in the app. There is no universal parameter editor in the app itself, because the Configuration command class is available to the driver rather than to you. When a parameter you need is not listed, the documented route is to temporarily switch the device to a dedicated configuration driver, write the parameter, then switch back to the normal driver. The driver architecture is described in the SmartThings Edge driver documentation.
Why a parameter change on a battery device does not take effect immediately
The LAMP-ZW2 is mains powered and always listening, so a parameter write lands instantly and the LED flashes three times to confirm. Battery operated devices behave differently, and this catches people out constantly.
A battery sensor - a motion sensor, a door contact - sleeps to preserve its cell. It transmits whenever it has something to say, but it is not listening the rest of the time. Your hub therefore cannot push a parameter to it on demand. The write sits queued until the device wakes on its own schedule, which is called the wake-up interval. SmartThings' developer documentation states this plainly: when a sleepy device's preferences are updated while it is asleep, "any configuration commands for the device cannot be sent until the device wakes up," and the automatic mechanism that delivers them works only on devices that support the Wake Up command class. Homey documents the same constraint and allows wake-up intervals from 30 seconds to 194 days.
So on a battery device, a parameter change is not a click-and-done action. Either wait out the interval or trigger a manual wake-up per the device's manual - and until then, the app showing your new value means the hub has accepted it, not that the device has.
What Z-Wave association groups do, and how they differ from parameters
Parameters change how one device behaves on its own. Association is different: it is how one device talks to another. Home Assistant's documentation puts it cleanly - an association "is when two or more Z-Wave products communicate directly," without going through a hub, and an association group "is a group of devices that another one will send commands to in certain situations."
Every certified device has at least one group, and group 1 is always the same thing. Silicon Labs' Z-Wave Association Basics application note states that "association group 1 is reserved for the Z-Wave Plus Lifeline service" and that "all device centric events are mapped to the Lifeline group," including Battery Low, Tamper Alarm and Device Reset Locally. The Lifeline exists so a hub sets up one association and receives everything the device needs to report. Groups numbered 2 and upward are the interesting ones: they carry commands the device sends to other devices on its own initiative.
The LAMP-ZW2 implements two, documented in its installation manual:
| Group | Purpose | Capacity | What it sends |
|---|---|---|---|
| Group 1 | Lifeline - reports to your controller | 5 nodes | Binary Switch Report, Device Reset Locally |
| Group 2 | Direct control of other devices | 5 nodes | Basic Set ON/OFF, triggered by the local button |
Group 2 is the useful one once you understand it. Add another Z-Wave light switch or smart switch to group 2 and pressing the button on the dimmer turns that other device on and off directly - no hub in the path, no automation to write, no latency while a rule evaluates. It keeps working if the hub is rebooting. Silicon Labs' example is a temperature sensor using group 2 to control a relay locally while still reporting readings over the Lifeline.
Handling of these groups varies by controller. Homey exposes association groups in the device settings and labels them automatically from the device's own Association Group Information command class, and Homey is always a member of Lifeline group 1 - as of Homey v13.2.0 that membership can no longer be opted out of. Home Assistant takes the opposite approach: its documentation states that it implements a single association group, group 1, used to send a Device Reset Locally notification, and that "under normal circumstances, it is not necessary to add a device to this group." Home Assistant deliberately routes device-to-device logic through automations instead.
Association groups on Z-Wave Long Range: the limitation nobody documents
Here is the part that matters if you bought a Z-Wave 800 series device for its range. Direct device-to-device association does not work on a node included via Z-Wave Long Range, and the reason is structural rather than a gap in anyone's firmware.
Silicon Labs' Z-Wave Long Range protocol documentation is explicit on two points. First, nodes added to a network using Z-Wave Long Range "will only have one known neighbor, which is the Primary Controller." Second, nodes in an LR domain "can only communicate with the controller using direct range transmissions," and LR addressing supports singlecast and broadcast only. An LR device has exactly one peer it knows how to reach, and that peer is the hub. A group 2 association asks the device to command a different node directly, and on Long Range there is no path for that message to take.
That trade is worth making deliberately rather than discovering later. If the dimmer sits at the far end of a large property and the hub drives everything anyway, Long Range is the right call. If you specifically want the button on one device to control another device without the hub, include it into the mesh.
A sane order to do this in
- Get the device included and working on defaults first. The LAMP-ZW2 plugs into a standard grounded outlet, so there is no neutral wire to find and no wiring step - scan the Z-Wave QR code on the back with a SmartStart-capable controller and it joins within 10 minutes of being powered on in range.
- Open the actual installation manual for your device and find its parameter table. Not a retail listing, not a forum post. The manual is the only document that authoritatively maps numbers to functions on that hardware.
- Change one parameter at a time and test it. On the LAMP-ZW2 the LED flashes three times to confirm a parameter change was accepted.
- Write down what you changed and what the default was. Six months later you will not remember whether 25 was your value or the factory's.
- Only then look at association groups, and only if you want one device controlling another without the hub in the middle.
Two shortcuts worth knowing on the LAMP-ZW2 specifically, both from its manual: minimum and maximum brightness can be set at the device without a hub at all. Press the button five times quickly and hold to set minimum brightness (parameter 11), or ten times quickly and hold to set maximum (parameter 12). For everything else, see the LAMP-ZW2 setup guide and the current firmware release notes.
The LAMP-ZW2 plug-in dimmer handles 200 W incandescent or 100 W dimmable CFL and LED, is ETL Listed to UL 60730-1, and is Alarm.com approved.
Frequently asked questions
What are Z-Wave configuration parameters?
Configuration parameters are numbered settings stored in a Z-Wave device's own firmware that change how the hardware behaves. A hub writes to them using the Configuration command class (0x70). The manufacturer assigns the numbers, so parameter 11 means minimum brightness on the Versa LAMP-ZW2 and something different on another product - the device's installation manual is the only authoritative reference. The LAMP-ZW2 exposes 20 parameters, numbered 1 to 21, covering brightness limits, ramp rates, LED behaviour and auto on/off timers.
Which parameter sets minimum brightness on a Z-Wave dimmer?
On the Versa LAMP-ZW2, parameter 11 sets minimum brightness with a default of 10 percent and a range of 1 to 99 percent (0 disables the limit), and parameter 12 sets maximum brightness with a default of 99. Raising parameter 11 is the standard fix for a dimmable LED bulb that flickers or cuts out at low levels, because the dimmer then refuses to go below that brightness level. Both can also be set at the device: five quick button presses then hold for minimum, ten for maximum.
How do I change Z-Wave dimmer settings in Home Assistant, Homey or SmartThings?
In Home Assistant, use the Configure button on the Z-Wave device page for one-off changes, or the zwave_js.set_config_parameter action to script them. In Homey, parameters appear as named fields in the device settings, with a raw configuration field in Homey Pro's advanced settings for any parameter the device app has not surfaced. In SmartThings, you can change whatever the Edge driver exposes as a preference on the device's Settings screen; for anything else, switch temporarily to a dedicated configuration driver, write the parameter, then switch back.
What do Z-Wave association groups do?
Z-Wave association groups let one device send commands straight to another without the hub in the path. Group 1 is always reserved for the Z-Wave Plus Lifeline, which carries device-centric reports such as Battery Low, Tamper Alarm and Device Reset Locally to the controller. Groups 2 and above carry commands the device sends on its own initiative. The LAMP-ZW2 implements group 1 (Lifeline, 5 nodes, Binary Switch Report and Device Reset Locally) and group 2 (Basic Set ON/OFF to 5 nodes, triggered by the local button).
Do association groups work on Z-Wave Long Range?
No. Direct device-to-device association does not function on a node included via Z-Wave Long Range. Silicon Labs' protocol documentation states that a node added using Z-Wave Long Range has only one known neighbour, the Primary Controller, and that LR nodes communicate with the controller using direct range transmissions with singlecast and broadcast addressing only. There is no path for a device-to-device command. Configuration parameters still work normally on Long Range, because a parameter write is a controller-to-node singlecast.
Why did my parameter change not take effect on a battery sensor?
Battery operated Z-Wave devices sleep to conserve power and are not listening most of the time, so the write queues until the device wakes on its wake-up interval. SmartThings' developer documentation confirms that configuration commands for a sleeping device cannot be sent until it wakes, and that the automatic delivery mechanism requires the device to support the Wake Up command class. Homey allows wake-up intervals from 30 seconds to 194 days. Mains-powered devices like the LAMP-ZW2 apply changes immediately and flash the LED three times to confirm.
Do configuration parameters stay with the device if I change hubs or update firmware?
Yes to both. Parameters are stored in the device's own firmware, not in the hub's database, so they survive exclusion and re-inclusion on a different controller. A parameter you set on the LAMP-ZW2 holds after you move it to another wave hub, and in Versa's testing it also holds across the firmware 8.0.0 to 8.10.0 update, along with the node ID and association groups. To return a device to factory behaviour, either write the documented default values back or factory reset it - on the LAMP-ZW2, press the button twice quickly then hold the third press for 10 seconds.





