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
None None NoneRelease 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 |