How do I switch to Zwave JS?

Is it also possible to find these cache files in a Unraid-> VM -> HA environment?
Because I can not find
/usr/share/hassio/addons/data/core_zwave_js/cache

Probably itā€™s possible - somehow data needs to be stored, but since I donā€™t have Unraid or VM environment at hand, it hard to tell where these exactly are. You can try search with ā€˜findā€™ like:

sudo find / -type d -name ā€˜zwave_jsā€™

It just took me all of 5 minutes to make the switch. I dropped all 3 files from the one addon to the other. Presto, now Iā€™m using ZwaveJS2MQTT. Itā€™s very simple once you find the files and move them.

I used WinSCP to find and make the transfer because I didnā€™t feel like doing it via CLI. But I initially found the file location by searching for zwave_js like @arkoko suggested.

3 Likes

I have switched between addon without cache files, entites were same.

Yes, but then you have to wake everything up again when you start the other network. With the cache files it just ā€˜knowsā€™ and you donā€™t need to go through the initial onboarding.

EDIT: Then the zwavejs2mqtt UI even shows that it used cache to init the device instead of waiting for the device to respond:

1 Like

So, you just copied all three .json and *.jsonl files from cache folder to the store folder? Or only one .json file?

I just did all three :man_shrugging:

1 Like

Thanks for explanation!

Iā€™m getting similar errors, but coming from OpenZwave (Beta). It starts up and begins polling devices then suddenly hits this error. Sometimes it seems like it actually runs for a bit before hitting this. Maybe it is a specific device it doesnā€™t like? Iā€™ve been using a Homeseer SmartStick+ for years with both OpenZwave and the built in Zwave with no issues. The key is copied from OZW with 0x and commas removed (didnā€™t even start with that in).

17:04:29.847 CNTRLR Ā» [Node 011] querying parameter #1 value...
17:04:29.911 CNTRLR Ā« [Node 004] received location: 啰ē“ę…©ē‰³
17:04:29.914 CNTRLR   [Node 004] MultilevelSwitchCC: doing a complete interview...
17:04:29.917 CNTRLR Ā» [Node 004] requesting current switch state...
17:04:30.036 CNTRLR Ā« [Node 006] parameter #1 has value: 0
17:04:30.038 CNTRLR Ā» [Node 006] querying parameter #3 value...
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
RangeError [ERR_INVALID_BUFFER_SIZE]: Buffer size must be a multiple of 16-bits
    at Buffer.swap16 (buffer.js:1127:11)
    at new NodeNamingAndLocationCCLocationReport (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/commandclass/NodeNamingCC.ts:367:36)
    at new CommandClass (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/commandclass/CommandClass.ts:108:13)
    at new NodeNamingAndLocationCC (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/commandclass/NodeNamingCC.ts:165:1)
    at Function.from (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/commandclass/CommandClass.ts:331:15)
    at new ApplicationCommandRequest (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/controller/ApplicationCommandRequest.ts:88:32)
    at Function.from (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/message/Message.ts:222:15)
    at Driver.serialport_onData (/usr/lib/node_modules/@zwave-js/server/node_modules/zwave-js/src/lib/driver/Driver.ts:1369:18)
    at SerialAPIParser.emit (events.js:315:20)
    at SerialAPIParser.EventEmitter.emit (domain.js:467:12)
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

Is there a way to make this dump ALL entities, even those that have been disabled, or canā€™t be edited in the UI? I have about 250 of those too.

Thatā€™s exactly the same error iā€™m getting. Iā€™ve tried on my existing install as well as spinning up a brand new VM and Home Assistant install and same result. Thatā€™s what leads me to agree with you that it must be something specific to our devices. Mine errors out after interrogating node 20 which is a Fibaro dimmer 2.

I just wanted to express my thanks for getting these new zwave integrations out - both to the core team and the community.

Iā€™ve 43 zwave devices, and was really struggling with latency when firing lots of light and switch operations together (goodnight routines sometimes took more than 40 seconds to complete).

I moved from the deprecated zwave integration to zwave js last night. It took around 2 hours to get everything renamed. and all my Fibaro multi-sensors have called in successfully.

The speed difference is very noticeable. That same good-night routine is now completing in seconds. I also see the difference in individual light operations when you click off and on repeatedly. Thank you for this - it makes a huge experience improvement, particularly with any routines based on movement triggers.

Wishlist?

(1) Obviously having a control panel back would be great! I donā€™t have plans to add more devices yet, but all of my fibaro dimmer 2 modules have specific configurations which need access to the device parameters. I also have 2 or 3 orphaned devices (not marked as dead so I cannot remove them). I would love to get these cleared out once and for all, and Iā€™m hoping this release will allow me to do that.

(2) I was using a 3rd party tool to create a zwave network visualisation. I could see the mesh, as well as the latency figures. Given the dramatic speed improvements, this might not be needed now, but - I would prefer to still have access to it.

I did use this template to find all nodes of my zwave 1,4:

{%- for node, zstates in states | selectattr('attributes.node_id', 'in', range(1000)) | groupby('attributes.node_id') %}
{{ node }}:
  {%- for s in zstates %}
  - {{ s.name }}
    {{ s.entity_id }}
  {% endfor %}
{%- endfor %}

This is working fine with zwave 1.4, but not with zwave js implemented
Is there also a template to find all nodes in zwave js?

(Iā€™m not used to make such kind of scripts)

You will find in the roadmap this is all planned:

No, node_id is not implemented in zwave_js.

Use zwavejs2mqtt and use the panel there. It is excellent. An informative mesh diagram is also in development right now, going through review so I expect thatā€™ll be available soon. There is one already but it is very basic.

oke a pitty :relaxed:

too bad; I found out that this code does not work for the new integration (due to absence of the node_id attribute). So you can only use it to list entities in the old integration. Not sure how you can list disabled devices. Enable them first?

Iā€™m thinking since HA has a record of these disabled/non-editable entities, since it is able to display them upon demand, there has to be list somewhere on disk. We just have to find the file and write a script to extract the info. Yay, NEW PROJECT! :grin:

Did you reinstall integration as well? Iā€™ve switched addons tonight, but all devices are unavailable in HA.