184 lines
5.9 KiB
YAML
184 lines
5.9 KiB
YAML
# REST sensors for homelab services (Atlantis @ 100.83.230.112 via Tailscale)
|
|
#
|
|
# Service ports:
|
|
# sonarr 8989 /api/v3
|
|
# radarr 7878 /api/v3
|
|
# sabnzbd 8080 /sabnzbd/api (sb2 has integration — prefer it)
|
|
# bazarr 6767 /api
|
|
# lazylib 5299 /api
|
|
# abs 13378 /api
|
|
# prowlarr 9696 /api/v1
|
|
|
|
# -------- Sonarr --------
|
|
- platform: rest
|
|
name: Sonarr Queue
|
|
unique_id: homelab_rest_sonarr_queue
|
|
resource: "http://100.83.230.112:8989/api/v3/queue"
|
|
headers:
|
|
X-Api-Key: !secret sonarr_api_key
|
|
value_template: "{{ value_json.totalRecords | default(0) }}"
|
|
unit_of_measurement: items
|
|
scan_interval: 120
|
|
|
|
- platform: rest
|
|
name: Sonarr Missing
|
|
unique_id: homelab_rest_sonarr_missing
|
|
resource: "http://100.83.230.112:8989/api/v3/wanted/missing?page=1&pageSize=1"
|
|
headers:
|
|
X-Api-Key: !secret sonarr_api_key
|
|
value_template: "{{ value_json.totalRecords | default(0) }}"
|
|
unit_of_measurement: episodes
|
|
scan_interval: 600
|
|
|
|
- platform: rest
|
|
name: Sonarr Series
|
|
unique_id: homelab_rest_sonarr_series
|
|
resource: "http://100.83.230.112:8989/api/v3/series"
|
|
headers:
|
|
X-Api-Key: !secret sonarr_api_key
|
|
value_template: "{{ value_json | length }}"
|
|
unit_of_measurement: series
|
|
scan_interval: 3600
|
|
|
|
# -------- Radarr --------
|
|
- platform: rest
|
|
name: Radarr Queue
|
|
unique_id: homelab_rest_radarr_queue
|
|
resource: "http://100.83.230.112:7878/api/v3/queue"
|
|
headers:
|
|
X-Api-Key: !secret radarr_api_key
|
|
value_template: "{{ value_json.totalRecords | default(0) }}"
|
|
unit_of_measurement: items
|
|
scan_interval: 120
|
|
|
|
- platform: rest
|
|
name: Radarr Missing
|
|
unique_id: homelab_rest_radarr_missing
|
|
resource: "http://100.83.230.112:7878/api/v3/wanted/missing?page=1&pageSize=1"
|
|
headers:
|
|
X-Api-Key: !secret radarr_api_key
|
|
value_template: "{{ value_json.totalRecords | default(0) }}"
|
|
unit_of_measurement: movies
|
|
scan_interval: 600
|
|
|
|
- platform: rest
|
|
name: Radarr Movies
|
|
unique_id: homelab_rest_radarr_movies
|
|
resource: "http://100.83.230.112:7878/api/v3/movie"
|
|
headers:
|
|
X-Api-Key: !secret radarr_api_key
|
|
value_template: "{{ value_json | length }}"
|
|
unit_of_measurement: movies
|
|
scan_interval: 3600
|
|
|
|
# -------- Prowlarr --------
|
|
- platform: rest
|
|
name: Prowlarr Indexers
|
|
unique_id: homelab_rest_prowlarr_indexers
|
|
resource: "http://100.83.230.112:9696/api/v1/indexer"
|
|
headers:
|
|
X-Api-Key: !secret prowlarr_api_key
|
|
value_template: "{{ value_json | length }}"
|
|
unit_of_measurement: indexers
|
|
scan_interval: 3600
|
|
|
|
# -------- Bazarr --------
|
|
- platform: rest
|
|
name: Bazarr Badges
|
|
unique_id: homelab_rest_bazarr_badges
|
|
resource: "http://100.83.230.112:6767/api/badges"
|
|
headers:
|
|
X-Api-Key: !secret bazarr_api_key
|
|
value_template: "{{ (value_json.missing_subtitles_movies | default(0)) + (value_json.missing_subtitles_episodes | default(0)) }}"
|
|
unit_of_measurement: missing
|
|
json_attributes:
|
|
- missing_subtitles_episodes
|
|
- missing_subtitles_movies
|
|
- throttled_providers
|
|
scan_interval: 600
|
|
|
|
# -------- SABnzbd --------
|
|
- platform: rest
|
|
name: SABnzbd Queue Speed
|
|
unique_id: homelab_rest_sabnzbd_queue_speed
|
|
resource: "http://100.83.230.112:8080/api?output=json&apikey="REDACTED_API_KEY"&mode=queue"
|
|
value_template: "{{ value_json.queue.kbpersec | default(0) | float / 1024 | round(2) }}"
|
|
unit_of_measurement: MB/s
|
|
json_attributes_path: "$.queue"
|
|
json_attributes:
|
|
- status
|
|
- noofslots_total
|
|
- mbleft
|
|
- timeleft
|
|
- diskspace1
|
|
scan_interval: 60
|
|
|
|
- platform: rest
|
|
name: SABnzbd Queue Size
|
|
unique_id: homelab_rest_sabnzbd_queue_size
|
|
resource: "http://100.83.230.112:8080/api?output=json&apikey="REDACTED_API_KEY"&mode=queue"
|
|
value_template: "{{ value_json.queue.noofslots_total | default(0) }}"
|
|
unit_of_measurement: jobs
|
|
scan_interval: 60
|
|
|
|
# -------- LazyLibrarian --------
|
|
- platform: rest
|
|
name: LazyLibrarian Version
|
|
unique_id: homelab_rest_lazylibrarian_version
|
|
resource: "http://100.83.230.112:5299/api?apikey=REDACTED_LL_API_KEY&cmd=getVersion"
|
|
value_template: "{{ value_json.current_version | default('?') }}"
|
|
scan_interval: 86400
|
|
|
|
- platform: rest
|
|
name: LazyLibrarian Wanted Books
|
|
unique_id: homelab_rest_lazylibrarian_wanted_books
|
|
resource: "http://100.83.230.112:5299/api?apikey=REDACTED_LL_API_KEY&cmd=getWanted"
|
|
value_template: "{{ value_json.data | length if value_json.data is defined else 0 }}"
|
|
unit_of_measurement: books
|
|
scan_interval: 600
|
|
|
|
# -------- Audiobookshelf --------
|
|
- platform: rest
|
|
name: Audiobookshelf Libraries
|
|
unique_id: homelab_rest_audiobookshelf_libraries
|
|
resource: "http://100.83.230.112:13378/api/libraries"
|
|
headers:
|
|
Authorization: !secret audiobookshelf_api_key
|
|
value_template: "{{ value_json.libraries | length }}"
|
|
unit_of_measurement: libraries
|
|
scan_interval: 3600
|
|
|
|
- platform: rest
|
|
name: Audiobookshelf Ebooks
|
|
unique_id: homelab_rest_audiobookshelf_ebooks
|
|
resource: "http://100.83.230.112:13378/api/libraries/5af23ed3-f69d-479b-88bc-1c4911c99d2d/items?limit=1"
|
|
headers:
|
|
Authorization: !secret audiobookshelf_api_key
|
|
value_template: "{{ value_json.total | default(0) }}"
|
|
unit_of_measurement: items
|
|
scan_interval: 3600
|
|
|
|
- platform: rest
|
|
name: Audiobookshelf Audiobooks
|
|
unique_id: homelab_rest_audiobookshelf_audiobooks
|
|
resource: "http://100.83.230.112:13378/api/libraries/d36776eb-fe81-467f-8fee-19435ee2827b/items?limit=1"
|
|
headers:
|
|
Authorization: !secret audiobookshelf_api_key
|
|
value_template: "{{ value_json.total | default(0) }}"
|
|
unit_of_measurement: items
|
|
scan_interval: 3600
|
|
|
|
# -------- Plex (local) --------
|
|
# Use the official HA Plex integration for full media_player entities.
|
|
# This REST sensor is a fallback for library counts.
|
|
- platform: rest
|
|
name: Plex Sessions
|
|
unique_id: homelab_rest_plex_sessions
|
|
resource: "http://localhost:32400/status/sessions"
|
|
headers:
|
|
X-Plex-Token: !secret plex_token
|
|
Accept: application/json
|
|
value_template: "{{ value_json.MediaContainer.size | default(0) }}"
|
|
unit_of_measurement: playing
|
|
scan_interval: 30
|