Metadata-Version: 2.4
Name: inet-control
Version: 0.1.0
Summary: Async Python library for Busch-Jaeger iNet Radio devices
Author: Jonatan_M
Project-URL: Homepage, https://github.com/JonatanMGit/iNet-control
Project-URL: Bug Tracker, https://github.com/JonatanMGit/iNet-control/issues
Keywords: home-automation,radio,busch-jaeger,inet,iot
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Home Automation
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Busch-Radio iNet Python Library

Control and monitor Busch-Jaeger iNet Radios from Python, including live state updates. The radios use a custom UDP-Protocol for communication, which this library implements. Tested on Busch-Radio iNet 8216 v01 on Firmware Version 02.06 01.

## Quickstart

### 1. Install dependencies

```bash
pip install .
```

### 2. Discover radios on your network

```bash
inet-control discover
```

Sample output:

```
Discovering radios... (waiting for responses)
Name: RADIO-LIVINGROOM
IP: 192.168.1.100
Power: ON
Volume: 6
Playing mode: STATION
Station: 1 Example FM
Available: True
```

### 3. Control a radio from Python

```python
import asyncio
from inet_control.manager import RadioManager

async def main():
	manager = RadioManager()
	await manager.start()
	# Discover radios (optional, for listing)
	await manager.discover()

	# Connect to a specific radio by IP
    # This waits for the initial state connectivity check
    radio = await manager.get("192.168.1.100")

    # Turn it on
    await radio.turn_on()

	# Set volume to 6
	await radio.set_volume(6)
	await radio.wait_for_update(timeout=2)

	print(f"Radio {radio.name} is now ON, volume {radio.volume}")
	await manager.stop()

asyncio.run(main())
```

---

## CLI Usage

Run `inet-control` (installed as entry point) or execute it via python: `python -m inet_control.cli`

```bash
# Discover radios
inet-control discover

# Show status
inet-control status --ip 192.168.1.100

# Turn on
inet-control power-on --ip 192.168.1.100

# Set volume
inet-control set-volume --ip 192.168.1.100 6
```

Based on Remote Busch-Radio iNet App (com.abb.inetradio). This library is not affiliated with or endorsed by Busch-Jaeger.
