Skip to content
This repository has been archived by the owner on Sep 21, 2020. It is now read-only.

Commit

Permalink
Initial contribution of evohome binding (#2342)
Browse files Browse the repository at this point in the history
Also-by: Neil Renaud <neil.renaud@gmail.com>
Signed-off-by: Jasper van Zuijlen <jvanzuijlen@gmail.com>
  • Loading branch information
Nebula83 authored and kaikreuzer committed Nov 30, 2018
1 parent 00dc01c commit 850814d
Show file tree
Hide file tree
Showing 60 changed files with 3,068 additions and 0 deletions.
7 changes: 7 additions & 0 deletions addons/binding/org.openhab.binding.evohome/.classpath
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.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
33 changes: 33 additions & 0 deletions addons/binding/org.openhab.binding.evohome/.project
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.evohome</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>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<binding:binding id="evohome" 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>evohome Binding</name>
<description>The evohome binding controls the Honeywell evohome system.</description>
<author>Jasper van Zuijlen</author>
</binding:binding>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# binding
binding.evohome.name = Evohome binding
binding.evohome.description = De evohome binding maakt het mogelijk om het Honeywell evohome systeem te besturen.

# thing types
thing-type.evohome.display.label = Scherm
thing-type.evohome.display.description = Dit Thing representeert het evohome bedieningsscherm

# channel types
channel-type.evohome.systemMode.label = Systeemmodus
channel-type.evohome.systemMode.description = Huidige systeemmodus
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="evohome" 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">
<!-- evohome Gateway Bridge -->
<bridge-type id="account">
<label>evohome Account</label>
<description>The evohome account is used to connect to your Total Connect Comfort (TCC) using your TCC username and password.</description>
<config-description>
<parameter-group name="auth">
<label>Authentication</label>
<description>Contains the settings needed to authenticate against the TCC service.</description>
</parameter-group>
<parameter name="username" type="text" required="true" groupName="auth">
<label>Username</label>
<description>Your TCC Username</description>
</parameter>
<parameter name="password" type="text" required="true" groupName="auth">
<label>Password</label>
<description>Your TCC Password</description>
<context>password</context>
</parameter>
<parameter name="refreshInterval" type="integer" required="false" min="15" max="3000">
<label>Refresh Interval</label>
<description>The refresh interval to poll TCC (in seconds).</description>
<default>15</default>
<advanced>true</advanced>
</parameter>
</config-description>
</bridge-type>
</thing:thing-descriptions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="evohome" 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">
<channel-type id="systemMode">
<item-type>String</item-type>
<label>System Mode</label>
<description>Current system mode</description>
<category>heating</category>
<state pattern="%s">
<options>
<option value="Auto">Normal</option>
<option value="AutoWithEco">Eco</option>
<option value="Away">Away</option>
<option value="DayOff">Day off</option>
<option value="HeatingOff">Off</option>
<option value="Custom">Custom</option>
</options>
</state>
</channel-type>
<channel-type id="temperature">
<item-type>Number</item-type>
<label>Temperature</label>
<description>Current zone temperature</description>
<category>temperature</category>
<state readOnly="true" pattern="%.1f °C">
</state>
</channel-type>
<channel-type id="setpoint">
<item-type>Number</item-type>
<label>Set Point</label>
<description>Gets or sets the set point of this zone (0 cancels the override).</description>
<category>heating</category>
<state min="0.0" max="35.0" step="0.5" pattern="%.1f °C" />
</channel-type>
<channel-type id="setpointstatus">
<item-type>String</item-type>
<label>Set Point Status</label>
<description>Current set point status</description>
<category>heating</category>
<state pattern="%s" readOnly="true">
<options>
<option value="PermanentOverride">Permanent override</option>
<option value="FollowSchedule">Follow schedule</option>
<option value="TemporaryOverride">Temporary override</option>
</options>
</state>
</channel-type>
</thing:thing-descriptions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="evohome" 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">
<thing-type id="display" listed="false">
<supported-bridge-type-refs>
<bridge-type-ref id="account" />
</supported-bridge-type-refs>
<label>evohome Display</label>
<description>This represents the evohome control display.</description>
<channels>
<channel id="SystemMode" typeId="systemMode" />
</channels>
<config-description>
<parameter name="id" type="text" required="true" readOnly="true">
<label>ID</label>
<description>ID of the display</description>
</parameter>
<parameter name="name" type="text" required="false" readOnly="true">
<label>Name</label>
<description>Name of the display</description>
</parameter>
</config-description>
</thing-type>
<thing-type id="heatingzone" listed="false">
<supported-bridge-type-refs>
<bridge-type-ref id="account" />
</supported-bridge-type-refs>
<label>evohome Heating Zone</label>
<description>This represents the Evohome Heating Zone.</description>
<channels>
<channel id="Temperature" typeId="temperature" />
<channel id="SetPointStatus" typeId="setpointstatus" />
<channel id="SetPoint" typeId="setpoint" />
</channels>
<config-description>
<parameter name="id" type="text" required="true" readOnly="true">
<label>ID</label>
<description>ID of the zone</description>
</parameter>
<parameter name="name" type="text" required="false" readOnly="true">
<label>Name</label>
<description>Name of the zone</description>
</parameter>
</config-description>
</thing-type>
</thing:thing-descriptions>
36 changes: 36 additions & 0 deletions addons/binding/org.openhab.binding.evohome/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: evohome Binding
Bundle-SymbolicName: org.openhab.binding.evohome;singleton:=true
Bundle-Vendor: openHAB
Bundle-Version: 2.4.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .
Export-Package:
org.openhab.binding.evohome,
org.openhab.binding.evohome.handler
Import-Package:
com.google.gson,
com.google.gson.annotations,
org.apache.commons.lang,
org.eclipse.jdt.annotation;resolution:=optional,
org.eclipse.jetty.client,
org.eclipse.jetty.client.api,
org.eclipse.jetty.client.util,
org.eclipse.jetty.http,
org.eclipse.jetty.util.component,
org.eclipse.jetty.util.ssl,
org.eclipse.smarthome.config.core,
org.eclipse.smarthome.config.discovery,
org.eclipse.smarthome.core.library.types,
org.eclipse.smarthome.core.thing,
org.eclipse.smarthome.core.thing.binding,
org.eclipse.smarthome.core.thing.binding.builder,
org.eclipse.smarthome.core.thing.type,
org.eclipse.smarthome.core.types,
org.eclipse.smarthome.io.net.http,
org.openhab.binding.evohome,
org.openhab.binding.evohome.handler,
org.osgi.framework,
org.slf4j
Service-Component: OSGI-INF/*.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.xml
115 changes: 115 additions & 0 deletions addons/binding/org.openhab.binding.evohome/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# evohome Binding

This binding integrates the Honeywell evohome system.
It uses your Honeywell Total Connect Comfort account to access your locations and heating zones.

## Supported Things

The binding supports the following things:

* evohome Account
* evotouch control display
* Heating zones

### evohome Account

This thing functions as the bridge between all the other things.
It contains your credentials and connects to the Honeywell web API.


### evotouch

This thing represents the central display controller.
It is used to view and change the current system mode.

### Heating zone

The heating zone thing represents the evohome heating zone.
It displays the current temperature, the temperature set point and the status of the set point.
It also allows you to permanently override the current temperature set point as well as canceling any active overrides.

## Discovery

After setting up the evohome account, the evotouch and heating zones available to your account will be discovered after a manual scan.

## Thing Configuration

Thing configuration is optional, it is easier to use discovery which will automatically add all your zones and displays to the inbox, once the account Thing is online.

### Account

| Name | Required | Description |
|-----------------|----------|---------------------------------------------|
| username | yes | The username of your TCC account |
| password | yes | The password of your TCC account |
| refreshInterval | no | The amount of time between updates (0-3000) |

### Display &amp; Zone

| Name | Required | Description |
|------|----------|----------------------------------------------------------------------------------------|
| id | yes | The id which can be found by auto-discovery or the response data (using TRACE logging) |
| name | no | A friendly name for use in the UI |

## Channels

### Account

None

### Display

| Channel Type ID | Item Type | Description |
|-----------------|-----------|--------------------------------------------------------------------------------------------------------------------|
| Mode | String | Allows to view or set the system mode. Supported values are: Auto, Auto, WithEco, Away, DayOff, HeatingOff, Custom |

### Zone

| Channel Type ID | Item Type | Description |
|-------------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Temperature | Number | Allows for viewing the current actual temperature of the zone. |
| SetPointStatus | String | Allows for viewing the current set point mode of the zone. |
| SetPoint | Number | Allows for viewing and permanently overriding the temperature set point of the zone. Sending 0 cancels any active set point overrides. |
## Full Example

### demo.things

Bridge evohome:account:your_account_alias [ username="your_user_name", password="your_password" ]
{
display your_display_alias [ id="1234" ]
heatingzone your_zone_alias [ id="5678" ]
}


### demo.items

// evohome Display
String DemoMode { channel="evohome:display:your_account_alias:your_display_alias:SystemMode" }

// evohome Heatingzone
Number DemoZoneTemperature { channel="evohome:heatingzone:your_account_alias:your_zone_alias:Temperature" }
String DemoZoneSetPointStatus { channel="evohome:heatingzone:your_account_alias:your_zone_alias:SetPointStatus" }
Number DemoZoneSetPoint { channel="evohome:heatingzone:your_account_alias:your_zone_alias:SetPoint" }

### demo.sitemap

sitemap evohome label="evohome Menu"
{
Frame label="evohome display" {
Selection label="[%s]" item=DemoMode mappings=[
"Auto"="Normal",
"AutoWithEco"="Eco",
"Away"="Away",
"DayOff"="Day Off",
"HeatingOff"="Off",
"Custom"="Custom"
]
}
Frame label="evohome heating zone" {
Text label="Temperature" item=DemoZoneTemperature
Text label="Status" item=DemoZoneSetPointStatus
Setpoint label="Zone set point" item=DemoZoneSetPoint minValue=5 maxValue=35 step=0.5
}
}

32 changes: 32 additions & 0 deletions addons/binding/org.openhab.binding.evohome/about.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<!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>March 30, 2017</p>
<h3>License</h3>

<p>
The openHAB community makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 (&quot;EPL&quot;). 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, &quot;Program&quot; will mean the Content.
</p>

<p>
If you did not receive this Content directly from the openHAB community, the Content is
being redistributed by another party (&quot;Redistributor&quot;) 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.openhab.org/">openhab.org</a>.
</p>

</body>
</html>
7 changes: 7 additions & 0 deletions addons/binding/org.openhab.binding.evohome/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
source..=src/main/java/
output..=target/classes
bin.includes=META-INF/,\
.,\
OSGI-INF/,\
ESH-INF/,\
about.html
14 changes: 14 additions & 0 deletions addons/binding/org.openhab.binding.evohome/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?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.4.0-SNAPSHOT</version>
</parent>
<groupId>org.openhab.binding</groupId>
<artifactId>org.openhab.binding.evohome</artifactId>
<version>2.4.0-SNAPSHOT</version>
<name>evohome Binding</name>
<packaging>eclipse-plugin</packaging>
</project>
Loading

0 comments on commit 850814d

Please sign in to comment.