--- title: "Z-Wave" description: "Installation of the Z-Wave component." redirect_from: /getting-started/z-wave-installation/ --- Z-Wave can be configured using the Z-Wave *Integration* in the *Configuration* menu, or manually using an entry in `configuration.yaml` ## Configuration ```yaml # Example configuration.yaml entry zwave: usb_path: /dev/ttyACM0 device_config: !include zwave_device_config.yaml ``` {% configuration Z-Wave %} usb_path: description: The port where your device is connected to your Home Assistant host. Z-Wave sticks will generally be `/dev/ttyACM0` and GPIO hats will generally be `/dev/ttyAMA0`. required: false type: string default: /zwaveusbstick network_key: description: The 16-byte network key in the form `"0x01, 0x02..."` used in order to connect securely to compatible devices. It is recommended that a network key is configured as security enabled devices may not function correctly if they are not added securely. required: false type: string default: None config_path: description: The path to the Python OpenZWave configuration files. required: false type: string default: the 'config' that is installed by python-openzwave polling_interval: description: The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the Z-Wave network and cause problems. required: false type: integer default: 60000 debug: description: Print verbose Z-Wave info to log. required: false type: boolean default: false autoheal: description: Allows enabling auto Z-Wave heal at midnight. Warning, this is inefficient and [should not be used](https://github.com/home-assistant/architecture/issues/81#issuecomment-478444085). required: false type: boolean default: false device_config / device_config_domain / device_config_glob: description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the following options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format." required: false type: [string, list] keys: ignored: description: Ignore this entity completely. It won't be shown in the Web Interface and no events are generated for it. required: false type: boolean default: false polling_intensity: description: Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled. required: false type: integer default: 0 refresh_value: description: Enable refreshing of the node value. Only the light integration uses this. required: false type: boolean default: false delay: description: Specify the delay for refreshing of node value. Only the light integration uses this. required: false type: integer default: 5 invert_openclose_buttons: description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting. required: false type: boolean default: false invert_percent: description: Inverts the percentage of the position for the cover domain. This will invert the position and state reporting. required: false type: boolean default: false {% endconfiguration %} ### Network Key Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. An easy script to generate a random key: ```bash cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' ``` You can also use sites like [this one](https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h) to generate the required data, just remember to put `0x` before each pair of characters: ```yaml # Example configuration.yaml entry for network_key zwave: network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c" ``` In addition to modifying the `configuration.yaml` file, the `options.xml` file network key must be set as well: ```xml