Skip to content

Linkplay - when grouped, the first media player returned is the coordinator #146295

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

MagicMicky
Copy link

Proposed change

Expose a new is_master attribute on each LinkPlay media_player entity.

  • Why
    Multi-room control cards (e.g. Mini Media Player and the core media-control card) need to know which player is the leader of a LinkPlay group.
    The unofficial HACS LinkPlay integration always returned the leader as the first part of the array of the group_members attribute, It also seems in line with how Sonos, bluesound_group (see design notes are implementing this attribute.

  • How
    By ensuring that the leader is returned first within the array of group_members

  • Result
    The leader is the first of the array returned, when a player is grouped.

No API or configuration changes are required; Home Assistant automatically publishes the new attribute after the next reload of the integration.

Note: I initially started by implementing an is_master flag due to my memory of it existing with the previous non official linkplay integration (see closed PR #146286). Upon further testing, this flag wasn't enough to be recognized as the master with integrations such as mini-media-player - it was awaiting the leader to be returned at position [0] of the array. Upon further research this was confirmed to be the case for other media_players such as sonos, bluesound and heos, which seem to have been even further reinforced upon the unification of the attributes into the current group_members).

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.

To help with the load of incoming pull requests:

…inator

Aligns with how other integrations are done (sonos, bluesound, heos...)
@home-assistant
Copy link

home-assistant bot commented Jun 7, 2025

Hey there @Velleman, mind taking a look at this pull request as it has been labeled with an integration (linkplay) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of linkplay can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign linkplay Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the pull request.

@MagicMicky MagicMicky marked this pull request as ready for review June 7, 2025 15:30
Copy link
Contributor

@silamon silamon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It took me a while to figure out why the leader wasn't on first position in the original code, but I see now. Thank you for taking the time to get this cleaned up.

Please note, a maintainer will run the CI flow soonish, and it will fail on linting. You may want to fix that in the meantime.

Copy link
Member

@joostlek joostlek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI is failing, can you take a look?

@home-assistant
Copy link

home-assistant bot commented Jun 8, 2025

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@home-assistant home-assistant bot marked this pull request as draft June 8, 2025 13:19
@MagicMicky
Copy link
Author

Hey thanks for the advice and seeing the future @silamon :)

Formatting should be fixed @joostlek - thanks for the early review

@MagicMicky MagicMicky marked this pull request as ready for review June 9, 2025 08:13
@home-assistant home-assistant bot requested a review from joostlek June 9, 2025 08:14
Copy link
Member

@joostlek joostlek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment hasn't been fixed or replied to

@home-assistant home-assistant bot marked this pull request as draft June 9, 2025 09:30
Copy link
Contributor

@silamon silamon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to undraft the pull request right now, then reviewers get notified and will review (shortly).

@MagicMicky MagicMicky marked this pull request as ready for review June 14, 2025 08:14
@home-assistant home-assistant bot requested a review from joostlek June 14, 2025 08:14
@MagicMicky
Copy link
Author

Hey @joostlek let me know if there's anything more i can do to help get this merged :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants