-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Expected Behavior
When updating zwave-js-ui from 11.3.0 to 11.5.2 (current latests) the zwave-js addon should work with all devices.
Current Behavior
When updating to latestversion of zwave-js-ui I have some issues with certain devices. The log (and web interface) state the following:
2025-10-17 20:36:07.288 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'zwavejs:node:socket:node4' changed from UNKNOWN to OFFLINE (CONFIGURATION_ERROR): Initialization or update failed, could not build channels
Further debug logging:
[WARN ] [ejs.internal.conversion.BaseMetadata] - Node 4, unexpected value type: null, please file a bug report
[WARN ] [.internal.handler.ZwaveJSNodeHandler] - Node 4. Error generating type information
java.lang.NullPointerException: Cannot invoke "org.openhab.binding.zwavejs.internal.api.dto.MetadataType.ordinal()" because "type" is null
at org.openhab.binding.zwavejs.internal.conversion.BaseMetadata.correctedType(BaseMetadata.java:420) ~[?:?]
at org.openhab.binding.zwavejs.internal.conversion.BaseMetadata.itemTypeFromMetadata(BaseMetadata.java:486) ~[?:?]
at org.openhab.binding.zwavejs.internal.conversion.ChannelMetadata.itemTypeFromMetadata(ChannelMetadata.java:74) ~[?:?]
at org.openhab.binding.zwavejs.internal.conversion.BaseMetadata.<init>(BaseMetadata.java:123) ~[?:?]
at org.openhab.binding.zwavejs.internal.conversion.ChannelMetadata.<init>(ChannelMetadata.java:61) ~[?:?]
at org.openhab.binding.zwavejs.internal.type.ZwaveJSTypeGeneratorImpl.generate(ZwaveJSTypeGeneratorImpl.java:145) ~[?:?]
at org.openhab.binding.zwavejs.internal.handler.ZwaveJSNodeHandler.setupThing(ZwaveJSNodeHandler.java:576) ~[?:?]
at org.openhab.binding.zwavejs.internal.handler.ZwaveJSNodeHandler.internalInitialize(ZwaveJSNodeHandler.java:382) ~[?:?]
at org.openhab.binding.zwavejs.internal.handler.ZwaveJSNodeHandler.lambda$3(ZwaveJSNodeHandler.java:343) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) [?:?]
Possible Solution
After some digging I noticed there is a difference in the type in one of the parameters. In the older version of zwave-js-ui a number
was replaced with timeout
when looking at the debug info, which looks like an unsupported type here: https://github.com/openhab/openhab-addons/blob/main/bundles/org.openhab.binding.zwavejs/src/main/java/org/openhab/binding/zwavejs/internal/api/dto/MetadataType.java#L20. Not entirely sure, but i suspect the timeout
type could be mapped to a number type, but i have not found any documentation about it yet.
snippet of debug info in zwave-js-ui 11.3.0:
{
"id": "4-117-0-timeout",
"nodeId": 4,
"toUpdate": false,
"commandClass": 117,
"commandClassName": "Protection",
"endpoint": 0,
"property": "timeout",
"propertyName": "timeout",
"type": "number",
"readable": true,
"writeable": true,
"label": "RF protection timeout",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 255,
"list": false,
"lastUpdate": 1760729674412
},
snippet of debug info in zwave-js-ui 11.5.2:
{
"id": "4-117-0-timeout",
"nodeId": 4,
"toUpdate": false,
"commandClass": 117,
"commandClassName": "Protection",
"endpoint": 0,
"property": "timeout",
"propertyName": "timeout",
"type": "timeout",
"readable": true,
"writeable": true,
"label": "RF protection timeout",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"lastUpdate": 1760731983960
},
Steps to Reproduce (for Bugs)
- Update zwave-js(-ui) to latest version
- Add a device that has a timeout field type (e.g. Fibaro walli dimmer FGWDEU or Aeotec ZW175)
Your Environment
Openhab 5.0.2