-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial contribution of IRtrans 2.0 binding
Signed-off-by: Karel Goderis <karel.goderis@me.com> (github: kgoderis)
- Loading branch information
Showing
17 changed files
with
2,005 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<classpath> | ||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> | ||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | ||
<classpathentry kind="src" path="src/main/java"/> | ||
<classpathentry kind="output" path="target/classes"/> | ||
</classpath> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>org.openhab.binding.irtrans</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.jdt.core.javabuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.pde.ManifestBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.pde.SchemaBuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.pde.ds.core.builder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.pde.PluginNature</nature> | ||
<nature>org.eclipse.jdt.core.javanature</nature> | ||
</natures> | ||
</projectDescription> |
9 changes: 9 additions & 0 deletions
9
addons/binding/org.openhab.binding.irtrans/ESH-INF/binding/binding.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<binding:binding id="irtrans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:binding="http://eclipse.org/smarthome/schemas/binding/v1.0.0" | ||
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/binding/v1.0.0 http://eclipse.org/smarthome/schemas/binding-1.0.0.xsd"> | ||
|
||
<name>IRtrans Binding</name> | ||
<description>This is the binding for IRtrans (www.irtrans.de) Transceivers</description> | ||
<author>Karel Goderis</author> | ||
|
||
</binding:binding> |
43 changes: 43 additions & 0 deletions
43
addons/binding/org.openhab.binding.irtrans/ESH-INF/thing/blaster.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<thing:thing-descriptions bindingId="irtrans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xmlns:thing="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0" | ||
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0 http://eclipse.org/smarthome/schemas/thing-description-1.0.0.xsd"> | ||
|
||
<!-- Blaster/Receiver diode connected to an IRtrans transceiver --> | ||
<thing-type id="blaster"> | ||
<supported-bridge-type-refs> | ||
<bridge-type-ref id="ethernetbridge" /> | ||
</supported-bridge-type-refs> | ||
|
||
<label>Blaster</label> | ||
<description>This is an infrared transmitter that can send infrared commands</description> | ||
|
||
<channels> | ||
<channel id="io" typeId="io" /> | ||
</channels> | ||
|
||
<config-description> | ||
<parameter name="led" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The Led on which infrared commands will be emitted</description> | ||
</parameter> | ||
|
||
<parameter name="remote" type="text" required="true"> | ||
<label>Remote</label> | ||
<description>The remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any remote</description> | ||
</parameter> | ||
|
||
<parameter name="command" type="text" required="true"> | ||
<label>Command</label> | ||
<description>The name of the command will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any command</description> | ||
</parameter> | ||
</config-description> | ||
</thing-type> | ||
|
||
<channel-type id="io"> | ||
<item-type>String</item-type> | ||
<label>Input/Output channel for infrared commands</label> | ||
<description>The IO channel allows to read infrared commands received by the blaster, as well as to write infrared commands to be sent by the blaster</description> | ||
</channel-type> | ||
|
||
</thing:thing-descriptions> |
84 changes: 84 additions & 0 deletions
84
addons/binding/org.openhab.binding.irtrans/ESH-INF/thing/ethernetbridge.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<thing:thing-descriptions bindingId="irtrans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xmlns:thing="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0" | ||
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0 http://eclipse.org/smarthome/schemas/thing-description-1.0.0.xsd"> | ||
|
||
<!-- Bridge Thing Type --> | ||
<bridge-type id="ethernet"> | ||
<label>IRtrans Ethernet Bridge</label> | ||
<description>This Thing supports the Ethernet (PoE) IRtrans transceiver equipped with an on-board IRDB database </description> | ||
|
||
<config-description> | ||
<parameter name="ipAddress" type="text" required="true"> | ||
<label>Network Address</label> | ||
<description>Network address of the ethernet transceiver</description> | ||
</parameter> | ||
<parameter name="portNumber" type="integer" required="true"> | ||
<label>Port Number</label> | ||
<description>TCP port number of the transceiver service</description> | ||
</parameter> | ||
<parameter name="bufferSize" type="integer" required="false"> | ||
<label>Buffer Size </label> | ||
<description>Buffer size used by the TCP socket when sending and receiving commands to the transceiver</description> | ||
<default>1024</default> | ||
</parameter> | ||
<parameter name="refreshInterval" type="integer" required="false"> | ||
<label>Refresh interval</label> | ||
<description>Specifies the refresh interval in milliseconds.</description> | ||
<default>50</default> | ||
</parameter> | ||
<parameter name="responseTimeOut" type="integer" required="false"> | ||
<label>Response time out interval</label> | ||
<description>Specifies the time milliseconds to wait for a response from the transceiver when sending a command.</description> | ||
<default>100</default> | ||
</parameter> | ||
<parameter name="pingTimeOut" type="integer" required="false"> | ||
<label>Ping time out interval</label> | ||
<description>Specifies the time milliseconds to wait for a response from the transceiver when pinging the device</description> | ||
<default>1000</default> | ||
</parameter> | ||
<parameter name="reconnectInterval" type="integer" required="false"> | ||
<label>Reconnect interval</label> | ||
<description>Specifies the time seconds to wait before reconnecting to a transceiver after a communication failure</description> | ||
<default>10</default> | ||
</parameter> | ||
</config-description> | ||
</bridge-type> | ||
|
||
<channel-type id="blaster"> | ||
<item-type>String</item-type> | ||
<label>Blaster Channel</label> | ||
<description>The Blaster Channel allows to send (filtered) infrared commands over the specified blaster led of the transceiver</description> | ||
<config-description> | ||
<parameter name="led" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The Led on which infrared commands will be emitted</description> | ||
</parameter> | ||
<parameter name="remote" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any remote</description> | ||
</parameter> | ||
<parameter name="command" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The name of the command will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any command</description> | ||
</parameter> | ||
</config-description> | ||
</channel-type> | ||
|
||
<channel-type id="receiver"> | ||
<item-type>String</item-type> | ||
<label>Receiver Channel</label> | ||
<description>The Receiver Channel allows to receive (filtered) infrared commands on the receiver led of the transceiver</description> | ||
<config-description> | ||
<parameter name="remote" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any remote</description> | ||
</parameter> | ||
<parameter name="command" type="text" required="true"> | ||
<label>Led</label> | ||
<description>The name of the command will be allowed, as defined in the IRtrans server database and flashed into the transceiver. Can be '*' for any command</description> | ||
</parameter> | ||
</config-description> | ||
</channel-type> | ||
|
||
</thing:thing-descriptions> |
19 changes: 19 additions & 0 deletions
19
addons/binding/org.openhab.binding.irtrans/META-INF/MANIFEST.MF
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Manifest-Version: 1.0 | ||
Bundle-ManifestVersion: 2 | ||
Bundle-Name: IRtrans Binding | ||
Bundle-SymbolicName: org.openhab.binding.irtrans;singleton:=true | ||
Bundle-Vendor: openHAB | ||
Bundle-Version: 2.1.0.qualifier | ||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7 | ||
Bundle-ClassPath: . | ||
Import-Package: com.google.common.collect, | ||
org.eclipse.smarthome.config.core, | ||
org.eclipse.smarthome.core.library.types, | ||
org.eclipse.smarthome.core.thing, | ||
org.eclipse.smarthome.core.thing.binding, | ||
org.eclipse.smarthome.core.types, | ||
org.slf4j, | ||
org.apache.commons.lang | ||
Service-Component: OSGI-INF/*.xml | ||
Export-Package: org.openhab.binding.irtrans, | ||
org.openhab.binding.irtrans.handler |
19 changes: 19 additions & 0 deletions
19
addons/binding/org.openhab.binding.irtrans/OSGI-INF/IRtransHandlerFactory.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
Copyright (c) 2014 openHAB UG (haftungsbeschraenkt) and others. | ||
All rights reserved. This program and the accompanying materials | ||
are made available under the terms of the Eclipse Public License v1.0 | ||
which accompanies this distribution, and is available at | ||
http://www.eclipse.org/legal/epl-v10.html | ||
--> | ||
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="org.openhab.binding.irtrans.factory.IRtransHandlerFactory"> | ||
|
||
<implementation class="org.openhab.binding.irtrans.factory.IRtransHandlerFactory"/> | ||
|
||
<service> | ||
<provide interface="org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory"/> | ||
</service> | ||
|
||
</scr:component> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# IRtrans Binding | ||
|
||
This binding integrates infrared receivers and blasters manufactured by IRtrans (www.irtrans.de) | ||
|
||
## Supported Things | ||
|
||
The *ethernet* Bridge supports the Ethernet (PoE) IRtrans transceiver equipped with an on-board IRDB database. Blasters and receivers are defined as Channels on the Bridge, but one can also define blasters as a *blaster* child Thing on the Bridge. | ||
|
||
## Discovery | ||
|
||
There is no Discovery feature available. | ||
|
||
## Binding Configuration | ||
|
||
There is no specific binding configuration required. | ||
|
||
## Thing Configuration | ||
|
||
The *ethernet* Bridge requires an *ipAddress* IP address and *portNumber* TCP port number in order to configure it. Optionally, one can add the following parameters to the configuration: | ||
|
||
*bufferSize* : Buffer size used by the TCP socket when sending and receiving commands to the transceiver (default: 1024) | ||
*refreshInterval* : Specifies the refresh interval, in milliseconds, for status updates (default: 50) | ||
*responseTimeOut* : Specifies the time milliseconds to wait for a response from the transceiver when sending a command (default: 100) | ||
*pingTimeOut* : Specifies the time milliseconds to wait for a response from the transceiver when pinging the device (default: 1000) | ||
*reconnectInterval* : Specifies the time seconds to wait before reconnecting to a transceiver after a communication failure (default: 10) | ||
|
||
The *blaster* Thing requires a *led* parameter to specify on which infrared commands will be emitted, *remote* the remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' remote), and *command* the name of the command will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' command). | ||
|
||
## Channels | ||
|
||
The *ethernet* Thing supports the following Channel Types: | ||
|
||
| Channel Type ID | Item Type | Description | | ||
|-----------------|------------------------|--------------|----------------- |------------- | | ||
| blaster | String | Send (filtered) infrared commands over the specified blaster led of the transceiver | | ||
| receiver | String | Receive (filtered) infrared commands on the receiver led of the transceiver | | ||
|
||
The *blaster* Channel Type requires a *led* configuration parameter to specify on which infrared commands will be emitted, *remote* the remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' remote), and *command* the name of the command will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' command). | ||
|
||
The *receiver* Channel Type requires *remote* the remote or manufacturer name which's commands will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' remote), and *command* the name of the command will be allowed, as defined in the IRtrans server database that is flashed into the transceiver (can be '*' for 'any' command). | ||
|
||
The *blaster* Thing supports a *io* Channel (of Item Type String) that allows to read infrared commands received by the blaster, as well as to write infrared commands to be sent by the blaster. | ||
|
||
The IRtrans transceivers store infrared commands in a "remote,command" table, e.g. "telenet,power". Sending the literal text string "telenet,power" to the transceiver will make the transceiver "translate" that into the actual infrared command that will be emitted by the transceiver. A "remote,command" string sent to a Channel that does not match the defined filter will be ignored. | ||
|
||
## Full Example | ||
|
||
demo.things: | ||
``` | ||
Bridge irtrans:ethernet:kitchen [ ipAddress="192.168.0.56", portNumber=21000, bufferSize=1024, refreshInterval=50, responseTimeOut=100, pingTimeOut=2000, reconnectInterval=10 ] | ||
{ | ||
Channels: | ||
Receiver : any [remote="*", command="*"] | ||
Receiver : telenet_power [remote="telenet", command="power"] | ||
Blaster : samsung [led="E", remote="samsung", command="*"] | ||
} | ||
``` | ||
|
||
In the above example, the first channel will be updated when any IR command from any type of device is received. The second channel will only be updated if a "power" infrared command from the remote/device type "telenet" is received. The third channel can be used to feed any type of infrared command to a Samsung television by means of the "E" emitter of the IRtrans device. | ||
|
||
``` | ||
Bridge irtrans:ethernet:technicalfacilities [ ipAddress="192.168.0.58", portNumber=21000, bufferSize=1024, refreshInterval=50, responseTimeOut=100, pingTimeOut=2000, reconnectInterval=10 ] | ||
{ | ||
Channels: | ||
Receiver : any [remote="*", command="*"] | ||
Blaster : telenet1 [led="2", remote="telenet", command="*"] | ||
Blaster : telenet2 [led="1", remote="telenet", command="*"] | ||
Blaster : appletv [led="3", remote="appletv", command="*"] | ||
} | ||
``` | ||
|
||
In the above channel a single IRtrans transceiver has 3 output leds in use, 2 to drive 2 DTV SetTopBoxes, and a third one to drive an Apple TV device. | ||
|
||
demo.items: | ||
``` | ||
String KitchenIRReceiverAny {channel="irtrans:ethernet:kitchen:any"} | ||
String KitchenIRReceiverTelenetPower {channel="irtrans:ethernet:kitchen:telenet_power"} | ||
String KitchenIRBlasterSamsung {channel="irtrans:ethernet:kitchen:samsung"} | ||
String TechnicalFacilitiesIRReceiverAny {channel="irtrans:ethernet:technicalfacilities:any"} | ||
String TechnicalFacilitiesIRBlasterTelenet2 {channel="irtrans:ethernet:technicalfacilities:telenet2"} | ||
String TechnicalFacilitiesIRBlasterTelenet1 {channel="irtrans:ethernet:technicalfacilities:telenet1"} | ||
String TechnicalFacilitiesIRBlasterAppleTV {channel="irtrans:ethernet:technicalfacilities:appletv"} | ||
``` | ||
|
||
demo.rules: | ||
|
||
``` | ||
rule "Kitchen switch IR rule" | ||
when | ||
Item KitchenIRReceiverTelenetPower received update | ||
then | ||
createTimer(now.plusSeconds(5)) [| | ||
KitchenIRBlasterSamsung.sendCommand("samsung,power") | ||
] | ||
end | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> | ||
<title>About</title> | ||
</head> | ||
<body lang="EN-US"> | ||
<h2>About This Content</h2> | ||
|
||
<p>April 11, 2015</p> | ||
<h3>License</h3> | ||
|
||
<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise | ||
indicated below, the Content is provided to you under the terms and conditions of the | ||
Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available | ||
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. | ||
For purposes of the EPL, "Program" will mean the Content.</p> | ||
|
||
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is | ||
being redistributed by another party ("Redistributor") and different terms and conditions may | ||
apply to your use of any object code in the Content. Check the Redistributor's license that was | ||
provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise | ||
indicated below, the terms and conditions of the EPL still apply to any source code in the Content | ||
and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> | ||
|
||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
source.. = src/main/java/ | ||
output.. = target/classes | ||
bin.includes = META-INF/,\ | ||
.,\ | ||
OSGI-INF/,\ | ||
ESH-INF/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||
|
||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<parent> | ||
<groupId>org.openhab.binding</groupId> | ||
<artifactId>pom</artifactId> | ||
<version>2.1.0-SNAPSHOT</version> | ||
</parent> | ||
|
||
<properties> | ||
<bundle.symbolicName>org.openhab.binding.irtrans</bundle.symbolicName> | ||
<bundle.namespace>org.openhab.binding.irtrans</bundle.namespace> | ||
</properties> | ||
|
||
<groupId>org.openhab.binding</groupId> | ||
<artifactId>org.openhab.binding.irtrans</artifactId> | ||
<version>2.1.0-SNAPSHOT</version> | ||
|
||
<name>IRtrans Binding</name> | ||
<packaging>eclipse-plugin</packaging> | ||
|
||
</project> |
Oops, something went wrong.