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.

References

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.

Examples:

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

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


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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jvc_projector_remote-0.2.3-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for jvc_projector_remote-0.2.3.tar.gz
Algorithm Hash digest
SHA256 9784acdbe6b85d9ef621f089ad12803b0478e65878bf0e04a602169172637572
MD5 d13812c8c88e816a8f3fdb5781ebc578
BLAKE2b-256 ae86e762550ef829066df0c6554b1889f22008b32a421bdf3797fbc2c9c11409

See more details on using hashes here.

File details

Details for the file jvc_projector_remote-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for jvc_projector_remote-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e6da619c88f315c71cb32e22220abbef38ec7098cba87d25496d531ea8ba29da
MD5 a4f53978d3db2e7c95f43956e4a31968
BLAKE2b-256 d4620138be31eec5223fc8a3fd7ce581a111131b0fa8a34c713eb446cccc3d68

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page