Skip to main content

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.


This library is used by following software:

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.


  • To read power state, send command power and receive standby, lamp_on, cooling, reserved or emergency
  • To read signal state, send command signal and receive no_signal or active_signal

Write State

To control the projector, a command together with a certain state is sent with the JVCProjector.command(<command>-<state>) method.


  • 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.


$ python3 -m pip install jvc_projector_remote


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 = ""

# 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()

>>> projector.power_off()
# check if it's off
>>> projector.is_on()

# 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jvc_projector_remote-0.2.3.tar.gz (8.8 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page