This is the Home Assistant JVC Component implementing my JVC library
All the features in my JVC library including:
- Power
- Picture Modes
- Laser power and dimming
- Low Latency meta-functions
- Optimal gaming and movie setting meta-functions
- and so on
Because everything is async, it will run each button/command in the order it received. so commands won't disappear from the queue due to JVCs PJ server requiring the handshake. It uses a single persistent connection so any delay you see is because of HA processing.
This is currently only a custom component. Unlikely to make it into HA core because their process is just too burdensome.
Install HACS, then install the component by adding this as a custom repo https://hacs.xyz/docs/faq/custom_repositories
You can also just copy all the files into your custom_components folder but then you won't have automatic updates.
# configuration.yaml
remote:
- platform: jvc_projectors
name: { friendly name }
password: { password }
host: { IP addr }
timeout: { seconds } (optional)
scan_interval: 15 # recommend 15-30. Attributes will poll in this interval
I used this to re-create the JVC remote in HA. Add the YAML to your dashboard to get a grid which resembles most of the remote. Other functions can be used via remote.send_command. See the library readme for details.
Add this sensor to your configuration.yml. Replace the nz7 with the name of your entity. Restart HA.
sensor:
platform: template
sensors:
jvc_low_latency:
value_template: >
{% if is_state('remote.nz7', 'on') %}
{% if states.remote.nz7.attributes.low_latency == false %}
Off
{% elif states.remote.nz7.attributes.low_latency == true %}
On
{% endif %}
{% else %}
Off
{% endif %}
Add this to lovelace
type: grid
cards:
- type: button
name: Power
show_icon: false
entity: remote.nz7
show_state: true
show_name: true
icon: mdi:power
- type: button
tap_action:
action: call-service
service: jvc_projectors.info
service_data: {}
target:
entity_id: remote.nz7
show_icon: false
name: Info
hold_action:
action: none
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu,up
target:
entity_id: remote.nz7
show_name: false
show_icon: true
icon: mdi:arrow-up
hold_action:
action: none
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu,menu
target:
entity_id: remote.nz7
show_name: true
show_icon: false
name: Menu
hold_action:
action: none
- type: button
tap_action:
action: toggle
show_icon: false
- type: button
tap_action:
action: none
show_icon: false
entity: sensor.jvc_low_latency
show_name: true
show_state: true
name: Low Latency
hold_action:
action: none
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu,left
target:
entity_id: remote.nz7
show_name: false
icon: mdi:arrow-left
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu, ok
target:
entity_id: remote.nz7
name: OK
show_icon: false
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu, right
target:
entity_id: remote.nz7
show_name: false
icon: mdi:arrow-right
- type: button
tap_action:
action: toggle
show_icon: false
show_name: false
- type: button
tap_action:
action: toggle
show_icon: false
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu,back
target:
entity_id: remote.nz7
name: Back
show_icon: false
- type: button
tap_action:
action: call-service
service: remote.send_command
service_data:
command: menu,down
target:
entity_id: remote.nz7
show_name: false
icon: mdi:arrow-down
- type: button
tap_action:
action: toggle
show_icon: false
- type: button
tap_action:
action: toggle
show_icon: false
- type: button
tap_action:
action: call-service
service: jvc_projectors.gaming_mode_hdr
service_data: {}
target:
entity_id: remote.nz7
show_icon: false
show_name: true
hold_action:
action: none
name: Game HDR
- type: button
tap_action:
action: call-service
service: jvc_projectors.gaming_mode_sdr
service_data: {}
target:
entity_id: remote.nz7
show_icon: false
name: Game SDR
- type: button
tap_action:
action: call-service
service: jvc_projectors.hdr_picture_mode
service_data: {}
target:
entity_id: remote.nz7
show_icon: false
name: Film HDR
- type: button
tap_action:
action: call-service
service: jvc_projectors.sdr_picture_mode
service_data: {}
target:
entity_id: remote.nz7
show_icon: false
name: Film SDR
- type: button
tap_action:
action: toggle
show_icon: false
columns: 5