Skip to content

luebke-dev/asyncoptoma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asyncoptoma

Control your Optoma projector with python

Installation

pip install asyncoptoma

Usage

import asyncio

from asyncoptoma import Optoma

async def main():
    async with Optoma("http://<IP>", username="admin", password="admin") as projector:
        await projector.login()

        await projector.turn_on()
        print(projector.get_available_brightness_modes())

        await projector.set_active_brightness_mode("Power 50%")
        await asyncio.sleep(10)
        await projector.set_active_brightness_mode("DynamicBlack 1")
        await asyncio.sleep(10)
        await projector.set_active_source("HDMI 1")
        await asyncio.sleep(10)
        await projector.set_active_source("HDMI 2/MHL")
        await asyncio.sleep(30)
        await projector.set_zoom(-5)
        await projector.turn_off()

asyncio.run(main())

If you skip async with, remember to call await projector.close() to release the underlying HTTP connection pool.

Errors raised from the projector or the HTTP layer are wrapped in asyncoptoma.OptomaError (with OptomaAuthError for authentication failures).

Generic accessors

Every named convenience method (set_active_source, get_brightness, …) is a thin wrapper around a generic accessor. You can address any field by its raw projector name directly:

await projector.set_active("source", "HDMI 1")
print(projector.get_active("source"))
print(projector.get_available("lampmd"))

await projector.set_toggle("avmute", True)
print(projector.get_toggle("freeze"))

await projector.set_value("zoom", -5)
print(projector.get_value("bright"))

Tested models

Model
UHZ4000

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors