Skip to content
Draft
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
cde7474
Add Wiim provider
davidanthoff Jan 31, 2026
6ccc16b
Small fixes for Wiim provider
davidanthoff Jan 31, 2026
786c9a2
Cleanup Wiim codebase
davidanthoff Feb 1, 2026
098e0be
Simplify Wiim code
davidanthoff Feb 1, 2026
3d6ceeb
Implement device discovery for Wiim provider
davidanthoff Feb 12, 2026
78ea62c
Reduce logging for Wiim provider
davidanthoff Feb 12, 2026
2463617
Add more features to Wiim provider
davidanthoff Feb 12, 2026
b7987b9
Merge branch 'dev' into da/pywiim
davidanthoff Feb 12, 2026
49b4ac8
Handle sources better for the Wiim provider
davidanthoff Feb 13, 2026
1dae323
Add beta stage to Wiim provider
davidanthoff Feb 13, 2026
1bc3342
Unload things properly for Wiim provider
davidanthoff Feb 13, 2026
b9728b8
Refactor a small part of the Wiim provider
davidanthoff Feb 13, 2026
8f8b922
Update pywiim version
davidanthoff Feb 14, 2026
50b2cd3
Fix source handling in Wiim provider
davidanthoff Feb 14, 2026
a3d885b
Update Wiim logo
davidanthoff Feb 14, 2026
4c46cab
Merge branch 'dev' into da/pywiim
davidanthoff Feb 14, 2026
e36f63b
Merge branch 'dev' into da/pywiim
MarvinSchenkel Feb 16, 2026
a9d65ef
Fix white space stripping for Wiim provider
davidanthoff Feb 17, 2026
32a4d2d
Merge branch 'da/pywiim' of https://github.com/davidanthoff/server in…
davidanthoff Feb 17, 2026
697ed6a
Address feedback on Wiim provider
davidanthoff Feb 17, 2026
a48a581
Remove old file from Wiim provider
davidanthoff Feb 18, 2026
5c5c52e
Pin async-upnp-client for Wiim provider
davidanthoff Feb 18, 2026
2f97f0c
Various progress on Wiim provider
davidanthoff Feb 18, 2026
a1e579e
Change a log level in the Wiim provider
davidanthoff Feb 18, 2026
d97dded
Update Wiim icon
davidanthoff Feb 18, 2026
7ad4036
Update pywiim and set manufacturer field
davidanthoff Feb 18, 2026
bd79980
Merge branch 'dev' into da/pywiim
davidanthoff Feb 18, 2026
86fef77
Move player disocvery to new function for Wiim provider
davidanthoff Feb 18, 2026
0e559eb
Handle discovery errors better in Wiim provider
davidanthoff Feb 18, 2026
4d9eba3
Merge branch 'dev' into da/pywiim
davidanthoff Feb 18, 2026
6f8a014
Deduplicate manual ip addresses for Wiim provider
davidanthoff Feb 18, 2026
87cd16b
Skip disabled player in discovery in Wiim provider
davidanthoff Feb 18, 2026
7dbcb2b
Add master to beginning of group for Wiim provider
davidanthoff Feb 19, 2026
d985d4e
Mention Linkplay in Wiim provider description
davidanthoff Feb 19, 2026
0ce3529
Make resource cleanup more robust in Wiim provider
davidanthoff Feb 19, 2026
0900ed8
Merge branch 'dev' into da/pywiim
davidanthoff Feb 19, 2026
6c90989
Fix string interpolation in Wiim provider
davidanthoff Feb 19, 2026
eee7b7c
Merge branch 'da/pywiim' of https://github.com/davidanthoff/server in…
davidanthoff Feb 19, 2026
889c1d0
Fix a None situation in Wiim provider
davidanthoff Feb 19, 2026
a7e8ade
Simplify code in Wiim player
davidanthoff Feb 20, 2026
2eb40b6
Merge branch 'dev' into da/pywiim
MarvinSchenkel Feb 23, 2026
66d1a56
Update pywiim dep for Wiim provider
davidanthoff Feb 24, 2026
ebc8392
Use better model name for Wiim provider
davidanthoff Feb 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions music_assistant/providers/wiim/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
"""
Provider for WiiM speakers.
This package provides a Music Assistant provider implementation for WiiM speakers.
"""

from __future__ import annotations

from typing import TYPE_CHECKING

from music_assistant_models.enums import ProviderFeature

from music_assistant.constants import CONF_ENTRY_MANUAL_DISCOVERY_IPS

from .provider import WiimProvider

if TYPE_CHECKING:
from music_assistant_models.config_entries import ConfigEntry, ConfigValueType, ProviderConfig
from music_assistant_models.provider import ProviderManifest

from music_assistant.mass import MusicAssistant
from music_assistant.models import ProviderInstanceType

SUPPORTED_FEATURES = {
ProviderFeature.SYNC_PLAYERS,
}


async def setup(
mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
) -> ProviderInstanceType:
"""Initialize provider(instance) with given configuration."""
return WiimProvider(mass, manifest, config, SUPPORTED_FEATURES)


async def get_config_entries(
mass: MusicAssistant, # noqa: ARG001
instance_id: str | None = None, # noqa: ARG001
action: str | None = None, # noqa: ARG001
values: dict[str, ConfigValueType] | None = None, # noqa: ARG001
) -> tuple[ConfigEntry, ...]:
"""
Return Config entries to setup this provider.
instance_id: id of an existing provider instance (None if new instance setup).
action: [optional] action key called from config entries UI.
values: the (intermediate) raw values for config entries sent with the action.
"""
return (CONF_ENTRY_MANUAL_DISCOVERY_IPS,)
32 changes: 32 additions & 0 deletions music_assistant/providers/wiim/icon.svg
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Seems the lint is failing on this file. Could you add a blank line?

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions music_assistant/providers/wiim/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"type": "player",
"domain": "wiim",
"name": "WiiM",
"stage": "beta",
"description": "Stream music to WiiM and LinkPlay devices.",
"codeowners": ["@davidanthoff"],
"requirements": ["pywiim==2.1.84", "async-upnp-client==0.46.2"],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If you bump pywiim to the latest version, it should also fix those Sonos discovery warnings in the logs

"documentation": "https://music-assistant.io/player-support/wiim/"
}
Loading
Loading