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

Uploaded Python 3

File details

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

File metadata

  • Download URL: rubetek_socket_api-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 ea9da0c27103f0c8ad4adfff5d9affc79283550f700c0a1a8d4dab36f305abe8
MD5 69fa5eec09c707ba649ac025b0072acc
BLAKE2b-256 b6b098e6286659a4421e80ab51d4fc89e1ca613a3ef0a536fb09c8b65e3fc39c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rubetek_socket_api-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c13853965dc31285a3a142a74ef45ca6cfbd1d42aefd63bbd37a0413aeffd15a
MD5 75d0747b0dff093abe0a243d8aa67608
BLAKE2b-256 0889e26c24ec49732ac84e806debc096dca4dc238dd1f9bec224612872c7c087

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