Problems with zwave after upgrade 4.37 -> 5.1

Hello everyone,

I’ve noticed that I’m getting a lot of messages saying that ZWave nodes are losing connection, but then coming back online shortly afterwards. It also seems that ZWave signals are not being passed through relatively often (e. g. door contacts) and there also seem to be frequent long response times.

It seems to have happened with the upgrade from 4.3.7 to 5.1.

Does anyone have any idea what might be causing this or what I should try to do to fix the problem?

edit:
One more thing: I have started a network repair, but the problem still seems to persist. Furthermore, no network map is displayed. Neighbours are present except for the controller (see pictures)

My system:
Openhabian 5.1
Raspberry 4B, 8GB
Razberry2 Z-Wave Shield

Thank you


2026-01-26 06:41:34.032 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node97' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 06:41:39.244 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node97' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]

2026-01-26 07:02:21.769 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node12' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:02:24.532 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node12' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

2026-01-26 07:03:36.112 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:04:28.752 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

2026-01-26 07:04:48.717 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:05:15.152 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]

2026-01-26 07:09:27.984 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node13' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:09:52.469 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node13' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]


2026-01-26 07:31:48.076 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:31:50.556 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]

2026-01-26 07:45:54.558 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node41' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

[....]

2026-01-26 07:57:51.417 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 07:58:22.877 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]

2026-01-26 08:11:12.222 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 08:11:19.312 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]


2026-01-26 08:27:34.693 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 08:28:00.694 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller

2026-01-26 08:28:31.301 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

[....]

2026-01-26 08:28:53.549 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE


the controller cfg:

version: 1
things:
  zwave:serial_zstick:z_wave_ctrl_01:
    isBridge: true
    label: AAA_Zwave_Controller
    config:
      port: /dev/ttyAMA0
      controller_master: true
      controller_sisnode: 1
      controller_inclusiontimeout: 30
      controller_maxawakeperiod: 10
      controller_wakeupperiod: 3600
      heal_time: 10
      controller_softreset: false
      controller_hardreset: false
      controller_exclude: false
      controller_sync: false
      inclusion_mode: 2
      security_inclusionmode: 2
      security_networkkey: 5E [....] EA
    channels:5
      serial_sof:
        type: serial_sof
      serial_ack:
        type: serial_ack
      serial_nak:
        type: serial_nak
      serial_can:
        type: serial_can
      serial_oof:
        type: serial_oof
      serial_cse:
        type: serial_cse

Another weird situation - the controller has no neigbours.

I already removed the controller thing and re-added it, but nothing has changed.

Other devices have neigbours:

Generally, the off-on behavior is indicative of network congestion. Nodes get marked offline if they do not respond to a command after three tries (with a 5 second limit) but then get marked online if they finally do answer. An event log doesn’t have diagnostic value as to the underlying cause. A ZW binding debug might show more. If your upgrade was recent, I would disable the network heal and see if things get better over a couple of days. A quicker option might be to restart OH (also with the network heal off). That would clear the current queue. Also, do you have any nodes that are permanently offline or missing as those can cause network problems (zombie nodes)?

The network map is a separate issue and is not related. There were changes in the UI for 5.1 and I thought I saw an issue related to the map (that was recently fixed). Are you on 5.1.1 or 5.1.0? The map is also not a diagnostic tool but is a pretty picture. Z-Wave network map is broken in OH 5.1 · Issue #3672 · openhab/openhab-webui

The version was 5.1.0. I have now updated to 5.1.1.

I also had two zombie nodes. However, these were battery-powered devices. I always assumed that battery-powered devices would not cause any major problems as zombies. Was I perhaps wrong about that? I will monitor this for a day or two and see if the problems have improved.

EDIT:

I checked GitHub to see what had changed in 5.1.1. There is no mention of changes to the ZWave binding. Had I known that, I would have updated much sooner. This thread discusses further fixes to the binding: https://community.openhab.org/t/z-wave-exclusion-button-missing-in-z-wave-controller/167996

EDIT 2: Ok, now I’ve seen it under Issue 3673 too. :face_with_spiral_eyes:

The zombie battery nodes will not cause problems.

If it is not better the debug log might be helpful.

You should have the map back on 5.1.1, but the other actions won’t work right now, fixes are identified but need to be merged.

One other thing to note on the map; To accommodate 700 and 800 chip z-sticks the controller was removed from the find neighbors around OH4.1, so the arrows from nodes will only point into the controller. No worries, just assume if a node sees the controller as a neighbor the reverse will also be true.

The Z-Wave map is now displayed again.
The problem with the messages still persists. I created a debug log.
I’m not really sure what I can read from it
(even with https://opensmarthouse.org/utilities/logviewer/zwave/).

What strikes me right now is that these are all battery-powered devices. The last cases observed, with one exception, appear to be my radiator valves.

I have listed the relevant times here:

2026-01-27 08:44:37.854 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node13' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 08:44:46.245 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node13' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 08:46:23.709 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 08:46:34.258 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:00:01.401 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:00:04.363 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:00:56.045 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:01:31.810 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:01:48.670 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:02:18.566 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:02:21.017 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:03:03.884 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node72' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:16:16.490 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:16:19.018 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node68' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 09:22:12.259 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 09:22:33.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 10:41:19.526 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 10:49:38.126 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node11' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE
2026-01-27 11:03:45.721 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller
2026-01-27 11:03:45.805 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwave:device:z_wave_ctrl_01:node70' changed from OFFLINE (COMMUNICATION_ERROR): Node is not communicating with controller to ONLINE

The logs:
DropBox

You need to cut your reporting way way back. Do you have the controller in more association groups than the lifeline? Also don’t use % thresholds, maybe a defined threshold like 10 watts (or some level that you really care about) report on time only if at all possible. It also seems like a lot of polls. It is hard to decipher the logs, but in general all the reporting is occupying the controller, so when you actually want to send a command, it is busy.

Not to pick on this, but the first file I opened had this in the first minute.

RED times are going to be noticeable on commands(TX-also red). The logs are filled with aborts and cancelled for commands. It is not related to 5.1, just beyond the limit of the ZW radio (100kb max)

Okay, thank you for the information. I wasn’t aware of that. I’ll take my time to adjust the settings.

Not saying this approach is right for you (or anyone else). Unsolicited advice.

tl;dr. the theme is I only report what I use for analysis or look at regularly.

I have the almost all electrical usage monitored. I never report voltage (mostly constant) or amperes (V*A = W). I do some wattage reports with a reasonable threshold. I have OH graphs on the wattage. Mostly I get a once-a-day KWH reading. One device I do hourly. I do persist the KWH readings in a mysql DB and import them into Excel periodically to analyze. I won’t buy energy monitors where I can’t control the reporting.

The only polling I use is because my older thermostats don’t always report mode, so have a moderately complex rule to when the temperatures indicate that the furnace (or AC) should be on (or off). I don’t report fan modes as duplicate (at least in my setup)

good luck