Jellyfin and Home Assistant Integration Guide (2026): Automations, Media Controls, and Dashboard Cards

Jellyfin and Home Assistant Integration Guide (2026): Automations, Media Controls, and Dashboard Cards

Jellyfin and Home Assistant Integration Guide (2026)

Home Assistant and Jellyfin are two of the most popular self-hosted applications - and they work beautifully together. Connect them and you can dim the lights when a movie starts, pause playback when someone rings the doorbell, and display now-playing info on your HA dashboard.

This guide covers the full integration: setup, automations, dashboard cards, and advanced use cases.


Prerequisites

  • Home Assistant (any recent version, HAOS or supervised)
  • Jellyfin server accessible from your HA instance
  • Jellyfin API key (Dashboard → API Keys → Create)

Step 1: Add the Jellyfin Integration

Jellyfin has an official integration in Home Assistant:

  1. Settings → Devices & Services → Add Integration
  2. Search for Jellyfin
  3. Enter your Jellyfin server URL: http://your-server:8096
  4. Enter your admin username and password
  5. Click Submit

Home Assistant discovers all your Jellyfin media players (one per active client/session) and creates entities automatically.


What the Integration Provides

Media player entities

For each active Jellyfin session, HA creates a media_player entity:

  • media_player.jellyfin_living_room_tv
  • media_player.jellyfin_bedroom

Each entity exposes:

  • State: playing, paused, idle, off
  • Media title, artist, album (for music)
  • Media content type: movie, episode, music
  • Position and duration
  • Volume level
  • Thumbnail/artwork

Sensor entities

  • sensor.jellyfin_server_version
  • sensor.jellyfin_active_sessions - count of active streams

Step 2: Dashboard Cards

Now Playing card

Add a media player card to your HA dashboard:

type: media-control
entity: media_player.jellyfin_living_room_tv

This shows the current title, artwork, playback controls (play/pause/stop/seek), and volume.

Active sessions counter

type: entity
entity: sensor.jellyfin_active_sessions
name: Jellyfin Active Streams
icon: mdi:television-play

Custom now-playing card with markdown

type: markdown
content: |
  ## Now Playing
  **{{ state_attr('media_player.jellyfin_living_room_tv', 'media_title') }}**
  {{ state_attr('media_player.jellyfin_living_room_tv', 'media_series_title') }}
  Position: {{ (state_attr('media_player.jellyfin_living_room_tv', 'media_position') / 60) | round(0) }} min

Step 3: Automations

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.

Dim lights when a movie starts

alias: Dim lights when Jellyfin plays
trigger:
  - platform: state
    entity_id: media_player.jellyfin_living_room_tv
    to: playing
condition:
  - condition: state
    entity_id: light.living_room
    state: "on"
action:
  - service: light.turn_on
    target:
      entity_id: light.living_room
    data:
      brightness_pct: 20
      transition: 3

Restore lights when playback pauses or stops

alias: Restore lights when Jellyfin pauses
trigger:
  - platform: state
    entity_id: media_player.jellyfin_living_room_tv
    to:
      - paused
      - idle
action:
  - service: light.turn_on
    target:
      entity_id: light.living_room
    data:
      brightness_pct: 80
      transition: 2

Pause Jellyfin when the doorbell rings

alias: Pause Jellyfin on doorbell
trigger:
  - platform: state
    entity_id: binary_sensor.doorbell
    to: "on"
condition:
  - condition: state
    entity_id: media_player.jellyfin_living_room_tv
    state: playing
action:
  - service: media_player.media_pause
    target:
      entity_id: media_player.jellyfin_living_room_tv

Turn on the TV when Jellyfin starts playing

alias: Turn on TV when Jellyfin plays
trigger:
  - platform: state
    entity_id: media_player.jellyfin_living_room_tv
    from: idle
    to: playing
action:
  - service: media_player.turn_on
    target:
      entity_id: media_player.samsung_tv

Send a notification when someone starts watching

alias: Notify when Jellyfin session starts
trigger:
  - platform: state
    entity_id: media_player.jellyfin_living_room_tv
    to: playing
action:
  - service: notify.mobile_app_my_phone
    data:
      title: "Jellyfin"
      message: >-
        Now playing: {{ state_attr('media_player.jellyfin_living_room_tv', 'media_title') }}

Advanced: Home Theater Scene

Create a full "Movie Night" scene triggered by Jellyfin:

alias: Movie Night Scene
trigger:
  - platform: state
    entity_id: media_player.jellyfin_living_room_tv
    to: playing
    attribute: media_content_type
    # Only trigger for movies, not episodes
condition:
  - condition: template
    value_template: >
      {{ state_attr('media_player.jellyfin_living_room_tv', 'media_content_type') == 'movie' }}
action:
  - service: scene.turn_on
    target:
      entity_id: scene.movie_night
  - service: media_player.volume_set
    target:
      entity_id: media_player.sonos_living_room
    data:
      volume_level: 0.4
  - service: cover.close_cover
    target:
      entity_id: cover.living_room_blinds

Controlling Jellyfin from Home Assistant

You can control Jellyfin playback directly from HA:

# Pause all Jellyfin sessions (e.g., at bedtime)
service: media_player.media_pause
target:
  entity_id:
    - media_player.jellyfin_living_room_tv
    - media_player.jellyfin_bedroom

Or use a dashboard button:

type: button
name: Pause All Jellyfin
tap_action:
  action: call-service
  service: media_player.media_pause
  target:
    entity_id: media_player.jellyfin_living_room_tv

Troubleshooting

ProblemCauseFix
Integration not finding serverWrong URL or firewallVerify URL from HA host
No media player entitiesNo active sessionsEntities appear only when sessions are active
Automations not triggeringEntity name wrongCheck exact entity ID in Developer Tools
State shows "unavailable"Jellyfin server offlineCheck server status
Artwork not loadingHA cannot reach JellyfinEnsure HA can access Jellyfin URL

FAQ

Does the integration work with multiple users? Yes. Each active session creates a separate media_player entity, regardless of which user is watching.

Can I start playback from Home Assistant? Yes, using media_player.play_media service with a Jellyfin item ID.

Does it work with Jellyfin Music? Yes. Music sessions expose artist, album, and track information.

Does it work remotely (outside home network)? Yes, as long as HA can reach your Jellyfin server URL.


Jellyfin integrated with your smart home - now monitor the server side too. Download JellyWatch on Google Play - real-time session monitoring, transcoding alerts, and server health for Jellyfin on Android.

On Emby? Download EmbyWatch on Google Play - the same smart home monitoring experience for Emby servers.

Comments 2

SmartHomeFan·

Lights dimming automatically when a movie starts is pure magic. My wife was impressed for the first time by my home lab.

HA_Addict·

The doorbell pause automation is genius. No more missing scenes when someone rings. Copied the YAML straight from this guide.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.