PYSKYRC

pyskyrc — это библиотека на чистом Python для управления и телеметрии зарядных устройств SkyRC Q200neo и T1000 через USB HID и Bluetooth Low Energy. Протокол восстановлен методом обратной разработки из официального приложения Charge Master 1.55.E207 — работа с зарядником возможна без оригинального ПО и без SkyRC app.

Библиотека предоставляет единый высокоуровневый API для обоих транспортов, поддержку всех четырёх портов (A / B / C / D), семи типов аккумуляторов и всех режимов заряда. В комплекте — CLI, интерактивная оболочка, документация протокола и 37 модульных тестов.

flowchart TD
    CH([SkyRC Q200neo / T1000])
    CH <-->|USB HID| HID[HIDDevice<br/>/dev/hidraw*]
    CH <-->|BLE| BLE[BLEDevice<br/>bleak + Nordic UART]
    HID --> SCH[SkyRCCharger<br/>high-level API]
    BLE --> SCH
    SCH --> CLI[pyskyrc CLI]
    SCH --> API[Python API]
    SCH --> SH[pyskyrc shell]

Основной сценарий использования — автоматизация зарядного процесса, интеграция с системами мониторинга и телеметрии, построение собственных GUI и веб-интерфейсов. Исходный код, документация протокола и примеры использования открыты и доступны на GitHub, а готовый пакет — опубликован на PyPI.

Возможности

  • Два транспорта — USB HID и BLE с идентичным API.
  • Четыре порта — A / B / C / D с независимой телеметрией.
  • Живые ячейки — 6 × напряжение, температура, суммарное V, дельта баланса.
  • Полное управление — START / STOP заряда с заданием химии, числа ячеек, токов и порогов.
  • Семь химий — LiPo, LiIo, LiFe, LiHV, NiMH, NiCd, Pb.
  • Все режимы — BAL.CHG, CHARGE, DISCHARGE, STORAGE, RE-PEAK, CYCLE, NORMAL, AGM, COLD CHARGE.
  • Auto-discovery (BLE) — поиск зарядника по сервису 0xFFE0, независимо от имени.
  • Кэш MAC — быстрое переподключение после первой сессии.
  • Интерактивная оболочка — одно соединение, множество команд.
  • Чистый Python — для BLE нужен только bleak, для USB зависимостей нет.

Установка

# USB HID (без дополнительных зависимостей)
pip install pyskyrc

# С поддержкой Bluetooth Low Energy
pip install "pyskyrc[ble]"

# Для разработки
git clone https://github.com/Arlequin-AI/pyskyrc
cd pyskyrc
pip install -e ".[ble,dev]"

Быстрый старт

Подключение по USB и чтение телеметрии со всех портов:

from pyskyrc import SkyRCCharger, Port
with SkyRCCharger(transport="usb") as charger:
    for port, info in charger.read_telemetry().items():
        if info.has_battery:
            print(port.name, info.total_v, info.temperature_c)

Запуск балансировочного заряда на порту B через BLE:

from pyskyrc import (
    SkyRCCharger, ChargeParameters, Port, Chemistry, LiMode,
)
params = ChargeParameters(
    chemistry=Chemistry.LiPo,
    cells=6,
    mode=LiMode.BALANCE_CHARGE,
    charge_current_a=2.0,
    charge_cutoff_mv=4200,
    discharge_cutoff_mv=3000,
)
with SkyRCCharger(transport="ble") as charger:
    charger.start_charge(Port.B, params)
    charger.stop_charge(Port.B)

Командная строка

Библиотека устанавливает CLI-утилиту pyskyrc со всеми основными операциями:

# Снимок состояния всех портов
pyskyrc status
# Непрерывный мониторинг
pyskyrc monitor
# Запуск и остановка заряда
pyskyrc start B --chem LiPo --cells 6 --current 2.0
pyskyrc stop B
# То же самое по Bluetooth
pyskyrc --transport ble status
pyskyrc --transport ble start B --chem LiPo --cells 6 --current 2.0

Интерактивная оболочка удерживает одно соединение и позволяет выполнять команды без переподключения:

pyskyrc> status
  A: --
  B: idle     25.04V  Δ17mV  T=30°C  [4.176 4.174 4.171 4.163 4.176 4.180]
  C: --
  D: --
pyskyrc> start B --chem LiPo --cells 6 --current 2.0
OK
pyskyrc> monitor
pyskyrc> stop B
OK
pyskyrc> exit

Документация

  • Протокол обмена — полное описание HID/BLE кадров, checksum, enum-ов и команд.
  • Транспорт BLE — работа с bleak, auto-discovery, MAC-кэш, особенности BlueZ.
  • USB HID — /dev/hidraw*, права доступа, polling.
  • Примеры — готовые скрипты в каталоге examples/.
  • FAQ — частые проблемы и решения.

Архитектура

pyskyrc/
├── protocol.py        построение пакетов START / STOP / polling
├── telemetry.py       парсинг 0f2255XX, событий 0f04XX
├── device.py          USB HID транспорт (hidraw)
├── transport_ble.py   BLE транспорт через bleak
├── discovery.py       поиск зарядников и MAC-кэш
├── charger.py         высокоуровневый API SkyRCCharger
├── charge.py          одноразовые START/STOP
├── cli.py             командная строка и shell-режим
└── enums.py           Port, Chemistry, Mode, State

Совместимость

Компонент Linux macOS Windows
USB HID через hidapi + + +
USB HID (/dev/hidraw*) + - -
BLE через bleak + + +
Auto-discovery (paired devices) + + +
CLI / shell + + +

Безопасность

Библиотека управляет реальным зарядным устройством с реальным током. Ответственность за соответствие химии, числа ячеек и токов вашей батарее лежит на пользователе. Не оставляйте процесс заряда без присмотра.

Лицензия

Проект распространяется под лицензией MIT. Полный текст — в файле LICENSE.

results matching ""

    No results matching ""