Homeseer WD200+ Zwave Plus Wall Dimmer

That was it. Thank you!

I wanted to share what I did for my Homeseer WD200+ to more easily manage and control it

First I set up a bunch of input selects: https://gist.github.com/fortepc/6adb3de6e08ef9ba03a288fbb98ae9ec

Then I set up a bunch of automations to watch all of those input selects and convert them to ZWave config calls to actually update the switch.: https://gist.github.com/fortepc/de14254c798a667b026f306d2cd64e81

Then any of my automatons just controls the input_selects and it makes it way easier to manage.

Another way is to feed the events into NodeRed if you use that, which can then make the calls. this is how I do itā€¦ whatever your more comfortable with.

Iā€™d like to know this as well. I can change when the dimmer is on, but I canā€™t seem to go into status mode automatically.

Do you have an example of this? Iā€™m terrible with NodeRed but am wanting to learn it more, and would like to automate the LEDā€™s on my switch.

Help! Iā€™m so confused by this thread. Been slowly transitioning from Hubitat over to HA on Hassioā€¦I have three Homeseer WD200+ dimmers in my kitchen that I used to give status light updates for my home. I can update the status lights manually in the HA Z-Wave Network Management menu by adjusting the node config options, when I do this each node updates and displays correctlyā€¦When I try and do it through an automation using zwave.set_config_parameter, it does nothing and the log displays:

2020-02-17 15:28:54.798 Detail, Node005, Polling: COMMAND_CLASS_SWITCH_MULTILEVEL index = 0 instance = 1 (poll queue has 0 messages)
2020-02-17 15:28:54.798 Detail, Node005, Queuing (Poll) SwitchMultilevelCmd_Get (Node=5): 0x01, 0x09, 0x00, 0x13, 0x05, 0x02, 0x26, 0x02, 0x25, 0xcc, 0x2f
2020-02-17 15:28:54.798 Detail,
2020-02-17 15:28:54.798 Info, Node005, Sending (Poll) message (Callback ID=0xcc, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=5): 0x01, 0x09, 0x00, 0x13, 0x05, 0x02, 0x26, 0x02, 0x25, 0xcc, 0x2f
2020-02-17 15:28:54.804 Detail, Node005,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2020-02-17 15:28:54.804 Detail, Node005,   ZW_SEND_DATA delivered to Z-Wave stack
2020-02-17 15:28:54.857 Detail, Node005,   Received: 0x01, 0x05, 0x00, 0x13, 0xcc, 0x00, 0x25
2020-02-17 15:28:54.857 Detail, Node005,   ZW_SEND_DATA Request with callback ID 0xcc received (expected 0xcc)
2020-02-17 15:28:54.857 Info, Node005, Request RTT 58 Average Request RTT 58
2020-02-17 15:28:54.857 Detail,   Expected callbackId was received
2020-02-17 15:28:54.933 Detail, Node005,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x05, 0x05, 0x26, 0x03, 0x63, 0x63, 0x00, 0xd5
2020-02-17 15:28:54.934 Detail,
2020-02-17 15:28:54.934 Info, Node005, Response RTT 135 Average Response RTT 134
2020-02-17 15:28:54.934 Info, Node005, Received SwitchMultiLevel report: level=99
2020-02-17 15:28:54.934 Detail, Node005, Refreshed Value: old value=99, new value=99, type=byte
2020-02-17 15:28:54.934 Detail, Node005, Changes to this value are not verified
2020-02-17 15:28:54.934 Detail, Node005,   Expected reply and command class was received
2020-02-17 15:28:54.934 Detail, Node005,   Message transaction complete

Do I need to update something in the Zwave config before automations work? Doesnā€™t make sense that the devices responds in the Zwave config menu but not the automation. Any thoughts?

Those logs have nothing to do with the configuration parameter. They are showing that you have configured polling and the polling is getting the status of the light. There should be no need to poll these switches, Iā€™d turn that off.

Youā€™ll have to check the log again for the config parameter it should be pretty obvious when setting it. You might also want to post the service data youā€™re using in the automation, likely there is an issue uthere. The values should be the same as the control panel values.

Thanks for the quick replyā€¦I just created a quick test switch to ā€˜testā€™ it out. Seems pretty straightforward, but perhaps I missed something?

- id: '1581971564028'
  alias: test
  description: ''
  trigger:
  - entity_id: input_boolean.test_switch
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      node_id: 5
      parameter: 22
      value: 1
    service: zwave.set_config_parameter

