Skip to main content

Library to control webOS based LG TV devices

Project description

aiowebostv

Python library to control LG webOS based TV devices.

Based on:

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


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)

Uploaded Source

Built Distribution

aiowebostv-0.7.3-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

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

Hashes for aiowebostv-0.7.3.tar.gz
Algorithm Hash digest
SHA256 f4bea092edccc8257380af1c291eb2fe947dce100cce8f8781867bbcf449cdbb
MD5 ab75c73f4f3bc1b1d6f13f4d53203cae
BLAKE2b-256 fb434ca2efcd511d14aa75e072771259786e333db78bb319062aba2d78c5bb42

See more details on using hashes here.

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

Hashes for aiowebostv-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6fcaf20a01bcbb6d1aa94bac04ea14522df5b675078cf12a62578d1317fe2685
MD5 29a568aebacc54113d859c8f60331b46
BLAKE2b-256 43e91a93802add380579f58963c38a453d66e81838afca04eaa2442d25cf1cae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page