JVC Projector Component

Bezmi,

Yes I used the example from Git, I posted my configuration and automations.yaml, the only thing I can see is the case difference. rs6710 vs RS6710 for the entity. Could that be the problem? Currently it doesn’t work.

Hi Bezmi,

Thanks creating and continuing to support this control. Even though I’m pretty new to HomeAssistant I managed to get it installed through HACS and sort of got it working last night with my JVC x790b. Just to confirm, 2 seperate cards end up getting created in lovelace… one for powering on/off and the other for hdmi/lens memory select ?

I have a few automations that i’ve created through the GUI which i see in the automations.yaml file
My problem is i cannot seem to get the JVC automations to co-exist with the existing automations.
When i check configuration under server controls, it complains about the automations.yaml and the controls do not work:

Configuration invalid

Error loading /config/configuration.yaml: while parsing a block mapping in “/config/automations.yaml”, line 57, column 3 (which isnt even JVC, it’s another ID of another automation)

I’ve tried pasting the JVC lines to automations.yaml at both the beginning and end of the file. It only seems to work for me if i remove all of the automations created in the gui, and ONLY include the JVC lines to automations.yaml - but that isn’t ideal.

My endgame plan is having tautulli provide a webhook to home assistant based on aspect ratio. That will trigger lens memory select in your component and also trigger a shelly 2.5 to open/close some motorized curtains for screen masking. If i create a new automation based on that webhook trigger, can it call the JVC lens memory automation?

Thanks!

Just trying to get the integration installed and running under HA for my JVC Projector. I installed via HACS easily enough and I’ve added the basic info to configuration.yaml. HA sees the entity but I am unable to call it from developer tools. I’ve tried remote.turn_on, remote.power_on, turn_on, power_on but nothing seems to work. Are there any other configurations needed or packages required get it up and going? As a side not I have installed and tested the connection to the projector from the Windows JVC remote command line app and it works fine. thx for any help :slight_smile:

Thanks for sharing this! I got this running for my JVC DLA NX7 and it works great.

Did you install the module too? From the HA terminal:

pip install jvc-projector-remote

Hi David, if you still haven’t got this sorted, see my response here for some troubleshooting steps: Controlling JVC projector via LAN

Thx for the reply bezmi. I think my issue is I don’t have the jvc-projector-remote python module installed and can’t figure out how to install it under hassos as there is no pip at the command line. Is there a way to install the python module under hassos?

Provided you installed the custom component, the python library should get pulled automatically as it’s listed as a requirement. I am doing some tests and there appears to be an issue with the remote.turn_on command (but not remote.turn_off). I have tried with a generic remote.send_command service call with data this shouldn’t be an issue anymore, see my reply below

entity_id: remote.your_projector_name
command: power_on

and this works fine for me. Could you please try this and let me know if it works for you? In the meantime I’ll try to troubleshoot why the dedicated turn_on command is not working.

There was a small bug in the function definition for turn_on. I’ve updated the github custom_component page so if this was causing your problems, then they should be resolved.

I know this is old, but I just went through a couple days trying to get this to work and finally did. I have a DLA-RS400 (same as DLA-X550), so that can be added to the working list. Here are some notes for users new to HA:

  1. If you are running HAOS, then you can use the Terminal & SSH addon to install PIP like so:

    apk add python3 py3-pip

  2. Install the Visual Studio Code addon and use it to edit your configuration.yaml file to add your projector.

remote:
  - platform: jvcprojector
    name: Theater Room Projector
    host: !secret jvc_ip
    scan_interval: 30
  1. Use Visual Studio Code to add to your automations.yaml file to add triggers and actions. Make sure the entity_id matches your projector. You can use Developer Tools under Services using the Remote:Turn On service to select the entity. Use GO TO YAML MODE and you can see the entity_id you should use.
  - alias: projector input
    trigger:
      platform: state
      entity_id: input_select.jvc_projector_input
    condition:
        - condition: state
          entity_id: remote.theater_room_projector
          state: 'on'
    action:
      service: remote.send_command
      data_template:
        entity_id: remote.theater_room_projector
        command: >-
            {% if is_state('input_select.jvc_projector_input', 'HDMI 1') %}
              hdmi1
            {% elif is_state('input_select.jvc_projector_input', 'HDMI 2') %}
              hdmi2
            {% endif %}
  1. You can add an Entities card to your dashboard to control it. Make sure the projector input switch stays on so you can switch your inputs with the Inputs drop down.
    image

  2. In your projector settings, you must make sure that the Control4 setting is turned OFF under Network options. While this is on, the projector will not expose port 20554, which means this integration won’t work.

I hope this helps others get started a lot quicker.

Man @OtisPresley thanks so much for this. (and of course to @bezmi as well for creating this) I was unable to get this working until I read thru this thread and got to the end. I am also on Hassio so the apk was the missing link for me. Thanks for saving me some troubleshooting time.

