Slow automation of 4+ Z wave devices

Read that link you posted. Very interesting. Do you know can I install that now? I have an extra raspberry pi laying around. Would be nice to put that Z-Wave implementation on there just to play around and see what it’s like.

No I think it will still take some time before we can install it. It’s still in development.

I’m on the latest versions of both zwave-js and home assistant and seeing the exact issues described here with my new innoveli red dimmers. Individual zwave commands for all devices are instant, but activating a script that turns them all (6 total) on or off will cause delays as described here.

@piiot moving the placement of the z wave controller to a more central location solved the issue, mostly, for me.

Sometimes things are still slow though. Actually just last night, we have a smartbutton on table next to couch. Pressing it 5x will turn off all kitchen lights. Wife pressed it and the lights turned off 1 by 1, with about a 2 sec delay between each.

But overall, its much better than my videos had shown. I just hope they are planning to incorporate multicasting in ZwaveJS. As you can see from my Hubitat video, which has multicasting, how much faster it is.

1 Like

Ah so multicast is still not supported, and that seems to be the main issue. Gotcha. I’m passing my Aeotec usb hub through to a hyper-v VM in a server closet, so I think I’d rather just keep everything consolidated there for now. I do really appreciate all the leg work you’ve done here troubleshooting - as should Inovelli. You deserve some free switches from them imo :slight_smile:

Is this still an ongoing issue? I still run into the same issues, running the very latest version of HA:

Core: core-2021.12.9
Supervisor: supervisor-2021.12.2
OS: Home Assistant OS 7.1
Z-Wave JS: Current version: 0.1.52

Hardware:
-Fibaro Z-wave dimmer 2
-Aeotec Z-Stick Gen5
-Intel NUC i3 (running HA virualized on Proxmox)

I still experience the same issues as described in this post. Did anyone solve those issues yet? Already tried to heal my network, but when I switch 5 lights in my living room at once (light group), the last one can take up to 40 seconds, which is not accetpable.

Can this be resolved by switching to Zwave to MQTT? Can anyone confirm?
Is the multicast feature supported on a Zwave to MQTT platform?

I have a ubuntu server running VM. Z-wave js and 89 devices. I have an automation which turns on my bar in the basement via motion sensor. It activates 8 lights. It all happens within 500ms. It is as fast as the 100&40kbit communication will allow. This automation is my canary in the coal mine. If something is wrong (not very often) then it will be delayed. Usually it is a broken sensor or something I have done to the system. (I had a mimolite on garage door go out Sunday. Automation slowed to about 1-2 sec) I am on home assistant 2021.12.9, Home assistant OS 7.1, and the following addons - Terminal & SSH (9.3.0), Log Viewer (0.12.1), Z-Wave JS (0.1.52), AppDaemon 4 (0.8.0), Check Home Assistant configuration (3.9.0), Samba share (9.5.1). My server is a dual Xeon Supermicro with 32 gb memory and 93 gb virtual disk on 1TB hard drive. I have GE/Jasco and HomeSeer switches and dimmers. My switches and sensors are not added securely. Locks are added securely. I have surge control at main panel and subpanels. I have my USB z-wave dongle (ben 5) on a 15’ USB extension to get it away from my server rack.

Have you tried an automation without the group?
I activate all of my switches by a call service. I don’t know if this makes a difference.

