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. Перехватывать запросы нужно в только что установленном или предварительно разлогиненном приложении.
To retrieve refresh_token, client_id, and client_secret, intercept requests from the Rubetek mobile app. I used an Android device and HTTP Toolkit. Requests should be captured in a freshly installed or previously logged-out application.

Показать изображения / Show images

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.1.tar.gz (10.1 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.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rubetek_socket_api-0.0.1.tar.gz
  • Upload date:
  • Size: 10.1 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.1.tar.gz
Algorithm Hash digest
SHA256 1a5a12613f92a324b6ed423824dac7e13b5335cee9e7e0d4c33b12cc8973c25b
MD5 18ec85b488be6ae9585923105dbb8c45
BLAKE2b-256 cf7640a31468fd029a7d4888a360f21697eb1bd3340ae3336e8cd935595bba26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rubetek_socket_api-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d2b8e0e2f4a442b67f9ace313189d6afc9882c46fffdf1ebc6377015f2def6f6
MD5 bd1868e06ae36fce016f1cd3fe4fc6cc
BLAKE2b-256 1389a0f580c21a60c5cc3b7d97eb8e4d3ab406d29344f9b387d2be98e0854d39

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