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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90e12d33fc1095e0728e6ad13236dd2de32aedbb69d18f0e9a34718e644097e8
|
|
| MD5 |
6611db3ab5eb822d08dda8d14a7c1649
|
|
| BLAKE2b-256 |
53a34fe847c18391d84e420bd7d28e07c50b3c9a4dff928d002faa0f52f51cb2
|
File details
Details for the file rubetek_socket_api-0.0.5-py3-none-any.whl.
File metadata
- Download URL: rubetek_socket_api-0.0.5-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53943bf27e66946de1816b6e4004f81ef43823b8bc75a8c55899586e1600aef1
|
|
| MD5 |
fcdef028f07f729cfbc2377433886e80
|
|
| BLAKE2b-256 |
f62f50888bb2d26ad97ccc3898dcbecda9102f0cc9d20a8da4e58a5b463d5171
|