ZWAVE devices lost communication

Hi!
After restoring HA to a new virtual box, 2 of my old TKB Home TZ55D devices are not possible to turn on - off or dim.

Working:

  • Pinging device
  • Perform Level change up/down from Z-Wave JS panel

No improvement on

  • Clear retained messages
  • Update Topics
  • Rebuild routes
  • Refresh values
  • Re-interview node
  • Removed associations
  • Power cycled whole system all zwave devices and PC

Events for turning off (newest msg first):

6/12/2024, 2:19:53 PM - value updated
Arg 0:
└─commandClassName: Multilevel Switch
└─commandClass: 38
└─property: currentValue
└─endpoint: 0
└─newValue: 39
└─prevValue: 0
└─propertyName: currentValue

6/12/2024, 2:19:48 PM - value updated
Arg 0:
└─commandClassName: Multilevel Switch
└─commandClass: 38
└─property: currentValue
└─endpoint: 0
└─newValue: 0
└─prevValue: 39
└─propertyName: currentValue

6/12/2024, 2:19:48 PM - value updated
Arg 0:
└─commandClassName: Multilevel Switch
└─commandClass: 38
└─endpoint: 0
└─property: targetValue
└─newValue: 0
└─prevValue: 0
└─propertyName: targetValue

The third event seems to be the problem, how can I find the source?

No Groups associated.
Nothing found in system log file.

Thanks for watching

Lars

Submit a bug report to node-zwave-js. Sounds like TKB devices are not following the Z-Wave specification as expected, see TKBHome TZ67 does not understand Multilevel Switch commands encoded with V2 (including duration byte) · Issue #6917 · zwave-js/node-zwave-js · GitHub.

For now you can either downgrade to a version of Z-Wave JS before v12.9.0, or install a custom device config file modified with the compat flag is shown here.

Thanks for quick response, I’ll look into this

You can also first verify it is this bug by running this driver code and seeing if it works. (Replace 164 with your node number). Go to Hamburger Menu → Advanced Actions → Driver function. Payload 99 turns on, 0 turns off.

const { logger, zwaveClient, require } = this
const {CommandClass} = require("zwave-js");
const {CommandClasses} = require("@zwave-js/core");

const cc = new CommandClass(driver, {
    nodeId: 164,
    ccId: CommandClasses["Multilevel Switch"], // or 0x5d
    ccCommand: 0x01,
    payload: Buffer.from([99]),
});
await driver.sendCommand(cc);

Sorry already lost, Found Hamburger menu / Advanced actions, after ticked the actual device. But no “Driver function”

Return: Error while calling driverFunction: The node did not acknowledge the command (ZW0204)

I copied tz55d file from same location as tz67 above and modified. Tail of tz55d:

  {
		"#": "5",
		"label": "Suspend Group 4",
		"description": "Disable transmitting commands to devices that are in Group 4",
		"valueSize": 1,
		"minValue": 0,
		"maxValue": 1,
		"defaultValue": 0
	}
],
"compat": {
	// The device does not react to Multilevel Switch commands that include a duration field
	"encodeCCsUsingTargetVersion": true
}

}

Complete path /homeassistant/store/config/tz55d.json.
Power cycled HA
Re-interviewed the devices

Is this correct done?

Sounds more like communication issues then. Maybe just a coincidence your initial problem statement matched the bug.

Try the troubleshooting, starting with a USB extension cable.

https://zwave-js.github.io/node-zwave-js/#/troubleshooting/index?id=troubleshooting

You will probably start having to collect driver logs.

https://zwave-js.github.io/zwave-js-ui/#/troubleshooting/generating-logs?id=driver-logs

No. The link I posted is for Z-Wave JS UI, not Home Assistant. The config file therefore needs to go into the ZUI store directory.

https://zwave-js.github.io/zwave-js-ui/#/screenshots?id=store-explorer

Tried to move the config file but no improvement.

I managed to get a more detailed log when trying to turn on light, but the content is beyond my knowledge.
I don’t know if this enough to file a bug report?

2024-06-13T08:28:38.260Z DRIVER   all queues busy
2024-06-13T08:28:38.262Z SERIAL » 0x010b00130804260163ff252451                                        (13 bytes)
2024-06-13T08:28:38.262Z DRIVER » [Node 008] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      36
                                  └─[MultilevelSwitchCCSet]
                                      target value: 99
                                      duration:     default
2024-06-13T08:28:38.285Z SERIAL « [ACK]                                                                   (0x06)
2024-06-13T08:28:38.292Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2024-06-13T08:28:38.292Z SERIAL » [ACK]                                                                   (0x06)
2024-06-13T08:28:38.293Z DRIVER « [RES] [SendData]
                                    was sent: true
2024-06-13T08:28:38.308Z SERIAL « 0x0107001324000003cc                                                 (9 bytes)
2024-06-13T08:28:38.308Z SERIAL » [ACK]                                                                   (0x06)
2024-06-13T08:28:38.309Z DRIVER « [REQ] [SendData]
                                    callback id:     36
                                    transmit status: OK
2024-06-13T08:28:38.311Z CNTRLR   [Node 008] [~] [Multilevel Switch] currentValue: 0 => 99          [Endpoint 0]
2024-06-13T08:28:38.313Z DRIVER   all queues idle
2024-06-13T08:28:43.313Z DRIVER   all queues busy
2024-06-13T08:28:43.315Z SERIAL » 0x01090013080226022525cb                                            (11 bytes)
2024-06-13T08:28:43.315Z DRIVER » [Node 008] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      37
                                  └─[MultilevelSwitchCCGet]
2024-06-13T08:28:43.318Z SERIAL « [ACK]                                                                   (0x06)
2024-06-13T08:28:43.326Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2024-06-13T08:28:43.327Z SERIAL » [ACK]                                                                   (0x06)
2024-06-13T08:28:43.328Z DRIVER « [RES] [SendData]
                                    was sent: true
2024-06-13T08:28:43.342Z SERIAL « 0x0107001325000002cc                                                 (9 bytes)
2024-06-13T08:28:43.343Z SERIAL » [ACK]                                                                   (0x06)
2024-06-13T08:28:43.345Z DRIVER « [REQ] [SendData]
                                    callback id:     37
                                    transmit status: OK
2024-06-13T08:28:43.354Z SERIAL « 0x01090004000803260300dc                                            (11 bytes)
2024-06-13T08:28:43.354Z SERIAL » [ACK]                                                                   (0x06)
2024-06-13T08:28:43.357Z CNTRLR   [Node 008] [~] [Multilevel Switch] currentValue: 99 => 0          [Endpoint 0]
2024-06-13T08:28:43.362Z DRIVER « [Node 008] [REQ] [ApplicationCommand]
                                  └─[MultilevelSwitchCCReport]
                                      current value: 0
2024-06-13T08:28:43.363Z DRIVER   all queues idle
'''

Just to be sure, when Z-Wave JS starts up it tells you were it loads the config files from. There should also be no errors around this point.

10:07:35.913 CNTRLR   [Node 002] Embedded device config loaded
10:07:35.977 CNTRLR   [Node 009] User-provided device config loaded

“Embedded” is the built-in file, “User-provided” is the one you added to the store/config directory. Is “User-provided” showing for your node in question?

I managed to get a more detailed log when trying to turn on light, but the content is beyond my knowledge.

This log looks fine, aside from the incorrect value report. There are no communication errors. What do these logs look like when you try running the driver function from above?

Unfortunately saving in the settings window crash the HA system, so I can’t get any log file. Doesn’t seem connected to what changed.

I saw the settings file in the store, is it ok to edit debug level and file log there?