core
core copied to clipboard
LinkPlay errors in log with integration ignored
The problem
Hello, I'm getting LinkPlay errors in my log despite the integration being ignored/not setup. Specifically errors about failure to connect to devices. I wouldn't expect to see these unless I was actively using the integration. Is that an incorrect assumption?
What version of Home Assistant Core has the issue?
2025.4.1
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
LinkPlay
Link to integration documentation on our website
https://www.home-assistant.io/integrations/linkplay
Diagnostics information
No response
Example YAML snippet
Anything in the logs that might be useful for us?
Logger: homeassistant.components.linkplay.config_flow
Source: components/linkplay/config_flow.py:38
integration: linkplay (documentation, issues)
First occurred: 5:04:58 AM (2 occurrences)
Last logged: 6:12:15 AM
Failed to connect to LinkPlay device at 192.168.0.194
Failed to connect to LinkPlay device at 192.168.0.207
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1115, in _wrap_create_connection
sock = await aiohappyeyeballs.start_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<5 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/aiohappyeyeballs/impl.py", line 122, in start_connection
raise first_exception
File "/usr/local/lib/python3.13/site-packages/aiohappyeyeballs/impl.py", line 73, in start_connection
sock = await _connect_sock(
^^^^^^^^^^^^^^^^^^^^
...<6 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/aiohappyeyeballs/impl.py", line 208, in _connect_sock
await loop.sock_connect(sock, address)
File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 641, in sock_connect
return await fut
^^^^^^^^^
File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 681, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('192.168.0.194', 80)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/linkplay/utils.py", line 47, in session_call_api
response = await session.get(url)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/client.py", line 703, in _request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
req, traces=traces, timeout=real_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 548, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1056, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1400, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1369, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<7 lines>...
)
^
File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1130, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host 192.168.0.194:80 ssl:default [Connect call failed ('192.168.0.194', 80)]
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/linkplay/config_flow.py", line 38, in async_step_zeroconf
bridge = await linkplay_factory_httpapi_bridge(discovery_info.host, session)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/discovery.py", line 66, in linkplay_factory_httpapi_bridge
return await linkplay_factory_bridge_endpoint(http_endpoint)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/discovery.py", line 39, in linkplay_factory_bridge_endpoint
await bridge.device.update_status()
File "/usr/local/lib/python3.13/site-packages/linkplay/bridge.py", line 49, in update_status
self.properties = await self.bridge.json_request(LinkPlayCommand.DEVICE_STATUS) # type: ignore[assignment]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/bridge.py", line 439, in json_request
response = await self.endpoint.json_request(command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/endpoint.py", line 58, in json_request
return await session_call_api_json(self._endpoint, self._session, command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/utils.py", line 80, in session_call_api_json
result = await session_call_api(endpoint, session, command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/linkplay/utils.py", line 50, in session_call_api
raise LinkPlayRequestException(
f"{error} error requesting data from '{url}'"
) from error
linkplay.exceptions.LinkPlayRequestException: Cannot connect to host 192.168.0.194:80 ssl:default [Connect call failed ('192.168.0.194', 80)] error requesting data from 'http://192.168.0.194/httpapi.asp?command=getStatusEx'
Additional information
No response
Hey there @velleman, mind taking a look at this issue 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 closeCloses the issue.@home-assistant rename Awesome new titleRenames the issue.@home-assistant reopenReopen the issue.@home-assistant unassign linkplayRemoves the current integration label and assignees on the issue, add the integration domain after the command.@home-assistant add-label needs-more-informationAdd a label (needs-more-information, problem in dependency, problem in custom component) to the issue.@home-assistant remove-label needs-more-informationRemove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.
(message by CodeOwnersMention)
linkplay documentation linkplay source (message by IssueLinks)
It's the discovery that throws an error. I will take a look if it can be handled better. What device do you own? What is the reason you want it ignored?
I have a WiiM Amp and the AudioPro A10 and C10 speakers, both "WiiM Edition". I don't use HA to control these devices so I ignored the devices/integration when it was discovered. After I reported this issue I added them and then disabled each device to see if that would help mute this in the log but I am still seeing the error.
I've looked further into it, the error is handled like it should be but the zeroconf discovery keeps giving discovery info to the integration, which in turn cannot be handled. The best way would be to discover why it fails.
- http://192.168.0.194/httpapi.asp?command=getStatusEx
- https://192.168.0.194/httpapi.asp?command=getStatusEx
- https://192.168.0.194:4443/httpapi.asp?command=getStatusEx
- http://192.168.0.194/httpapi.asp?command=getStatus
- https://192.168.0.194/httpapi.asp?command=getStatus
- https://192.168.0.194:4443/httpapi.asp?command=getStatus
Does any of the above give something? The IP is the IP from the logging you provided. Other IP's are 192.168.0.194 and 192.168.0.207.
Alternatively, if you don't want spend time to get it properly fixed, you can higher the level of exceptions logged.
logger:
default: info # whatever is the default on your instance
logs:
homeassistant.components.linkplay: critical
Here's what it's giving me when using getStatusEx. I can't get anything when using the port 4443.
{ "language": "", "ssid": "AudioPro A10 WiiM-1364", "hideSSID": "0", "firmware": "Linkplay.5.2.707351", "build": "release", "project": "AudioPro_A10MKII_WiiM", "priv_prj": "AudioPro_A10MKII_WiiM", "project_build_name": "AudioPro_A10MKII_WiiM", "Release": "20250211", "FW_Release_version": "", "PCB_version": "0", "cast_enable": 0, "cast_usage_report": 1, "group": "0", "wmrm_version": "4.3", "wmrm_sub_ver": "2", "expired": "0", "internet": "1", "uuid": "FF98F60208757E2728B68E25", "MAC": "54:78:C9:3E:13:64", "BTMAC": "54:78:c9:3e:13:65", "InitialConfiguration": "1", "AP_MAC": "56:78:C9:3E:53:64", "date": "2025:04:18", "time": "14:47:39", "netstat": "2", "essid": "47616C616374696361", "apcli0": "192.168.0.194", "eth0": "0.0.0.0", "eth2": "0.0.0.0", "ETH_MAC": "00:00:00:00:00:00", "hardware": "AmlogicA113", "ota_api_ver": "3.0", "VersionUpdate": "0", "NewVer": "0", "mcu_ver": "232", "mcu_ver_new": "0", "update_check_count": "55", "BleRemote_update_checked_counter": "0", "ra0": "10.10.10.254", "temp_uuid": "3A011D238D188826", "cap1": "0x40001400", "capability": "0x21694008", "languages": "0x11ec", "prompt_status": "1", "dsp_ver": "", "ModuleColorNumber": "5", "ModuleColorString": "", "dsp_ver_new": "", "uboot_verinfo": "240829.152556", "silence_ota_flag": "0", "ota_interface_ver": "2.0", "streams_all": "0xeff33fd", "streams": "0xeff33fd", "region": "unknown", "volume_control": "0", "external": "0x0", "preset_key": "4", "plm_support": "0x2b00006", "mqtt_support": "1", "lbc_support": "0", "WifiChannel": "0", "RSSI": "-57", "BSSID": "20:6D:31:61:04:5F", "wlanSnr": "35", "wlanNoise": "-92", "wlanFreq": "5180", "wlanDataRate": "351", "battery": "0", "battery_percent": "0", "securemode": "1", "upnp_version": "1005", "upnp_uuid": "uuid:FF98F602-0875-7E27-28B6-8E25FF98F602", "uart_pass_port": "8899", "communication_port": "8819", "web_firmware_update_hide": "0", "new_tunein_preset_and_alarm": "1", "new_iheart_podcast": "1", "tidal_version": "2.0", "service_version": "1.0", "HiFiSRC_version": "1.1", "EQ_support": "Eq4p_ver_2.0", "EQVersion": "4.3", "audio_channel_config": "1.0", "app_timezone_id": "America\/Denver", "avs_timezone_id": "America\/Denver", "tz_info_ver": "1.0", "tz": "-6.0", "max_volume": "100", "power_mode": "-1", "security": "https\/2.0", "security_version": "3.0", "security_capabilities": { "ver": "1.0", "aes_ver": "1.0" }, "public_https_version": "1.0", "set_play_mode_enable": "0", "set_play_mode_gain": "0", "audioOutputModeVer": "1.1", "audioInputModeVer": "1.0", "deviceSettingVer": "1.0", "privacy_mode": "0", "DeviceName": "Kitchen", "GroupName": "Kitchen" }
Which of the urls I provided does give that response?
It works for http://192.168.0.194/httpapi.asp?command=getStatusEx
and it works for https same command but with self signed certificate warning first. https://192.168.0.194/httpapi.asp?command=getStatusEx
I get "unknown command" for https://192.168.0.194/httpapi.asp?command=getStatus and unable to connect to https://192.168.0.194:4443/httpapi.asp?command=getStatusEx
I have the same issue
With a Wiim Pro, I get the following error in the log:
File "/usr/local/lib/python3.13/site-packages/linkplay/utils.py", line 84, in session_call_api_json
raise LinkPlayInvalidDataException(
f"Unexpected JSON ({result}) received from '{url}'"
) from jsonexc
linkplay.exceptions.LinkPlayInvalidDataException: Unexpected JSON (Failed) received from 'https://192.168.1.108/httpapi.asp?command=getMetaInfo'
When I point a browser to that URL, I just get back the string "Failed".
Instead, https://192.168.1.108/httpapi.asp?command=getStatusEx returns:
{
"language": "en_us",
"ssid": "WiiM Pro-9222",
"hideSSID": "0",
"firmware": "Linkplay.4.8.714841",
"build": "release",
"project": "WiiM_Pro_with_gc4a",
"priv_prj": "WiiM_Pro_with_gc4a",
"project_build_name": "WiiM_Pro_with_gc4a",
"Release": "20250424",
"FW_Release_version": "",
"PCB_version": "1",
"cast_enable": 0,
"cast_usage_report": 1,
"group": "0",
"wmrm_version": "4.3",
"wmrm_sub_ver": "2",
"expired": "0",
"internet": "1",
"uuid": "FF98F09C4BD0B0224C1F9A55",
"MAC": "B8:13:32:E0:92:22",
"BTMAC": "b8:13:32:e0:92:23",
"InitialConfiguration": "1",
"AP_MAC": "BA:13:32:E0:92:22",
"date": "2025:05:10",
"time": "22:48:24",
"netstat": "2",
"essid": "3554686547617A696E67733547487A",
"apcli0": "192.168.1.108",
"eth0": "0.0.0.0",
"eth2": "0.0.0.0",
"ETH_MAC": "00:22:6C:24:97:75",
"hardware": "AmlogicA113",
"ota_api_ver": "3.0",
"VersionUpdate": "0",
"NewVer": "0",
"mcu_ver": "0",
"mcu_ver_new": "0",
"update_check_count": "25",
"BleRemote_update_checked_counter": "0",
"ra0": "10.10.10.254",
"temp_uuid": "C1830AADF1B60A75",
"cap1": "0x40000400",
"capability": "0x20084808",
"languages": "0x11ec",
"prompt_status": "1",
"alexa_ver": "20180604",
"alexa_beta_enable": "0",
"alexa_force_beta_cfg": "0",
"dsp_ver": "",
"ModuleColorNumber": "0",
"ModuleColorString": "",
"dsp_ver_new": "",
"uboot_verinfo": "",
"kernel_verinfo": "#1 SMP PREEMPT Tue Mar 26 17:59:16 CST 2024",
"silence_ota_flag": "1",
"ota_interface_ver": "2.0",
"streams_all": "0xeff33fd",
"streams": "0xeff33fd",
"region": "unknown",
"volume_control": "1",
"external": "0x0",
"preset_key": "12",
"plm_support": "0x700016",
"mqtt_support": "1",
"lbc_support": "0",
"WifiChannel": "0",
"RSSI": "-27",
"BSSID": "22:B0:01:B6:5F:53",
"wlanSnr": "35",
"wlanNoise": "-92",
"wlanFreq": "5540",
"wlanDataRate": "433",
"battery": "0",
"battery_percent": "0",
"securemode": "1",
"upnp_version": "1005",
"upnp_uuid": "uuid:FF98F09C-4BD0-B022-4C1F-9A55FF98F09C",
"uart_pass_port": "0",
"communication_port": "8819",
"web_firmware_update_hide": "0",
"new_tunein_preset_and_alarm": "1",
"new_iheart_podcast": "1",
"tidal_version": "2.0",
"service_version": "1.0",
"HiFiSRC_version": "1.1",
"EQ_support": "Eq4p_ver_2.0",
"EQVersion": "4.3",
"audio_channel_config": "1.0",
"app_timezone_id": "Europe/London",
"avs_timezone_id": "Europe/London",
"tz_info_ver": "1.0",
"tz": "1.0",
"max_volume": "80",
"power_mode": "-1",
"security": "https/2.0",
"security_version": "3.0",
"security_capabilities": {
"ver": "1.0",
"aes_ver": "1.0"
},
"public_https_version": "1.0",
"BleRemoteControl": "1",
"BleRemoteConnected": "0",
"BleRemoteException": "0",
"autoSenseVersion": "1.0",
"set_play_mode_enable": "0",
"set_play_mode_gain": "0",
"privacy_mode": "0",
"DeviceName": "WiiM Pro",
"GroupName": "WiiM Pro"
}