Homeseer WD200+ Zwave Plus Wall Dimmer

Wow… just noticed this now. Sorry, yes the DSC system (Envisalink) I has a pending status as it counts down to being active.

Hey there, sorry but not understanding your " from my packages/hs_wd200.yaml file:"
Do I jsut create new yaml file in the config folder ?

Thanks!

Ok so I managed to understand the packaging and got the cards working. But it doesn’t seem to change the configuration option of my Node.

I did change the node id to my node id.
What I’m I missing here.
Thanks!

It’s all good. My mistake. AFter a server restart all working.
Thanks again!

So I am seeing we have the LED ligthing worked out… but what about double, triple, quad clicks? Does it work? I was going to use my via Vera (which has a plug in that does enable double, triple clicks), but not sure those will translate over to HA or how?

1 Like

Is it possible to use this package in an automation to set the LED colors as a status indicator?

Is it possible to use this package in an automation to set the LED colors as a status indicator?

This example sets LED 4 to blinking red. (But maybe not the “package” that you are referring to; I am using the Z-Wave_JS integration.)

      - service: zwave_js.set_config_parameter
        target:
          entity_id: light.node_20
        data:
          parameter: '24'
          value: Red
      - service: zwave_js.set_config_parameter
        data:
          parameter: LED 4 Blink Status
          value: '1'
        target:
          entity_id: light.node_20

For this to function, a couple of settings need to be made in the Z-Wave Device Configuration:


2 Likes

Thanks! Is there a parameter that sets all of the LED’s status to a specific color, or so I have to do it one LED at a time?

Is there a parameter that sets all of the LED’s status to a specific color, or so I have to do it one LED at a time?

Not that I know of.

Here is how mine is set up as a status panel:

The Alarm LED indicates the alarm status and house mode:

  • Red Blinking = An Alarm is triggered
  • Green = Occupied
  • Cyan = Night Security
  • Yellow = Away

The Door Status LEDs indicate the state of each door:

  • Red Blinking = Lock jam or tamper detected
  • Yellow Blinking = Door is open
  • Yellow = Door is unlocked
  • Off = Door is locked
2 Likes

Well, I’m not really using it that way. I have a Zwave controlled gas valve that cuts off flow to the gas grill. It automatically shuts off the gas after being on for 2 hrs to save me from leaving the burners on all night and maybe a few days (don’t ask why this is functionality is important to me!).

The WD200+ is used to control the lights in the BBQ area, but double taps on the switch control the valve state instead of the actual light. I want to use the LED’s as indicators of the gas valve state so I can just look at it and tell, and makes easy directions for my wife and kids to see if the gas is actually on or not.

I see what you have done and that’s very cool, but not optimum for my application. :slight_smile:

How did you get the printing on the faceplate? It’s very neat and clean.

1 Like

How did you get the printing on the faceplate? It’s very neat and clean.

Thank you.

I have access to a Glowforge 3D Laser Printer. I just made the list in Word, converted to SVG, and burned it on a blank wallplate. It took a couple of tries to get the right temperature.

4 Likes

I’m trying to get the scene LEDs working on WD200+ in an automation and when I set the action and run it I get the following Error: extra keys not allowed @ data[‘domain’]. I’m running the zwave js. Here’s the settings. I tried removing the domain: setting then I get errors on the UI config screen.

id: '1617745830797'
  alias: Office Window
  description: ''
  trigger:
  - type: opened
    platform: device
    device_id: bb2384033e227c81b43e91b45749a3da
    entity_id: binary_sensor.door_window_sensor_7_access_control_window_door_is_open
    domain: binary_sensor
  condition: []
  action:
  - device_id: 4549823230e42e4b6518882c6d2998be
    domain: zwave_js
    type: set_config_parameter
    parameter: 27
    bitmask:
    subtype: 27-112-0-27 (Status Mode 7 Color)
    value: 1
  - device_id: ccfa2e1850dd4a0eee8bbaf82a326b83
    domain: zwave_js
    type: set_config_parameter
    parameter: 27
    bitmask:
    subtype: 21-112-0-27 (Status Mode 7 Color)
    value: 1

Update. After upgrading HA to 12.12.9 It works for the first time then after that it errors out and stops working until I restart HA.

I just call the set config service and works without error. See below for a portion of an automation. This sets the status mode and one LED on two devices.

action:
  - service: zwave_js.set_config_parameter
    data:
      parameter: "13"
      value: "1"
    target:
      device_id:
        - 7be3eaa8994e6f
        - 68f44d987377aff
    alias: Enable Custom Color Mode
  - service: zwave_js.set_config_parameter
    data:
      parameter: "22"
      value: "1"
      target:
      device_id:
        - 7be3eaa8994e6f
        - 68f44d987377aff
        alias: Set LED2 to Red

Thanks @omnequod ,

I’m having a hell of a time trying to get status mode to work on my 200+.

I just tried running the below action in a script:

action:
  - service: zwave_js.set_config_parameter
    data:
      parameter: "13"
      value: "1"
    target:
      device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

and got:

“Unable to determine action @ data[0]”

Any ideas?

EDIT:

Tried this:

  - service: zwave_js.set_config_parameter
    data:
      parameter: 13
      value: 1
    target:
      device_id: xxxxxxxxxxxxxxxxxxxxxxxx

1 error(s): Node(node_id=34) - NotImplementedError: Configuration values of undefined type can’t be set

Setting value: “enable” , resulted in:
1 error(s): Node(node_id=34) - RuntimeError: coroutine raised StopIteration

I verified that param 13 is indeed the status mode for this device.

