This page is part of archived documentation for openHAB 2.5. Go to the current stable version
# Epson Projector Binding v1
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
.
Property | Default | Required | Description |
---|---|---|---|
<device-id> .serialPort | Yes | serial 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
# Using tcp instead of serialPort
Alternatively you can connect to your projector via tcp/telnet if you are using some kind of serial2IP converter.
Like: https://community.openhab.org/t/benq-beamer-binding-rs232-over-wifi-ir-receiver/26138/4 (opens new window)
In that case the configuration looks like this:
Property | Default | Required | Description |
---|---|---|---|
<device-id> .host | Yes | IP address of your converter | |
<device-id> .port | Yes | Port the device is listening on. e.g. 23 |
Examples:
hometheater.host=192.168.1.234
hometheater.port=23
If you are switching from serial to TCP you might need to delete the cache (/var/lib/openhab2/config/org/openhab/epsonprojector.config
).
# 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
Command | Item Type | Purpose | Note |
---|---|---|---|
Power | Switch | ||
PowerState | String | ||
LampTime | Number | ||
KeyCode | Number | ||
VerticalKeystone | Number | ||
HorizontalKeystone | Number | ||
AutoKeystone | Number | ||
AspectRatio | String | ||
Luminance | String | ||
Source | String | ||
DirectSource | Number | ||
Brightness | Number | ||
Contrast | Number | ||
Density | Number | ||
Tint | Number | ||
Sharpness | Number | ||
ColorTemperature | Number | ||
FleshTemperature | Number | ||
ColorMode | String | ||
HorizontalPosition | Number | ||
VerticalPosition | Number | ||
Tracking | Number | ||
Sync | Number | ||
OffsetRed | Number | ||
OffsetGreen | Number | ||
OffsetBlue | Number | ||
GainRed | Number | ||
GainGreen | Number | ||
GainBlue | Number | ||
Gamma | String | ||
GammaStep | Number | ||
Color | String | ||
Mute | Switch | ||
HorizontalReverse | Switch | ||
VerticalReverse | Switch | ||
Background | String | ||
ErrCode | Number | ||
ErrMessage | String |
# 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
}
}