Zwave Network is slow

Diagram looks like a mesh. It will continue to evolve as routes fail. This process is ongoing.

I would continue to look at the zwavejs logs and look at the zwave diagnostics sensors for the devices (you may need to enable these entities) to find devices that are transmitting a lot and then try to reduce what they are transmitting,

Here’s a screenshot of a zwave device. Those comm stats are what you want to look at.

I have them all in a table so it’s easy to look at. In my system you can see the tv_power strip is sending the most traffic. What you want to do is look at this data (it gets reset whenever you restart zwavejs) and find the nosiest devices and also verify the data makes sense. For example, if a motion sensor is transmitting 1000x a day and it’s in the attic - thats not what you would expect. Also look at the timeouts - really this should be close to zero. I have a few with timeouts and these occurred around a power outage. Timeouts are more common after a heal before the netowrk reallt settles down. Again, if you have devices with alot of timeouts, those indicate a problem.

2 Likes

Thanks for the correction. Is the limitation I’m thinking about associating devices that are secure / not secure? Want to get my facts straight.

1 Like

Yeah, associations need to be at the same security class.

2 Likes

You can try setting static routes to see if that improves your responsiveness. Its generally not recommended to set static routes unless they are directly to the controller.. I have static routes setup for a couple of devices in my network and they work flawlessly.

To setup a static route simply click on a node in the network graph to view the node properties. Then scroll to the bottom. The priority route is from the controller to a node and the return route is from a node to the controller.

1 Like

I guess it’s not an issue but I feel it should just connect directly. Thank you though!

Thank you everyone for helping! My network is soooo much better, I have barely any lag, I do want to post more log in case there is something else, but removing the devices as S0 was definitely causing the issues. Here I thought it was the new hub but it was only because I increased security where I could.

2 Likes

How do i get a table like that?
With all the tx rx and rssi?

Many thanks

It took a bit to get it going. It uses the flex-table-card

Here is the YAML for the view.

path: comms
title: comms
panel: true
cards:
  - type: horizontal-stack
    cards:
      - type: custom:flex-table-card
        title: Zwave Comms
        sort_by: to-
        entities:
          include: sensor.zw_comms*
          exclude: sensor.zw_comms_zwave_stick*
        columns:
          - name: name
            data: nm
            modify: >-
              '<a href="../lovelace-zwave/zwave_details#binary_sensor.zw_' + x + '_online">' + x + '</a>'
          - name: Rx
            data: rx
            align: right
            modify: parseFloat(x)
          - name: Tx
            data: tx
            align: right
            modify: parseFloat(x)
          - name: Dopped RX
            data: d_rx
            align: right
            modify: parseFloat(x)
          - name: Dropped TX
            data: d_tx
            align: right
            modify: parseFloat(x)
          - name: Timeout
            data: to
            align: right
            modify: parseFloat(x)
          - name: RTT
            data: rtt
            align: right
            modify: parseFloat(x)
          - name: rssi
            data: rssi
            align: right
            modify: parseFloat(x)

and it wants all the data assembled for each row in a single entity. Create a template

  - sensor:
      - name: zw_comms_attic_door
        state: "{{states('sensor.attic_door_node_status')}}"
        attributes:
          d_rx: "{{ states('sensor.attic_door_commands_dropped_rx')  }}"
          d_tx: "{{ states('sensor.attic_door_commands_dropped_tx')  }}"
          rtt: "{{ states('sensor.attic_door_round_trip_time')  }}"
          rx: "{{ states('sensor.attic_door_successful_commands_rx')  }}"
          tx: "{{ states('sensor.attic_door_successful_commands_tx')  }}"
          to: "{{ states('sensor.attic_door_timed_out_responses')  }}"
          lat: "{{ states('sensor.zw_attic_door_latency')  }}"
          online: "{{ states('binary_sensor.zw_attic_door_online')  }}"
          last: "{{ states('sensor.zw_attic_door_last_updated')  }}"
          nm: "attic_door"
          node_id: 45
          rssi: "{{ states('sensor.attic_door_rssi')  }}"

And you need to do that for each device. I use shell scripts to generate these for each device.

2 Likes