Skip to content

Commit

Permalink
add Waterkotte EcoTouch heat pump binding
Browse files Browse the repository at this point in the history
  • Loading branch information
sibbi77 committed Jan 31, 2021
1 parent f1aec07 commit d446a34
Show file tree
Hide file tree
Showing 18 changed files with 3,494 additions and 0 deletions.
1 change: 1 addition & 0 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
/bundles/org.openhab.binding.dwdpollenflug/ @DerOetzi
/bundles/org.openhab.binding.dwdunwetter/ @limdul79
/bundles/org.openhab.binding.ecobee/ @mhilbush
/bundles/org.openhab.binding.ecotouch/ @sibbi77
/bundles/org.openhab.binding.elerotransmitterstick/ @vbier
/bundles/org.openhab.binding.energenie/ @hmerk
/bundles/org.openhab.binding.enigma2/ @gdolfen
Expand Down
5 changes: 5 additions & 0 deletions bom/openhab-addons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,11 @@
<artifactId>org.openhab.binding.ecobee</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.ecotouch</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.elerotransmitterstick</artifactId>
Expand Down
49 changes: 49 additions & 0 deletions bundles/org.openhab.binding.ecotouch/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
34 changes: 34 additions & 0 deletions bundles/org.openhab.binding.ecotouch/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.openhab.binding.ecotouch</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
<filteredResources>
<filter>
<id>1599586902586</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
13 changes: 13 additions & 0 deletions bundles/org.openhab.binding.ecotouch/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
This content is produced and maintained by the openHAB project.

* Project home: https://www.openhab.org

== Declared Project Licenses

This program and the accompanying materials are made available under the terms
of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/.

== Source Code

https://github.com/openhab/openhab-addons
68 changes: 68 additions & 0 deletions bundles/org.openhab.binding.ecotouch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# EcoTouch Binding

The openHAB EcoTouch binding allows interaction with a [Waterkotte](https://www.waterkotte.de/) heat pump.

## Supported Things

| Thing type | Description |
|-----------------|--------------------------------------------------|
| geo | Waterkotte EcoTouch Geo + EcoVent |
| air | Waterkotte EcoTouch Air + EcoVent |

This binding was tested with a Waterkotte DS 5027 Ai DS 5010.5Ai geothermal heat pump).

## Discovery

Discovery is not supported. You need to provide the IP address of the display unit of the heatpump.

## Binding Configuration

No Binding configuration required.

## Thing Configuration

Things can be fully configured via the UI. The following information is useful when configuring things via thing configuration files.

```
Thing ecotouch:geo:9a0ec0bbbd "Waterkotte Heatpump" @ "basement" [ ip="192.168.1.100", username="admin", password="wtkadmin", refresh=120 ]
```

| Property | Type | Default | Required | Description |
|---------------------------------|---------|---------|----------|-------------|
| ip | String | | yes | IP address or hostname of the display unit of the heat pump |
| username | String | | yes | since software version 1.6.xx of the display unit: "waterkotte"; previously "admin". |
| password | String | | yes | since software version 1.6.xx of the display unit: "waterkotte"; previously "wtkadmin". |
| refresh | Integer | 60 | no | time in s after which all channels will be requested again from the heat pump |

## Channels

All available channels can be seen inside PaperUI. Here is a small extract:

| Channel ID | Type | Read-Only | Description |
|---------------------|--------------------|-----------|-------------|
| temperature_outside | Number:Temperature | yes | The current outside temperature |
| enable_cooling | Switch | no | Enable Cooling |
| state | Number | yes | A Bitfield which encodes all valves, pumps and compressors |
| state_compressor1 | Switch | yes | The current state of compressor 1 |

If the Ecovent Unit is attached to the heat pump, the following additional channels are available:

| Channel ID | Type | Read-Only | Description |
|---------------------|--------------------|-----------|-------------|
| ecovent_temp_exhaust_air | Number:Temperature | yes | EcoVent Temperature Exhaust Air |
| ecovent_temp_exit_air | Number:Temperature | yes | EcoVent Temperature Exit Air |
| ecovent_temp_outdoor_air | Number:Temperature | yes | EcoVent Temperature Outdoor Air |
| ecovent_temp_supply_air | Number:Temperature | yes | EcoVent Temperature Supply Air |
| ecovent_CO2_value | Number:Dimensionless | yes | EcoVent CO2 |
| ecovent_moisture_value | Number:Dimensionless | yes | EcoVent Air Moisture |
| ecovent_output_y1 | Number:Dimensionless | yes | EcoVent Fan |
| ecovent_mode | Number:Dimensionless | no | EcoVent Mode (0..5: Day, Night, Timer, Party, Vacation, Bypass) |

The air heatpump has the following additional channels:

| Channel ID | Type | Read-Only |
|---------------------|--------------------|-----------|
| temperature_surrounding | Number:Temperature | yes |
| temperature_suction_air | Number:Temperature | yes |
| temperature_sump | Number:Temperature | yes |

17 changes: 17 additions & 0 deletions bundles/org.openhab.binding.ecotouch/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?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/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>

<artifactId>org.openhab.binding.ecotouch</artifactId>

<name>openHAB Add-ons :: Bundles :: EcoTouch Binding</name>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<features name="org.openhab.binding.ecotouch-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>

<feature name="openhab-binding-ecotouch" description="EcoTouch Binding" version="${project.version}">
<feature>openhab-runtime-base</feature>
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.ecotouch/${project.version}</bundle>
</feature>
</features>
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* Copyright (c) 2010-2021 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.ecotouch.internal;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.thing.ThingTypeUID;

/**
* The {@link EcoTouchBindingConstants} class defines common constants, which are
* used across the whole binding.
*
* @author Sebastian Held - Initial contribution
*/
@NonNullByDefault
public class EcoTouchBindingConstants {

private static final String BINDING_ID = "ecotouch";

// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_GEO = new ThingTypeUID(BINDING_ID, "geo");
public static final ThingTypeUID THING_TYPE_AIR = new ThingTypeUID(BINDING_ID, "air");

// List of all Channel ids
public static final String CHANNEL_temperature_outside = "temperature_outside";
public static final String CHANNEL_temperature_outside_1h = "temperature_outside_1h";
public static final String CHANNEL_temperature_outside_24h = "temperature_outside_24";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* Copyright (c) 2010-2021 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.ecotouch.internal;

/**
* The {@link EcoTouchConfiguration} class contains fields mapping thing configuration parameters.
*
* @author Sebastian Held - Initial contribution
*/
public class EcoTouchConfiguration {

/**
* Sample configuration parameter. Replace with your own.
*/
public String ip;
public String username;
public String password;
public Integer refresh;
}
Loading

0 comments on commit d446a34

Please sign in to comment.