Skip to content

Home Assistant integration for PJLink class 2 based projectors

License

Notifications You must be signed in to change notification settings

TheRealKillaruna/ha-pjlink2

Repository files navigation

PJLink2 for Home Assistant

Home Assistant custom component to integrate video projectors via the PJLink network protocol. In contrast to the official PJLink integration, it also supports PJLink class-2 features, notably querying the current resolution of the projector. The projector is integrated as a sensor that shows the current state (ON/OFF), all other data fields are attributes to the entity.

Tested devices

The component has been developed and tested with an Epson LS12000 projector, but should work with all models and brands that support the PJLink protocol, among them Sony, NEC, Panasonic, Optoma, BenQ, and many more.

Installation

HACS

  1. In HACS, select Integrations
  2. Select Custom Repositories from the three dots in top right corner
  3. Enter https://github.com/TheRealKillaruna/ha-pjlink2 as repository and select Integration as category
  4. Click Add
  5. Open Custom Repositories again and you should see PJLink2 at the top of the list, click it
  6. Click Download in lower right corner
  7. Select the latest version and click Download
  8. Configure your settings as described below
  9. Restart Home Assistant

Manually

  1. Copy pjlink2 folder from latest release to custom_components folder in your config folder.
  2. Configure your settings as described below
  3. Restart Home Assistant

Configuration

All settings are specified in your Home Assistant configuration via YAML.

Add your projector as a sensor and configure like this:

sensor:
  - platform: pjlink2
    host: 192.168.0.123       # IP address of the projector
    port: 1234                # projector port for communication (optional, default is 4352)
    name: "My Projector"      # name under which projector appears in HA (optional)
    encoding: "utf-16"        # encoding for communication (optional, default is utf-8)
    password: "secret%123"    # password to establish connection (optional)
    timeout: 1.5              # timeout to establish connection in seconds (optional, default is 4 sec)