I personally have a ton of these devices around the house and find that using the multicast command works best in my automations.

So here’s the code to enable statusleds on all the lights. (Old method, specify each light switch)

service: zwave_js.multicast_set_value
data:
  property: "13"
  command_class: "112"
  value: 1   #<- use 0 here to disable
target:
  entity_id:
    - light.office_light
    - light.outside_basement_light
    - light.garage_sconce_lights
    - light.bedroom_light

And here’s the code to change the specific leds, all at the same time.

service: zwave_js.multicast_set_value
data:
  command_class: 112
  property: 21
  value: 2
target:
  entity_id: "{{ expand('light.wd200_switches') | map(attribute='entity_id') | list }}"

If you want to use the group method, like I did in the second example, I have this defined in my configuration.yaml . Either work, but when you have 7 status leds that’s minimal 14 automations to turn them all on and off.
Alternatively, you can create a light group in the gui and use that with the above example if I’m not mistaken.

light:
  - platform: group
    name: WD200 Switches
    entities:
    - light.office_light
    - light.outside_basement_light
    - light.garage_sconce_lights
    - light.bedroom_light

Advantage of the multicast is that it is one command and sends to all the devices at the same time (in one command).
Disavantage of the multicast command is that it will fail if one of the switches goes stupid and doesn’t think it supports that command_class and property. (happens on occasion, look in the logs, find the device id, and “Re-interview Node”. Then it works again.

Alternatively, you can use this command variation to send an individual command to each light to change. The advantage to this, is if one light fails, it doesn’t break the automation for the rest of them.

Old method:

service: zwave_js.set_value
data:
  command_class: "112"
  property: "21"
  value: 5
target:
  entity_id:
    - light.office_light
    - light.outside_basement_light
    - light.garage_sconce_lights
    - light.bedroom_light

^^ Everything above here works in my config and keeps about 9 of these switches in sync most of the time^^

1 Like

Working from the previous examples…

service: zwave_js.multicast_set_value
data:
  command_class: 112
  property: 13
  value: 1
target:
  entity_id: "{{ expand('light.wd200_switches') | map(attribute='entity_id') | list }}"

If you look in the Z-Wave JS Control panel, under the configuration for that particular switch, you will see these options and their respective values. Given the first, here’s how to parse it into the command above.

103 - I don't remember, don't seem to need it.
112 - command class
0 - again, dont need
13 - property
[103-112-0-13] Enable / Disable Custom LED Status Mode
[103-112-0-14] Load Status LED Color  <-for when 'Custom LED Status Mode' is off.
Values:
0 off
1 on
[103-112-0-21] Status LED 1 Color
[103-112-0-22] Status LED 2 Color
[103-112-0-23] Status LED 3 Color
[103-112-0-24] Status LED 4 Color
[103-112-0-25] Status LED 5 Color
[103-112-0-26] Status LED 6 Color
[103-112-0-27] Status LED 7 Color
Values:
1 Red
2 Green
3 Blue
4 Magenta
5 Yellow
6 Cyan
7 White
[103-112-0-30] Blink Frequency
Sets the blink frequency for LEDs; 0 for off (Default: 0)

[103-112-0-31-1] LED 1 Blink Status
[103-112-0-32-1] LED 2 Blink Status
[103-112-0-33-1] LED 3 Blink Status
[103-112-0-34-1] LED 4 Blink Status
[103-112-0-35-1] LED 5 Blink Status
[103-112-0-36-1] LED 6 Blink Status
[103-112-0-37-1] LED 7 Blink Status
0 for off
1 for on

Personal WISH LIST. Coming from HOMESEER:

In homeseer you can do a ‘global’ multicast for these switches to change the color of all the switches. I have not come up with a method to do this in homeassistant as the -broadcast: true flag results in this error: “setValue API for Configuration CC is not supported via broadcast”

Again, this part below here does NOT work, but I hope it does in the future: (REFERENCE MY POSTS ABOVE FOR THE WORKING EXAMPLES AS OF 1/1/2023)

service: zwave_js.multicast_set_value
data:
  command_class: 112
  property: 21
  value: 2
  broadcast: true

Results in this error:

2023-01-05 15:45:07.343 ERROR Z-WAVE-SERVER: The setValue API for Configuration CC is not supported via broadcast! (ZW0302)
ZWaveError: The setValue API for Configuration CC is not supported via broadcast! (ZW0302)
at ConfigurationCCAPI.<computed> (/opt/node_modules/@zwave-js/cc/src/cc/ConfigurationCC.ts:359:10)
at VirtualNode.setValue (/opt/node_modules/zwave-js/src/lib/node/VirtualNode.ts:69:14)
at Function.handle (/opt/node_modules/@zwave-js/server/dist/lib/broadcast_node/message_handler.js:13:51)
at Object.broadcast_node (/opt/node_modules/@zwave-js/server/dist/lib/server.js:42:110)
at Client.receiveMessage (/opt/node_modules/@zwave-js/server/dist/lib/server.js:105:99)
at WebSocket.<anonymous> (/opt/node_modules/@zwave-js/server/dist/lib/server.js:49:45)
at WebSocket.emit (node:events:513:28)
at WebSocket.emit (node:domain:489:12)
at Receiver.receiverOnMessage (/opt/node_modules/@zwave-js/server/node_modules/ws/lib/websocket.js:1178:20)
at Receiver.emit (node:events:513:28)

Agreed–the HS feature is very useful to have every WD200+ respond to a color change. I thought your post above says that multicasting to all the switches is working, save for some going stupid sometimes?