- id: 'XXXXXXXXXXXXX'
  alias: Bar Lights - Turn on and off based on stairwell light.
  description: Turn on and off all the lights in the bar area
  trigger:
    - id: 'bar_on'
      platform: state
      entity_id: binary_sensor.bar_stairwell_motion_sensor_motion
      from: 'off'
      to: 'on'
    - id: 'bar_on'
      platform: state
      entity_id: binary_sensor.bar_main_motion_sensor_motion
      from: 'off'
      to: 'on'
    - id: 'bar_on'
      platform: state
      entity_id: switch.stairwell_light
      from: 'off'
      to: 'on'
    - id: 'bar_off'
      platform: state
      entity_id: binary_sensor.bar_main_motion_sensor_motion
      from: 'on'
      to: 'off'
      for: '00:01:30'
    - id: 'bar_off'
      platform: state
      entity_id: switch.stairwell_light
      from: 'on'
      to: 'off'
    - id: 'bar_off1'
      platform: state
      entity_id: binary_sensor.bar_stairwell_motion_sensor_motion
      from: 'on'
      to: 'off'
      for: '00:01:30'
  condition: []
  action:
  - choose:
    - conditions:
        - "{{ trigger.id == 'bar_on' }}"
      sequence:
        - service: switch.turn_on
          target:
            entity_id:
            - switch.area_cans
            - switch.bar_pool_table_light
            - switch.rope_lights
            - switch.bar_hall_to_media
            - switch.bar_landing
            - switch.stairwell_light
        - service: light.turn_on
          target:
            entity_id:
            - light.bar_pendant_light
            - light.bar_back_bar_cans
          data:
            brightness_pct: 50
    - conditions:
        - "{{ trigger.id == 'bar_off' }}"
      sequence:
        - service: switch.turn_off
          target:
            entity_id:
            - switch.area_cans
            - switch.bar_pool_table_light
            - switch.rope_lights
            - switch.bar_hall_to_media
            - switch.bar_landing
            - switch.stairwell_light
        - service: light.turn_off
          target:
            entity_id:
            - light.bar_back_bar_cans
            - light.bar_pendant_light
    - conditions:
        - "{{ trigger.id == 'bar_off1' }}"
        - "{{ states('binary_sensor.bar_main_motion_sensor_motion') == 'off' }}"
      sequence:
        - service: switch.turn_off
          target:
            entity_id:
            - switch.area_cans
            - switch.bar_pool_table_light
            - switch.rope_lights
            - switch.bar_hall_to_media
            - switch.bar_landing
            - switch.stairwell_light
        - service: light.turn_off
          target:
            entity_id:
            - light.bar_back_bar_cans
            - light.bar_pendant_light
    default: []
  mode: single

I did not try an automation, but I did try a script which changes the lights according to the luminance level of an outside sensor. With both (light group or script), I experience the same performance issues.

I also have Zigbee lightbulbs which are not having performance issues at all (I use those in de garden, even further away then the ZWAVE dimmers)

Could be that I’ve added them securely, can try to include them insecure indeed. I was planning to move to Zwave2mqtt anyway (ubuntu on a lxc container), so I’ll give that a try as well.

In the past I added all of my Z-Wave devices secure, when only S0 was supported. My devices do not support S2, so I’ve excluded them and included them again (insecure), and everything seems to be working fine so far with de Home assistand Zwave-JS add-on. Groups and scripts are now responing as fast as my Zigbee devices.

I cant rly help you with your problem, but I had the same problem. My Zwave automations were very slow, I added all devices with S2 security. After I found out that multicast is not able to work on S2 devices I excluded all devices in my upper basement and included them insecure again (because I had huge delays on my upper basement covers about 10 seconds later the covers move up or down in automations).
Now with insecure, my upper basement automations use multicast and this is working very good.
Almost simultaneously all covers move up :slight_smile: and also lights and so on use mutlicast.

So maybe multicast in automations is a good choice for you?

I’ve had this problem since I first installed multiple Zwave Fibaro in-wall devices (7) in my kitchen. My suspicion is that they send power reports when the power consumption changes and this happens every time you turn them on, which floods the network.

I have a partial solution, though: multicast.
I replaced the on/off commands to all the devices with multicast and it is really fast.

However, there’s a problem with multicast zwave in HA right now: you cannot send BASIC commands to devices of different types. This means that I have to send one multicast command to all the dimmers and one multicast command to all the on/off switches. Still, much faster than sending regular on/off through HA.

Here’s what my code looks like for the dimmers:

    - service: zwave_js.multicast_set_value
      data:
        command_class: '38' # COMMAND_CLASS_SWITCH_MULTILEVEL
        endpoint: 1
        property: targetValue
        value: 99 # Turn on full
        entity_id:
          - light.dining_room_ceiling_switch
          - light.dining_room_table_switch
          - light.dining_room_accent_switch
          - light.kitchen_ceiling_switch
          - light.kitchen_counter_switch

You can use COMMAND_CLASS_SWITCH_BINARY for on/off switches and I’ve filed a bug on the lack of COMMAND_CLASS_BASIC support (ZwaveJS multicast CLASS_BASIC fails to validate (and send)across multiple different devices · Issue #54631 · home-assistant/core · GitHub).

1 Like

My devices support only S0 security (Fibaro dimmers and switches). This is also a legacy mode for Zwave-JS so I have noticed (and not recommended).

Added them insecurely, and everything works flawless now :slight_smile:

So I cannot try S2, since my devices don’t support that mode. S2 is now the standard when the devices support it, and a fallback to insecure in default inclusion mode. S0 isn’t used by default anymore.