Перейти к содержанию

Установка и настройка

Что нужно

Перед использованием LovensePy убедитесь, что у вас есть:

  • приложение Lovense Remote или Lovense Connect на телефоне
  • игрушка Lovense, сопряжённая с приложением
  • та же Wi‑Fi сеть, что и у устройства (нужно для LAN / Game Mode)
  • токен разработчика (для Server / Socket API) — в Lovense Developer Dashboard
  • callback URL (для сопряжения по QR в Server API) — например туннель ngrok для приёма callback’ов сопряжения

Возможности

  • Standard API LAN (Game Mode): GetToys, GetToyName, Function, Stop, Pattern, Preset, Position, PatternV2
  • Standard API Server: Function, Pattern, Preset через облако Lovense; get_qr_code для сопряжения по QR
  • Standard Socket API: getToken, getSocketUrl, WebSocket-клиент для сценария с QR и удалённого управления
  • Toy Events API: события в реальном времени (toy-list, button-down, function-strength-changed и т.д.)
  • MQTT-мост Home Assistant (опционально): MQTT Discovery + управление по LAN или BLE — сервис lovensepy.services.mqtt_bridge / CLI lovensepy-mqtt (pip install 'lovensepy[mqtt]', для BLE добавьте [ble])
  • Прямой BLE (опционально): BleDirectHubSync / BleDirectHub / BleDirectClient — см. Прямой BLE
  • Сервис FastAPI (lovensepy.services.fastapi, опциональный extra [service]): HTTP REST + OpenAPI /docs для Game Mode или BLE — см. руководство FastAPI. Пример-обёртка: examples/fastapi_lan_api.py.

Установка пакета

pip install lovensepy

MQTT / мост Home Assistant (ставит paho-mqtt):

pip install 'lovensepy[mqtt]'

Запуск моста: python -m lovensepy.services.mqtt_bridge или lovensepy-mqtt (см. руководство MQTT Home Assistant).

Прямой BLE (ставит bleak и pick для интерактивного меню BLE-примера):

pip install 'lovensepy[ble]'

Зависимости: aiohttp, pydantic. Опционально: paho-mqtt (через [mqtt]), bleak + pick (через [ble]).

Быстрый старт (Game Mode)

Установите пакет

Команды см. в разделе Установка пакета выше.

Включите Game Mode

В Lovense Remote: DiscoverGame ModeEnable LAN. Запомните IP-адрес хоста (например 192.168.1.100) и порт (часто 20011 для Remote, 34567 для Connect).

Выполните команду

from lovensepy import LANClient, Actions

client = LANClient("MyApp", "192.168.1.100", port=20011)
client.function_request({Actions.VIBRATE: 10}, time=3)

Игрушка должна вибрировать на уровне 10 в течение 3 секунд.

Асинхронный код и смена LAN / Server / BLE

В программах с async def клиенты AsyncLANClient, AsyncServerClient, BleDirectHub и BleDirectClient реализуют LovenseAsyncControlClient: одни и те же методы управления с одним типом для аннотаций — меняется только способ создания клиента. Синхронные LANClient / ServerClient повторяют имена методов, но остаются блокирующими. См. Способы подключения и Справочник API — LovenseAsyncControlClient.

Единицы времени

Аргумент time задаётся в секундах. Устройство держит уровень до следующей команды или до вызова client.stop().

Более длинные руководства — в индексе руководств.