diff --git a/CODEOWNERS b/CODEOWNERS
index 8a5602d422b..8abeeb40cd4 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -384,7 +384,6 @@ source/_integrations/opnsense.markdown @mtreinish
source/_integrations/oru.markdown @bvlaicu
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne
source/_integrations/ovo_energy.markdown @timmo001
-source/_integrations/ozw.markdown @cgarwood @marcelveldt @MartinHjelmare
source/_integrations/p1_monitor.markdown @klaasnicolaas
source/_integrations/panel_custom.markdown @home-assistant/frontend
source/_integrations/panel_iframe.markdown @home-assistant/frontend
diff --git a/source/_integrations/ozw.markdown b/source/_integrations/ozw.markdown
deleted file mode 100644
index b5f23e2cf89..00000000000
--- a/source/_integrations/ozw.markdown
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: OpenZWave (deprecated)
-description: Instructions on how to integrate OpenZWave with Home Assistant.
-ha_category:
- - Switch
-ha_release: '0.110'
-ha_iot_class: Local Push
-ha_config_flow: true
-ha_codeowners:
- - '@cgarwood'
- - '@marcelveldt'
- - '@MartinHjelmare'
-ha_domain: ozw
-ha_platforms:
- - binary_sensor
- - climate
- - cover
- - fan
- - light
- - lock
- - sensor
- - switch
----
-
-
-
- This integration is deprecated. We recommend using [the Z-Wave JS integration](/integrations/zwave_js).
-
- The OpenZWave integration will no longer receive any updates. The technical dependencies may render this integration unusable in the future, at which time it may be removed.
-
-
-
-This integration allows you to utilize OpenZWave's ozwdaemon to control a Z-Wave network over MQTT.
-
-## Requirements
-
-### Supervisor managed installation
-
-- The official OpenZWave add-on installed available from the add-on store.
-
-### Core installation
-
-- MQTT server and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant.
-- The [ozwdaemon](https://github.com/OpenZWave/qt-openzwave) installed and running in your network.
-
-### Hardware requirements
-
-- Supported Z-Wave dongle compatible with OpenZWave 1.6. See this [list](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules) of controllers. The Z-Wave controller dongle should be connected to the same host as where the ozwdaemon is running.
-
-{% include integrations/config_flow.md %}
-
-### Secure network key
-
-The secure network key is set in the settings for the ozwdaemon and
-not in the integration configuration.
-
-## Services
-
-### Service `ozw.add_node`
-
-This service will set the controller into inclusion mode and should be used to
-add a device (node) to the Z-Wave network. Call the service and then perform
-the device-specific procedure, according to the device manual, to add your
-device to the network. Make sure the controller is connected to the host where
-the ozwdaemon is running, when performing this operation.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `secure` | no | Add the new node with secure communications. [Secure network key must be set](#secure-network-key). This process will fallback to add_node (unsecure) for unsupported devices. Note that insecure devices can't directly talk to secure devices. |
-| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
-
-### Service `ozw.remove_node`
-
-This service will set the controller into exclusion mode and should be used to
-remove a device (node) from the Z-Wave network. Call the service and then
-perform the device-specific procedure, according to the device manual,
-to remove your device from the network. Make sure the controller is connected
-to the host where the ozwdaemon is running, when performing
-this operation.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | -------------------------------------------------- |
-| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
-
-### Service `ozw.cancel_command`
-
-This service will cancel a pending command. Typically used if the add or remove node
-services have been called but no node was added or removed.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | -------------------------------------------------- |
-| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
-
-### Service `ozw.set_usercode`
-
-This service will set the usercode to X at code slot Y.
-Valid usercodes are at least 4 digits.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | ---------------------------------------------------- |
-| `entity_id` | no | Lock entity or list of entities to set the usercode. |
-| `code_slot` | yes | The code slot to set the usercode into. |
-| `usercode` | yes | The code to set in the slot. |
-
-### Service `ozw.clear_usercode`
-
-This service will clear the usercode in code slot X.
-Valid code slots are between 1-254.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | ------------------------------------------------------ |
-| `entity_id` | no | Lock entity or list of entities to clear the usercode. |
-| `code_slot` | yes | The code slot to clear the usercode from. |
-
-### Service `ozw.set_config_parameter`
-
-This service will set the specified configuration parameter to the value specified to
-allow device-specific configurations. Example of this would be setting notification
-LED colors on switches.
-
-| Service Data Attribute | Required | Description |
-| ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `instance_id` | no | The OZW Instance/Controller to use, defaults to 1. |
-| `node_id` | yes | Node id of the device to set configuration parameter to (integer). |
-| `parameter` | yes | Parameter number to set (integer). |
-| `value` | yes | Value to set for parameter. (String or integer value for list, string or boolean for bool parameters, list of dicts for bitset parameters (see example below), integer for others). |
-
-
-#### Example BitSet service call
-
-Here is an example of what to send to the service for a BitSet parameter:
-
-```yaml
-node_id: 4
-parameter: 5
-value:
- - position: 1
- value: true
- - label: Humidity
- value: false
- - position: 3
- value: false
-```
-
-## Events
-
-### Event `ozw.scene_activated`
-
-This event is fired upon scene activation. The data in the event will vary depending on your particular Z-Wave device, however, here is an example from a Zooz ZEN27 Dimmer when the down button is pressed 3 times.
-
-````json
-{
- "event_type": "ozw.scene_activated",
- "data": {
- "instance_id": 1,
- "node_id": 9,
- "scene_id": 1,
- "scene_label": "Scene 1",
- "scene_value_id": 5,
- "scene_value_label": "Pressed 3 Times"
- },
- "origin": "LOCAL",
- "time_fired": "2020-08-16T12:49:50.409702+00:00",
- "context": {
- "id": "f917f078dfbe11ea8c0e374c447f29eb",
- "parent_id": null,
- "user_id": null
- }
-}
-````
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 6fd7a86772e..75074704cf3 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -40,7 +40,7 @@ ha_platforms:
- switch
---
-This integration allows you to control a Z-Wave network via the [Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/) driver. This is our recommended Z-Wave integration for Home Assistant. If you're migrating from the deprecated `zwave` or `ozw` integrations, see [our migration instructions](#migrating-from-previous-z-wave-implementations).
+This integration allows you to control a Z-Wave network via the [Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/) driver. This is our recommended Z-Wave integration for Home Assistant. If you're migrating from the deprecated `zwave`, see [our migration instructions](#migrating-from-previous-z-wave-implementations).
To Run Z-Wave JS you will need a [Supported Z-Wave dongle](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules), a running Z-Wave JS server (using only **one** of the add-ons or installation methods described below), and the Z-Wave JS integration.
@@ -521,7 +521,7 @@ In addition to the [standard automation trigger data](/docs/automation/templatin
## Migrating from previous Z-Wave implementations
-If you are switching from the `zwave` or `ozw` integrations to the new Z-Wave JS integration, you will not need to recreate your entire network, as the network is **stored on your stick**. A few things, such as how you receive [central scene events](#events) will work differently than they did before.
+If you are switching from the `zwave` integration to the new Z-Wave JS integration, you will not need to recreate your entire network, as the network is **stored on your stick**. A few things, such as how you receive [central scene events](#events) will work differently than they did before.
### Automatic migration wizard
@@ -529,8 +529,6 @@ If you are using the `zwave` integration, there is a migration wizard that will
Some entities may not be able to migrate automatically and you will need to rename the corresponding available Z-Wave JS entities manually. Before completing the migration you will be shown a list of entities that could not be migrated automatically, and you'll have the option to abort or continue with the migration.
-There is no automatic migration wizard for the `ozw` integration. Please follow the manual migration path below if you want to migrate from `ozw` to Z-Wave JS.
-
### Manual migration path
1) Make a **backup** of your Home Assistant configuration. You should do this so you'll be able to quickly revert if you encounter unexpected problems.
@@ -627,7 +625,7 @@ This is considered a very advanced use case. In this case you run the Z-Wave JS
For new installations, unique default keys will be auto-generated for you by the Z-Wave JS add-on. You can also generate those network keys in the Settings section of Zwavejs2Mqtt.
-If migrating from the `zwave` or `ozw` integrations, your network key from those integration should be entered as the S0 network key. Those integrations did not support S2 security, so you will not yet have S2 network keys to configure.
+If migrating from the `zwave` integration, your network key from those integration should be entered as the S0 network key. Those integrations did not support S2 security, so you will not yet have S2 network keys to configure.
Make sure that you keep a backup of these keys in a safe place. You will need to enter the same keys to be able to access securely paired devices.
diff --git a/source/_redirects b/source/_redirects
index 1d8c58ffae2..91c95d17c1f 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -2383,3 +2383,4 @@
/components/raspihats /more-info/removed-integration 301
/components/switch.raspihats /more-info/removed-integration 301
/integrations/raspihats /more-info/removed-integration 301
+/integrations/ozw /more-info/removed-integration 301