ajmarks / sharkiq

Python API for Shark IQ robot
29 stars 12 forks source link

sharkiqpy

Unofficial SDK for Shark IQ robot vacuums, designed primarily to support an integration for Home Assistant.

Installation

Use the package manager pip to install foobar.

pip install sharkiqpy

Usage

Simple Operation

from sharkiqpy import get_ayla_api, OperatingModes, Properties, PowerModes

USERNAME = 'me@email.com'
PASSWORD = '$7r0nkP@s$w0rD'

ayla_api = get_ayla_api(USERNAME, PASSWORD)
ayla_api.sign_in()

shark_vacs = ayla_api.get_devices()
shark = shark_vacs[0]

shark.update()
shark.set_operating_mode(OperatingModes.START)
shark.return_to_base()

Async operation

import asyncio
from sharkiqpy import get_ayla_api, OperatingModes, SharkIqVacuum

USERNAME = 'me@email.com'
PASSWORD = '$7r0nkP@s$w0rD'

async def main(ayla_api) -> SharkIqVacuum:
    await ayla_api.async_sign_in()

    shark_vacs = await ayla_api.async_get_devices()
    shark = shark_vacs[0]
    await shark.async_update()
    await shark.async_find_device()
    await shark.async_set_operating_mode(OperatingModes.START)

    return shark

ayla_api = get_ayla_api(USERNAME, PASSWORD)
shark = asyncio.run(main(ayla_api))

Documentation

get_ayla_api(username, password, websession=None)

Returns and AylaApi object to interact with the Ayla Networks Device API conrolling the Shark IQ robot, with the app_id and app_secret parameters set for the Shark IQ robot.

class AylaAPI(username, password, app_id, app_secret, websession)

Class for interacting with the Ayla Networks Device API underlying the Shark IQ controls.

class SharkIqRobot(ayla_api, device_dct)

Primary API for interacting with Shark IQ vacuums

Methods

Properties

Enums

TODOs:

License

MIT