Septillion schreef op dinsdag 6 januari 2026 @ 17:17:
@
skank Dan zal je er overheen moeten loopen ofzo en kijken naar Id of Client (name). Weet je al of Id statisch is ofzo?
Dan zou je dus info eruit kunnen halen als
Django/Jinja:
1
2
3
4
5
6
7
8
9
| {% set ns = namespace(index=none) -%}
{% for p in jellyfin_response.content -%}
{% if p.Id == '7616c8e85e46387d9e864885837a085d' -%}
{% set ns.i = loop.index0 -%}
{% endif -%}
{% endfor %}
{% if ns.i is not none -%}
{{ jellyfin_response.content[ns.i].PlayState }}
{% endif -%} |
Random voorbeeldje, je zal zelf juist velden moeten bepalen.
En kan iig niet direct een media player entity maken gezien HA daar standaard geen template voor ondersteund. Dus je zal zaken naar entiteiten moeten drukken.
Maar hele unieke identificeren is waar volgens mij het lastige en waar de officiële integratie dus ook
op faalt Dus of dit echt een oplossing gaat zijn...
Ik heb zelf ook dat issue gevonden

De officiële integratie identificeert op basis van niet stabiel ID zijn DeviceId en/of SessionID, daar kunnen we niet op voort gaan.
Daarom wil ik net,in plaats daarvan:
1 vaste sensor
- haalt alle actieve Jellyfin sessies op
2. Statische template media_players
- één per toestel
- vaste unique_id
- bestaan altijd
2. State = idle / playing / paused
4. Artwork via entity_picture
Een template zou dit kunnen fixen? De enige betrouwbare sleutel volgens mij is de DeviceName... en die is statisch.
Los daarvan, moet die all sensor ook niet eerst werken?
Edit: in principe hoef ik geen mediaplayer want ik ga ze er nooit mee bedienen (niet spelen,pauzeren, volume wijzigen,..). Dus een sensor is voldoende...
Daarom heb ik nu dit, mogelijks voldoende
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| template:
#####################################
# 1️⃣ Centrale Jellyfin Sessions Sensor
#####################################
- triggers:
- trigger: time_pattern
seconds: /10
actions:
- action: rest_command.jellyfin
response_variable: jellyfin_response
sensor:
- name: Jellyfin Sessions
unique_id: jellyfin_sessions
state: >-
{% if jellyfin_response is defined %}
{% set data = jellyfin_response | from_json(default={}) %}
{{ data.get('NowPlayingItem', []) | length }}
{% else %}
{{ this.state }}
{% endif %}
attributes:
sessions: >-
{% if jellyfin_response is defined %}
{% set data = jellyfin_response | from_json(default={}) %}
{{ data.get('NowPlayingItem', []) }}
{% else %}
{{ this.attributes.sessions | default([]) }}
{% endif %}
#####################################
# 2️⃣ Template Sensors per Device
#####################################
- sensor:
# Living Room Player
- name: Test player
unique_id: test_player
state: >-
{% set sessions = state_attr('sensor.jellyfin_sessions', 'sessions') | default([]) %}
{% set matching = sessions | selectattr('DeviceName', 'equalto', 'Chrome') | list %}
{% set s = matching[0] if matching|length > 0 else None %}
{% if s is none %}
idle
{% elif s.get('PlayState', {}).get('IsPaused') %}
paused
{% else %}
playing
{% endif %}
attributes:
title: >-
{% set sessions = state_attr('sensor.jellyfin_sessions', 'sessions') | default([]) %}
{% set matching = sessions | selectattr('DeviceName', 'equalto', 'Chrome') | list %}
{% set s = matching[0] if matching|length > 0 else None %}
{% if s and s.NowPlayingItem is defined %}
{{ s.NowPlayingItem.Name }}
{% else %}
''
{% endif %}
user: >-
{% set sessions = state_attr('sensor.jellyfin_sessions', 'sessions') | default([]) %}
{% set matching = sessions | selectattr('DeviceName', 'equalto', 'Chrome') | list %}
{% set s = matching[0] if matching|length > 0 else None %}
{% if s and s.UserName is defined %}
{{ s.UserName }}
{% else %}
''
{% endif %}
progress: >-
{% set sessions = state_attr('sensor.jellyfin_sessions', 'sessions') | default([]) %}
{% set matching = sessions | selectattr('DeviceName', 'equalto', 'Chrome') | list %}
{% set s = matching[0] if matching|length > 0 else None %}
{% if s and s.PlayState and s.PlayState.PositionTicks is defined %}
{{ (s.PlayState.PositionTicks / 10000000) | round(0) }}
{% else %}
0
{% endif %}
entity_picture: >-
{% set sessions = state_attr('sensor.jellyfin_sessions', 'sessions') | default([]) %}
{% set matching = sessions | selectattr('DeviceName', 'equalto', 'Chrome') | list %}
{% set s = matching[0] if matching|length > 0 else None %}
{% if s and s.NowPlayingItem is defined %}
http://192.168.1.117:8096/Items/{{ s.NowPlayingItem.Id }}/Images/Primary
{% else %}
''
{% endif %} |
Het vreemde is wel dat mn sessions sensor niet meer werkt. Echter als ik kijk onder development tools zie ik staan sensor.jellyfin_sessions_2
MAar die 2 bestaat niet, en heb ook zelfs alles uit registry verwijderd, en nog blijft hij wijzen ernaar.
Kan dat de reden zijn waarom hij niet werkt?
De gewone sensor.jellyfin_sessions lijkt hij niet te vinden
[
Voor 59% gewijzigd door
skank op 06-01-2026 19:47
]