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
power
and receivestandby
,lamp_on
,cooling
,reserved
oremergency
- To read signal state, send command
signal
and receiveno_signal
oractive_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 , emergency Write: 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
Hashes for jvc_projector_remote-0.2.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9784acdbe6b85d9ef621f089ad12803b0478e65878bf0e04a602169172637572 |
|
MD5 | d13812c8c88e816a8f3fdb5781ebc578 |
|
BLAKE2b-256 | ae86e762550ef829066df0c6554b1889f22008b32a421bdf3797fbc2c9c11409 |
Hashes for jvc_projector_remote-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6da619c88f315c71cb32e22220abbef38ec7098cba87d25496d531ea8ba29da |
|
MD5 | a4f53978d3db2e7c95f43956e4a31968 |
|
BLAKE2b-256 | d4620138be31eec5223fc8a3fd7ce581a111131b0fa8a34c713eb446cccc3d68 |