Epson Projector Binding

This binding should be compatible with Epson projectors which support ESC/VP21 protocol over serial port.

Binding Configuration

This binding can be configured in the file services/epsonprojector.cfg.

PropertyDefaultRequiredDescription
<device-id>.serialPortYesserial port device name that is connected to the Epson projector to control, e.g. COM1 on Windows, /dev/ttyS0 on Linux or /dev/tty.PL2303-0000103D on Mac

where <device-id> is a name you choose (like hometheater), and this configuration property can be repeated with different names to control more than one Epson projector.

Examples:

hometheater.serialPort=/dev/tty.usbserial
office.serialPort=/dev/ttyS0

Item Configuration

The syntax is:

epsonprojector="<direction><device-id>:<device-command>[:<update-interval>]"

where:

  • <direction> is one of the following values:

  • < - for inbound communication

  • > - for outbound communication

  • * - for either inbound or outbound communication, e.g bi-directional

  • <device-id> corresponds device which is introduced in the binding configuration

  • <device-command> corresponds to the Epson projector command. See complete list below.

  • <update-interval> is optional, and corresponds to the update interval of the item. Update interval is only supported by the inbound and bi-directional items. For some of the commands, the projector will only respond when projector is running. This situation can be handled with special interval, where interval is started with "ON," prefix.

Examples, how to configure your items:

Switch Power    { epsonprojector="hometheater:Power:60000" }
String Source   { epsonprojector="hometheater:Source:ON,60000" }
Number LampTime { epsonprojector="<hometheater:LampTime:60000" }

List of supported commands

CommandItem TypePurposeNote
PowerSwitch
PowerStateString
LampTimeNumber
KeyCodeNumber
VerticalKeystoneNumber
HorizontalKeystoneNumber
AutoKeystoneNumber
AspectRatioString
LuminanceString
SourceString
DirectSourceNumber
BrightnessNumber
ContrastNumber
DensityNumber
TintNumber
SharpnessNumber
ColorTemperatureNumber
FleshTemperatureNumber
ColorModeString
HorizontalPositionNumber
VerticalPositionNumber
TrackingNumber
SyncNumber
OffsetRedNumber
OffsetGreenNumber
OffsetBlueNumber
GainRedNumber
GainGreenNumber
GainBlueNumber
GammaString
GammaStepNumber
ColorString
MuteSwitch
HorizontalReverseSwitch
VerticalReverseSwitch
BackgroundString
ErrCodeNumber
ErrMessageString

References

Full Example

items/epson.items

Switch epsonPower                          { epsonprojector="hometheater:Power:60000" }
String epsonSource        "Source [%s]"    { epsonprojector="hometheater:Source:ON,60000" }
Number epsonDirectSource  "Direct Source"  { epsonprojector="hometheater:DirectSource:ON,60000"}

Switch epsonMute               { epsonprojector="hometheater:Mute:ON,60000" }

Switch epsonHorizontalReverse  { epsonprojector="hometheater:HorizontalReverse:ON,60000" }
Switch epsonVerticalReverse    { epsonprojector="hometheater:VerticalReverse:ON,60000" }

String epsonAspectRatio       "AspectRatio [%s]"        { epsonprojector="hometheater:AspectRatio:ON,60000" }
String epsonColorMode         "ColorMode [%s]"          { epsonprojector="hometheater:ColorMode:ON,60000" }
Number epsonColorTemperature  "Color Temperature [%d]"  <colorwheel>   { epsonprojector="<hometheater:ColorTemperature:ON,60000" }

Number epsonLampTime    "Lamp Time [%d h]"  <switch>       { epsonprojector="<hometheater:LampTime:60000" }
Number epsonErrCode     "ErrCode [%d]"      <"siren-on">   { epsonprojector="<hometheater:ErrCode:ON,60000" }
String epsonErrMessage  "ErrMessage [%s]"   <"siren-off">  { epsonprojector="<hometheater:ErrMessage:ON,60000" }

sitemaps/epson.sitemap

sitemap epson label="Epson Projector Demo"
{
    Frame label="Controls" {
        Switch     item=epsonPower         label="Power"
        Text       item=epsonSource
        Selection  item=epsonDirectSource  label="DirectSource" mappings=[20="COMPONENT", 32="PC", 48=HDMI1, 160=HDMI2, 65=VIDEO, 66=SVIDEO]
        Switch     item=epsonMute label="Mute"
    }
    Frame label="Flip Projection" {
        Switch  item=epsonHorizontalReverse label="Horizontal Reverse"
        Switch  item=epsonVerticalReverse   label="Vertical Reverse"
    }
    Frame label="Info" {
        Text  item=epsonAspectRatio
        Text  item=epsonColorMode
        Text  item=epsonColorTemperature
        Text  item=epsonLampTime
        Text  item=epsonErrCode
        Text  item=epsonErrMessage
    }
}