1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
# pyjvcprojector
A python library for controlling a JVC Projector over a network connection.
https://pypi.org/project/pyjvcprojector/
## Features
A full reference to the available commands is available from JVC here
http://pro.jvc.com/pro/attributes/PRESENT/Manual/External%20Command%20Spec%20for%20D-ILA%20projector_V3.0.pdf.
### Convenience functions:
* `JvcProjector::power_on()` turns on power.
* `JvcProjector::power_off()` turns off power.
* `JvcProjector::get_power()` gets power state (_standby, on, cooling, warming, error_)
* `JvcProjector::get_input()` get current input (_hdmi1, hdmi2_).
* `JvcProjector::get_signal()` get signal state (_signal, nosignal_).
* `JvcProjector::get_state()` returns {_power, input, signal_}.
* `JvcProjector::get_info()` returns {_model, mac address_}.
### Send remote control codes
A wrapper for calling `JvcProjector::op(f"RC{code}")`
* `JvcProjector::remote(code)` sends remote control command.
### Send raw command codes
* `JvcProjector::ref(code)` sends reference commands to read data. `code` is formatted `f"{cmd}"`.
* `JvcProjector::op(code)` sends operation commands to write data. `code` is formatted `f"{cmd}{val}"`.
## Installation
```
pip install pyjvcprojector
```
## Usage
```python
import asyncio
from jvcprojector.projector import JvcProjector
from jvcprojector import const
async def main():
jp = JvcProjector("127.0.0.1")
await jp.connect()
print("Projector info:")
print(await jp.get_info())
if await jp.get_power() != const.ON:
await jp.power_on()
print("Waiting for projector to warmup...")
while await jp.get_power() != const.ON:
await asyncio.sleep(3)
print("Current state:")
print(await jp.get_state())
#
# Example sending remote code
#
print("Showing info window")
await jp.remote(const.REMOTE_INFO)
await asyncio.sleep(5)
print("Hiding info window")
await jp.remote(const.REMOTE_BACK)
#
# Example sending reference command (reads value from function)
#
print("Picture mode info:")
print(await jp.ref("PMPM"))
#
# Example sending operation command (writes value to function)
#
# await jp.ref("PMPM01") # Sets picture mode to Film
await jp.disconnect()
```
Password authentication is also supported for both older and newer models.
```python
JvcProjector("127.0.0.1", password="1234567890")
```
|