diff --git a/source/_integrations/alexa_devices.markdown b/source/_integrations/alexa_devices.markdown
index 6de20197979..299966e1d19 100644
--- a/source/_integrations/alexa_devices.markdown
+++ b/source/_integrations/alexa_devices.markdown
@@ -14,6 +14,7 @@ ha_codeowners:
ha_iot_class: Cloud Polling
ha_platforms:
- binary_sensor
+ - diagnostics
- notify
- sensor
- switch
diff --git a/source/_integrations/altruist.markdown b/source/_integrations/altruist.markdown
index bb427546b94..838aabd4f45 100644
--- a/source/_integrations/altruist.markdown
+++ b/source/_integrations/altruist.markdown
@@ -15,6 +15,7 @@ ha_platforms:
- sensor
ha_integration_type: device
ha_zeroconf: true
+ha_quality_scale: bronze
---
The **Altruist** {% term integration %} connects Home Assistant to [Air Quality Sensor “Altruist“](https://robonomics.network/devices/altruist/) — a device designed for decentralized environmental monitoring. It captures noise, dust, and temperature data from the sensor over HTTP, making it available as locally usable entities within Home Assistant.
diff --git a/source/_integrations/assist_satellite.markdown b/source/_integrations/assist_satellite.markdown
index 16e20de302a..f9873249f7b 100644
--- a/source/_integrations/assist_satellite.markdown
+++ b/source/_integrations/assist_satellite.markdown
@@ -239,4 +239,3 @@ actions:
```
{% endraw %}
-
diff --git a/source/_integrations/balay.markdown b/source/_integrations/balay.markdown
index 4d28584e8f0..32fa2f77d20 100644
--- a/source/_integrations/balay.markdown
+++ b/source/_integrations/balay.markdown
@@ -31,6 +31,7 @@ ha_platforms:
- switch
- time
ha_iot_class: Cloud Push
+ha_dhcp: true
ha_zeroconf: true
---
diff --git a/source/_integrations/bosch_alarm.markdown b/source/_integrations/bosch_alarm.markdown
index adf058edcf6..543f0fa3ee1 100644
--- a/source/_integrations/bosch_alarm.markdown
+++ b/source/_integrations/bosch_alarm.markdown
@@ -20,7 +20,7 @@ ha_platforms:
- sensor
- switch
ha_integration_type: device
-ha_quality_scale: bronze
+ha_quality_scale: platinum
ha_dhcp: true
---
diff --git a/source/_integrations/constructa.markdown b/source/_integrations/constructa.markdown
index 76db3aa534e..7e59f7a5786 100644
--- a/source/_integrations/constructa.markdown
+++ b/source/_integrations/constructa.markdown
@@ -31,6 +31,7 @@ ha_platforms:
- switch
- time
ha_iot_class: Cloud Push
+ha_dhcp: true
ha_zeroconf: true
---
diff --git a/source/_integrations/derivative.markdown b/source/_integrations/derivative.markdown
index 503b8d443dd..909ba0029a6 100644
--- a/source/_integrations/derivative.markdown
+++ b/source/_integrations/derivative.markdown
@@ -11,6 +11,7 @@ ha_iot_class: Calculated
ha_qa_scale: internal
ha_codeowners:
- '@afaucogney'
+ - '@karwosts'
ha_domain: derivative
ha_config_flow: true
ha_platforms:
diff --git a/source/_integrations/eastron.markdown b/source/_integrations/eastron.markdown
index 826ea9fd210..87dbdc73a9f 100644
--- a/source/_integrations/eastron.markdown
+++ b/source/_integrations/eastron.markdown
@@ -15,6 +15,7 @@ ha_platforms:
- button
- diagnostics
- number
+ - select
- sensor
- switch
ha_iot_class: Local Polling
diff --git a/source/_integrations/gaggenau.markdown b/source/_integrations/gaggenau.markdown
index e8d8bcb86b5..dc25767dbcc 100644
--- a/source/_integrations/gaggenau.markdown
+++ b/source/_integrations/gaggenau.markdown
@@ -31,6 +31,7 @@ ha_platforms:
- switch
- time
ha_iot_class: Cloud Push
+ha_dhcp: true
ha_zeroconf: true
---
diff --git a/source/_integrations/google_gemini.markdown b/source/_integrations/google_gemini.markdown
index ec157943e21..3b1bd2ddcc5 100644
--- a/source/_integrations/google_gemini.markdown
+++ b/source/_integrations/google_gemini.markdown
@@ -2,6 +2,7 @@
title: Google Gemini
description: Instructions on how to integrate Google Gemini as a conversation agent
ha_category:
+ - Text-to-speech
- Voice
ha_release: 2023.6
ha_domain: google_gemini
@@ -15,6 +16,7 @@ ha_config_flow: true
ha_platforms:
- conversation
- diagnostics
+ - tts
ha_iot_class: Cloud Polling
---
diff --git a/source/_integrations/google_generative_ai_conversation.markdown b/source/_integrations/google_generative_ai_conversation.markdown
index 0a3982898c6..ec7f6e634b0 100644
--- a/source/_integrations/google_generative_ai_conversation.markdown
+++ b/source/_integrations/google_generative_ai_conversation.markdown
@@ -2,8 +2,8 @@
title: Google Generative AI
description: Instructions on how to integrate Google Generative AI as a conversation agent
ha_category:
- - Voice
- Text-to-speech
+ - Voice
ha_release: 2023.6
ha_iot_class: Cloud Polling
ha_config_flow: true
diff --git a/source/_integrations/ipp.markdown b/source/_integrations/ipp.markdown
index a341df7efd8..2527976e38f 100644
--- a/source/_integrations/ipp.markdown
+++ b/source/_integrations/ipp.markdown
@@ -1,18 +1,23 @@
----
-title: Internet Printing Protocol (IPP)
-description: Instructions on how to integrate printers that support the Internet Printing Protocol (IPP) into Home Assistant.
-ha_category:
- - System monitor
-ha_release: 0.108
-ha_iot_class: Local Polling
-ha_config_flow: true
-ha_codeowners:
- - '@ctalkington'
-ha_domain: ipp
----
-
-The `Internet Printing Protocol (IPP)` integration allows you to read current data from your networked printer that supports the [Internet Printing Protocol](https://www.pwg.org/ipp/everywhere.html).
-
-It provides information about the printer's state and remaining ink levels.
-
-{% include integrations/config_flow.md %}
+---
+title: Internet Printing Protocol (IPP)
+description: Instructions on how to integrate printers that support the Internet Printing Protocol (IPP) into Home Assistant.
+ha_category:
+ - System monitor
+ha_release: 0.108
+ha_iot_class: Local Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@ctalkington'
+ha_domain: ipp
+ha_platforms:
+ - diagnostics
+ - sensor
+ha_zeroconf: true
+ha_integration_type: device
+---
+
+The `Internet Printing Protocol (IPP)` integration allows you to read current data from your networked printer that supports the [Internet Printing Protocol](https://www.pwg.org/ipp/everywhere.html).
+
+It provides information about the printer's state and remaining ink levels.
+
+{% include integrations/config_flow.md %}
diff --git a/source/_integrations/ista_ecotrend.markdown b/source/_integrations/ista_ecotrend.markdown
index a356a2239b4..a6f57c88558 100644
--- a/source/_integrations/ista_ecotrend.markdown
+++ b/source/_integrations/ista_ecotrend.markdown
@@ -13,6 +13,7 @@ ha_platforms:
- sensor
ha_config_flow: true
ha_integration_type: integration
+ha_quality_scale: gold
---
The **ista EcoTrend** {% term integration %} for Home Assistant allows you to import your monthly meter readings from the [ista EcoTrend](https://ecotrend.ista.de) service.
diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown
index 386b2e5f3e2..6d2fe880fb7 100644
--- a/source/_integrations/knx.markdown
+++ b/source/_integrations/knx.markdown
@@ -48,6 +48,7 @@ ha_platforms:
- weather
ha_config_flow: true
ha_integration_type: hub
+ha_quality_scale: silver
---
The [KNX](https://www.knx.org) integration connects Home Assistant to your KNX installation, allowing you to control KNX devices, act on telegrams and forward state changes from other integrations entities to your KNX bus.
diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown
index 4c27dc3cd5e..3850726630d 100644
--- a/source/_integrations/lcn.markdown
+++ b/source/_integrations/lcn.markdown
@@ -25,6 +25,7 @@ ha_platforms:
- switch
ha_config_flow: true
ha_integration_type: integration
+ha_quality_scale: bronze
---
The **LCN** {% term integration %} for Home Assistant allows you to connect to [LCN](https://www.lcn.eu/) hardware devices.
diff --git a/source/_integrations/lg_thinq.markdown b/source/_integrations/lg_thinq.markdown
index acdfe8b45e1..fb76e8a2eed 100644
--- a/source/_integrations/lg_thinq.markdown
+++ b/source/_integrations/lg_thinq.markdown
@@ -23,6 +23,7 @@ ha_platforms:
ha_integration_type: integration
ha_codeowners:
- '@LG-ThinQ-Integration'
+ha_dhcp: true
---
The **LG ThinQ** integration allows you to connect LG ThinQ devices to Home Assistant. The features of this integration include:
diff --git a/source/_integrations/linak.markdown b/source/_integrations/linak.markdown
index 516ca4beb38..bca1adff175 100644
--- a/source/_integrations/linak.markdown
+++ b/source/_integrations/linak.markdown
@@ -6,8 +6,9 @@ ha_category:
ha_domain: linak
ha_integration_type: virtual
ha_supporting_domain: idasen_desk
-ha_supporting_integration: IKEA Idåsen Desk
+ha_supporting_integration: IKEA Idasen Desk
ha_release: '2023.10'
+ha_bluetooth: true
ha_codeowners:
- '@abmantis'
ha_config_flow: true
@@ -16,7 +17,6 @@ ha_platforms:
- cover
- sensor
ha_iot_class: Local Push
-ha_bluetooth: true
---
{% include integrations/supported_brand.md %}
diff --git a/source/_integrations/linkplay.markdown b/source/_integrations/linkplay.markdown
index 59ec73e140b..203ad8a1f27 100644
--- a/source/_integrations/linkplay.markdown
+++ b/source/_integrations/linkplay.markdown
@@ -1,54 +1,55 @@
----
-title: LinkPlay
-description: Connect and control your LinkPlay media players using the LinkPlay integration
-ha_category:
- - Media player
-ha_domain: linkplay
-ha_zeroconf: true
-ha_integration_type: integration
-ha_release: 2024.8
-ha_codeowners:
- - '@Velleman'
-ha_config_flow: true
-ha_platforms:
- - media_player
- - button
-ha_iot_class: Local Polling
----
-
-The LinkPlay {% term integrations %} for Home Assistant allows you to control various media players based on the LinkPlay protocol. The integration supports auto-discovery on your local network through [Zeroconf](/integrations/zeroconf).
-
-{% include integrations/config_flow.md %}
-
-## Features
-
-### Media Player
-
-The media player entity offers robust controls and playback features from the media player integration and provides additionally:
-
-- **Preset playback**: Play LinkPlay presets configured on the device using the action `linkplay.play_preset`.
-- **Multiroom**: Combine multiple LinkPlay devices in a multiroom. Use the actions `media_player.join` and `media_player.unjoin`.
-
-### Buttons
-
-The button entities provide some additional LinkPlay features available on the device:
-
-- **Time Sync**: Synchronize the device's internal clock with the current time in Home Assistant.
-- **Restart Device**: Reboot the device, allowing for convenient troubleshooting and maintenance.
-
-## Actions
-
-The LinkPlay integration makes various custom actions available in addition to the [standard media player actions](/integrations/media_player/#actions).
-
-### Action `linkplay.play_preset`
-
-Play a preset on a LinkPlay media player.
-
-{% note %}
-Companion apps, such as 4stream, allow to save music presets (for example, Spotify playlists). This action can be used to start playing these presets.
-{% endnote %}
-
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | The speakers to target. To target all LinkPlay devices, use `all`.
-| `preset_number` | no | The number of the preset to play.
+---
+title: LinkPlay
+description: Connect and control your LinkPlay media players using the LinkPlay integration
+ha_category:
+ - Media player
+ha_domain: linkplay
+ha_zeroconf: true
+ha_integration_type: hub
+ha_release: 2024.8
+ha_codeowners:
+ - '@Velleman'
+ha_config_flow: true
+ha_platforms:
+ - button
+ - diagnostics
+ - media_player
+ha_iot_class: Local Polling
+---
+
+The LinkPlay {% term integrations %} for Home Assistant allows you to control various media players based on the LinkPlay protocol. The integration supports auto-discovery on your local network through [Zeroconf](/integrations/zeroconf).
+
+{% include integrations/config_flow.md %}
+
+## Features
+
+### Media Player
+
+The media player entity offers robust controls and playback features from the media player integration and provides additionally:
+
+- **Preset playback**: Play LinkPlay presets configured on the device using the action `linkplay.play_preset`.
+- **Multiroom**: Combine multiple LinkPlay devices in a multiroom. Use the actions `media_player.join` and `media_player.unjoin`.
+
+### Buttons
+
+The button entities provide some additional LinkPlay features available on the device:
+
+- **Time Sync**: Synchronize the device's internal clock with the current time in Home Assistant.
+- **Restart Device**: Reboot the device, allowing for convenient troubleshooting and maintenance.
+
+## Actions
+
+The LinkPlay integration makes various custom actions available in addition to the [standard media player actions](/integrations/media_player/#actions).
+
+### Action `linkplay.play_preset`
+
+Play a preset on a LinkPlay media player.
+
+{% note %}
+Companion apps, such as 4stream, allow to save music presets (for example, Spotify playlists). This action can be used to start playing these presets.
+{% endnote %}
+
+| Data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | The speakers to target. To target all LinkPlay devices, use `all`.
+| `preset_number` | no | The number of the preset to play.
diff --git a/source/_integrations/locative.markdown b/source/_integrations/locative.markdown
index fbbd1ad0b6d..15ea26dc512 100644
--- a/source/_integrations/locative.markdown
+++ b/source/_integrations/locative.markdown
@@ -1,23 +1,27 @@
----
-title: "Locative"
-description: "Instructions on how to use Locative to track devices in Home Assistant."
-ha_category:
- - Presence detection
-ha_release: 0.86
-ha_iot_class: Cloud Push
-ha_domain: locative
----
-
-This platform allows you to detect presence using [Locative](https://www.locative.app/). Locative is an open source app for [iOS](https://apps.apple.com/us/app/locative/id725198453?ign-mpt=uo%3D4) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.
-
-Install on your smartphone:
-
-- [iOS](https://apps.apple.com/us/app/locative/id725198453?ign-mpt=uo%3D4)
-
-To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant instance at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your `dev-state` menu for a new device that Locative will have created on its first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.
-
-
-
-
-
-When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home".
+---
+title: Locative
+description: Instructions on how to use Locative to track devices in Home Assistant.
+ha_category:
+ - Presence detection
+ha_release: 0.86
+ha_iot_class: Local Push
+ha_domain: locative
+ha_platforms:
+ - device_tracker
+ha_config_flow: true
+ha_integration_type: integration
+---
+
+This platform allows you to detect presence using [Locative](https://www.locative.app/). Locative is an open source app for [iOS](https://apps.apple.com/us/app/locative/id725198453?ign-mpt=uo%3D4) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.
+
+Install on your smartphone:
+
+- [iOS](https://apps.apple.com/us/app/locative/id725198453?ign-mpt=uo%3D4)
+
+To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant instance at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your `dev-state` menu for a new device that Locative will have created on its first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.
+
+
+
+
+
+When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home".
diff --git a/source/_integrations/meater.markdown b/source/_integrations/meater.markdown
index 4c94f85c073..adfd60f114d 100644
--- a/source/_integrations/meater.markdown
+++ b/source/_integrations/meater.markdown
@@ -11,6 +11,7 @@ ha_codeowners:
- '@emontnemery'
ha_domain: meater
ha_platforms:
+ - diagnostics
- sensor
ha_integration_type: integration
---
diff --git a/source/_integrations/motionmount.markdown b/source/_integrations/motionmount.markdown
index 1478f0dff77..e8a8c915385 100644
--- a/source/_integrations/motionmount.markdown
+++ b/source/_integrations/motionmount.markdown
@@ -1,115 +1,116 @@
----
-title: Vogel's MotionMount
-description: Instructions on how to integrate Vogel's MotionMount into Home Assistant.
-ha_category:
- - Number
- - Select
- - Binary sensor
- - Sensor
-ha_release: 2024.1
-ha_iot_class: Local Push
-ha_config_flow: true
-ha_platforms:
- - number
- - select
- - binary_sensor
- - sensor
-ha_codeowners:
- - '@RJPoelstra'
-ha_domain: motionmount
-ha_zeroconf: true
----
-
-The `motionmount` {% term integration %} allows you to control the position of your [TVM 7675 Pro](https://www.vogels.com/p/tvm-7675-pro-motorized-tv-wall-mount-black) SIGNATURE MotionMount from Vogel's.
-
-This integration uses the Ethernet (IP) connection of your MotionMount. It's not possible to connect using the RS-232 connection.
-
-It provides information about the current position of the mount and allows setting a new position.
-
-A use case would be to position the TV based on whether anyone is actively watching. The MotionMount provides an HDMI connection to monitor whether the TV is turned on and in response move it to a preset position or the last known position. However, if you also use the TV for background music, you probably don't want the MotionMount to extend. By using a presence sensor to check whether anyone is actually in front of the TV, you can ensure the MotionMount only extends when the TV is actively being watched.
-
-{% include integrations/config_flow.md %}
-
-{% configuration_basic %}
-Host:
- description: Hostname or IP address of the device, for example:`192.168.1.2`.
-Port:
- description: The TCP port of the device. Defaults to 23. Only change this when you're absolutely certain that it shouldn't be 23.
-PIN:
- description: The user level pincode, if configured on the device.
-{% endconfiguration_basic %}
-
-## Removing the integration
-
-This integration follows standard integration removal. No extra steps are required.
-
-{% include integrations/remove_device_service.md %}
-
-## Data updates
-
-The MotionMount pushes new data to the integration.
-The only exception is the presets. Changes to the presets are {% term polling polled %}, by default every 60 seconds.
-
-## Known limitations
-
-The integration does not provide the ability to configure the MotionMount.
-All settings, including configuring presets, should be done via the MotionMount app.
-
-Only IP connections are supported. Connection via RS-232 or Bluetooth Low Energy is not supported.
-
-## Supported devices
-
-The following devices are supported:
-
-- TVM 7675 Pro (SIGNATURE MotionMount with Pro extension)
-
-## Unsupported devices
-
-The following devices are *not* supported:
-
-- TVM 7675 (SIGNATURE MotionMount without Pro extension)
-- TVM 7355 (NEXT MotionMount)
-
-## Supported functionality
-
-### Entities
-
-#### Sensors
-
-- **Moving**
- - **Description**: Indicates whether the MotionMount is moving.
-
-- **Error Status**
- - **Description**: The error status of the MotionMount.
- - None: There is no error.
- - Motor: There is a problem communicating with the motor.
- - HDMI CEC: There is a problem communicating with the TV. Check the HDMI cable.
- - Obstruction: The MotionMount detected an obstacle and stopped moving.
- - TV Width Constraint: The MotionMount detected that the TV moved too close to the wall and stopped moving.
- - Internal: There is an internal error. Refer to the MotionMount app for support.
-
-#### Numbers
-
-- **Extension**
- - **Description**: The current extension of the MotionMount from the wall.
-
-- **Turn**
- - **Description**: The current rotation of the MotionMount.
-
-#### Selects
-
-- **Presets**
- - **Description**: If the MotionMount is at a preset location, this shows the corresponding preset.
- Any preset can be selected to move the MotionMount to this preset position.
-
-## Troubleshooting
-
-### Can't connect to device
-
-1. Make sure the device is powered on.
-2. Make sure the device is connected to the same network as Home Assistant.
-3. Make sure the IP address of the MotionMount is configured correctly.
- - In case of doubt, perform a network reset by holding the reset button for approx. 5 seconds.
- - **Result**: The LED will start to blink slowly. This indicates that the network configuration is being reset to use DHCP.
- - **Important**: Don't hold the reset button for too long (approx. 10 s). Holding the button for 10 s or longer starts a factory reset. A factory reset is indicated by the LED blinking fast.
-
+---
+title: Vogel's MotionMount
+description: Instructions on how to integrate Vogel's MotionMount into Home Assistant.
+ha_category:
+ - Binary sensor
+ - Number
+ - Select
+ - Sensor
+ha_release: 2024.1
+ha_iot_class: Local Push
+ha_config_flow: true
+ha_platforms:
+ - binary_sensor
+ - number
+ - select
+ - sensor
+ha_codeowners:
+ - '@laiho-vogels'
+ha_domain: motionmount
+ha_zeroconf: true
+ha_quality_scale: bronze
+ha_integration_type: device
+---
+
+The `motionmount` {% term integration %} allows you to control the position of your [TVM 7675 Pro](https://www.vogels.com/p/tvm-7675-pro-motorized-tv-wall-mount-black) SIGNATURE MotionMount from Vogel's.
+
+This integration uses the Ethernet (IP) connection of your MotionMount. It's not possible to connect using the RS-232 connection.
+
+It provides information about the current position of the mount and allows setting a new position.
+
+A use case would be to position the TV based on whether anyone is actively watching. The MotionMount provides an HDMI connection to monitor whether the TV is turned on and in response move it to a preset position or the last known position. However, if you also use the TV for background music, you probably don't want the MotionMount to extend. By using a presence sensor to check whether anyone is actually in front of the TV, you can ensure the MotionMount only extends when the TV is actively being watched.
+
+{% include integrations/config_flow.md %}
+
+{% configuration_basic %}
+Host:
+ description: Hostname or IP address of the device, for example:`192.168.1.2`.
+Port:
+ description: The TCP port of the device. Defaults to 23. Only change this when you're absolutely certain that it shouldn't be 23.
+PIN:
+ description: The user level pincode, if configured on the device.
+{% endconfiguration_basic %}
+
+## Removing the integration
+
+This integration follows standard integration removal. No extra steps are required.
+
+{% include integrations/remove_device_service.md %}
+
+## Data updates
+
+The MotionMount pushes new data to the integration.
+The only exception is the presets. Changes to the presets are {% term polling polled %}, by default every 60 seconds.
+
+## Known limitations
+
+The integration does not provide the ability to configure the MotionMount.
+All settings, including configuring presets, should be done via the MotionMount app.
+
+Only IP connections are supported. Connection via RS-232 or Bluetooth Low Energy is not supported.
+
+## Supported devices
+
+The following devices are supported:
+
+- TVM 7675 Pro (SIGNATURE MotionMount with Pro extension)
+
+## Unsupported devices
+
+The following devices are *not* supported:
+
+- TVM 7675 (SIGNATURE MotionMount without Pro extension)
+- TVM 7355 (NEXT MotionMount)
+
+## Supported functionality
+
+### Entities
+
+#### Sensors
+
+- **Moving**
+ - **Description**: Indicates whether the MotionMount is moving.
+
+- **Error Status**
+ - **Description**: The error status of the MotionMount.
+ - None: There is no error.
+ - Motor: There is a problem communicating with the motor.
+ - HDMI CEC: There is a problem communicating with the TV. Check the HDMI cable.
+ - Obstruction: The MotionMount detected an obstacle and stopped moving.
+ - TV Width Constraint: The MotionMount detected that the TV moved too close to the wall and stopped moving.
+ - Internal: There is an internal error. Refer to the MotionMount app for support.
+
+#### Numbers
+
+- **Extension**
+ - **Description**: The current extension of the MotionMount from the wall.
+
+- **Turn**
+ - **Description**: The current rotation of the MotionMount.
+
+#### Selects
+
+- **Presets**
+ - **Description**: If the MotionMount is at a preset location, this shows the corresponding preset.
+ Any preset can be selected to move the MotionMount to this preset position.
+
+## Troubleshooting
+
+### Can't connect to device
+
+1. Make sure the device is powered on.
+2. Make sure the device is connected to the same network as Home Assistant.
+3. Make sure the IP address of the MotionMount is configured correctly.
+ - In case of doubt, perform a network reset by holding the reset button for approx. 5 seconds.
+ - **Result**: The LED will start to blink slowly. This indicates that the network configuration is being reset to use DHCP.
+ - **Important**: Don't hold the reset button for too long (approx. 10 s). Holding the button for 10 s or longer starts a factory reset. A factory reset is indicated by the LED blinking fast.
diff --git a/source/_integrations/music_assistant.markdown b/source/_integrations/music_assistant.markdown
index 333273cacca..0f6595d2bd4 100644
--- a/source/_integrations/music_assistant.markdown
+++ b/source/_integrations/music_assistant.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
- '@music-assistant'
ha_domain: music_assistant
ha_platforms:
+ - button
- media_player
ha_zeroconf: true
ha_integration_type: integration
diff --git a/source/_integrations/ntfy.markdown b/source/_integrations/ntfy.markdown
index e51a2a8e0e2..2f5ebcb4f9e 100644
--- a/source/_integrations/ntfy.markdown
+++ b/source/_integrations/ntfy.markdown
@@ -13,6 +13,7 @@ ha_integration_type: integration
ha_platforms:
- diagnostics
- notify
+ - sensor
ha_quality_scale: bronze
---
diff --git a/source/_integrations/paperless_ngx.markdown b/source/_integrations/paperless_ngx.markdown
index 3258c6b22ed..ab10ea8274c 100644
--- a/source/_integrations/paperless_ngx.markdown
+++ b/source/_integrations/paperless_ngx.markdown
@@ -18,6 +18,7 @@ related:
ha_platforms:
- diagnostics
- sensor
+ - update
---
The **Paperless-ngx** {% term integration %} allows you to connect your [Paperless-ngx](https://docs.paperless-ngx.com/) instance to Home Assistant and monitor its status and activity.
diff --git a/source/_integrations/playstation_network.markdown b/source/_integrations/playstation_network.markdown
index 69a0d6353fc..b9bd7f2d96c 100644
--- a/source/_integrations/playstation_network.markdown
+++ b/source/_integrations/playstation_network.markdown
@@ -7,15 +7,19 @@ ha_release: 2025.7
ha_iot_class: Cloud Polling
ha_domain: playstation_network
ha_platforms:
+ - diagnostics
- media_player
+ - sensor
ha_codeowners:
- '@jackjpowell'
+ - '@tr4nt0r'
ha_config_flow: true
ha_quality_scale: bronze
-ha_integration_type: integration
+ha_integration_type: service
related:
- url: https://playstation.com/
title: Playstation
+ha_dhcp: true
---
The **PlayStation Network** {% term integration %} enables you to seamlessly integrate information from your currently playing game in Home Assistant.
diff --git a/source/_integrations/qbus.markdown b/source/_integrations/qbus.markdown
index 4fbd89608c7..95073bbaf6f 100644
--- a/source/_integrations/qbus.markdown
+++ b/source/_integrations/qbus.markdown
@@ -8,6 +8,7 @@ ha_category:
- Switch
ha_platforms:
- climate
+ - cover
- light
- scene
- switch
diff --git a/source/_integrations/remote_calendar.markdown b/source/_integrations/remote_calendar.markdown
index 038e2a4c2a5..00c7fa9308a 100644
--- a/source/_integrations/remote_calendar.markdown
+++ b/source/_integrations/remote_calendar.markdown
@@ -12,6 +12,7 @@ ha_platforms:
- diagnostics
ha_codeowners:
- '@Thomas55555'
+ - '@allenporter'
ha_integration_type: service
ha_quality_scale: silver
---
diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown
index 4d6d794a9bc..ad0b54aa835 100644
--- a/source/_integrations/samsungtv.markdown
+++ b/source/_integrations/samsungtv.markdown
@@ -19,6 +19,7 @@ ha_platforms:
ha_zeroconf: true
ha_dhcp: true
ha_integration_type: device
+ha_quality_scale: bronze
---
The `samsungtv` platform allows you to control a [Samsung Smart TV](https://www.samsung.com/uk/tvs/all-tvs/).
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown
index 179837fbc73..789b321c16e 100644
--- a/source/_integrations/spotify.markdown
+++ b/source/_integrations/spotify.markdown
@@ -10,7 +10,6 @@ ha_codeowners:
- '@frenck'
- '@joostlek'
ha_domain: spotify
-ha_zeroconf: true
ha_platforms:
- diagnostics
- media_player
diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown
index 3c14f84104a..48d5b5accd4 100644
--- a/source/_integrations/telegram_bot.markdown
+++ b/source/_integrations/telegram_bot.markdown
@@ -8,7 +8,9 @@ ha_iot_class: Cloud Push
ha_config_flow: true
ha_domain: telegram_bot
ha_integration_type: integration
-ha_quality_scale: legacy
+ha_quality_scale: bronze
+ha_codeowners:
+ - '@hanwg'
---
Use Telegram on your mobile or desktop device to send and receive messages or commands to/from your Home Assistant.
diff --git a/source/_integrations/tilt_pi.markdown b/source/_integrations/tilt_pi.markdown
index 6352b5eee47..304b6c21d5a 100644
--- a/source/_integrations/tilt_pi.markdown
+++ b/source/_integrations/tilt_pi.markdown
@@ -5,16 +5,17 @@ ha_category:
- Sensor
ha_release: '2025.7'
ha_iot_class: Local Polling
-ha_quality_scale: Bronze
+ha_quality_scale: bronze
ha_config_flow: true
ha_codeowners:
- '@michaelheyman'
ha_domain: tilt_pi
ha_platforms:
- - sensor
+ - sensor
related:
- url: https://tilthydrometer.com/collections/tilt-pi
title: Tilt Pi product page
+ha_integration_type: integration
---
The **Tilt Pi** {% term integration %} allows you to connect a Tilt Pi to Home Assistant to
diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown
index 06aff3f940d..6298268cf9f 100644
--- a/source/_integrations/tts.markdown
+++ b/source/_integrations/tts.markdown
@@ -198,4 +198,4 @@ The recommended way to overcome these obstacles is to not manually configure a l
Some media players could reproduce only partial, corrupted or no audio at all when the audio format is not fully supported. In such cases it is required to experiment with different combinations of audio formats, channels, sample rates and bits using [preferred audio settings](#preferred-audio-settings) options.
-For example, some Google Cast devices skip initial audio part when the audio is sampled at 22050Hz, and to fix the problem it is required to set the `preferred_sample_rate` setting in the `options` option to `44100`.
+For example, some Google Cast devices skip initial audio part when the audio is sampled at 22050Hz, and to fix the problem it is required to set the `preferred_sample_rate` setting in the `options` option to `44100`.
diff --git a/source/_integrations/zerproc.markdown b/source/_integrations/zerproc.markdown
index 3282011277f..4bf6ca6bc4a 100644
--- a/source/_integrations/zerproc.markdown
+++ b/source/_integrations/zerproc.markdown
@@ -19,4 +19,3 @@ This {% term integration %} discovers nearby Zerproc lights and adds them to Hom
{% include integrations/config_flow.md %}
The {% term integration %} will scan for nearby devices, and is completed if any are found. No additional configuration is required. The integration will perform a BLE scan every 60 seconds to search for new devices.
-