Yoto
The Yoto integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] lets you control your Yoto audio players from Home Assistant. You can play and pause cards, change the volume, skip tracks, seek within a track, and see what is currently playing.
The integration talks to the official Yoto cloud over OAuth2 and receives playback updates over MQTT, so changes that happen on the player show up in Home Assistant almost immediately. Online and offline detection still relies on the cloud API and can lag by up to 5 minutes.
Supported devices
Any Yoto player that is linked to your Yoto family in the Yoto app is supported.
Prerequisites
To use the integration, you need a Yoto account with at least one player linked in the Yoto app.
Home Assistant uses account linking provided by Nabu Casa for authenticating with Yoto. This service is free, does not require a Nabu Casa subscription, and is the preferred way of using this integration.
See the Using custom application credentials section below if you have the cloud integration disabled.
Using custom application credentials
- Sign in to the Yoto developer dashboard with your Yoto account.
- Create a new application. Pick any Name you like, for example
Home Assistant. - For Application Type, select Confidential Client. Home Assistant runs as a server and stores the refresh token on your behalf.
- Under Allowed Callback URLs, enter
https://my.home-assistant.io/redirect/oauth. - Under Scopes, select all of the following:
offline_accessfamily:viewfamily:devices:viewfamily:devices:controlfamily:devices:managefamily:library:viewuser:content:viewuser:icons:manage
- Accept the Terms and Conditions and Data Privacy statements, then select Create Application.
- Open the application you just created and note the Client ID and Client secret. Add them as Application Credentials before starting the integration setup.
For more details, see the Yoto Developers documentation.
Configuration
To add the Yoto hub to your Home Assistant instance, use this My button:
Yoto can be auto-discovered by Home Assistant. If an instance was found, it will be shown as Discovered. You can then set it up right away.
Manual configuration steps
If it wasn’t discovered automatically, don’t worry! You can set up a manual integration entry:
-
Browse to your Home Assistant instance.
-
In the bottom right corner, select the
Add Integration button. -
From the list, select Yoto.
-
Follow the instructions on screen to complete the setup.
During setup, Home Assistant opens the Yoto authorization page so you can grant access. After you approve, Home Assistant creates one deviceA device is a model representing a physical or logical unit that contains entities. and one media player entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] for every Yoto player in your family.
Supported functionality
The integration provides one media player entity per Yoto player. Each entity supports:
- Play, pause, and stop
- Skip to the previous or next track
- Seek to a position within the current track
- Set the volume directly, or step up and down in the 16 hardware steps the player uses
- Show the currently playing track title, the card title and author, and the card cover art as media artwork
- Show the player as off when it is asleep or disconnected from the Yoto cloud
Yoto players cannot be powered on remotely. Home Assistant reports the player as off when it is offline but cannot wake it up.
Data updates
The integration receives real-time playback updates from each Yoto player over MQTT. To keep the reported status fresh even when the player has not changed state, the integration also requests a status snapshot from each player every 60 seconds.
The player’s online or offline state comes from the Yoto cloud REST API, which the integration pollsData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] every 5 minutes. A player that loses power or network can take up to that long to show as off in Home Assistant.
Known limitations
- The online and offline state of a player can lag by up to 5 minutes because the Yoto cloud only exposes this through polling.
- Yoto players cannot be powered on or off from Home Assistant.
- Starting playback of a specific card from Home Assistant is not supported yet. You can control playback that is already running on the player, but you cannot tell the player which card to play.
Removing the integration
This integration follows standard integration removal.
To remove an integration instance from Home Assistant
- Go to Settings > Devices & services and select the integration card.
- From the list of devices, select the integration instance you want to remove.
- Next to the entry, select the three dots
menu. Then, select Delete.
After removing the integration, you can also delete the developer application you created on the Yoto developer portal if you no longer need it.