Skip to main content

API wrapper for controlling the Sber smart bulb A60.

Project description

Sber Bulb API

Описание / Description

Эта библиотека предоставляет API-обертку для управления умной лампочкой от Сбера A60. Возможность работы с другими моделями не проверялась. Для использования данной библиотеки необходимо быть зарегистрированным пользователем в приложении Салют!, а также иметь лампочку, добавленную в это приложение.

This library provides an API wrapper for controlling the Sber A60 smart bulb. Compatibility with other models has not been tested. To use this library, you must be a registered user of the Salute! app and have the bulb added to your account.

Установка / Installation

pip install sber-bulb-api

Авторизация / Authorization

Авторизация через код / Authorization via code

Этот метод предназначен только для первичной авторизации. Чрезмерное использование может привести к блокировке или ограничению сервером. Получите refresh token и используйте метод авторизации через него.

This method is only intended for initial authorization. Excessive use may result in server blocking or restrictions. Obtain a refresh token and use the refresh token authorization method instead.

import asyncio

from sber_smart_bulb_api import SberSmartBulbAPI

PHONE = '79998887766'

async def auth():
    sber_api = SberSmartBulbAPI()
    response = await sber_api.authenticate(phone=PHONE)
    await asyncio.sleep(1)
    sms = input('SMS: ').strip()
    response = await sber_api.verify(ouid=response.ouid, sms_otp=sms)
    await sber_api.get_access_token(authcode=response.authcode)
    print(sber_api.refresh_token)  # Save refresh token

Авторизация через refresh token / Authorization via refresh token

Внимание: Refresh token одноразовый!

Warning: The refresh token is single-use!

from sber_smart_bulb_api import SberSmartBulbAPI

refresh_token = 'your_refresh_token'

async def main():
    sber_api = SberSmartBulbAPI(refresh_token=refresh_token)
    await sber_api.get_device_groups()
    print(sber_api.refresh_token)  # Save new refresh token

Использование / Usage

import asyncio

from sber_smart_bulb_api import SberSmartBulbAPI
from sber_smart_bulb_api.models import DeviceSceneEnum

refresh_token = 'your_refresh_token'

async def main():
    sber_api = SberSmartBulbAPI(refresh_token=refresh_token)
    groups = await sber_api.get_device_groups()
    print(sber_api.refresh_token)  # Save new refresh token
    group_id = groups.result[0].id
    devices = await sber_api.get_device_group_tree(group_id=group_id)
    device_id = [d.id for d in devices.devices if d.device_info.model == 'smart bulb a60'][0]
    device = await sber_api.get_device(device_id=device_id)
    states = await sber_api.get_device_states(device_id=device_id)
    print(
        f'Device: {device}',
        f'Status (on/off): {states.on_off}',
        f'Work Mode: {states.work_mode}',
        f'Online status: {states.online}',
        f'Scene: {states.light_scene}',
        f'White bright: {states.bright_value_v2}',
        f'White temp: {states.temp_value_v2}',
        f'Colour data: {states.colour_data_v2}',
        f'Sleep timer (minutes): {states.sleep_timer}',
        sep='\n'
    )
    await sber_api.set_on_off(device_id=device_id, value=True)
    await sber_api.set_white(device_id=device_id, brightness=50, temp=50)
    await asyncio.sleep(3)
    await sber_api.set_color(device_id=device_id, h=180, s=50, v=50)
    await asyncio.sleep(3)
    await sber_api.set_scene(device_id=device_id, scene=DeviceSceneEnum.candle)
    await asyncio.sleep(3)
    await sber_api.set_timer(device_id=device_id, minutes=30)
    await sber_api.set_on_off(device_id=device_id, value=False)
    await sber_api.close()

if __name__ == '__main__':
    asyncio.run(main())

Project details


Download files

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

Source Distribution

sber_bulb_api-0.0.8.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sber_bulb_api-0.0.8-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file sber_bulb_api-0.0.8.tar.gz.

File metadata

  • Download URL: sber_bulb_api-0.0.8.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for sber_bulb_api-0.0.8.tar.gz
Algorithm Hash digest
SHA256 0ea866d700f4944c9fd11657dcfde93c742c3f5e1814d3a993272b4a65c5e519
MD5 038cb6e5f4e899fad86d177e1f3d8d32
BLAKE2b-256 99fd06e3c141268d5309c0f4af03f8770863acb5c1b6eb0636c96d5d54752cfa

See more details on using hashes here.

File details

Details for the file sber_bulb_api-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: sber_bulb_api-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for sber_bulb_api-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2d96aae29716d979ea3515864d802e4070cf15813ac554790cbcdc2cbb44d8c8
MD5 e7badb6cf74ec2ea219655d161dbcee6
BLAKE2b-256 5d55b7daff03be60fd46075f0bb823f7032a7d7bf86967833964f94f9c559229

See more details on using hashes here.

Supported by

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