From f3f7cd6f34fc149676f3608c5034c3bac9684112 Mon Sep 17 00:00:00 2001 From: Anthony Garera Date: Wed, 10 Dec 2025 14:15:29 +0000 Subject: [PATCH 1/4] Document Overseerr issue management functionality Add documentation for new issue management features: - 6 new issue sensors (total, open, closed, video, audio, subtitle) - 4 new issue services (get_issues, create_issue, update_issue, delete_issue) - Example automations for automatic issue creation and monitoring - Updated use cases section --- source/_integrations/overseerr.markdown | 132 ++++++++++++++++++++++-- 1 file changed, 126 insertions(+), 6 deletions(-) diff --git a/source/_integrations/overseerr.markdown b/source/_integrations/overseerr.markdown index f75db5664aa7..8858e59f895c 100644 --- a/source/_integrations/overseerr.markdown +++ b/source/_integrations/overseerr.markdown @@ -58,7 +58,10 @@ Relevant data about the request are stored in the attributes. ### Sensors -The integration also provides statistics for the requests stored in Overseerr. +The integration provides statistics for both requests and issues stored in Overseerr. + +#### Request sensors + There are sensors for: - Total requests - Movie requests @@ -68,15 +71,34 @@ There are sensors for: - Processing requests - Available requests +#### Issue sensors + +There are sensors for: + - Total issues + - Open issues + - Closed issues + - Video issues + - Audio issues + - Subtitle issues + ## Actions The Overseerr integration has the following actions: -- Get requests +### Request actions + +- `overseerr.get_requests` - Get a list of media requests + +### Issue actions + +- `overseerr.get_issues` - Get a list of issues +- `overseerr.create_issue` - Create a new issue for media +- `overseerr.update_issue` - Update an existing issue +- `overseerr.delete_issue` - Delete an issue -### Action get requests +### Action `overseerr.get_requests` -Get a list of media requests using `overseerr.get_requests`. +Get a list of media requests. | Data attribute | Optional | Description | |-------------------|----------|-------------------------------------------------------------| @@ -85,11 +107,59 @@ Get a list of media requests using `overseerr.get_requests`. | `sort_order` | Yes | The sort order to sort the results in (`added`/`modified`). | | `requested_by` | Yes | Filter the requests based on the user ID of the requester. | +### Action `overseerr.get_issues` + +Get a list of issues from Overseerr. + +| Data attribute | Optional | Description | +|-------------------|----------|-------------------------------------------------------------| +| `config_entry_id` | No | The ID of the Overseerr config entry to get data from. | +| `issue_status` | Yes | Filter by status (`open` or `resolved`). | +| `sort_order` | Yes | The sort order to sort the results in (`added`/`modified`). | +| `requested_by` | Yes | Filter by the user ID that reported the issue. | + +### Action `overseerr.create_issue` + +Create a new issue in Overseerr for a specific media item. + +| Data attribute | Optional | Description | +|-------------------|----------|-------------------------------------------------------------------| +| `config_entry_id` | No | The ID of the Overseerr config entry. | +| `issue_type` | No | The type of issue: `1` (Video), `2` (Audio), `3` (Subtitles), `4` (Other). | +| `message` | No | Description of the issue. | +| `media_id` | No | The TMDB ID of the media item. | +| `problem_season` | Yes | The season number with the issue (for TV shows). Defaults to 0. | +| `problem_episode` | Yes | The episode number with the issue (for TV shows). Defaults to 0. | + +### Action `overseerr.update_issue` + +Update an existing issue in Overseerr. + +| Data attribute | Optional | Description | +|-------------------|----------|-------------------------------------------------------------| +| `config_entry_id` | No | The ID of the Overseerr config entry. | +| `issue_id` | No | The ID of the issue to update. | +| `issue_status` | Yes | New status: `1` (Open) or `2` (Resolved). | +| `message` | Yes | Add a comment to the issue. | + +### Action `overseerr.delete_issue` + +Delete an issue from Overseerr. + +| Data attribute | Optional | Description | +|-------------------|----------|------------------------------------------------| +| `config_entry_id` | No | The ID of the Overseerr config entry. | +| `issue_id` | No | The ID of the issue to delete. | + ## Use cases -The integration can be used to build automations to help and notify you of new media requests. -The provided actions can be used to provide extra context to voice assistants. +The integration can be used to build automations to help and notify you of new media requests and issues. +The provided actions can be used to: +- Automatically create issues when media playback fails +- Send notifications about new issues +- Resolve issues based on external triggers +- Provide extra context to voice assistants ## Example automations @@ -124,6 +194,56 @@ actions: {% endraw %} {% enddetails %} +{% details "Automatically create an issue when Plex playback fails" %} + +{% raw %} + +```yaml +alias: "Report Plex playback issue to Overseerr" +description: "Create an issue in Overseerr when Plex media fails to play" +triggers: + - trigger: state + entity_id: + - media_player.plex_living_room + to: "unavailable" +conditions: + - condition: template + value_template: >- + {{ trigger.from_state.attributes.media_content_id is defined }} +actions: + - action: overseerr.create_issue + data: + issue_type: 1 # Video issue + message: "Media failed to play on {{ trigger.entity_id }}" + media_id: "{{ trigger.from_state.attributes.media_content_id }}" +``` + +{% endraw %} +{% enddetails %} + +{% details "Send notification when open issues exceed threshold" %} + +{% raw %} + +```yaml +alias: "Notify when too many open issues" +description: "Alert when open issues in Overseerr exceed 10" +triggers: + - trigger: numeric_state + entity_id: + - sensor.overseerr_open_issues + above: 10 +actions: + - action: notify.mobile_app + data: + message: >- + Warning: {{ states('sensor.overseerr_open_issues') }} open issues in Overseerr! + title: "High Issue Count" +``` + +{% endraw %} +{% enddetails %} + ## Data updates When loading the integration, it will try to configure the webhook in Overseerr to give updates to Home Assistant. From 696644c53b89ba2546903b146e269e15753e9085 Mon Sep 17 00:00:00 2001 From: Anthony Garera Date: Fri, 12 Dec 2025 18:57:27 +0000 Subject: [PATCH 2/4] Use list format and non-YAML titles for action documentation - Changed action section titles to non-YAML format (e.g., 'Get requests' instead of 'Action overseerr.get_requests') - Mention the YAML action name in the introduction sentence - Replaced tables with list format for better readability - Format: **field_name** (*Required/Optional*): Description --- source/_integrations/overseerr.markdown | 70 +++++++++++-------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/source/_integrations/overseerr.markdown b/source/_integrations/overseerr.markdown index 8858e59f895c..006620f716bb 100644 --- a/source/_integrations/overseerr.markdown +++ b/source/_integrations/overseerr.markdown @@ -96,60 +96,50 @@ The Overseerr integration has the following actions: - `overseerr.update_issue` - Update an existing issue - `overseerr.delete_issue` - Delete an issue -### Action `overseerr.get_requests` +### Get requests -Get a list of media requests. +Get a list of media requests using the `overseerr.get_requests` action. -| Data attribute | Optional | Description | -|-------------------|----------|-------------------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry to get data from. | -| `status` | Yes | The status to filter the results on. | -| `sort_order` | Yes | The sort order to sort the results in (`added`/`modified`). | -| `requested_by` | Yes | Filter the requests based on the user ID of the requester. | +- **config_entry_id** (*Required*): The ID of the Overseerr config entry to get data from. +- **status** (*Optional*): The status to filter the results on. +- **sort_order** (*Optional*): The sort order to sort the results in (`added`/`modified`). +- **requested_by** (*Optional*): Filter the requests based on the user ID of the requester. -### Action `overseerr.get_issues` +### Get issues -Get a list of issues from Overseerr. +Get a list of issues from Overseerr using the `overseerr.get_issues` action. -| Data attribute | Optional | Description | -|-------------------|----------|-------------------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry to get data from. | -| `issue_status` | Yes | Filter by status (`open` or `resolved`). | -| `sort_order` | Yes | The sort order to sort the results in (`added`/`modified`). | -| `requested_by` | Yes | Filter by the user ID that reported the issue. | +- **config_entry_id** (*Required*): The ID of the Overseerr config entry to get data from. +- **issue_status** (*Optional*): Filter by status (`open` or `resolved`). +- **sort_order** (*Optional*): The sort order to sort the results in (`added`/`modified`). +- **requested_by** (*Optional*): Filter by the user ID that reported the issue. -### Action `overseerr.create_issue` +### Create issue -Create a new issue in Overseerr for a specific media item. +Create a new issue in Overseerr for a specific media item using the `overseerr.create_issue` action. -| Data attribute | Optional | Description | -|-------------------|----------|-------------------------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry. | -| `issue_type` | No | The type of issue: `1` (Video), `2` (Audio), `3` (Subtitles), `4` (Other). | -| `message` | No | Description of the issue. | -| `media_id` | No | The TMDB ID of the media item. | -| `problem_season` | Yes | The season number with the issue (for TV shows). Defaults to 0. | -| `problem_episode` | Yes | The episode number with the issue (for TV shows). Defaults to 0. | +- **config_entry_id** (*Required*): The ID of the Overseerr config entry. +- **issue_type** (*Required*): The type of issue: `1` (Video), `2` (Audio), `3` (Subtitles), `4` (Other). +- **message** (*Required*): Description of the issue. +- **media_id** (*Required*): The TMDB ID of the media item. +- **problem_season** (*Optional*): The season number with the issue (for TV shows). Defaults to 0. +- **problem_episode** (*Optional*): The episode number with the issue (for TV shows). Defaults to 0. -### Action `overseerr.update_issue` +### Update issue -Update an existing issue in Overseerr. +Update an existing issue in Overseerr using the `overseerr.update_issue` action. -| Data attribute | Optional | Description | -|-------------------|----------|-------------------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry. | -| `issue_id` | No | The ID of the issue to update. | -| `issue_status` | Yes | New status: `1` (Open) or `2` (Resolved). | -| `message` | Yes | Add a comment to the issue. | +- **config_entry_id** (*Required*): The ID of the Overseerr config entry. +- **issue_id** (*Required*): The ID of the issue to update. +- **issue_status** (*Optional*): New status: `1` (Open) or `2` (Resolved). +- **message** (*Optional*): Add a comment to the issue. -### Action `overseerr.delete_issue` +### Delete issue -Delete an issue from Overseerr. +Delete an issue from Overseerr using the `overseerr.delete_issue` action. -| Data attribute | Optional | Description | -|-------------------|----------|------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry. | -| `issue_id` | No | The ID of the issue to delete. | +- **config_entry_id** (*Required*): The ID of the Overseerr config entry. +- **issue_id** (*Required*): The ID of the issue to delete. ## Use cases From 83fb091eaa902185ec13cf135766d77d659c5768 Mon Sep 17 00:00:00 2001 From: Anthony Garera Date: Wed, 17 Dec 2025 16:19:46 +0000 Subject: [PATCH 3/4] updating docs to only be about sensors --- source/_integrations/overseerr.markdown | 150 +++++++++++++----------- 1 file changed, 81 insertions(+), 69 deletions(-) diff --git a/source/_integrations/overseerr.markdown b/source/_integrations/overseerr.markdown index 006620f716bb..2ec7d173e918 100644 --- a/source/_integrations/overseerr.markdown +++ b/source/_integrations/overseerr.markdown @@ -89,13 +89,6 @@ The Overseerr integration has the following actions: - `overseerr.get_requests` - Get a list of media requests -### Issue actions - -- `overseerr.get_issues` - Get a list of issues -- `overseerr.create_issue` - Create a new issue for media -- `overseerr.update_issue` - Update an existing issue -- `overseerr.delete_issue` - Delete an issue - ### Get requests Get a list of media requests using the `overseerr.get_requests` action. @@ -105,51 +98,10 @@ Get a list of media requests using the `overseerr.get_requests` action. - **sort_order** (*Optional*): The sort order to sort the results in (`added`/`modified`). - **requested_by** (*Optional*): Filter the requests based on the user ID of the requester. -### Get issues - -Get a list of issues from Overseerr using the `overseerr.get_issues` action. - -- **config_entry_id** (*Required*): The ID of the Overseerr config entry to get data from. -- **issue_status** (*Optional*): Filter by status (`open` or `resolved`). -- **sort_order** (*Optional*): The sort order to sort the results in (`added`/`modified`). -- **requested_by** (*Optional*): Filter by the user ID that reported the issue. - -### Create issue - -Create a new issue in Overseerr for a specific media item using the `overseerr.create_issue` action. - -- **config_entry_id** (*Required*): The ID of the Overseerr config entry. -- **issue_type** (*Required*): The type of issue: `1` (Video), `2` (Audio), `3` (Subtitles), `4` (Other). -- **message** (*Required*): Description of the issue. -- **media_id** (*Required*): The TMDB ID of the media item. -- **problem_season** (*Optional*): The season number with the issue (for TV shows). Defaults to 0. -- **problem_episode** (*Optional*): The episode number with the issue (for TV shows). Defaults to 0. - -### Update issue - -Update an existing issue in Overseerr using the `overseerr.update_issue` action. - -- **config_entry_id** (*Required*): The ID of the Overseerr config entry. -- **issue_id** (*Required*): The ID of the issue to update. -- **issue_status** (*Optional*): New status: `1` (Open) or `2` (Resolved). -- **message** (*Optional*): Add a comment to the issue. - -### Delete issue - -Delete an issue from Overseerr using the `overseerr.delete_issue` action. - -- **config_entry_id** (*Required*): The ID of the Overseerr config entry. -- **issue_id** (*Required*): The ID of the issue to delete. - ## Use cases The integration can be used to build automations to help and notify you of new media requests and issues. -The provided actions can be used to: -- Automatically create issues when media playback fails -- Send notifications about new issues -- Resolve issues based on external triggers -- Provide extra context to voice assistants ## Example automations @@ -184,51 +136,111 @@ actions: {% endraw %} {% enddetails %} -{% details "Automatically create an issue when Plex playback fails" %} +{% details "Send notification when open issues exceed threshold" %} {% raw %} ```yaml -alias: "Report Plex playback issue to Overseerr" -description: "Create an issue in Overseerr when Plex media fails to play" +alias: "Notify when too many open issues" +description: "Alert when open issues in Overseerr exceed 10" triggers: - - trigger: state + - trigger: numeric_state entity_id: - - media_player.plex_living_room - to: "unavailable" -conditions: - - condition: template - value_template: >- - {{ trigger.from_state.attributes.media_content_id is defined }} + - sensor.overseerr_open_issues + above: 10 actions: - - action: overseerr.create_issue + - action: notify.mobile_app data: - issue_type: 1 # Video issue - message: "Media failed to play on {{ trigger.entity_id }}" - media_id: "{{ trigger.from_state.attributes.media_content_id }}" + message: >- + Warning: {{ states('sensor.overseerr_open_issues') }} open issues in Overseerr! + title: "High Issue Count" ``` {% endraw %} {% enddetails %} -{% details "Send notification when open issues exceed threshold" %} +{% details "Track audio issues trend with statistics sensor" %} {% raw %} ```yaml -alias: "Notify when too many open issues" -description: "Alert when open issues in Overseerr exceed 10" +alias: "Monitor audio issue trends" +description: "Create a statistics sensor to track audio issue trends over time" +sensor: + - platform: statistics + name: "Audio Issues Statistics" + entity_id: sensor.overseerr_audio_issues + state_characteristic: mean + max_age: + days: 7 + sampling_size: 100 +``` + +{% endraw %} +{% enddetails %} + +{% details "Alert when video issues spike" %} + +{% raw %} + +```yaml +alias: "Video issues spike alert" +description: "Notify when video issues increase significantly" triggers: - trigger: numeric_state entity_id: - - sensor.overseerr_open_issues - above: 10 + - sensor.overseerr_video_issues + above: 5 actions: - action: notify.mobile_app data: message: >- - Warning: {{ states('sensor.overseerr_open_issues') }} open issues in Overseerr! - title: "High Issue Count" + Video issues are elevated: {{ states('sensor.overseerr_video_issues') }} issues detected + title: "Video Quality Alert" +``` + +{% endraw %} +{% enddetails %} + +{% details "Daily issue report" %} + +{% raw %} + +```yaml +alias: "Daily Overseerr issue summary" +description: "Send a daily report of all issue types" +triggers: + - trigger: time + at: "09:00:00" +conditions: + - condition: numeric_state + entity_id: sensor.overseerr_total_issues + above: 0 +actions: + - action: notify.mobile_app + data: + title: "Overseerr Daily Report" + message: >- + Total Issues: {{ states('sensor.overseerr_total_issues') }} + Open: {{ states('sensor.overseerr_open_issues') }} + Closed: {{ states('sensor.overseerr_closed_issues') }} + Video: {{ states('sensor.overseerr_video_issues') }} + Audio: {{ states('sensor.overseerr_audio_issues') }} + Subtitle: {{ states('sensor.overseerr_subtitle_issues') }} +``` + +{% endraw %} +{% enddetails %} + +{% details "Create dashboard badge for subtitle issues" %} + +{% raw %} + +```yaml +type: entity +entity: sensor.overseerr_subtitle_issues +name: Subtitle Issues +icon: mdi:subtitles ``` {% endraw %} From f20b321ee3875e99c6290e60f29e1979c34dfddd Mon Sep 17 00:00:00 2001 From: Anthony Garera Date: Wed, 17 Dec 2025 16:35:19 +0000 Subject: [PATCH 4/4] fixed typo --- source/_integrations/overseerr.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/overseerr.markdown b/source/_integrations/overseerr.markdown index 2ec7d173e918..5e39da7a9464 100644 --- a/source/_integrations/overseerr.markdown +++ b/source/_integrations/overseerr.markdown @@ -40,7 +40,7 @@ The latest version of Overseerr is supported by this integration. ## Supported functionality -The Overseerr intergation provides a couple of entities to Home Assistant. +The Overseerr integration provides a couple of entities to Home Assistant. Below is an overview of these entities. ### Events