A small package to control jvc projectors over IP
JVC Projector Remote
- Power on/off
- Lens Memory
- Input (HDMI only)
- Power Status (Standby, Cooling, Emergency, Lamp On, Reserved)
- Low Latency Mode
Raise an issue if you would like any extra commands implemented. Alternatively pull requests are more than welcome and adding new commands is trivial. See Below.
Install this package from PyPi with:
pip install jvc_projector_remote
From this repo
Install from this repo with:
pip install -e git+https://github.com/bezmi/jvc_projector.git#egg=jvc-projector-remote
For usage with homeassistant, see here.
Here is am example for using this module standalone:
>>> from jvc_projector import JVCProjector # replace with your projector's local IP >>> host = "192.168.1.12" # initialise >>> projector = JVCProjector(host) # 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 # possibilities include: # - memory1, memory2, memory3, memory4, memory5 # - hdmi1, hdmi2 # - add new commands to the Commands class in __init__.py >>> projector.command("hdmi2")
I wrote this to interface my projector with homeassistant. The code to send/receive commands is rough and the error checking could be more robust. It has been tested on a DLA-X5900, but should work on most of the projectors that use a similar IP control scheme. Let me know if it works with your projector and I will add it to the list below.
The main issue one might face is receiving ConnectionRefusedError when making a request too soon after another. On my DLA-X5900, it takes about 600-700 ms between commands.
- Currently I group all power states into either "on" or "off". I might separate these in future.
- ACK for all commands might be useful, but it's reliable enough without it.
Adding New Commands
Page 25 of this reference shows that the function is
for "Picture Mode Switch". The hex representation of these ASCII characters in pythonic format is:
The relevant picture modes are presented in Table 4-19 on Page 30. Let's take
01 for the "Cinema" preset:
Finally, the examples on page 42 show what we need to append to the start and end of the command string. In the end, the final command added to the
class Commands(Enum): # ... # ALL THE OTHER COMMAND STRINGS... # ... pm_cinema = b"\x21\x89\x01\x50\x4D\x50\x4D\x30\x31\x0A"
Just change the value of step 2 for the remaining input modes you want. You should be able to use it like any of the other commands, with either the
JVCProjector.command() function in this module or the
remote.send_command service in Home Assistant using
"pm_cinema" as the command string.
One of the reasons I held off on this is that the commands from step 2 will be slightly different for older projectors. The picture mode is represented by one byte/character. In this case, for the "Cinema" mode, we would use:
Instead of the two byte code in step 2.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size jvc_projector_remote-0.0.4-py3-none-any.whl (5.7 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size jvc_projector_remote-0.0.4.tar.gz (5.3 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for jvc_projector_remote-0.0.4-py3-none-any.whl
Hashes for jvc_projector_remote-0.0.4.tar.gz