Skip to main content

A python package that makes it a bit easier to work with the yoto play API. Not associated with Yoto in any way.

Project description

Introduction

Early days of this API. Plan is to use this for home assistant. So far basic device data comes back including online. The library of cards is also populated. Pause command functions. Not other commands work yet.

Credit

A big thank you to @buzzeddesign for helping to sniff some of the API and make sense of it. Thank you to @fuatakgun for creating to core architecture is based on over in kia_uvo

Example Test Code

To run this code for test I am doing:

from pathlib import Path
import logging
import sys
import os

path_root = r"C:path to files GitHub\main\yoto_api"
sys.path.append(str(path_root))
from yoto_api import *

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format='%(asctime)s %(name)s %(levelname)s:%(message)s')
logger = logging.getLogger(__name__)

ym = YotoManager(username="username", password="password")
ym.check_and_refresh_token()
ym.update_player_status()
print (ym.players)
ym.connect_to_events()
# Pauses the first player
ym.pause_player(next(iter(ym.players)))
# Sleep will let the terminal show events coming back. For dev today.
time.sleep(60)

Usage

Check and refresh token will pull the first set of data. It also should be run regularly if you keep your code running for days. It will check if the token is valid. If it isn’t it will refresh the token. If this is first run of the command and no data has been pulled it will also run update_player_status() and update_cards() for you.

ym.check_and_refresh_token()

Check and refresh token will pull the first set of data. It also should be run regularly if you keep your code running for days. It will check if the token is valid. If it isn’t it will refresh the token. If this is first run of the command and no data has been pulled it will also run update_player_status() and update_cards() for you.

ym.update_player_status()

Connects to the MQTT broker. This must be run before any command and also get get useful data.

ym.connect_to_events()

Pauses the player for the player ID sent. ID can be found in ym.players.keys()

ym.pause_player(player_id: str)

Updates the library of cards. This is done as part of check_refresh_token so only needed if data is stale.

ym.update_cards()

Contains player object will data values you can access.

ym.players

Contains the library of cards. Each card being an object with the data values you can use.

ym.library

Other Notes

This is not associated or affiliated with yoto play in any way.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yoto_api-1.17.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

yoto_api-1.17.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file yoto_api-1.17.0.tar.gz.

File metadata

  • Download URL: yoto_api-1.17.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for yoto_api-1.17.0.tar.gz
Algorithm Hash digest
SHA256 b7bf5b78a287fccb4d2ebd210a9852b07b7fc5dcbe5e2a23a1ed012cc092f3e2
MD5 85208f3de130f94132f1b3a9f8ac14de
BLAKE2b-256 80a5d44b7835f3299d278645bab2d1f4991688fcc838cadcc3bc6bdeab2042e0

See more details on using hashes here.

File details

Details for the file yoto_api-1.17.0-py3-none-any.whl.

File metadata

  • Download URL: yoto_api-1.17.0-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for yoto_api-1.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e45b25d2d9ccbb11c67fcffe59eb4f060fda0dca1e7d5483bd8d60a4eeea17b
MD5 4abbea6065955e3e952b90f6fb8f99b0
BLAKE2b-256 8d6352785fa4f1f83a73c26bf8dc93d0724eea31417a21ecf5d429a9325f6a0d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page