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.5.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.5-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rubetek_socket_api-0.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 90e12d33fc1095e0728e6ad13236dd2de32aedbb69d18f0e9a34718e644097e8
MD5 6611db3ab5eb822d08dda8d14a7c1649
BLAKE2b-256 53a34fe847c18391d84e420bd7d28e07c50b3c9a4dff928d002faa0f52f51cb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rubetek_socket_api-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 53943bf27e66946de1816b6e4004f81ef43823b8bc75a8c55899586e1600aef1
MD5 fcdef028f07f729cfbc2377433886e80
BLAKE2b-256 f62f50888bb2d26ad97ccc3898dcbecda9102f0cc9d20a8da4e58a5b463d5171

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