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:
- Settings → Devices & Services → Add Integration
- Search for Jellyfin
- Enter your Jellyfin server URL:
http://your-server:8096 - Enter your admin username and password
- 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_tvmedia_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_versionsensor.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
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
| Problem | Cause | Fix |
|---|---|---|
| Integration not finding server | Wrong URL or firewall | Verify URL from HA host |
| No media player entities | No active sessions | Entities appear only when sessions are active |
| Automations not triggering | Entity name wrong | Check exact entity ID in Developer Tools |
| State shows "unavailable" | Jellyfin server offline | Check server status |
| Artwork not loading | HA cannot reach Jellyfin | Ensure 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
Lights dimming automatically when a movie starts is pure magic. My wife was impressed for the first time by my home lab.
The doorbell pause automation is genius. No more missing scenes when someone rings. Copied the YAML straight from this guide.
Leave a comment