ā€¦and yes I have confirmed the dimmer is node 5

I was serious when I said the values need to be the same as in the control panel. :wink:

  - data:
      node_id: 5
      parameter: 22
      value: "Red"
    service: zwave.set_config_parameter

Parameter 22 is defined as a list. You must specify the list value, which is ā€œRedā€ and it will be converted to 1 for you.

1 Like

@freshcoast Youā€™re a genius! lolā€¦seriously thanks. I canā€™t believe it was that easy. Soā€¦on another note. I took your same logic and applied it to parameter 13 (normal/status mode). Iā€™ve tried using the values: 1 or 0, that didnā€™t work. I tried ā€œNormalā€ and ā€œStatusā€ and that didnā€™t work. Any ideas on how I can trigger this parameter?

Thanks again! Iā€™m learning a lot!

ā€œNormal modeā€ and ā€œStatus modeā€.

All the ones that are type Item, use the string label. https://github.com/home-assistant/open-zwave/blob/19506bcf2ea3aeef4b49fc9d0c37dc69cd959c78/config/homeseer/hs-wd200plus.xml

1 Like

@freshcoast That did it! Thank you!!! Last questionā€¦(i hope)ā€¦is there anyway to apply this to a HA group? I have 6 switches throughout the house that I would like to send status updates through automations and it sure would be easier to just group em all together and send them that wayā€¦but it appears you can only write to one node with this set command? Am I wrong?

There might be some fancy template logic that could do it, but the answer that comes to my mind first is to use a Python script. I use a script to set the status lights for my ceiling fan switch, however I only have one so Iā€™m not using any groups. I followed the code from this project. The sample python script there takes a group entity id (of multiple switches) and applies the settings to all of them. Sounds like what you are asking for.

1 Like

This looks like itā€™s just what Iā€™m looking for! So this python script also works with the FC200+ fan switches? I happen to own a few of those as well! Looking over the python script, do I need to modify any parameters within the .py script? Or are all the variable passed through the just send the values through the call functions?

Edit:

So I got it workingā€¦turns out I was grouping the ā€œlightā€ entity of the WD200 and not the ā€œzwaveā€ entity. Does anyone have this python script also working with FC200+ switches?

This is so awesome!! I just read in this thread "LED Mode" on HomeSeer Switches (100/200 series) that HA has support for the LEDs. Iā€™ve built a package to set a few of the states on the switch to easily enable automations to set them up.

Notes:

  • My HS-WD200+ is on node 6 so youā€™ll probably have to change the automations node_id field to align with yours.
  • Iā€™ve limited the blink frequency to max: 50 because thatā€™s five seconds between off and on and I didnā€™t care about it blinking off and on with minutes in between.
  • If you rename any of the entity_ids be aware that the last automationā€™s template looks for the number value in the entitiesā€™ names. Youā€™ll get an error if you remap the entity names but not the color automation.
  • I didnā€™t progam all of the available options for the HS-WD200+ because I donā€™t care about any of the others.

Every click of the mouse modifies the Z-Wave settings on the device, real time!

from my packages/hs_wd200.yaml file:

homeassistant:

input_boolean:
  hs_wd200_status_mode:
    name: Status Mode
    initial: on
  hs_wd200_normal_mode:
    name: Normal Mode
    initial: off

group:
  input_hs_wd200_normal_mode_on:
    name: Input HS-WD200+ Normal Mode ON
    entities:
      - input_boolean.hs_wd200_status_mode
  input_hs_wd200_status_mode_on:
    name: Input HS-WD200+ Status Mode ON
    entities:
      - input_boolean.hs_wd200_normal_mode

input_number:
  hs_wd200_leds_blink_mask:
    name: LEDs Blink Mask
    min: 0
    max: 127
    mode: box
  hs_wd200_leds_blink_frequency: # Limited this to 50 since that's 5 seconds between blinks real max is 255!!
    name: LEDs Blink Frequency
    min: 0
    max: 50

input_select:
  hs_wd200_dimmer_led_mode:
    name: Dimmer LED Mode
    options:
      - Normal mode
      - Status mode
  hs_wd200_normal_mode_led_color:
    name: Normal Mode LED Color
    options:
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_1_color:
    name: LED 1 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_2_color:
    name: LED 2 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_3_color:
    name: LED 3 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_4_color:
    name: LED 4 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_5_color:
    name: LED 5 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_6_color:
    name: LED 6 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green
  hs_wd200_led_7_color:
    name: LED 7 Color
    options:
      - 'Off'
      - White
      - Yellow
      - Cyan
      - Magenta
      - Red
      - Blue
      - Green

