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.3.tar.gz (9.8 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.3-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for sber_bulb_api-0.0.3.tar.gz
Algorithm Hash digest
SHA256 004b23c4a64f3dd5d069c7158dedda91e94f6c2dd196ccf930f600011f5e4708
MD5 4f3e0545805df96343401bb5342fffd9
BLAKE2b-256 4e5142c490e4ee7575668a0a50f09cbe06fafbe64e79023675f73caef2c20ad8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for sber_bulb_api-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 351ed1cdaacf1e437d7187bfaf39d272bf8310f4b29923228acae5fe7aa528f6
MD5 06db43b129d4ee5b05040d493b77efa1
BLAKE2b-256 d2949bf1af9aaf4cd8977b7c4631260dc22bf82c9d13738ec195e4924dc678e8

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