# Upgrading to zwave-js version 11

**URL:** <https://discourse.nodered.org/t/upgrading-to-zwave-js-version-11/102010>\
**Category:** Developing Nodes\
**Created:** [29 October 2026 01:41 UTC](https://discourse.nodered.org/t/upgrading-to-zwave-js-version-11/102010 "2026-10-29T01:41:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ottsm](https://avatars.discourse-cdn.com/v4/letter/o/ebca7d/32.png) [@ottsm](https://discourse.nodered.org/u/ottsm)\
**Post date:** [29 October 2026 01:41 UTC](https://discourse.nodered.org/t/upgrading-to-zwave-js-version-11/102010/1 "2026-10-29T01:41:38Z")

</div>

I've been converting my old flows over to version 11 of zwave.js. First of all I appreciate all the hard work that was put into this development. I figured most of what is needed in my code to make the conversion. One issue is really got me struggling, at least as far as trying to make it as simple as possible. Before when I would first start a flow I would always use a GET command to retrieve the initial value. The get command would go to the device node and then pass the information into the event filter (now the splitter) node. Now when I use the get command node it only retrieves the value and the splitter node cant do anything with the message coming from the device node. Below is an example of my old code;

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/6/865949b8cdaf404935ebabfc738e69baeb644a5a.png)

This kept things simple, the function node just needed to determine which value to use, the current value or the new value (with the new splitter command it is now prevValue and newValue);

```flows
if (!isNaN(msg.payload.object.currentValue)) {
    flow.set("CurrentTemp", msg.payload.object.currentValue);
}
if (!isNaN(msg.payload.object.newValue)) {
    flow.set("CurrentTemp", msg.payload.object.newValue);
}

msg.payload = flow.get("CurrentTemp") + "°F";

node.status({ fill: "blue", shape: "ring", text: msg.payload });
return msg;

```

This all avoided the problem of waiting as long as 12 hours for a battery reading to update for the first time or until an change occurred to trigger an event.

I'm now trying to use the following injecting into the controller node to get all the global data

```flows
msg.payload = {
    cmd: {
        api: 'DRIVER',
        method: 'getValueDB'
    }
};
return msg;

```

This gets to be cumbersome to try and figure out what to extract out of the global message but it can be done. Would be a good feature if an option existed on the device node to just retrieve the current values for all variables on startup.  
Does anyone know of a way to accomplish this? Maybe what I was doing before was just something I stumbled into and wasn't correct.