automation:
  - id: hs_wd200_normal_mode_panel
    alias: HS-WD200+ Normal Mode Panel
    trigger:
      platform: state
      entity_id: input_boolean.hs_wd200_normal_mode
      from: 'off'
      to: 'on'
    condition: []
    action:
      - service: homeassistant.turn_off
        data:
          entity_id: group.input_hs_wd200_normal_mode_on
      - service: input_select.select_option
        data:
          entity_id: input_select.hs_wd200_dimmer_led_mode
          option: Normal mode

  - id: hs_wd200_status_mode_panel
    alias: HS-WD200+ Status Mode Panel
    trigger:
      platform: state
      entity_id: input_boolean.hs_wd200_status_mode
      from: 'off'
      to: 'on'
    condition: []
    action:
    - service: homeassistant.turn_off
      data:
        entity_id: group.input_hs_wd200_status_mode_on
    - service: input_select.select_option
      data:
        entity_id: input_select.hs_wd200_dimmer_led_mode
        option: Status mode

  - id: hs_wd200_dimmer_led_mode
    initial_state: true
    alias: HS-WD200+ Dimmer LED Mode
    trigger:
      platform: state
      entity_id: input_select.hs_wd200_dimmer_led_mode
    condition: []
    action:
    - service: zwave.set_config_parameter
      data_template:
        node_id: 6
        parameter: 13
        value: "{{ states('input_select.hs_wd200_dimmer_led_mode') }}"

  - id: hs_wd200_normal_mode_led_color
    initial_state: true
    alias: HS-WD200+ Normal Mode LED Color
    trigger:
      platform: state
      entity_id: input_select.hs_wd200_normal_mode_led_color
    condition: []
    action:
    - service: zwave.set_config_parameter
      data_template:
        node_id: 6
        parameter: 14
        value: "{{ states('input_select.hs_wd200_normal_mode_led_color') }}"

  - id: hs_wd200_leds_blink_mask
    initial_state: true
    alias: HS-WD200+ LEDs Blink Mask
    trigger:
      platform: state
      entity_id: input_number.hs_wd200_leds_blink_mask
    condition: []
    action:
    - service: zwave.set_config_parameter
      data_template:
        node_id: 6
        parameter: 31
        value: "{{ states('input_number.hs_wd200_leds_blink_mask') | int }}"

  - id: hs_wd200_leds_blink_frequency
    initial_state: true
    alias: HS-WD200+ LEDs Blink Frequency
    trigger:
      platform: state
      entity_id: input_number.hs_wd200_leds_blink_frequency
    condition: []
    action:
    - service: zwave.set_config_parameter
      data_template:
        node_id: 6
        parameter: 30
        value: "{{ states('input_number.hs_wd200_leds_blink_frequency') | int }}"

# This automation is dependent on the entity_id names, see parameter template caclulation.
  - id: hs_wd200_led_color
    initial_state: true
    alias: HS-WD200+ LED Color
    trigger:
      platform: state
      entity_id: input_select.hs_wd200_led_1_color, input_select.hs_wd200_led_2_color, input_select.hs_wd200_led_3_color, input_select.hs_wd200_led_4_color, input_select.hs_wd200_led_5_color, input_select.hs_wd200_led_6_color, input_select.hs_wd200_led_7_color
    condition: []
    action:
    - service: zwave.set_config_parameter
      data_template:
        node_id: 6
        parameter: "{{ trigger.to_state.entity_id[26] | int + 20 }}"
        value: "{{ trigger.to_state.state }}"

If youā€™re using custom:button-card like me you can use this card definition to get functionality like I show in the animated gif at the top:

