Home Assistant Z-wave Network Key

I’ve configured Z-wave as the built-in Z-wave integration in Home Assistant. When I was configuring it, I didn’t explicitly set a network key as it said that leaving it blank will auto-generate one for me. Now everything is working, including the lone secured device that I have (Schlage Conect Deadbolt).

Question is: how can I get the exact network key that was auto-generated for me?

4 Likes

It’s in the file /config/.storage/core.config_entries. (or wherever your /config is).

3 Likes

Thanks! Found it there.

If I may come back to this useful thread, where exactly in this file would I find the network key?

This is what is in mine:

{
                "connection_class": "local_push",
                "data": {
                    "network_key": null,
                    "usb_path": "/dev/ttyACM0"
                },
                "domain": "zwave",
                "entry_id": "7930e75d8b02457ab1f026935ea05fa4",
                "options": {},
                "source": "import",
                "title": "Z-Wave (import from configuration.yaml)",
                "version": 1
            }

The entry_id doesn’t look like the network key format, does it?

No network key is set. If you have a key configured in configuration.yaml, then it will use that. If not, you are not using any key (unless you also manually entered a key into the file options.xml, which is never recommended). If you check the beginning of OZW_Log.txt it will tell you whether a key is being used or not.

1 Like

Thanks much! As the saying goes, “you sometimes can’t see the wood for the trees…” I honestly did not see the work “network_key” because I was so focussed on everything below “zwave”… :slight_smile:

The OZW log (from an older backup) just says

2019-06-29 22:39:04.679 Always, OpenZwave Version 1.4.3440 Starting Up
2019-06-29 22:39:10.927 Info, Setting Up Provided Network Key for Secure Communications
2019-06-29 22:39:10.927 Warning, Failed - Network Key Not Set

so I guess, I never set one up.

1 Like

This was helpful, thank you!

I used a more specific (and longer) command (cat /config/.storage/core.config_entries | jq '.data.entries[] | select(.domain == "zwave_js") | .data') to get the keys:

[core-ssh ~]$ cat /config/.storage/core.config_entries | jq '.data.entries[] | select(.domain == "zwave_js") | .data'
{
  "url": "ws://core-zwave-js:3000",
  "usb_path": "/dev/serial/by-id/usb-Zooz_800_Z-Wave_Stick_<REDACTED>",
  "s0_legacy_key": "<REDACTED>",
  "s2_access_control_key": "<REDACTED>",
  "s2_authenticated_key": "<REDACTED>",
  "s2_unauthenticated_key": "<REDACTED>",
  "use_addon": true,
  "integration_created_addon": true
}
[core-ssh ~]$ 
1 Like