Skip to main content

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

Project description

Rubetek Socket API

Описание / Description

Эта библиотека предоставляет API-обертку для управления умной розеткой Rubetek RE-3305 и умным сетевым фильтром RE-3310. Возможность работы с другими моделями не проверялась, но, вероятно, поддерживается. Для использования данной библиотеки необходимо быть зарегистрированным пользователем в приложении Rubetek, а также иметь устройство, добавленное в это приложение.

This library provides an API wrapper for controlling the Rubetek RE-3305 smart socket and smart power strip RE-3310. While compatibility with other models has not been tested, it is likely supported. To use this library, you must be a registered user in the Rubetek app and have your device added to the this app.

Установка / Installation

pip install rubetek-socket-api

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

Авторизация через код / Authorization via code

Этот метод предназначен только для первичной авторизации. Чрезмерное использование может привести к блокировке или ограничению сервером. Получите refresh token и используйте его для будущих запросов.

This method is intended only for initial authorization. Frequent use may result in server-side blocking or rate limitations. Obtain a refresh token and use it for future requests.

from rubetek_socket_api import RubetekSocketAPI

PHONE = 'your_phone'
EMAIL = 'your_email'

async def sms_auth():
    rubetek_api = RubetekSocketAPI()
    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)

# OR
    
async def email_auth():
    rubetek_api = RubetekSocketAPI()
    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)

Авторизация через refresh token / Authorization via refresh token

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)

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

import asyncio

from rubetek_socket_api import RubetekSocketAPI

REFRESH_TOKEN = 'your_refresh_token'

async def main():
    rubetek_api = RubetekSocketAPI(refresh_token=REFRESH_TOKEN)
    houses = await rubetek_api.get_houses()
    house_id = houses[0].id
    devices = await rubetek_api.get_house_devices(house_id=house_id)
    for d in devices:
        device = await rubetek_api.get_device(house_id=house_id, device_id=d.id)

        # RE-3310
        if 'сетевой фильтр' in device.name:
            print(
                f'Device: {device.name}',
                f'Status socket #0: {device.state.relay_on_0}',
                f'Status socket #1: {device.state.relay_on_1}',
                f'Status socket #2: {device.state.relay_on_2}',
                f'Status USB: {device.state.relay_on_3}',
                f'Online status: {device.online}',
                sep='\n'
            )
            await rubetek_api.set_on_off(house_id=house_id, device_id=device.id, value=not device.state.relay_on_0)  # socket 0
            await rubetek_api.set_on_off(house_id=house_id, device_id=device.id, value=not device.state.relay_on_1, relay=1)  # socket 1
            await rubetek_api.set_on_off(house_id=house_id, device_id=device.id, value=not device.state.relay_on_2, relay=2)  # socket 2
            await rubetek_api.set_on_off(house_id=house_id, device_id=device.id, value=not device.state.relay_on_3, relay=3)  # USB

        # RE-3305
        if 'RE-3305' in device.name:
            print(
                f'Device: {device.name}',
                f'Status (on/off): {device.state.relay_on_0}',
                f'RGB level (percent): {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_0)
            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.1.3.tar.gz (10.5 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.1.3-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rubetek_socket_api-0.1.3.tar.gz
  • Upload date:
  • Size: 10.5 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.1.3.tar.gz
Algorithm Hash digest
SHA256 c7ea1b066346d7627e88535a1007ac9291891e094e8275b7cc2d596de3ebb68f
MD5 b2eda68337c4e38b40cd304c3bbe036c
BLAKE2b-256 2f22039790d8c3ea7260f09d5e1ee532b89ba1f11368e5a5f9442b797dcb9db9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rubetek_socket_api-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 10c3dd2b18d18dd930e029f15c2a702f14b59713d5d04e747cef9eddb02e2c65
MD5 75affcd2c13c3f1cbec436790b5e4e71
BLAKE2b-256 a92cfbac8031d5fa52263afc471204ce7793a948498cd88c80c6a19dbb2b5c21

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