This works SO well with my JVC DLA-RS1000 (same as NX5). So much more reliable for on/off than my Harmony Remote using IR. Actually have it working through Emulated Roku + Harmony Remote to ensure the device properly powers on/off.

I see the remote entity in Home Assistant and within the attributes it shows last state, but I haven’t yet figured out how to get that information to surface elsewhere in HA. e.g. I’d like to show the status of the projector on/off within a lovelace card. Is this possible? Not sure if I missed this detail somewhere…

Good to hear it is working well for you. You should be able to do this with an entities card. See the “Special row elements” section for information on how to display an attribute.

1 Like

Hey All, just a quick note to say a BIG thank you to @bezmi and @OtisPresley for the integration and details. I have this working and at last the projector behalves the way it should and its power is integrated to all the other AV kit in our movie room. Thanks Guys :clap:

1 Like

So I’ve just stumbled upon (and gotten working!) this addon, so thanks so much for that!

I know this is an old thread, but I’m curious if there’s a way to expose the remote entity to the Nabu Casa cloud, so that I can use it via Alexa?

Hi everyone, I have released a major update of the component (v2.0.0a2) with the ability to fetch information from the projector. I have also added extra state attributes that fetch the signal status, input, picture mode and lamp state. In addition to these, there is a new extra state attribute called last_commands_response, which stores the responses from the projector for any successful read commands. Have a look at the README which I have updated to suit the latest changes.

On the python library side of things, it is much more robust and supports reconnecting/retrying the command send if it failed due to a communication error. I have also added debug statements to the python library, which you can enable by having:

logger:
  logs:
    jvc_projector_remote.jvcprojector: debug

in your configuration.yaml.

Please test out the latest version and report any bugs. You’ll have to check the “install beta versions” toggle in HACS to be able to see the v2.0.0a2 tag as an option. v1.0.2 is the old “stable” build if you’d like to revert. If you have any issues, please be sure to pose something on the github page for the component.

Currently, the only planned features before releasing a “stable” version of this is config flow integration, so we can do away with the legacy configuration.yaml setup (in addition to more testing).

1 Like

Any chance you could implement lens memories 6-10? They are available for the N series and above afaik. :relaxed:

No problem. I have add an issue to track this feature request. I am a bit busy with postgrad stuff so it will be a little while.

1 Like

Hi all,

i am trying to set this up for a NZ8 projector but there seems to occur an error somewhere:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 281, in _async_setup_platform
    await asyncio.shield(task)
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/jvcprojector/remote.py", line 36, in setup_platform
    JVCRemote(name, host, password, port, delay, timeout, retries),
  File "/config/custom_components/jvcprojector/remote.py", line 69, in __init__
    self._lamp_state = "unknown" if not self._state else self._jvc.command("lamp")
  File "/usr/local/lib/python3.10/site-packages/jvc_projector_remote/jvcprojector.py", line 202, in command
    return self._send_command(getattr(Commands, commandl[0]))
  File "/usr/local/lib/python3.10/site-packages/jvc_projector_remote/jvcprojector.py", line 167, in _send_command
    result = command.read(jvc_sock)
  File "/usr/local/lib/python3.10/site-packages/jvc_projector_remote/jvccommands.py", line 212, in read
    return self.read_valsinv[resp]
KeyError: b'2'

My config is as follows:

platform: jvcprojector
name: NZ8
host: 10.2.0.50
scan_interval: 30

# only required for NZ series and up
#password: MyNZ8

# optional, default is 20554
port: 20554

# optional, float, default is 0.5 seconds
# how long to wait before raising a communication error
timeout: 0.5

# how long to wait between commands
# optional, default is 600 milliseconds
delay: 600

# how many times to retry on connection error
# optional, default is 5
max_retries: 5

Interesting as well is that my device has no option to set a network password…

Do you have any idea what could be wrong?

BR

Forgive me for showing a bit of the code, but if you look here, I am only dealing with two return values for the lamp power state, either “high” (return code b'1') or “low” (return code b'0').

Your error implies the NZ series has another lamp power state that corresponds to the key b'2' that I have simply not implemented as my older projector doesn’t have it. This will need looking into, but if you can put your lamp in a different power mode which doesn’t give the error, it should allow you to get it set up and kind-of working.

For the network password, if it isn’t an option in your projector’s network settings, then there is no need to set it in the config. I have no idea which models actually have it (quick check of the manual says DLA-NZ9BK, DLA-NZ8BK, DLA-NZ7BK, DLA-RS4100K, DLA-RS3100K, DLA-RS2100K only).

I am trying to find the external command specifications for the NZ models, but so far, I have only come across the file for NX series, which was last updated in 2018. Since these are laser models, it is likely that the “lamp” commands are different.

Edit: found it! AVS Forum to the rescue! There is indeed a “mid power” lamp mode. I can have this implemented and pushed out fairly quickly. Stay tuned!

1 Like