Setting a zwave parameter

Tyring to change zwave parameters in a automation, should this work?

  - service: zwave.set_config_parameter
      node_id: 82
# Parameter 5 is Lock and Leave      
      parameter: 5
# Possible values are 0 for off and 255 for on
      value: 255

It did not work for me

Try also setting the size: value, which is the number of bytes that parameter takes. For example:

  - service: zwave.set_config_parameter
      node_id: 82
      parameter: 5
      value: 255
      size: 1

Hmm, still no go

Here is the xml from my zwave for the device and the item I was trying to set

				<Value type="list" genre="config" instance="1" index="5" label="Lock &amp; Leave" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="1" size="1">
					<Help>When enabled: Press the Outside Schlage Button to lock the deadbolt. (Default setting). When disabled: Press the Outside Schlage Button and then enter a user code to lock the deadbolt.</Help>
					<Item label="Disable Lock &amp; Leave" value="0" />
					<Item label="Enable Lock &amp; Leave" value="255" />

Maybe I’ve got something wrong?

Just in case this is a battery powered device it may not happen.

I use a data template to set the volume parameter of a doorbell and it works for me. try something like this:

  - service: zwave.set_config_parameter
    data_template: {
      "node_id": 39,
      "parameter": 8,
      "value": 10

but as previously posted, battery powered devices may or may not respond properly. I have a Kwikset lock and it’s hit or miss if it receives commands properly and it’s a direct neighbor of the z wave controller. My mains powered devices don’t have an issue with commands.

It’s a schlage lock. Battery powered. I am a precious Smartthings user and was able to make these sort of changes. So i know that’s it’s not a hardware limitation.

It’s all good just trying to determine what i can and cannot do.

I think you have to wait for the lock to wake up and check-in then the OZW stack will send the config (on some battery powered devices).

Sounds possible, but if that’s the case its an HA/OWZ limitation not a limitation of the schlage locks. Unless there is a way to Wake the lock up with zwave and then send the code. I definitely had a few smartthings automations that changed zwave settings on these locks. One good example of a useful automation would be to enable the alarm at night or when you’re away, etc.


Here is the xml

				<Value type="list" genre="config" instance="1" index="7" label="Lock Alarm Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>The alarm is turned off by default. After installation, you will need to turn on your alarm. Activity Alarms when the door opens or closes. Perfect for monitoring doors while you re at home. After the alarm is triggered, there is a built-in 3-second delay for it to reset. Sounds two short beeps. Tamper Alarms when the lock is disturbed, while locked. Senses subtle activity at the lock. Sounds 15 second Alarm (90 dB) Forced Entry Alarms when significant force pushes against the door, while locked. Perfect for nighttime or when you re away from home. Least sensitive mode Sounds three-minute shrill, steady alarm (90 dB)</Help>
					<Item label="Alarm Off" value="0" />
					<Item label="Activity" value="1" />
					<Item label="Tamper" value="2" />
					<Item label="Forced Entry" value="3" />

and here is the auotmation I’m trying to use

- alias: 'Lock and Leave for Front Door Test'
  - platform: state
    entity_id: input_boolean.test_switch
    from: 'off'
    to: 'on'
  - service: zwave.set_config_parameter
      node_id: 81
# Parameter 7 is Alarm      
      parameter: 7
      value: 1
      size: 1

This does not work when I run it manually to with a valid trigger. I see nothing in the zwave logs at all, so I’m thinking maybe its something else?

I think I am doing something wrong, or that this is just not working. I tried just using the call service as a test, and I tried chanigng a value on another non battery device. Same thing

      "node_id": 18,
      "parameter": 3,
      "value": 2

I tried this under the services call zwave.set_config_parameter

These settings are for a simple ge light switch. turning on or off an LED light. Works in the zwave UI panel, but not with the set_config_parameter.

This is from the owz log when I change the setting above from the UI

2018-06-03 11:34:08.849 Info, Node018, Value::Set - COMMAND_CLASS_CONFIGURATION - LED Light - 3 - 1 - LED always off
2018-06-03 11:34:08.849 Info, Node018, Configuration::Set - Parameter=3, Value=2 Size=1
2018-06-03 11:34:08.849 Detail, Node018, Queuing (Send) ConfigurationCmd_Set (Node=18): 0x01, 0x0c, 0x00, 0x13, 0x12, 0x05, 0x70, 0x04, 0x03, 0x01, 0x02, 0x25, 0x33, 0x95
2018-06-03 11:34:08.849 Detail, Node018, Queuing (Send) ConfigurationCmd_Get (Node=18): 0x01, 0x0a, 0x00, 0x13, 0x12, 0x03, 0x70, 0x05, 0x03, 0x25, 0x34, 0x90
2018-06-03 11:34:08.849 Detail, 

Again, using the automation or just calling the service shows nothing at all in the logs, its like it never even gets processed.

Just to be clear, the code above is only from when i make the change in the UI. nothing happens when trying to do this with automations

Sounds like a bug. Might need to report it on github.

I’d be happy to report it, can anyone else confirm that they are also unable to make any changes to zwave devices using the



1 Like

What version and install method are you using? I run 0.69.1 in a docker container on a Synology. No issues setting a z-wave device parameter for a mains powered device or my battery powered Kwikset lock or a door sensor. I had to wake up my battery powered door sensor before it would take a parameter change. Used the services tab, the z wave node management page, and an automation and all of them worked. One note is the services tab is touchy when it comes to JSON formatting. There are different styles of double quotes. I’m using my iPhone and the HA app so I had to long press on the double quote on the keyboard to select the correct one, otherwise it complained my JSON was not properly formatted.

1 Like

Running home assistant on Ubuntu.
Version .70
Not using a docker container.

1 Like

This also happens to me. I can NOT set zwave.set_config_parameter in my automations.yaml file. I am NOT running in docker.

I have been able to set config parameters in automation. I am running 81.6 at the moment, but I believe it has worked for a while. I don’t do much with it though at the moment. Here is the info on my lock manager

I added zwave control to this last week. The wave part of the automation is fairly straight forward, and might help you to come up with some ideas. Main thing for me is that it passes the ascii text, which OWZ converts to the value when it actually sets the value.

Good luck


After some struggle I found out how to configure a zwave device using zwave.set_config_parameter from an automation, please see this post.
HA 0.84.6, not using Docker.

Sorry to revive this thread but I’ve been having some trouble with this command so did some searches.
I now have my problem solved but your post is the first of two I found (datewise) includind the “size:” parameter. Not sure what this means i.e. size: 1
Is that meaning just “1 off parameter” or is it a byte size or … (Can’t find any reference to it).
The parameter I am ‘sending’ is as below (it works so only interested in the applicabilitly of size: in this instance)

    alias: Siren 01 Fur Elise
      - service: zwave.set_config_parameter
        data_template: {
          "node_id": 41,
          "parameter": 6,
          "value": "Fur Elise"
      - delay: "00:00:01"
      - service: switch.turn_on
        entity_id: switch.shenzen_siren01_switch
      - delay: "00:00:{{ states('input_number.in_siren01_drtn') | int }}"
      - service: switch.turn_off
        entity_id: switch.shenzen_siren01_switch

Cheers In Advance

It’s the number of bytes being set, so that you pass the right amount of data.

So in the example above (“Fur Elise”) are we on 1 byte characters, or 2 byte extended characters ?
Do I have to send the " " " aswell ?
So is this 9, 11, 18 or 22 ???
I assume knowing how much data allows the z-wave network to continue rather than have it time out on the message, so this is ‘more efficient ?’
Thanks again