PJLink Binding

This binding allows you to control devices with PJLink support. PJLink is a protocol that was developed to standardize IP control of digital projectors, but can also be used by other device types.

Aspects that can be controlled via PJLink are power on/off, input source selection and volume/mute setting.

Supported Things

This binding supports devices which implement the PJLink protocol (Class 1).

Limitations at this point:

  • only IPv4 connections are supported
  • only PJLink Class 1 commands are supported. Class 2 devices should work fine nevertheless, it is just the Class 2 features that will not work.

The binding is tested with the PJLink device test tool (PJLinkTEST4CNT) and an Acer VL7680.

Discovery

Autodiscovery is checking all IP addressess of all class C IPv4 subnets connected to the openHAB system for devices which respond PJLink compliant on the PJLink standard port 4352.

Thing Configuration

The pjLinkDevice thing type has the following parameters:

Parameter Description
ipAddress the IPv4 address of the device Mandatory
tcpPort the listening TCP port of the devices. Optional, the default value is 4352
adminPassword the PJLink password of the device (should be left empty for devices without authentication). Optional
refreshInterval the polling interval (in seconds) to update the channel values from the device, can be set to 0 to disable polling. Optional, the default value is 5
refreshPower enables polling of the power status. Optional, the default value is false
refreshMute enables polling of the mute status. Optional, the default value is false
refreshInputChannel enables polling of the selected input channel. Optional, the default value is false
autoReconnectInterval seconds between connection retries when connection to the PJLink device has been lost, 0 means never retry, minimum 30s Optional, the default value is 60

Channels

Channel Description
power Switches the device on/off
input Switches the input channel of the device
audioMute Mutes the device audio
videoMute Mutes the device video

Full Example

sample.things:

pjLinkDevice:pjLinkDevice:MyProjector [ ipAddress="192.168.178.10" ]

sample.items:

Switch Projector_Power "Projector Power"          { channel="pjLinkDevice:pjLinkDevice:MyProjector:power" }
String Projector_Input "Projector Input"          { channel="pjLinkDevice:pjLinkDevice:MyProjector:input" }
Switch Projector_AudioMute "Projector Audio Mute" { channel="pjLinkDevice:pjLinkDevice:MyProjector:audioMute" }
Switch Projector_VideoMute "Projector Video Mute" { channel="pjLinkDevice:pjLinkDevice:MyProjector:videoMute" }

sample.sitemap:

sitemap sample label="Main Menu" {
  Frame  {
    Switch item=Projector_Power
    Selection item=Projector_Input
    Switch item=Projector_AudioMute
    Switch item=Projector_VideoMute
  }
}