cards:
  - cards:
      - color_type: card
        entity: input_boolean.hs_wd200_normal_mode
        name: Normal Mode
        show_icon: false
        state:
          - value: 'on'
          - value: 'off'
        tap_action:
          action: call-service
          service: homeassistant.turn_on
          service_data:
            entity_id: input_boolean.hs_wd200_normal_mode
        type: 'custom:button-card'
      - color_type: card
        entity: input_boolean.hs_wd200_status_mode
        name: Status Mode
        show_icon: false
        state:
          - value: 'on'
          - value: 'off'
        tap_action:
          action: call-service
          service: homeassistant.turn_on
          service_data:
            entity_id: input_boolean.hs_wd200_status_mode
        type: 'custom:button-card'
    type: horizontal-stack
  - card:
      entities:
        - entity: input_select.hs_wd200_normal_mode_led_color
      title: Normal Mode Options
      type: entities
    conditions:
      - entity: input_boolean.hs_wd200_normal_mode
        state: 'on'
    type: conditional
  - card:
      entities:
        - entity: input_number.hs_wd200_leds_blink_frequency
        - entity: input_number.hs_wd200_leds_blink_mask
        - entity: input_select.hs_wd200_led_7_color
        - entity: input_select.hs_wd200_led_6_color
        - entity: input_select.hs_wd200_led_5_color
        - entity: input_select.hs_wd200_led_4_color
        - entity: input_select.hs_wd200_led_3_color
        - entity: input_select.hs_wd200_led_2_color
        - entity: input_select.hs_wd200_led_1_color
      title: Status Mode Options
      type: entities
    conditions:
      - entity: input_boolean.hs_wd200_status_mode
        state: 'on'
    type: conditional
type: vertical-stack

Now, I need to bake in some automations to set some of these LEDsā€¦

Anyone using this switch with the new ozw and successfully using scenes (2, 3, 4x taps) for automations?

I have been using the GE switch with double tap for a long time, since before HA (was with Smartthings) and it works but recently found out that with the new ozw integration ozw itself doesnā€™t report the events that this switch sends out given that the GE does scene control in a crude way. Since I only really use the scene control in 1 maybe 2 rooms in my house, and I am ok with replacing those 2 switches with homeseer down the line, but i really want this multi tap feature.

Iā€™m trying to use this but Iā€™m not sure where to put the cards stuff. Does that go into a file somewhere? Or directly into the lovelace raw configuration editor? I tried pasting it into the raw configuration editor and all I get is three unnamed views and two buttons (Normal Mode and Status Mode). It seems like maybe the spacing is off. This is what I have:

views:
  - cards:
      - color_type: card
        entity: input_boolean.hs_wd200_normal_mode
        name: Normal Mode
        show_icon: false
        state:
          - value: 'on'
          - value: 'off'
        tap_action:
          action: call-service
          service: homeassistant.turn_on
          service_data:
            entity_id: input_boolean.hs_wd200_normal_mode
        type: 'custom:button-card'
      - color_type: card
        entity: input_boolean.hs_wd200_status_mode
        name: Status Mode
        show_icon: false
        state:
          - value: 'on'
          - value: 'off'
        tap_action:
          action: call-service
          service: homeassistant.turn_on
          service_data:
            entity_id: input_boolean.hs_wd200_status_mode
        type: 'custom:button-card'
    type: horizontal-stack
  - card:
      entities:
        - entity: input_select.hs_wd200_normal_mode_led_color
      title: Normal Mode Options
      type: entities
    conditions:
      - entity: input_boolean.hs_wd200_normal_mode
        state: 'on'
    type: conditional
  - card:
      entities:
        - entity: input_number.hs_wd200_leds_blink_frequency
        - entity: input_number.hs_wd200_leds_blink_mask
        - entity: input_select.hs_wd200_led_7_color
        - entity: input_select.hs_wd200_led_6_color
        - entity: input_select.hs_wd200_led_5_color
        - entity: input_select.hs_wd200_led_4_color
        - entity: input_select.hs_wd200_led_3_color
        - entity: input_select.hs_wd200_led_2_color
        - entity: input_select.hs_wd200_led_1_color
      title: Status Mode Options
      type: entities
    conditions:
      - entity: input_boolean.hs_wd200_status_mode
        state: 'on'
    type: conditional
type: vertical-stack

Hi @joe248, it should go directly into the lovelace editor. Mine looks like this when I click edit in the browser:

It doesnā€™t allow the easy editor, but you can see the code and the result. You need to have all the other things defined for the cards to reference otherwise it wonā€™t work properly.

Ah, I see now. That worked. Thanks!

I have this all working, thank you for this!. Thing is, I have dozens of Homeseer dimmers and switches. I want to add a card at the top of the vertical stack with an input_select list of entities to choose which switch (node_id) that I want to modify or reference.