Skip to main content

API wrapper for controlling the Rubetek RE-3305 smart socket.

Project description

Rubetek Socket API

Описание / Description

Эта библиотека предоставляет API-обертку для управления умной розеткой Rubetek RE-3305. Возможность работы с другими моделями не проверялась, но, вероятно, поддерживается.
This library provides an API wrapper for controlling the Rubetek RE-3305 smart socket. Compatibility with other models has not been tested but is likely supported.

Установка / Installation

pip install rubetek-socket-api

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

Получение refresh token, client id и client secret / Obtaining refresh token, client id and client secret

Чтобы получить refresh_token, client_id и client_secret, перехватите запросы из мобильного приложения Rubetek. В примере используется Android-устройство и HTTP Toolkit. Запросы следует перехватывать во время попытки авторизации в приложении Rubetek.
To obtain the refresh_token, client_id, and client_secret, intercept the requests from the Rubetek mobile app. The example uses an Android device and HTTP Toolkit. The requests should be intercepted during the authentication attempt in the Rubetek app.

Примеры / Examples

refresh_token Refresh Token

client_id & client_secret Client ID & Client Secret

Авторизация через refresh token (рекомендуется) / Authorization via refresh token (recommended)

import asyncio

from rubetek_socket_api import RubetekSocketAPI

REFRESH_TOKEN = 'your_refresh_token'

async def main():
    rubetek_api = RubetekSocketAPI(refresh_token=REFRESH_TOKEN)
    user_info = await rubetek_api.get_user()
    print(user_info)

Авторизация через код (не рекомендуется) / Authorization via code (not recommended)

import asyncio

from rubetek_socket_api import RubetekSocketAPI

CLIENT_ID = 'your_client_id'
CLIENT_SECRET = 'your_client_secret'
PHONE = 'your_phone'
EMAIL = 'your_email'

async def sms_auth():
    rubetek_api = RubetekSocketAPI(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    await rubetek_api.send_code(phone=PHONE)
    code = input('Enter the code: ')
    await rubetek_api.change_code_to_access_token(code=code, phone=PHONE)
    print(f'Refresh Token: {rubetek_api.refresh_token}')  # Save refresh token
    user_info = await rubetek_api.get_user()
    print(user_info)

async def email_auth():
    rubetek_api = RubetekSocketAPI(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    await rubetek_api.send_code(email=EMAIL)
    code = input('Enter the code: ')
    await rubetek_api.change_code_to_access_token(code=code, email=EMAIL)
    print(f'Refresh Token: {rubetek_api.refresh_token}')  # Save refresh token
    user_info = await rubetek_api.get_user()
    print(user_info)

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

import asyncio

from rubetek_socket_api import RubetekSocketAPI

async def main():
    rubetek_api = RubetekSocketAPI(...)  # Выберите подходящий метод авторизации / Choose the appropriate authentication method
    houses = await rubetek_api.get_houses()
    house_id = houses[0].id
    devices = await rubetek_api.get_house_devices(house_id=house_id)
    device_id = devices[0].id
    device = await rubetek_api.get_device(house_id=house_id, device_id=device_id)
    
    print(
        f'Status (on/off): {device.state.relay_on}',
        f'RGB level: {device.state.rgb_level}',
        f'Online status: {device.online}',
        f'Sleep timer (minutes): {device.state.relay_mode}',
        sep='\n'
    )
    
    await rubetek_api.set_rgb_level(house_id=house_id, device_id=device_id, value=100)
    await rubetek_api.set_on_off(house_id=house_id, device_id=device_id, value=not device.state.relay_on)
    await rubetek_api.set_disable_timer(house_id=house_id, device_id=device_id, value=60)

    await rubetek_api.close()

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

rubetek_socket_api-0.0.3.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.

rubetek_socket_api-0.0.3-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rubetek_socket_api-0.0.3.tar.gz
Algorithm Hash digest
SHA256 917376f5f2a0a24fd42e7d110383d1f1bf68cb26e6f0df235a67187516a2a8de
MD5 ace5f6c9172dd82187caf375a4047065
BLAKE2b-256 bd2e15ed01088992aa1f7f65c2a324ab9578bb2759afd1559aae2a29684954c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rubetek_socket_api-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22184baf6680d3fa3a09ba7d793b0f4446ea6f1c4b14dd71695c3139cdf2629b
MD5 0e41dbc531c6f9ad160db1a23366107b
BLAKE2b-256 411160445190c7b84b943be22720c38f3c3b15c286f31f905130a5e5c4f049bc

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