Skip to content

[zwave-js] Timeout type not supported #19497

@alphen87

Description

@alphen87

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)

  1. Update zwave-js(-ui) to latest version
  2. Add a device that has a timeout field type (e.g. Fibaro walli dimmer FGWDEU or Aeotec ZW175)

Your Environment

Openhab 5.0.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn unexpected problem or unintended behavior of an add-on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions