nagyrobi / home-assistant-custom-components-linkplay

LinkPlay based media devices integration for Home Assistant.
170 stars 32 forks source link

Linkplay entities unavailable in Home Assistant? #94

Closed kylepyke closed 2 years ago

kylepyke commented 2 years ago

Hi Robert! Thanks for all of your work on this.

I'm trying to integrate my Wiim minis into Home Assistant, and it seems they appear as unavailable. They are linkplay devices– are they supported by this integration? I've verified the below IPs and uuids are correct.

media_player:
  - platform: linkplay
    host: 192.168.1.252
    name: Console Player
    volume_step: 5
    uuid: "FF9700169D79193339EF44F3"
    icecast_metadata: "StationNameSongTitle"
    multiroom_wifidirect: False
    sources: { "line-in": "Record Player", "bluetooth": "Bluetooth" }
    common_sources: !include linkplay-radio-sources.yaml

  - platform: linkplay
    host: 192.168.1.237
    name: Kitchen
    icecast_metadata: "Off" # valid values: 'Off', 'StationName', 'StationNameSongTitle'
    sources: { "bluetooth": "Bluetooth" }
    common_sources: !include linkplay-radio-sources.yaml
    uuid: "FF9700169841A4CB6A81120D"
nagyrobi commented 2 years ago

Check in your browser for http://YOUR.PLAYER.IP.ADDRESS/httpapi.asp?command=getStatus and http://YOUR.PLAYER.IP.ADDRESS/httpapi.asp?command=getPlayerStatus And post result here.

kylepyke commented 2 years ago

http://YOUR.PLAYER.IP.ADDRESS/httpapi.asp?command=getStatus returns "unknown command"

http://YOUR.PLAYER.IP.ADDRESS/httpapi.asp?command=getPlayerStatus returns:

{"type":"0","ch":"0","mode":"40","loop":"0","eq":"0","status":"play","curpos":"0","offset_pts":"0","totlen":"0","alarmflag":"0","plicount":"0","plicurr":"0","vol":"42","mute":"0"}

nagyrobi commented 2 years ago

How about httpapi.asp?command=getStatusEx

kylepyke commented 2 years ago

t httpapi.asp?command=getStatusEx returns:

{ "language": "en_us", "ssid": "WiiM Mini-0686", "hideSSID": "0", "firmware": "Linkplay.4.6.427455", "build": "release", "project": "Muzo_Mini", "priv_prj": "Muzo_Mini", "Release": "20220826", "FW_Release_version": "", "group": "0", "wmrm_version": "4.2", "expired": "0", "internet": "1", "uuid": "FF9700169D79193339EF44F3", "MAC": "08:FB:EA:64:06:86", "BT_MAC": "08:FB:EA:64:06:87", "AP_MAC": "0A:FB:EA:64:06:86", "date": "2022:09:03", "time": "06:33:47", "netstat": "2", "essid": "4A6573757357617341536F6369616C697374", "apcli0": "192.168.1.252", "eth0": "0.0.0.0", "ETH_MAC": "00:00:00:00:00:00", "hardware": "ALLWINNER-R328", "VersionUpdate": "0", "NewVer": "0", "mcu_ver": "0", "mcu_ver_new": "0", "update_check_count": "2", "ra0": "10.10.10.254", "temp_uuid": "415C4FC873D95D6C", "cap1": "0x400", "capability": "0x20084000", "languages": "0x1ec", "prompt_status": "1", "alexa_ver": "20180604", "alexa_beta_enable": "0", "alexa_force_beta_cfg": "0", "dsp_ver": "0", "streams_all": "0x1edffbfd", "streams": "0x1edffbfd", "region": "unknown", "volume_control": "0", "external": "0x0", "preset_key": "12", "plm_support": "0x300006", "lbc_support": "0", "WifiChannel": "0", "RSSI": "-54", "BSSID": "60:a4:b7:5c:e1:63", "wlanFreq": "5240", "wlanDataRate": "292", "battery": "0", "battery_percent": "0", "securemode": "1", "ota_interface_ver": "2.0", "upnp_version": "1005", "upnp_uuid": "uuid:FF970016-9D79-1933-39EF-44F3FF970016", "uart_pass_port": "0", "communication_port": "8819", "web_firmware_update_hide": "0", "tidal_version": "2.0", "service_version": "1.0", "EQ_support": "Eq10HP_ver_1.0", "HiFiSRC_version": "1.0", "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", "privacy_mode": "0", "DeviceName": "Console Player", "GroupName": "Console Player" }

nagyrobi commented 2 years ago

Try replacing getStatus with getStatusExin lines 239 and 554, restart HA and see if it works.

kylepyke commented 2 years ago

Didn't work... Should I also replace in line 2340?

nagyrobi commented 2 years ago

2340????

kylepyke commented 2 years ago

2340

nagyrobi commented 2 years ago

That's never used, nevermind

nagyrobi commented 2 years ago

Didn't work...

Seems like your player has a different chipset, which is unsupported. Can't add support as I don't have such a device.

kylepyke commented 2 years ago

Oh no! @onlyoneme started a discussion about support for these devices... The API is very similar. Here is the guide:

https://wiimhome.com/pdf/HTTP%20API%20for%20WiiM%20Mini.pdf

Any chance of updating the integration to add support?

onlyoneme commented 2 years ago

Oh no! @onlyoneme started a discussion about support for these devices... The API is very similar. Here is the guide:

https://wiimhome.com/pdf/HTTP%20API%20for%20WiiM%20Mini.pdf

Any chance of updating the integration to add support?

You can find a fork of nagyrobi's components I've made for WiiM. It has very basic functionality as I'm not a python developer, so it's a kind of temporary solution but it works most of time.

kylepyke commented 2 years ago

Oh, awesome! Out of curiosity, what were the main changes that needed to be made to have the entity appear in HA?

onlyoneme commented 2 years ago

Oh, awesome! Out of curiosity, what were the main changes that needed to be made to have the entity appear in HA?

https communication instead of http.

kylepyke commented 2 years ago

Makes sense!

FauxHobo commented 2 years ago

Does this mean the reason I can't play audio is because Linkplay doesn't support HTTPS and my HA install connects externally using HTTPS via DuckDNS?

RosensRauk commented 2 years ago

Does this mean the reason I can't play audio is because Linkplay doesn't support HTTPS and my HA install connects externally using HTTPS via DuckDNS?

I would say yes. I got my Audio Pro speakers working when using http instead of https.