Metadata-Version: 2.5
Name: pyskyrc
Version: 0.2.0
Summary: Pure-Python control and telemetry for SkyRC Q200neo / T1000 chargers via USB HID and BLE
Project-URL: Homepage, https://github.com/yourname/pyskyrc
Project-URL: Source, https://github.com/yourname/pyskyrc
Project-URL: Issues, https://github.com/yourname/pyskyrc/issues
Project-URL: Documentation, https://github.com/yourname/pyskyrc/blob/main/docs/protocol.md
Author: Andreev Ivan
License: MIT License
        
        Copyright (c) 2026 Andreev Ivan
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: battery,ble,charger,charging,hid,lifepo4,lilon,lipo,q200neo,skyrc,t1000,telemetry
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.10
Provides-Extra: ble
Requires-Dist: bleak>=0.20; extra == 'ble'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# pyskyrc

Pure-Python control and telemetry for **SkyRC Q200neo** / **T1000**
chargers via **USB HID** and **Bluetooth LE**.

Reverse-engineered from the official Charge Master 1.55.E207
protocol. **No Charge Master or SkyRC app required.**

## Features

- **Two transports** — USB HID and BLE with the same Python API.
- **4 ports** — A / B / C / D, each with independent telemetry.
- **Live cells** — 6 × cell voltage, temperature, total V, delta.
- **Full control** — START / STOP charge with full parameter set.
- **All chemistries** — LiPo, LiIo, LiFe, LiHV, NiMH, NiCd, Pb.
- **Auto-discovery** (BLE) — finds the charger by service UUID.
- **MAC cache** — fast reconnect after first successful session.
- **Interactive shell** — one connection, many commands.
- **Pure Python** — only `bleak` needed for BLE; USB has no deps.

## Install

    pip install pyskyrc
    pip install pyskyrc[ble]
    pip install pyskyrc[ble,dev]

## CLI

### USB

    pyskyrc info
    pyskyrc status
    pyskyrc monitor
    pyskyrc start B --chem LiPo --cells 6 --current 2.0
    pyskyrc stop B

### BLE

    pyskyrc --transport ble scan
    pyskyrc --transport ble status
    pyskyrc --transport ble start B --chem LiPo --cells 6 --current 2.0
    pyskyrc --transport ble stop B

### Interactive shell

    pyskyrc --transport ble shell

Then inside the shell:

    pyskyrc> status
    pyskyrc> start B --chem LiPo --cells 6 --current 2.0
    pyskyrc> monitor
    pyskyrc> stop B
    pyskyrc> exit

## Python API

    from pyskyrc import (
        SkyRCCharger, ChargeParameters, Port, Chemistry, LiMode,
    )

    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)

        params = ChargeParameters(
            chemistry=Chemistry.LiPo,
            cells=6,
            mode=LiMode.BALANCE_CHARGE,
            charge_current_a=2.0,
        )
        charger.start_charge(Port.B, params)
        charger.stop_charge(Port.B)

For BLE, replace `transport="usb"` with `transport="ble"`.

## Protocol

Full protocol documentation is in `docs/protocol.md`.

## Safety

This library controls a real charger with real current. You are
responsible for choosing a chemistry and cell count that match your
battery, choosing safe currents, and not leaving charging unattended.

## License

MIT — see LICENSE.
## Author

Andreev Ivan — 2026