Metadata-Version: 2.3
Name: neosmartblue.py
Version: 0.1.3
Summary: A Python library for controlling Neo Smart Blinds via BlueLink Bluetooth connection
Keywords: bluetooth,ble,smart blinds,neo,home automation
Author: ikifar2012
Author-email: ikifar2012@users.noreply.github.com
Requires-Python: >=3.13,<3.14
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Home Automation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: bleak (>=1.0.1)
Project-URL: Homepage, https://github.com/ikifar2012/neosmartblue.py
Project-URL: Issues, https://github.com/ikifar2012/neosmartblue.py/issues
Project-URL: Repository, https://github.com/ikifar2012/neosmartblue.py
Description-Content-Type: text/markdown

# NeoSmartBlue Python Library

A Python library for controlling Neo Smart Blinds via BlueLink Bluetooth connection.

## Installation

```bash
pip install neosmartblue.py
```

## Usage

### Scanning for devices and reading status from advertisements

```python
import asyncio
from neosmartblue.py import scan_for_devices

async def main():
    # Scan for nearby Neo Smart Blinds devices
    devices = await scan_for_devices(timeout=15.0)
    if not devices:
        print("No devices found.")
        return
    
    for device in devices:
        print(f"Device Address: {device['address']}")
        print(f"Device Name: {device['name']}")
        print("Status:")
        for key, value in device['status'].items():
            print(f"  {key}: {value}")
        print()


asyncio.run(main())
```

### Controlling a device

```python
import asyncio
from neosmartblue.py import BlueLinkDevice

async def main():
    # Replace with your device's MAC address
    device = BlueLinkDevice("XX:XX:XX:XX:XX:XX")
    
    # Connect to the device
    await device.connect()
    
    try:
        # Move blinds to 50% closed position
        await device.move_to_position(50)
        
        # Stop movement if needed
        # await device.stop()
    
    finally:
        # Disconnect from device
        await device.disconnect()

asyncio.run(main())
```
