Metadata-Version: 2.4
Name: pybravia
Version: 0.4.1
Summary: Python async library for remote control of Sony Bravia TVs 2013 and newer.
Author: Artem Draft
License: MIT
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: aiohttp>=3.8
Requires-Dist: yarl
Description-Content-Type: text/markdown
# pybravia
Python Bravia provides an easy-to-use async interface for controlling of Sony Bravia TVs 2013 and newer.
This library primarily being developed with the intent of supporting [Home Assistant](https://www.home-assistant.io/integrations/braviatv/).
For more information, take a look at [BRAVIA Professional Display Knowledge Center](https://pro-bravia.sony.net/develop/).
## Requirements
This library supports Python 3.10 and higher.
## Installation
```sh
pip install pybravia
```
## Connect and API usage
### With PSK (recommended)
```py
import asyncio
import logging
from pybravia import BraviaClient, BraviaError
HOST = "192.168.1.20"
PSK = "sony"
logging.basicConfig(level=logging.DEBUG)
async def main():
"""Example of connect with PSK."""
async with BraviaClient(HOST) as client:
try:
connected = await client.connect(psk=PSK)
info = await client.get_system_info()
print(info)
await client.volume_up()
except BraviaError:
print("Could not connect")
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
loop.close()
```
### With PIN code
#### Start pairing process and display PIN on the TV
```py
import asyncio
import logging
from pybravia import BraviaClient, BraviaError
HOST = "192.168.1.20"
CLIENTID = "MyClientID"
NICKNAME = "MyNicknameID"
logging.basicConfig(level=logging.DEBUG)
async def main():
"""Pairing process initialization example."""
async with BraviaClient(HOST) as client:
try:
await client.pair(CLIENTID, NICKNAME)
except BraviaError:
print("Could not connect")
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
loop.close()
```
#### Connect and usage
```py
import asyncio
import logging
from pybravia import BraviaClient, BraviaError
HOST = "192.168.1.20"
CLIENTID = "MyClientID"
NICKNAME = "MyNicknameID"
PIN = "2170"
logging.basicConfig(level=logging.DEBUG)
async def main():
"""Example of connect with PIN."""
async with BraviaClient(HOST) as client:
try:
connected = await client.connect(pin=PIN, clientid=CLIENTID, nickname=NICKNAME)
info = await client.get_system_info()
print(info)
await client.volume_up()
except BraviaError:
print("Could not connect")
loop = asyncio.new_event_loop()
loop.run_until_complete(main())
loop.close()
```
## License
[The MIT License (MIT)](LICENSE)