Library to control webOS based LG TV devices
Project description
aiowebostv
Python library to control LG webOS based TV devices.
Based on:
aiopylgtv
library at https://github.com/bendavid/aiopylgtvbscpylgtv
library at https://github.com/chros73/bscpylgtv
Requirements
- Python >= 3.11
Install
pip install aiowebostv
Install from Source
Run the following command inside this folder
pip install --upgrade .
Examples
Basic Example:
import asyncio
from pprint import pprint
from aiowebostv import WebOsClient
HOST = "192.168.1.39"
# For first time pairing set key to None
CLIENT_KEY = "140cce792ae045920e14da4daa414582"
async def main():
"""Basic webOS client example."""
client = WebOsClient(HOST, CLIENT_KEY)
await client.connect()
# Store this key for future use
print(f"Client key: {client.client_key}")
pprint(client.tv_info)
pprint(client.tv_state)
await client.disconnect()
if __name__ == "__main__":
asyncio.run(main())
Subscribed State Updates Example:
import asyncio
import dataclasses
import signal
from datetime import UTC, datetime
from pprint import pprint
from aiowebostv import WebOsClient
from aiowebostv.models import WebOsTvState
HOST = "192.168.1.39"
# For first time pairing set key to None
CLIENT_KEY = "140cce792ae045920e14da4daa414582"
async def on_state_change(tv_state: WebOsTvState) -> None:
"""State changed callback."""
now = datetime.now(UTC).astimezone().strftime("%H:%M:%S.%f")[:-3]
print(f"[{now}] State change:")
# for the example, remove apps and inputs to make the output more readable
state = dataclasses.replace(tv_state, apps={}, inputs={})
pprint(state)
async def main():
"""Subscribed State Updates Example."""
client = WebOsClient(HOST, CLIENT_KEY)
await client.register_state_update_callback(on_state_change)
await client.connect()
# Store this key for future use
print(f"Client key: {client.client_key}")
# Change something using the remote to get updates or ctrl-c to exit
sig_event = asyncio.Event()
signal.signal(signal.SIGINT, lambda _exit_code, _frame: sig_event.set())
await sig_event.wait()
await client.disconnect()
if __name__ == "__main__":
asyncio.run(main())
Examples can be found in the examples
folder
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiowebostv-0.7.3.tar.gz
(19.2 kB
view details)
Built Distribution
File details
Details for the file aiowebostv-0.7.3.tar.gz
.
File metadata
- Download URL: aiowebostv-0.7.3.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f4bea092edccc8257380af1c291eb2fe947dce100cce8f8781867bbcf449cdbb
|
|
MD5 |
ab75c73f4f3bc1b1d6f13f4d53203cae
|
|
BLAKE2b-256 |
fb434ca2efcd511d14aa75e072771259786e333db78bb319062aba2d78c5bb42
|
File details
Details for the file aiowebostv-0.7.3-py3-none-any.whl
.
File metadata
- Download URL: aiowebostv-0.7.3-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6fcaf20a01bcbb6d1aa94bac04ea14522df5b675078cf12a62578d1317fe2685
|
|
MD5 |
29a568aebacc54113d859c8f60331b46
|
|
BLAKE2b-256 |
43e91a93802add380579f58963c38a453d66e81838afca04eaa2442d25cf1cae
|