-
-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Description
Feedback







URL
https://www.home-assistant.io/integrations/dlna_dmr/
Version
2025.7.1
Additional information
The problem
The DLNA Digital Media Renderer integration incorrectly handles devices that expose multiple, independent DLNA renderers on different ports but from the same IP address. When adding these renderers manually via the UI, Home Assistant creates some "empty shell" devices and incorrectly merges the entities of multiple renderers into a single device. This makes it impossible to control each renderer independently.
Environment
Home Assistant Core Version: (请在这里填写你的HA版本号, e.g., 2024.7.2)
Home Assistant Installation Type: Home Assistant Container (Docker)
Operating System: OpenWrt 24.10.2
Integration: DLNA Digital Media Renderer
Device: Yodaar Y4 multi-room audio amplifier (2 units in total, each exposing 4 DLNA renderers on different ports)
To Reproduce
Device Setup: Two Yodaar Y4 amplifiers are on the same LAN as Home Assistant.
Amplifier 1 IP: 192.168.11.215, exposing 4 renderers on ports 7000, 7010, 7020, 7030.
Amplifier 2 IP: 192.168.11.142, exposing 4 renderers on ports 7000, 7010, 7020, 7030.
A third-party tool (UPnP Manager) can successfully discover and identify all 8 unique renderers with their respective URLs (e.g., http://192.168.11.215:7000/).
Home Assistant Configuration:
Go to Settings -> Devices & Services -> Add Integration.
Search for and select "DLNA Digital Media Renderer".
Manually enter the URL for the first renderer, e.g., http://192.168.11.215:7020/ (for "1L Kitchen").
Repeat the process for another renderer from the same IP, e.g., http://192.168.11.215:7030/ (for "1L Study").
Expected behavior
Home Assistant should create two separate and independent devices, "1L Kitchen" and "1L Study", each containing its own single media_player entity. It should be possible to control them independently.
Actual behavior
Home Assistant's device and entity management becomes corrupted:
"Empty Shell" Devices are Created: An "empty shell" device is created for "1L Study". This device shows for manufacturer and model, and it contains no entities.
(Here you can attach the screenshot showing the device list with unknown manufacturer)
[你的“设备”列表截图,显示有几个设备是“<未知>”制造商的]
Entities are Incorrectly Merged: The media_player entity that should belong to the "1L Study" device is instead incorrectly merged into the "1L Kitchen" device.
Impossible to Control: As a result, the device page for "1L Kitchen" now shows control sliders for both "1L Kitchen" and "1L Study" entities, making independent control impossible. Any action on this page might affect both physical speakers.
(Here you can attach the screenshot showing the "1L Kitchen" device page with two control sliders)
[你的“1L厨房喇叭”设备截图,显示它下面同时有厨房和书房两个控制条的]
This behavior is consistent across all 8 renderers. Adding more renderers from the same IP address exacerbates the problem, creating more "empty shell" devices and merging their entities into the few "valid" ones.
Troubleshooting Steps Taken (What didn't work)
To rule out other factors, an extensive troubleshooting process was undertaken, with no success. This confirms the issue is likely a core integration bug, not an environmental problem.
Auto-discovery failed: The integration does not auto-discover any of the 8 renderers, even after extensive network optimization.
YAML configuration is deprecated: Attempting to configure via configuration.yaml results in an error stating that YAML configuration is no longer supported for this integration.
Network optimization: Enabled IGMP Snooping and installed/configured igmpproxy on the OpenWrt router. This did not enable auto-discovery.
Docker host network mode: Recreated the Home Assistant container using --network=host to eliminate any network isolation. This also did not enable auto-discovery.
Entity-level reassignment: Attempting to re-assign the wrongly-merged entities to the correct area does not solve the fundamental issue, as they are still incorrectly bound to the wrong device object.
Conclusion
The root cause appears to be a bug in how the DLNA integration handles device/entity registration and association when multiple distinct renderers are manually added from a single IP address. It fails to use the unique URL or the underlying UUID of each renderer to create a truly independent device object, leading to entity merging and the creation of "empty shell" devices.