After scraping the internet for a solution to integrate Tidal into Home Assistant, I gave up and made my own, DIY version of a “media player”:
How it looks in my Lovelace UI (Google Dark Theme)
What I did:
-
Installed Tidal RPC on my media playback PC to show my listened song information in my Discord profile (here)
-
Installed Mosquitto MQTT for HA
-
Created a MQTT user for my usecase
-
Installed HASS Workstation Service (here) on the media playback PC to enable commands like “volume up/down”, “play/pause”, “skip”…
-
Configured the MQTT settings in the HASS workstation service window and set the commands
-
Installed Discord Game (here) and multiple-entity-row (here) in HACS
-
Followed the guide on Github for “Discord Game” (creating a Discord bot, getting the tokens, …)
-
Added “Discord Game” to my configuration.yaml
-
Aligned a multiple-entity-row and two horizontal-stack s in Lovelace and chose the right entities and
arguments (The icon is your Discord profile picture, the argument “game_state” gives you the artist, “game_details” the track name and “game_image_small_text” the status of the player)
Works pretty good. You could sync the album cover, but as mentioned in the Tidal RPC repository, Discord bans accounts for doing that because they use their accounts as a “bot”.
Upper part (info part):
type: entities
entities:
- type: section
- entity: sensor.discordname_id
type: custom:multiple-entity-row
name: Tidal
entities:
- attribute: game_state
- attribute: game_details
- attribute: game_image_small_text
show_header_toggle: false
state_color: false
title: Bobs Mediaplayer
Lower part (media controls):
type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: button
tap_action:
action: toggle
entity: switch.command_previous
name: Previous
icon_height: 50px
icon: mdi:chevron-left
- type: button
tap_action:
action: toggle
entity: switch.command_playpause
icon: mdi:pause
icon_height: 50px
name: Play/Pause
- type: button
tap_action:
action: toggle
entity: switch.command_next
icon: mdi:chevron-right
icon_height: 50px
name: Skip
- type: horizontal-stack
cards:
- type: button
tap_action:
action: toggle
entity: switch.command_volumedown
icon: mdi:minus
name: Leiser
icon_height: 50px
- type: button
tap_action:
action: toggle
entity: switch.command_volumeup
icon: mdi:plus
name: Lauter
icon_height: 50px