A package to control JVC projectors over IP
Project description
JVC Projector Remote
⚠️ This project is looking for (co-)maintainers.
Times change, I might end up with a different projector brand, JVC might change the command interface for a newer model that I don't have. Enough people use this library now that I think it's important to think about think about its future. I would be grateful to have people who are competent in python and have access to a JVC projector on board. If you're willing to help, submit a pull request implementing new features, fixing bugs or tidying up my terrible programming and documentation!If you'd like to make a donation to sponsor work on this project, you can donate on ko-fi, or github sponsors
This is a package to control JVC Projectors over IP.
References
This library is used by following software:
- JVC projector remote for Homeassistant (add-on for Home Assistant).
- homebridge-jvc-projector(plugin for Homebridge)
It can also be used standalone or in a Python script.
Command Format
Read State
To get a status a specific command is sent with the JVCProjector.command(<command>) method.
Examples:
- To read power state, send command
powerand receivestandby,lamp_on,cooling,reservedoremergency - To read signal state, send command
signaland receiveno_signaloractive_signal
Write State
To control the projector, a command together with a certain state is sent with the JVCProjector.command(<command>-<state>) method.
Examples:
- Power ON:
power-on - Change picture mode to film:
picture_mode-film - Switch lamp to high:
lamp-high
Supported Commands
| Description | Command | State |
|---|---|---|
| Power | power | Read: standby, lamp_on, cooling, reserved, emergencyWrite: on, off |
| Lens Memory | memory | Read/Write: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
| Input | input | Read/Write: hdmi1, hdmi2 |
| Picture Mode | picture_mode | film, cinema, natural, hdr10, thx, user1, user2, user3, user4, user5, user6, hlg, frame_adapt_hdr, hdr10p, pana_pq |
| Low Latency Mode | low_latency | Read/Write: on, off |
| Mask | mask | Read/Write: off, custom1, custom2, custom3 |
| Lamp Setting | lamp | high, low, mid |
| Menu Buttons | menu | Write: menu, down, left, right, up, ok, back |
| Lens Aperture | aperture | Read/Write: off, auto1, auto2 |
| Anamorphic Mode | anamorphic | Read/Write: off, a, b, c, d |
| Signal Status | signal | Read: no_signal, active_signal |
| Get Mac Address | macaddr | Read: returns mac address string |
| Model Info | modelinfo | Read: returns the model info string |
| Test Connection | null | Write: no write payload, used for testing connection |
NOTE: Not all commands or states are supported by all models. You can easily tell by testing them on your JVC projector.
Installation
$ python3 -m pip install jvc_projector_remote
Usage
For usage with Home Assistant, see here.
Below is an example for using this module standalone (see command format section for command strings):
>>> from jvc_projector_remote import JVCProjector
# replace with your projector's local IP
>>> host = "192.168.1.12"
# initialise (for models older than the NZ series)
>>> projector = JVCProjector(host, port=20554, delay_ms=600, connect_timeout=10, max_retries=10)
# initialise (alternate, with network password)
>>> projector = JVCProjector(host, password="MYPASSWORD", port=20554, delay_ms=600, connect_timeout=10, max_retries=10)
# power on, power off
>>> projector.power_on()
# check status once it's on
>>> projector.is_on()
True
>>> projector.power_off()
# check if it's off
>>> projector.is_on()
False
# Send arbitrary command
# see the command format section above
>>> projector.command("input-hdmi2")
Confirmed Models
- DLA-X5900
- NX5
- NZ8/RS3100
- DLA-RS440
Let me know if it works with your projector and I will add it to the list above.
Error ConnectionRefusedError
The main issue one might face is receiving ConnectionRefusedError when making a
request too soon after another. If this is the case, we will retry up to max_retries. It is important to set delay_ms to a reasonable value. For example, my X5900 will hang for 0.8-1 second after the power-off command is sent.
Adding New Commands
If you are not familiar with Python at all, raise an issue with a request to add a new command. Otherwise, follow the documentation for the Command base class and be sure to look at the examples in the Commands class.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jvc_projector_remote-0.2.3.tar.gz.
File metadata
- Download URL: jvc_projector_remote-0.2.3.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9784acdbe6b85d9ef621f089ad12803b0478e65878bf0e04a602169172637572
|
|
| MD5 |
d13812c8c88e816a8f3fdb5781ebc578
|
|
| BLAKE2b-256 |
ae86e762550ef829066df0c6554b1889f22008b32a421bdf3797fbc2c9c11409
|
File details
Details for the file jvc_projector_remote-0.2.3-py3-none-any.whl.
File metadata
- Download URL: jvc_projector_remote-0.2.3-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6da619c88f315c71cb32e22220abbef38ec7098cba87d25496d531ea8ba29da
|
|
| MD5 |
a4f53978d3db2e7c95f43956e4a31968
|
|
| BLAKE2b-256 |
d4620138be31eec5223fc8a3fd7ce581a111131b0fa8a34c713eb446cccc3d68
|