Skip to content

[BUG] Ensemble shows DLNA players as playing when external source is active #27

@shpongledsummer

Description

@shpongledsummer

Background info

I am using the DLNA integration for my speakers since all other available providers or speaker integrations have critical issues after the latest MA updates. DLNA behaves differently and this issue seems to only affect the DLNA integration. I believe this is also mentioned in point 4 of issue #26.

The problem

If anything is playing on my speaker outside of Music Assistant such as optical in, Spotify, webradio stream, etc, the speaker is still shown as actively playing in Music Assistant but with the info External Provider Active. For example, when I watch TV via my WiiM Amp using the optical input, MA shows the speaker state as playing.

Because of this, Ensemble also shows the speaker as playing, but with the metadata from Music Assistant if anything was previously playing on that speaker. In this situation it looks like the speaker is playing a song in MA while it is actually playing an external source.

These screenshots show how this looks in both MA and Ensemble:

Image Image

As an example, these are the Music Assistant player attributes when the external source optical is active:

volume_level: 0.28
is_volume_muted: false
media_content_id: optical
media_content_type: music
media_position: 5145
media_position_updated_at: "2025-12-25T21:26:06.631337+00:00"
app_id: http
entity_picture_local: null
mass_player_type: player
active_queue: null
device_class: speaker
icon: mdi:speaker
friendly_name: Wohnzimmer
supported_features: 7796287

Proposed solution

Ensemble needs a way to detect when an external source is active on a player, possibly via the attributes or the get queue action.

In my opinion it does not make sense to show the player state as playing in this case since MA is not actually playing anything. It also defeats the purpose of having a separate Music Assistant player entity and results in many other issues (media control not working in that state, automations not working correctly and so on), but I was told in my issue (in the MA github project) that this is by design.

My ideal solution would be to show that the speaker is playing something externally via a small badge or info text and not mark it as playing in Ensemble. Media controls do not work in this situation anyway and it is confusing in the UI. I am just not sure what the cleanest way to implement this would be.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions