diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index ecd3bf3ab6233..cf8664dbec857 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,6 +1,7 @@
---
name: "\U0001F41B Bug report"
-about: Something isn't working correctly with a binding. This is the wrong place for user-interfaces or openhab core issues.
+about: Something isn't working correctly with an add-on. This is the wrong place for user-interfaces or openHAB Core issues.
+labels: bug
---
@@ -19,8 +20,9 @@ about: Something isn't working correctly with a binding. This is the wrong place
## Current Behavior
-
-
+
+
+
@@ -40,6 +42,6 @@ about: Something isn't working correctly with a binding. This is the wrong place
## Your Environment
-* Version used: (e.g., openhab and addon versions)
-* Environment name and version (e.g. Chrome 39, node.js 5.4, Java 8, ...):
-* Operating System and version (desktop or mobile, Windows 10, Raspbian Jessie, ...):
+* Version used: (e.g., openHAB and add-on versions)
+* Environment name and version (e.g. Chrome 76, Java 8, Node.js 12.9, ...):
+* Operating System and version (desktop or mobile, Windows 10, Raspbian Buster, ...):
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 2dd113b7ef688..1766352b9b6e0 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,18 +1,19 @@
---
name: "Feature request"
-about: You think that your favourite binding should gain another feature
+about: You think that your favorite add-on should gain another feature
+labels: enhancement
---
-
-
+
+
## Your Environment
-
-* Version used: (e.g., openhab and addon versions)
-* Environment name and version (e.g. Chrome 39, node.js 5.4, Java 8, ...):
-* Operating System and version (desktop or mobile, Windows 10, Raspbian Jessie, ...):
+
+* Version used: (e.g., openHAB and add-on versions)
+* Environment name and version (e.g. Chrome 76, Java 8, Node.js 12.9, ...):
+* Operating System and version (desktop or mobile, Windows 10, Raspbian Buster, ...):
diff --git a/.github/ISSUE_TEMPLATE/usage_question.md b/.github/ISSUE_TEMPLATE/usage_question.md
index bab78c42489ea..03bb3504891c3 100644
--- a/.github/ISSUE_TEMPLATE/usage_question.md
+++ b/.github/ISSUE_TEMPLATE/usage_question.md
@@ -1,6 +1,7 @@
---
name: "\U0001F914 Support/Usage Question"
about: For usage questions, please use the openHAB community board!
+labels: question
---
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 6106f2aad6a53..9f105d4fd1b77 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -9,7 +9,7 @@ Feel free to delete any comment sections in the template (starting with "
-
-
-
-
-
org.openhab.addons.bundlesorg.openhab.io.homekit
diff --git a/bom/openhab-core-index/pom.xml b/bom/openhab-core-index/pom.xml
index 57405f234f037..a206a3c308eb4 100644
--- a/bom/openhab-core-index/pom.xml
+++ b/bom/openhab-core-index/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bomorg.openhab.addons.reactor.bom
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.addons.bom.openhab-core-index
@@ -17,7 +16,7 @@
org.openhab.core.bomorg.openhab.core.bom.openhab-core
- ${project.version}
+ ${ohc.version}pomcompiletrue
diff --git a/bom/pom.xml b/bom/pom.xml
index aa94b339d29b2..c1ceb7f02209a 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addonsorg.openhab.addons.reactor
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.addons.bom
@@ -38,11 +37,11 @@
-
+
-
+
-
+ header
diff --git a/bom/runtime-index/pom.xml b/bom/runtime-index/pom.xml
index db53ceed13a01..bf865a65d9ff1 100644
--- a/bom/runtime-index/pom.xml
+++ b/bom/runtime-index/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bomorg.openhab.addons.reactor.bom
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.addons.bom.runtime-index
@@ -17,6 +16,7 @@
org.openhab.core.bomorg.openhab.core.bom.runtime
+ ${ohc.version}pomcompiletrue
diff --git a/bom/test-index/pom.xml b/bom/test-index/pom.xml
index da635399bf9da..643d8b8ba8e10 100644
--- a/bom/test-index/pom.xml
+++ b/bom/test-index/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bomorg.openhab.addons.reactor.bom
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.addons.bom.test-index
@@ -22,6 +21,7 @@
org.openhab.core.bomorg.openhab.core.bom.test
+ ${ohc.version}pomcompiletrue
diff --git a/buildci.sh b/buildci.sh
index 71f88a63adb7f..3e12e312bbfa0 100755
--- a/buildci.sh
+++ b/buildci.sh
@@ -50,8 +50,8 @@ fi
if [[ ! -z "$CHANGED_DIR" ]] && [[ -e "bundles/$CHANGED_DIR" ]]; then
echo "Single addon pull request: Building $CHANGED_DIR"
echo "MAVEN_OPTS='-Xms1g -Xmx2g -Dorg.slf4j.simpleLogger.log.org.openhab.tools.analysis.report.ReportUtility=DEBUG -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN'" > ~/.mavenrc
- cd "bundles/$CHANGED_DIR"
- mvn clean install -B 2>&1 |
+ ARTIFACT_ID=$(mvn -f bundles/${CHANGED_DIR}/pom.xml help:evaluate -Dexpression=project.artifactId -q -DforceStdout)
+ mvn clean install -B -am -pl ":$ARTIFACT_ID" 2>&1 |
stdbuf -o0 grep -vE "Download(ed|ing) from [a-z.]+: https:" | # Filter out Download(s)
stdbuf -o0 grep -v "target/code-analysis" | # filter out some debug code from reporting utility
tee ${CDIR}/.build.log
@@ -60,9 +60,9 @@ if [[ ! -z "$CHANGED_DIR" ]] && [[ -e "bundles/$CHANGED_DIR" ]]; then
fi
# add the postfix to make sure we actually find the correct itest
- if [[ -e "../itests/$CHANGED_DIR.tests" ]]; then
+ if [[ -e "itests/$CHANGED_DIR.tests" ]]; then
echo "Single addon pull request: Building itest $CHANGED_DIR"
- cd "../itests/$CHANGED_DIR.tests"
+ cd "itests/$CHANGED_DIR.tests"
mvn clean install -B 2>&1 |
stdbuf -o0 grep -vE "Download(ed|ing) from [a-z.]+: https:" | # Filter out Download(s)
stdbuf -o0 grep -v "target/code-analysis" | # filter out some debug code from reporting utility
diff --git a/bundles/create_openhab_binding_skeleton.cmd b/bundles/create_openhab_binding_skeleton.cmd
index fcb98e200ff35..d09375c528348 100644
--- a/bundles/create_openhab_binding_skeleton.cmd
+++ b/bundles/create_openhab_binding_skeleton.cmd
@@ -10,7 +10,8 @@ IF %ARGC% NEQ 3 (
exit /B 1
)
-SET OpenhabVersion="2.5.0-SNAPSHOT"
+SET OpenhabCoreVersion="2.5.0"
+SET OpenhabVersion="2.5.2-SNAPSHOT"
SET BindingIdInCamelCase=%~1
SET BindingIdInLowerCase=%BindingIdInCamelCase%
@@ -19,10 +20,14 @@ SET GithubUser=%~3
call :LoCase BindingIdInLowerCase
-call mvn -s archetype-settings.xml archetype:generate -N -DarchetypeGroupId=org.openhab.core.tools.archetypes -DarchetypeArtifactId=org.openhab.core.tools.archetypes.binding -DarchetypeVersion=%OpenhabVersion% -DgroupId=org.openhab.binding -DartifactId=org.openhab.binding.%BindingIdInLowerCase% -Dpackage=org.openhab.binding.%BindingIdInLowerCase% -Dversion=%OpenhabVersion% -DbindingId=%BindingIdInLowerCase% -DbindingIdCamelCase=%BindingIdInCamelCase% -DvendorName=openHAB -Dnamespace=org.openhab -Dauthor="%Author%" -DgithubUser="%GithubUser%"
+call mvn -s archetype-settings.xml archetype:generate -N -DarchetypeGroupId=org.openhab.core.tools.archetypes -DarchetypeArtifactId=org.openhab.core.tools.archetypes.binding -DarchetypeVersion=%OpenhabCoreVersion% -DgroupId=org.openhab.binding -DartifactId=org.openhab.binding.%BindingIdInLowerCase% -Dpackage=org.openhab.binding.%BindingIdInLowerCase% -Dversion=%OpenhabVersion% -DbindingId=%BindingIdInLowerCase% -DbindingIdCamelCase=%BindingIdInCamelCase% -DvendorName=openHAB -Dnamespace=org.openhab -Dauthor="%Author%" -DgithubUser="%GithubUser%"
COPY ..\src\etc\NOTICE org.openhab.binding.%BindingIdInLowerCase%\
+:: temporary fix
+:: replace ${project.version} by ${ohc.version} in src/main/feature/feature.xml
+@powershell -command "(Get-Content org.openhab.binding.$env:BindingIdInLowerCase/src/main/feature/feature.xml).replace('-core/${project.version}', '-core/${ohc.version}') | Set-Content org.openhab.binding.$env:BindingIdInLowerCase/src/main/feature/feature.xml"
+
(SET BindingIdInLowerCase=)
(SET BindingIdInCamelCase=)
(SET Author=)
@@ -30,7 +35,6 @@ COPY ..\src\etc\NOTICE org.openhab.binding.%BindingIdInLowerCase%\
GOTO:EOF
-
:LoCase
:: Subroutine to convert a variable VALUE to all lower case.
:: The argument for this subroutine is the variable NAME.
diff --git a/bundles/create_openhab_binding_skeleton.sh b/bundles/create_openhab_binding_skeleton.sh
index 19e28529b79d3..64301bef9dfeb 100755
--- a/bundles/create_openhab_binding_skeleton.sh
+++ b/bundles/create_openhab_binding_skeleton.sh
@@ -2,7 +2,8 @@
[ $# -lt 3 ] && { echo "Usage: $0 "; exit 1; }
-openHABVersion=2.5.0-SNAPSHOT
+openHABCoreVersion=2.5.0
+openHABVersion=2.5.2-SNAPSHOT
camelcaseId=$1
id=`echo $camelcaseId | tr '[:upper:]' '[:lower:]'`
@@ -13,7 +14,7 @@ githubUser=$3
mvn -s archetype-settings.xml archetype:generate -N \
-DarchetypeGroupId=org.openhab.core.tools.archetypes \
-DarchetypeArtifactId=org.openhab.core.tools.archetypes.binding \
- -DarchetypeVersion=$openHABVersion \
+ -DarchetypeVersion=$openHABCoreVersion \
-DgroupId=org.openhab.binding \
-DartifactId=org.openhab.binding.$id \
-Dpackage=org.openhab.binding.$id \
@@ -29,3 +30,6 @@ directory="org.openhab.binding.$id/"
cp ../src/etc/NOTICE "$directory"
+# temporary fix
+# replace ${project.version} by ${ohc.version} in src/main/feature/feature.xml
+sed -i -e "s|\-core\/\${project.version}|\-core\/\${ohc.version}|g" "$directory/src/main/feature/feature.xml"
diff --git a/bundles/org.openhab.binding.airquality/NOTICE b/bundles/org.openhab.binding.airquality/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.airquality/NOTICE
+++ b/bundles/org.openhab.binding.airquality/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.airquality/README.md b/bundles/org.openhab.binding.airquality/README.md
index ac5b1cca6b888..b921ab749329e 100644
--- a/bundles/org.openhab.binding.airquality/README.md
+++ b/bundles/org.openhab.binding.airquality/README.md
@@ -1,12 +1,13 @@
# Air Quality Binding
-This binding uses the [AQIcn.org service](http://aqicn.org) for providing air quality information for any location worldwide.
+This binding uses the [AQIcn.org service](https://aqicn.org) for providing air quality information for any location worldwide.
-The World Air Quality Index project is a social enterprise project started in 2007. Its mission is to promote Air Pollution awareness and provide a unified Air Quality information for the whole world.
+The World Air Quality Index project is a social enterprise project started in 2007.
+Its mission is to promote Air Pollution awareness and provide a unified Air Quality information for the whole world.
-The project is proving a transparent Air Quality information for more than 70 countries, covering more than 9000 stations in 600 major cities, via those two websites: [aqicn.org](http://aqicn.org) and [waqi.info](http://waqi.info).
+The project is proving a transparent Air Quality information for more than 70 countries, covering more than 9000 stations in 600 major cities, via those two websites: [aqicn.org](https://aqicn.org) and [waqi.info](https://waqi.info).
-To use this binding, you first need to [register and get your API token](http://aqicn.org/data-platform/token/).
+To use this binding, you first need to [register and get your API token](https://aqicn.org/data-platform/token/).
## Supported Things
@@ -17,7 +18,7 @@ Of course, you can add multiple Things, e.g. for measuring AQI for different loc
## Discovery
Local Air Quality can be autodiscovered based on system location.
-You'll have complete default configuration with your apiKey.
+You will have complete default configuration with your apiKey.
## Binding Configuration
diff --git a/bundles/org.openhab.binding.airquality/pom.xml b/bundles/org.openhab.binding.airquality/pom.xml
index 6b1cec5fa4a7b..bf6949a4345f2 100644
--- a/bundles/org.openhab.binding.airquality/pom.xml
+++ b/bundles/org.openhab.binding.airquality/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.airquality
diff --git a/bundles/org.openhab.binding.airquality/src/main/feature/feature.xml b/bundles/org.openhab.binding.airquality/src/main/feature/feature.xml
index 1c8eb5ce750fd..6e9f744f2a713 100644
--- a/bundles/org.openhab.binding.airquality/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.airquality/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityBindingConstants.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityBindingConstants.java
index 8a60f6bb7f736..65bb101bf3aa8 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityBindingConstants.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityConfiguration.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityConfiguration.java
index c34dc18e05c5b..7bb3253d21042 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityConfiguration.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityHandlerFactory.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityHandlerFactory.java
index afdf79d8f310c..d7e4ec691a23d 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityHandlerFactory.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/AirQualityHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/discovery/AirQualityDiscoveryService.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/discovery/AirQualityDiscoveryService.java
index 3247ca113bfc5..6f603d8d4697f 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/discovery/AirQualityDiscoveryService.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/discovery/AirQualityDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/handler/AirQualityHandler.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/handler/AirQualityHandler.java
index 625c09890d561..472d4dbfa72db 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/handler/AirQualityHandler.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/handler/AirQualityHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonCity.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonCity.java
index 98b37fc04d2d4..99506931fb57e 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonCity.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonCity.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonData.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonData.java
index 7ff607565b9cf..f5274840bb47e 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonData.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonIaqi.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonIaqi.java
index 189859e553b0d..b2f8b550975b5 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonIaqi.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonIaqi.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonResponse.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonResponse.java
index af2cd1e5389c2..cf85c87ed7263 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonResponse.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonTime.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonTime.java
index 73e6dbc029078..c7a008ef419c1 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonTime.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityJsonTime.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityValue.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityValue.java
index 68c29ce7253a0..7723c11946252 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityValue.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/AirQualityValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/Attribute.java b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/Attribute.java
index 6fd96276671c4..d1b358d8ea0c4 100644
--- a/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/Attribute.java
+++ b/bundles/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/internal/json/Attribute.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airquality/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.airquality/src/main/resources/ESH-INF/thing/thing-types.xml
index f2641deab14c9..e687504542d88 100644
--- a/bundles/org.openhab.binding.airquality/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.airquality/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -46,7 +46,7 @@
Fill only in case you want to receive data from the specific station
-
+
Specifies the refresh interval in minutes.60
@@ -143,7 +143,7 @@
DateTime
-
+
Observation date and timeObservation time
diff --git a/bundles/org.openhab.binding.airvisualnode/NOTICE b/bundles/org.openhab.binding.airvisualnode/NOTICE
index aca8eebc15b0f..4839ea0985207 100644
--- a/bundles/org.openhab.binding.airvisualnode/NOTICE
+++ b/bundles/org.openhab.binding.airvisualnode/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.allplay/embedExternalDependency.profile b/bundles/org.openhab.binding.airvisualnode/noEmbedDependencies.profile
similarity index 100%
rename from bundles/org.openhab.binding.allplay/embedExternalDependency.profile
rename to bundles/org.openhab.binding.airvisualnode/noEmbedDependencies.profile
diff --git a/bundles/org.openhab.binding.airvisualnode/pom.xml b/bundles/org.openhab.binding.airvisualnode/pom.xml
index e9bb7091def72..b49c792f304e9 100644
--- a/bundles/org.openhab.binding.airvisualnode/pom.xml
+++ b/bundles/org.openhab.binding.airvisualnode/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.airvisualnode
@@ -18,7 +17,7 @@
org.samba.jcifsjcifs1.3.17
- provided
+ compile
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/feature/feature.xml b/bundles/org.openhab.binding.airvisualnode/src/main/feature/feature.xml
index 2f81c5988e0c2..36da7d2e34811 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeBindingConstants.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeBindingConstants.java
index 08f13ac7d7dd1..9d6a4f13a05e8 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeBindingConstants.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeHandlerFactory.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeHandlerFactory.java
index cdb7cb3a38721..6c7f6194f01ff 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeHandlerFactory.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/AirVisualNodeHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/config/AirVisualNodeConfig.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/config/AirVisualNodeConfig.java
index 65b0233eb6096..4a637c4746e97 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/config/AirVisualNodeConfig.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/config/AirVisualNodeConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/discovery/AirVisualNodeDiscoveryService.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/discovery/AirVisualNodeDiscoveryService.java
index 4abd7d344be2a..7448fd07ffece 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/discovery/AirVisualNodeDiscoveryService.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/discovery/AirVisualNodeDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/handler/AirVisualNodeHandler.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/handler/AirVisualNodeHandler.java
index 5c73d238d0b76..b99a34f33c639 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/handler/AirVisualNodeHandler.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/handler/AirVisualNodeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/DateAndTime.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/DateAndTime.java
index e239336dd6440..f8e58b2b64323 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/DateAndTime.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/DateAndTime.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Measurements.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Measurements.java
index 5087f0bedbb38..8d0a9bd93000d 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Measurements.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Measurements.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/NodeData.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/NodeData.java
index 3785972b4091f..be3aa436a129e 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/NodeData.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/NodeData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSaving.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSaving.java
index 44c95bf5b0193..ed201f3b34e86 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSaving.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSaving.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTime.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTime.java
index 6cf1248d05aaa..9871d0a02be1f 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTime.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTime.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTimeSlot.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTimeSlot.java
index 0663ea596df6b..3b3ac553a1b4a 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTimeSlot.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/PowerSavingTimeSlot.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Settings.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Settings.java
index c87fc2695296b..45643d3e6afec 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Settings.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Settings.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Status.java b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Status.java
index 96b237ddfbc40..1f53ac377ca8f 100644
--- a/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Status.java
+++ b/bundles/org.openhab.binding.airvisualnode/src/main/java/org/openhab/binding/airvisualnode/internal/json/Status.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.allplay/NOTICE b/bundles/org.openhab.binding.allplay/NOTICE
index eeb92b138528f..8f714df48e9e8 100644
--- a/bundles/org.openhab.binding.allplay/NOTICE
+++ b/bundles/org.openhab.binding.allplay/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.allplay/README.md b/bundles/org.openhab.binding.allplay/README.md
index be92c18aed69e..d7bc08ec9d3df 100644
--- a/bundles/org.openhab.binding.allplay/README.md
+++ b/bundles/org.openhab.binding.allplay/README.md
@@ -18,7 +18,8 @@ If there is need for another architecture/platform, please open a [ticket on Git
## Supported Things
All AllPlay compatible speakers are supported by this binding.
-This includes for example the [Panasonic ALL series](http://www.panasonic.com/uk/consumer/home-entertainment/wireless-speaker-systems.html). All AllPlay speakers are registered as an audio sink in the framework.
+This includes for example the [Panasonic ALL series](http://www.panasonic.com/uk/consumer/home-entertainment/wireless-speaker-systems.html).
+All AllPlay speakers are registered as an audio sink in the framework.
## Discovery
diff --git a/bundles/org.openhab.binding.allplay/pom.xml b/bundles/org.openhab.binding.allplay/pom.xml
index 7808b68a88fb0..7d836de77ff09 100644
--- a/bundles/org.openhab.binding.allplay/pom.xml
+++ b/bundles/org.openhab.binding.allplay/pom.xml
@@ -1,30 +1,23 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.allplayopenHAB Add-ons :: Bundles :: AllPlay Binding
-
- org.openhab.osgiify
- de.kaizencode.tchaikovsky
- 0.0.1
-
-
org.openhab.osgiifyde.kaizencode.tchaikovsky0.0.1
- provided
+ compile
diff --git a/bundles/org.openhab.binding.allplay/src/main/feature/feature.xml b/bundles/org.openhab.binding.allplay/src/main/feature/feature.xml
index 386e237564666..5215b1397b52a 100644
--- a/bundles/org.openhab.binding.allplay/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.allplay/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayAudioSink.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayAudioSink.java
index 941741b27f25c..f33e5c8abae4d 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayAudioSink.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayAudioSink.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingConstants.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingConstants.java
index 63c2544506bf9..275d2791d21ec 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingConstants.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingProperties.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingProperties.java
index adc8f9bed0374..b825c80f59d2f 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingProperties.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayBindingProperties.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayHandlerFactory.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayHandlerFactory.java
index 1e9eb523cb4a0..1d533b842bfe3 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayHandlerFactory.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/AllPlayHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -26,6 +26,7 @@
import org.eclipse.smarthome.core.net.HttpServiceUtil;
import org.eclipse.smarthome.core.net.NetworkAddressService;
import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingRegistry;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory;
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
@@ -33,6 +34,7 @@
import org.openhab.binding.allplay.internal.handler.AllPlayHandler;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
@@ -53,15 +55,27 @@ public class AllPlayHandlerFactory extends BaseThingHandlerFactory {
private final Logger logger = LoggerFactory.getLogger(AllPlayHandlerFactory.class);
private static final Set SUPPORTED_THING_TYPES_UIDS = Collections.singleton(SPEAKER_THING_TYPE);
- private Map> audioSinkRegistrations = new ConcurrentHashMap<>();
+ private final Map> audioSinkRegistrations = new ConcurrentHashMap<>();
private AllPlay allPlay;
private AllPlayBindingProperties bindingProperties;
- private AudioHTTPServer audioHTTPServer;
- private NetworkAddressService networkAddressService;
+ // Bindings should not use the ThingRegistry! See https://github.com/openhab/openhab-addons/pull/6080 and
+ // https://github.com/eclipse/smarthome/issues/5182
+ private final ThingRegistry thingRegistry;
+ private final AudioHTTPServer audioHTTPServer;
+ private final NetworkAddressService networkAddressService;
private String callbackUrl;
+ @Activate
+ public AllPlayHandlerFactory(final @Reference ThingRegistry thingRegistry,
+ final @Reference AudioHTTPServer audioHTTPServer,
+ final @Reference NetworkAddressService networkAddressService) {
+ this.thingRegistry = thingRegistry;
+ this.audioHTTPServer = audioHTTPServer;
+ this.networkAddressService = networkAddressService;
+ }
+
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
@@ -70,10 +84,10 @@ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
@Override
protected ThingHandler createHandler(Thing thing) {
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
- if (thingTypeUID.equals(AllPlayBindingConstants.SPEAKER_THING_TYPE)) {
+ if (thingTypeUID.equals(SPEAKER_THING_TYPE)) {
logger.debug("Creating AllPlayHandler for thing {}", thing.getUID());
- AllPlayHandler handler = new AllPlayHandler(thing, allPlay, bindingProperties);
+ AllPlayHandler handler = new AllPlayHandler(thingRegistry, thing, allPlay, bindingProperties);
registerAudioSink(thing, handler);
return handler;
@@ -126,24 +140,6 @@ protected void deactivate(ComponentContext componentContext) {
super.deactivate(componentContext);
}
- @Reference
- protected void setAudioHTTPServer(AudioHTTPServer audioHTTPServer) {
- this.audioHTTPServer = audioHTTPServer;
- }
-
- protected void unsetAudioHTTPServer(AudioHTTPServer audioHTTPServer) {
- this.audioHTTPServer = null;
- }
-
- @Reference
- protected void setNetworkAddressService(NetworkAddressService networkAddressService) {
- this.networkAddressService = networkAddressService;
- }
-
- protected void unsetNetworkAddressService(NetworkAddressService networkAddressService) {
- this.networkAddressService = null;
- }
-
private String assembleCallbackUrl() {
String callbackUrl = bindingProperties.getCallbackUrl();
if (callbackUrl == null) {
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/discovery/AllPlaySpeakerDiscoveryService.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/discovery/AllPlaySpeakerDiscoveryService.java
index f550b80e1448f..0f1c22ab8268e 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/discovery/AllPlaySpeakerDiscoveryService.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/discovery/AllPlaySpeakerDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/handler/AllPlayHandler.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/handler/AllPlayHandler.java
index 7bfbca5b43298..85f7985bfa4e2 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/handler/AllPlayHandler.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/internal/handler/AllPlayHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -36,6 +36,7 @@
import org.eclipse.smarthome.core.library.types.StringType;
import org.eclipse.smarthome.core.thing.ChannelUID;
import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingRegistry;
import org.eclipse.smarthome.core.thing.ThingStatus;
import org.eclipse.smarthome.core.thing.ThingStatusDetail;
import org.eclipse.smarthome.core.thing.binding.BaseThingHandler;
@@ -74,6 +75,8 @@ public class AllPlayHandler extends BaseThingHandler
implements SpeakerChangedListener, SpeakerAnnouncedListener, SpeakerConnectionListener {
private final Logger logger = LoggerFactory.getLogger(AllPlayHandler.class);
+
+ private final ThingRegistry localThingRegistry;
private final AllPlay allPlay;
private final AllPlayBindingProperties bindingProperties;
private Speaker speaker;
@@ -83,8 +86,10 @@ public class AllPlayHandler extends BaseThingHandler
private ScheduledFuture> reconnectionJob;
private final ScheduledExecutorService scheduler = ThreadPoolManager.getScheduledPool(ALLPLAY_THREADPOOL_NAME);
- public AllPlayHandler(Thing thing, AllPlay allPlay, AllPlayBindingProperties properties) {
+ public AllPlayHandler(ThingRegistry thingRegistry, Thing thing, AllPlay allPlay,
+ AllPlayBindingProperties properties) {
super(thing);
+ this.localThingRegistry = thingRegistry;
this.allPlay = allPlay;
this.bindingProperties = properties;
}
@@ -599,11 +604,9 @@ private void cancelReconnectionJob() {
}
private String getHandlerIdByLabel(String thingLabel) throws IllegalStateException {
- if (thingRegistry != null) {
- for (Thing thing : thingRegistry.getAll()) {
- if (thingLabel.equals(thing.getLabel())) {
- return thing.getUID().getId();
- }
+ for (Thing thing : localThingRegistry.getAll()) {
+ if (thingLabel.equals(thing.getLabel())) {
+ return thing.getUID().getId();
}
}
throw new IllegalStateException("Could not find thing with label " + thingLabel);
diff --git a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/package-info.java b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/package-info.java
index add2ca5a41294..a1b4829badb20 100644
--- a/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/package-info.java
+++ b/bundles/org.openhab.binding.allplay/src/main/java/org/openhab/binding/allplay/package-info.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,4 +18,4 @@
*
* @author Jan N. Klug - Initial contribution
*
- */
\ No newline at end of file
+ */
diff --git a/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/binding/binding.xml
index 75e1a1f2d8a97..b8c2197b9cc8a 100644
--- a/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/binding/binding.xml
@@ -7,14 +7,14 @@
Dominic Lerbs
-
-
+
+
Seconds to jump backwards if the rewind command is executed10s
-
-
+
+
Seconds to jump forward if the fastforward command is executed10s
diff --git a/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/thing/thing-types.xml
index d41e8eb018d9d..a2b3e6a9cd593 100644
--- a/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.allplay/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -44,7 +44,7 @@
false
-
+
Step size to use if the volume is changed using the increase/decrease command.1true
diff --git a/bundles/org.openhab.binding.amazondashbutton/NOTICE b/bundles/org.openhab.binding.amazondashbutton/NOTICE
index db4e5c39b091f..e138783176479 100644
--- a/bundles/org.openhab.binding.amazondashbutton/NOTICE
+++ b/bundles/org.openhab.binding.amazondashbutton/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
@@ -18,8 +18,3 @@ pcap4J
* License: MIT License
* Project: https://www.pcap4j.org
* Source: https://github.com/kaitoy/pcap4j
-
-jna
-* License: Apache 2.0 License
-* Project: https://github.com/java-native-access/jna
-* Source: https://github.com/java-native-access/jna
diff --git a/bundles/org.openhab.binding.amazondashbutton/README.md b/bundles/org.openhab.binding.amazondashbutton/README.md
index e6db98c9ff272..40f110168bcc8 100644
--- a/bundles/org.openhab.binding.amazondashbutton/README.md
+++ b/bundles/org.openhab.binding.amazondashbutton/README.md
@@ -19,7 +19,7 @@ You might want to keep that in mind during product selection or task assignment.
The Binding uses [Pcap4J](https://www.pcap4j.org/) in order to capture `ARP` and `BOOTP` requests send by the Amazon Dash Button.
Buttons will hence only be usable within the same network as your openHAB instance.
-Start with installing libpcap (for Mac/Linux/UNIX) or WinPcap (for Windows) on your computer.
+Start with installing libpcap (for Mac/Linux/Unix) or WinPcap (for Windows) on your computer.
They are native libraries that power the core functionalities of Pcap4J.
**Note:**
@@ -28,7 +28,7 @@ Instructions for Debian/Ubuntu are given below.
### Installing libpcap on Debian/Ubuntu
-Installing [libpcap](http://www.tcpdump.org/) should be as simple as:
+Installing [libpcap](https://www.tcpdump.org/) should be as simple as:
```shell
sudo apt-get install libpcap-dev
diff --git a/bundles/org.openhab.binding.amazondashbutton/pom.xml b/bundles/org.openhab.binding.amazondashbutton/pom.xml
index ffa046ecdae10..b31e63962c9b8 100644
--- a/bundles/org.openhab.binding.amazondashbutton/pom.xml
+++ b/bundles/org.openhab.binding.amazondashbutton/pom.xml
@@ -1,36 +1,40 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.amazondashbuttonopenHAB Add-ons :: Bundles :: Amazon Dash Button Binding
+
+ !org.slf4j.impl.*
+ jna
+
+
net.java.dev.jnajna
- 4.2.1
- provided
+ 5.4.0
+ compile
- org.openhab.osgiify
- org.pcap4j.pcap4j-core
- 1.6.6
- provided
+ org.pcap4j
+ pcap4j-core
+ 1.8.2
+ compile
- org.openhab.osgiify
- org.pcap4j.pcap4j-packetfactory-static
- 1.6.6
- provided
+ org.pcap4j
+ pcap4j-packetfactory-static
+ 1.8.2
+ compile
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/feature/feature.xml b/bundles/org.openhab.binding.amazondashbutton/src/main/feature/feature.xml
index eb9e5f48a4c1a..1947c72512e69 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/feature/feature.xml
@@ -1,12 +1,10 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:net.java.dev.jna/jna/4.2.1
- mvn:org.openhab.osgiify/org.pcap4j.pcap4j-core/1.6.6
- mvn:org.openhab.osgiify/org.pcap4j.pcap4j-packetfactory-static/1.6.6
+ openhab-runtime-jnamvn:org.openhab.addons.bundles/org.openhab.binding.amazondashbutton/${project.version}
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonBindingConstants.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonBindingConstants.java
index ea2b84c81a9c0..f0bbd0088c90d 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonBindingConstants.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonHandlerFactory.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonHandlerFactory.java
index 5acf9f9efffbe..805f3f5d69551 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonHandlerFactory.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/AmazonDashButtonHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingHandler.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingHandler.java
index cd777974ad05b..c792a673dc11c 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingHandler.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingService.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingService.java
index 200d4e2748475..a84cb477c9653 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingService.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfig.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfig.java
index b99bd6bea4130..522dd51cfd42f 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfig.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfigOptionProvider.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfigOptionProvider.java
index 604f90b54f1cb..8ed12afcac3cc 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfigOptionProvider.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/config/AmazonDashButtonConfigOptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/discovery/AmazonDashButtonDiscoveryService.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/discovery/AmazonDashButtonDiscoveryService.java
index 62e1633a593c1..736966477d2f7 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/discovery/AmazonDashButtonDiscoveryService.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/discovery/AmazonDashButtonDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/handler/AmazonDashButtonHandler.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/handler/AmazonDashButtonHandler.java
index 818b215a1398f..4122ed2be685e 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/handler/AmazonDashButtonHandler.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/handler/AmazonDashButtonHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceListener.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceListener.java
index 6c5a812c77447..e15a3269e625c 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceListener.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceService.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceService.java
index 92b63d165ec2b..7808850fb1ad8 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceService.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceWrapper.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceWrapper.java
index 9715fb5b0bcb7..1f73fd9876436 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceWrapper.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapNetworkInterfaceWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapUtil.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapUtil.java
index f78a5e201f77b..1ef2a09924b11 100644
--- a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapUtil.java
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/pcap/PcapUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/package-info.java b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/package-info.java
new file mode 100644
index 0000000000000..fca2f0ca88c79
--- /dev/null
+++ b/bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/package-info.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2010-2020 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
+ */
+@Requirement(namespace = ExtenderNamespace.EXTENDER_NAMESPACE, filter = "(osgi.extender=osgi.serviceloader.registrar)")
+@Requirement(namespace = ExtenderNamespace.EXTENDER_NAMESPACE, filter = "(&(osgi.extender=osgi.serviceloader.processor)(version>=1.0)(!(version>=2.0)))")
+@Requirement(namespace = "osgi.serviceloader", filter = "(osgi.serviceloader=org.pcap4j.packet.factory.PacketFactoryBinderProvider)", cardinality = Cardinality.MULTIPLE)
+@Capability(namespace = "osgi.serviceloader", name = "org.pcap4j.packet.factory.PacketFactoryBinderProvider")
+package org.openhab.binding.amazondashbutton;
+
+import org.osgi.annotation.bundle.Capability;
+import org.osgi.annotation.bundle.Requirement;
+import org.osgi.annotation.bundle.Requirement.Cardinality;
+import org.osgi.namespace.extender.ExtenderNamespace;
+/**
+ * Additional information for AmazonDashButton package
+ *
+ * @author Jan N. Klug - Initial contribution
+ *
+ */
diff --git a/bundles/org.openhab.binding.amazonechocontrol/.classpath b/bundles/org.openhab.binding.amazonechocontrol/.classpath
old mode 100755
new mode 100644
diff --git a/bundles/org.openhab.binding.amazonechocontrol/.project b/bundles/org.openhab.binding.amazonechocontrol/.project
old mode 100755
new mode 100644
diff --git a/bundles/org.openhab.binding.amazonechocontrol/NOTICE b/bundles/org.openhab.binding.amazonechocontrol/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/NOTICE
+++ b/bundles/org.openhab.binding.amazonechocontrol/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.amazonechocontrol/README.md b/bundles/org.openhab.binding.amazonechocontrol/README.md
old mode 100755
new mode 100644
index e30c1a95881bc..36539453468be
--- a/bundles/org.openhab.binding.amazonechocontrol/README.md
+++ b/bundles/org.openhab.binding.amazonechocontrol/README.md
@@ -25,6 +25,7 @@ It provides features to control and view the current state of echo devices:
- change the volume of the alarm
- change the equalizer settings
- get information about the next alarm, reminder and timer
+- send a message to the echo devices
Some ideas what you can do in your home by using rules and other openHAB controlled devices:
@@ -34,13 +35,13 @@ Some ideas what you can do in your home by using rules and other openHAB control
- The echo starts playing radio at specified time
- Remind you with a voice message, that a window is open for a long time and it is winter
- Start a routine which welcome you, if you come home
-- Start a routine which switch a smart home device connected to alexa
+- Start a routine which switch a smart home device connected to Alexa
- Start your briefing if you turn on the light first time in the morning
- Have different flash briefing in the morning and evening
-- Let alexa say 'welcome' to you if you open the door
+- Let Alexa say 'welcome' to you if you open the door
- Implement own handling for voice commands in a rule
- Change the equalizer settings depending on the bluetooth connection
-- Turn on a light on your alexa alarm time
+- Turn on a light on your Alexa alarm time
## Note
@@ -69,15 +70,15 @@ The binding is tested with amazon.de, amazon.fr, amazon.it, amazon.com and amazo
## Discovery
-After configuration of the account thing with the login data, the echo devices registered in the amazon account, get discovered.
+After configuration of the account thing with the login data, the echo devices registered in the Amazon account, get discovered.
If the device type is not known by the binding, the device will not be discovered.
-But you can define any device listed in your alexa app with the best matching existing device (e.g. echo).
-You will find the required serial number in settings of the device in the alexa app.
+But you can define any device listed in your Alexa app with the best matching existing device (e.g. echo).
+You will find the required serial number in settings of the device in the Alexa app.
## Binding Configuration
The binding does not have any configuration.
-The configuration of your amazon account must be done in the 'Amazon Account' device.
+The configuration of your Amazon account must be done in the 'Amazon Account' device.
## Thing Configuration
@@ -89,9 +90,9 @@ All Amazon devices (echo, echospot, echoshow, wha) needs the following configura
| Configuration name | Description |
|--------------------------|----------------------------------------------------|
-| serialNumber | Serial number of the amazon echo in the Alexa app |
+| serialNumber | Serial number of the Amazon Echo in the Alexa app |
-You will find the serial number in the alexa app or on the webpage YOUR_OPENHAB/amazonechocontrol/YOUR_ACCOUNT (e.g. http://openhab:8080/amazonechocontrol/account1).
+You will find the serial number in the Alexa app or on the webpage YOUR_OPENHAB/amazonechocontrol/YOUR_ACCOUNT (e.g. http://openhab:8080/amazonechocontrol/account1).
### Flash Briefing Profile
@@ -100,28 +101,28 @@ It will be configured at runtime by using the save channel to store the current
## Channels
-| Channel Type ID | Item Type | Access Mode | Thing Type | Description
-|-----------------------|-------------|-------------|------------|------------------------------------------------------------------------------------------
-| player | Player | R/W | echo, echoshow, echospot, wha | Control the music player (Supported commands: PLAY or ON, PAUSE or OFF, NEXT, PREVIOUS, REWIND, FASTFORWARD)
-| volume | Dimmer | R/W | echo, echoshow, echospot | Control the volume
-| equalizerTreble | Number | R/W | echo, echoshow, echospot | Control the treble (value from -6 to 6)
-| equalizerMidrange | Number | R/W | echo, echoshow, echospot | Control the midrange (value from -6 to 6)
-| equalizerBass | Number | R/W | echo, echoshow, echospot | Control the bass (value from -6 to 6)
-| shuffle | Switch | R/W | echo, echoshow, echospot, wha | Shuffle play if applicable, e.g. playing a playlist
-| imageUrl | String | R | echo, echoshow, echospot, wha | Url of the album image or radio station logo
-| title | String | R | echo, echoshow, echospot, wha | Title of the current media
-| subtitle1 | String | R | echo, echoshow, echospot, wha | Subtitle of the current media
-| subtitle2 | String | R | echo, echoshow, echospot, wha | Additional subtitle of the current media
-| providerDisplayName | String | R | echo, echoshow, echospot, wha | Name of the music provider
-| bluetoothMAC | String | R/W | echo, echoshow, echospot | Bluetooth device MAC. Used to connect to a specific device or disconnect if a empty string was provided
+| Channel Type ID | Item Type | Access Mode | Thing Type | Description
+|-----------------------|-------------|-------------|-------------------------------|------------------------------------------------------------------------------------------
+| player | Player | R/W | echo, echoshow, echospot, wha | Control the music player (Supported commands: PLAY or ON, PAUSE or OFF, NEXT, PREVIOUS, REWIND, FASTFORWARD)
+| volume | Dimmer | R/W | echo, echoshow, echospot | Control the volume
+| equalizerTreble | Number | R/W | echo, echoshow, echospot | Control the treble (value from -6 to 6)
+| equalizerMidrange | Number | R/W | echo, echoshow, echospot | Control the midrange (value from -6 to 6)
+| equalizerBass | Number | R/W | echo, echoshow, echospot | Control the bass (value from -6 to 6)
+| shuffle | Switch | R/W | echo, echoshow, echospot, wha | Shuffle play if applicable, e.g. playing a playlist
+| imageUrl | String | R | echo, echoshow, echospot, wha | Url of the album image or radio station logo
+| title | String | R | echo, echoshow, echospot, wha | Title of the current media
+| subtitle1 | String | R | echo, echoshow, echospot, wha | Subtitle of the current media
+| subtitle2 | String | R | echo, echoshow, echospot, wha | Additional subtitle of the current media
+| providerDisplayName | String | R | echo, echoshow, echospot, wha | Name of the music provider
+| bluetoothMAC | String | R/W | echo, echoshow, echospot | Bluetooth device MAC. Used to connect to a specific device or disconnect if an empty string was provided
| bluetooth | Switch | R/W | echo, echoshow, echospot | Connect/Disconnect to the last used bluetooth device (works after a bluetooth connection was established after the openHAB start)
| bluetoothDeviceName | String | R | echo, echoshow, echospot | User friendly name of the connected bluetooth device
-| radioStationId | String | R/W | echo, echoshow, echospot, wha | Start playing of a TuneIn radio station by specifying it's id or stops playing if a empty string was provided
+| radioStationId | String | R/W | echo, echoshow, echospot, wha | Start playing of a TuneIn radio station by specifying its id or stops playing if an empty string was provided
| radio | Switch | R/W | echo, echoshow, echospot, wha | Start playing of the last used TuneIn radio station (works after the radio station started after the openhab start)
-| amazonMusicTrackId | String | R/W | echo, echoshow, echospot, wha | Start playing of a Amazon Music track by it's id od stops playing if a empty string was provided
-| amazonMusicPlayListId | String | W | echo, echoshow, echospot, wha | Write Only! Start playing of a Amazon Music playlist by specifying it's id od stops playing if a empty string was provided. Selection will only work in PaperUI
+| amazonMusicTrackId | String | R/W | echo, echoshow, echospot, wha | Start playing of an Amazon Music track by its id or stops playing if an empty string was provided
+| amazonMusicPlayListId | String | W | echo, echoshow, echospot, wha | Write Only! Start playing of an Amazon Music playlist by specifying its id or stops playing if an empty string was provided. Selection will only work in PaperUI
| amazonMusic | Switch | R/W | echo, echoshow, echospot, wha | Start playing of the last used Amazon Music song (works after at least one song was started after the openhab start)
-| remind | String | R/W | echo, echoshow, echospot | Write Only! Speak the reminder and sends a notification to the Alexa app (Currently the reminder is played and notified two times, this seems to be a bug in the amazon software)
+| remind | String | R/W | echo, echoshow, echospot | Write Only! Speak the reminder and sends a notification to the Alexa app (Currently the reminder is played and notified two times, this seems to be a bug in the Amazon software)
| nextReminder | DateTime | R | echo, echoshow, echospot | Next reminder on the device
| playAlarmSound | String | W | echo, echoshow, echospot | Write Only! Plays ans Alarm sound
| nextAlarm | DateTime | R | echo, echoshow, echospot | Next alarm on the device
@@ -129,26 +130,28 @@ It will be configured at runtime by using the save channel to store the current
| nextTimer | DateTime | R | echo, echoshow, echospot | Next timer on the device
| startRoutine | String | W | echo, echoshow, echospot | Write Only! Type in what you normally say to Alexa without the preceding "Alexa,"
| musicProviderId | String | R/W | echo, echoshow, echospot | Current Music provider
-| playMusicVoiceCommand | String | W | echo, echoshow, echospot | Write Only! Voice command as text. E.g. 'Yesterday from the Beatles'
-| startCommand | String | W | echo, echoshow, echospot | Write Only! Used to start anything. Available options: Weather, Traffic, GoodMorning, SingASong, TellStory, FlashBriefing and FlashBriefing. (Note: The options are case sensitive)
-| announcement | String | W | echo, echoshow, echospot | Write Only! Display the announcement message on the display. See in the tutorial section to learn how it’s possible to set the title and turn off the sound.
-| textToSpeech | String | W | echo, echoshow, echospot | Write Only! Write some text to this channel and alexa will speak it. It is possible to use plain text or SSML: e.g. `I want to tell you a secret.I am not a real human.`
-| textToSpeechVolume | Dimmer | R/W | echo, echoshow, echospot | Volume of the textToSpeech channel, if 0 the current volume will be used
+| playMusicVoiceCommand | String | W | echo, echoshow, echospot | Write Only! Voice command as text. E.g. 'Yesterday from the Beatles'
+| startCommand | String | W | echo, echoshow, echospot | Write Only! Used to start anything. Available options: Weather, Traffic, GoodMorning, SingASong, TellStory, FlashBriefing and FlashBriefing. (Note: The options are case sensitive)
+| announcement | String | W | echo, echoshow, echospot | Write Only! Display the announcement message on the display. Please note: the announcement feature must be activated in the alexa app at the echo device. See in the tutorial section to learn how it’s possible to set the title and turn off the sound.
+| textToSpeech | String | W | echo, echoshow, echospot | Write Only! Write some text to this channel and Alexa will speak it. It is possible to use plain text or SSML: e.g. `I want to tell you a secret.I am not a real human. Please note: the announcement feature must be activated in the alexa app at the echo device to use SSML. `
+| textToSpeechVolume | Dimmer | R/W | echo, echoshow, echospot | Volume of the textToSpeech channel, if 0 the current volume will be used
| lastVoiceCommand | String | R/W | echo, echoshow, echospot | Last voice command spoken to the device. Writing to the channel starts voice output.
| mediaProgress | Dimmer | R/W | echo, echoshow, echospot | Media progress in percent
| mediaProgressTime | Number:Time | R/W | echo, echoshow, echospot | Media play time
| mediaLength | Number:Time | R | echo, echoshow, echospot | Media length
| notificationVolume | Dimmer | R | echo, echoshow, echospot | Notification volume
| ascendingAlarm | Switch | R/W | echo, echoshow, echospot | Ascending alarm up to the configured volume
-| save | Switch | W | flashbriefingprofile | Write Only! Stores the current configuration of flash briefings within the thing
-| active | Switch | R/W | flashbriefingprofile | Active the profile
-| playOnDevice | String | W | flashbriefingprofile | Specify the echo serial number or name to start the flash briefing.
+| sendMessage | String | W | account | Write Only! Sends a message to the Echo devices.
+| save | Switch | W | flashbriefingprofile | Write Only! Stores the current configuration of flash briefings within the thing
+| active | Switch | R/W | flashbriefingprofile | Active the profile
+| playOnDevice | String | W | flashbriefingprofile | Specify the echo serial number or name to start the flash briefing.
## Advanced Feature Technically Experienced Users
-The url /amazonechocontrol//PROXY/ provides a proxy server with an authenticated connection to the amazon alexa server. This can be used to call alexa api from rules.
+The url /amazonechocontrol//PROXY/ provides a proxy server with an authenticated connection to the Amazon Alexa server.
+This can be used to call Alexa API from rules.
-E.g. to read out the history call from an installation on openhab:8080 with a account named account1:
+E.g. to read out the history call from an installation on openhab:8080 with an account named account1:
http://openhab:8080/amazonechocontrol/account1/PROXY/api/activities?startTime=&size=50&offset=1
@@ -180,69 +183,69 @@ Take a look in the channel description above to know, which channels are support
Group Alexa_Living_Room
// Player control
-Player Echo_Living_Room_Player "Player" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:player"}
-Dimmer Echo_Living_Room_Volume "Volume [%.0f %%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:volume"}
-Number Echo_Living_Room_Treble "Treble" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerTreble"}
-Number Echo_Living_Room_Midrange "Midrange" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerMidrange"}
-Number Echo_Living_Room_Bass "Bass" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerBass"}
-Switch Echo_Living_Room_Shuffle "Shuffle" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:shuffle"}
+Player Echo_Living_Room_Player "Player" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:player"}
+Dimmer Echo_Living_Room_Volume "Volume [%.0f %%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:volume"}
+Number Echo_Living_Room_Treble "Treble" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerTreble"}
+Number Echo_Living_Room_Midrange "Midrange" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerMidrange"}
+Number Echo_Living_Room_Bass "Bass" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:equalizerBass"}
+Switch Echo_Living_Room_Shuffle "Shuffle" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:shuffle"}
// Media channels
-Dimmer Echo_Living_Room_MediaProgress "Media progress" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaProgress"}
-Number:Time Echo_Living_Room_MediaProgressTime "Media progress time [%d %unit%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaProgressTime"}
-Number:Time Echo_Living_Room_MediaLength "Media length [%d %unit%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaLength"}
+Dimmer Echo_Living_Room_MediaProgress "Media progress" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaProgress"}
+Number:Time Echo_Living_Room_MediaProgressTime "Media progress time [%d %unit%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaProgressTime"}
+Number:Time Echo_Living_Room_MediaLength "Media length [%d %unit%]" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:mediaLength"}
// Player Information
-String Echo_Living_Room_ImageUrl "Image URL" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:imageUrl"}
-String Echo_Living_Room_Title "Title" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:title"}
-String Echo_Living_Room_Subtitle1 "Subtitle 1" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:subtitle1"}
-String Echo_Living_Room_Subtitle2 "Subtitle 2" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:subtitle2"}
-String Echo_Living_Room_ProviderDisplayName "Provider" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:providerDisplayName"}
+String Echo_Living_Room_ImageUrl "Image URL" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:imageUrl"}
+String Echo_Living_Room_Title "Title" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:title"}
+String Echo_Living_Room_Subtitle1 "Subtitle 1" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:subtitle1"}
+String Echo_Living_Room_Subtitle2 "Subtitle 2" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:subtitle2"}
+String Echo_Living_Room_ProviderDisplayName "Provider" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:providerDisplayName"}
// Music provider and start command
-String Echo_Living_Room_MusicProviderId "Music Provider Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:musicProviderId"}
-String Echo_Living_Room_PlayMusicCommand "Play music voice command (Write Only)" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:playMusicVoiceCommand"}
-String Echo_Living_Room_StartCommand "Start Information" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:startCommand"}
+String Echo_Living_Room_MusicProviderId "Music Provider Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:musicProviderId"}
+String Echo_Living_Room_PlayMusicCommand "Play music voice command (Write Only)" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:playMusicVoiceCommand"}
+String Echo_Living_Room_StartCommand "Start Information" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:startCommand"}
// TuneIn Radio
-String Echo_Living_Room_RadioStationId "TuneIn Radio Station Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:radioStationId"}
-Switch Echo_Living_Room_Radio "TuneIn Radio" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:radio"}
+String Echo_Living_Room_RadioStationId "TuneIn Radio Station Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:radioStationId"}
+Switch Echo_Living_Room_Radio "TuneIn Radio" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:radio"}
// Amazon Music
-String Echo_Living_Room_AmazonMusicTrackId "Amazon Music Track Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusicTrackId"}
-String Echo_Living_Room_AmazonMusicPlayListId "Amazon Music Playlist Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusicPlayListId"}
-Switch Echo_Living_Room_AmazonMusic "Amazon Music" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusic"}
+String Echo_Living_Room_AmazonMusicTrackId "Amazon Music Track Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusicTrackId"}
+String Echo_Living_Room_AmazonMusicPlayListId "Amazon Music Playlist Id" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusicPlayListId"}
+Switch Echo_Living_Room_AmazonMusic "Amazon Music" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:amazonMusic"}
// Bluetooth
-String Echo_Living_Room_BluetoothMAC "Bluetooth MAC Address" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetoothMAC"}
-Switch Echo_Living_Room_Bluetooth "Bluetooth" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetooth"}
-String Echo_Living_Room_BluetoothDeviceName "Bluetooth Device" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetoothDeviceName"}
+String Echo_Living_Room_BluetoothMAC "Bluetooth MAC Address" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetoothMAC"}
+Switch Echo_Living_Room_Bluetooth "Bluetooth" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetooth"}
+String Echo_Living_Room_BluetoothDeviceName "Bluetooth Device" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:bluetoothDeviceName"}
// Commands
-String Echo_Living_Room_Announcement "Announcement" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:announcement"}
-String Echo_Living_Room_TTS "Text to Speech" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:textToSpeech"}
-Dimmer Echo_Living_Room_TTS_Volume "Text to Speech Volume" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:textToSpeechVolume"}
-String Echo_Living_Room_Remind "Remind" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:remind"}
-String Echo_Living_Room_PlayAlarmSound "Play Alarm Sound" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:playAlarmSound"}
-String Echo_Living_Room_StartRoutine "Start Routine" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:startRoutine"}
-Dimmer Echo_Living_Room_NotificationVolume "Notification volume" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:notificationVolume"}
-Switch Echo_Living_Room_AscendingAlarm "Ascending alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:ascendingAlarm"}
+String Echo_Living_Room_Announcement "Announcement" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:announcement"}
+String Echo_Living_Room_TTS "Text to Speech" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:textToSpeech"}
+Dimmer Echo_Living_Room_TTS_Volume "Text to Speech Volume" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:textToSpeechVolume"}
+String Echo_Living_Room_Remind "Remind" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:remind"}
+String Echo_Living_Room_PlayAlarmSound "Play Alarm Sound" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:playAlarmSound"}
+String Echo_Living_Room_StartRoutine "Start Routine" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:startRoutine"}
+Dimmer Echo_Living_Room_NotificationVolume "Notification volume" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:notificationVolume"}
+Switch Echo_Living_Room_AscendingAlarm "Ascending alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:ascendingAlarm"}
// Feedbacks
-String Echo_Living_Room_LastVoiceCommand "Last voice command" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:lastVoiceCommand"}
-DateTime Echo_Living_Room_NextReminder "Next reminder" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextReminder"}
-DateTime Echo_Living_Room_NextAlarm "Next alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextAlarm"}
-DateTime Echo_Living_Room_NextMusicAlarm "Next music alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextMusicAlarm"}
-DateTime Echo_Living_Room_NextTimer "Next timer" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextTimer"}
+String Echo_Living_Room_LastVoiceCommand "Last voice command" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:lastVoiceCommand"}
+DateTime Echo_Living_Room_NextReminder "Next reminder" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextReminder"}
+DateTime Echo_Living_Room_NextAlarm "Next alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextAlarm"}
+DateTime Echo_Living_Room_NextMusicAlarm "Next music alarm" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextMusicAlarm"}
+DateTime Echo_Living_Room_NextTimer "Next timer" (Alexa_Living_Room) {channel="amazonechocontrol:echo:account1:echo1:nextTimer"}
// Flashbriefings
Switch FlashBriefing_Technical_Save "Save (Write only)" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing1:save"}
-Switch FlashBriefing_Technical_Active "Active" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing1:active"}
+Switch FlashBriefing_Technical_Active "Active" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing1:active"}
String FlashBriefing_Technical_Play "Play (Write only)" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing1:playOnDevice"}
Switch FlashBriefing_LifeStyle_Save "Save (Write only)" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing2:save"}
-Switch FlashBriefing_LifeStyle_Active "Active" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing2:active"}
+Switch FlashBriefing_LifeStyle_Active "Active" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing2:active"}
String FlashBriefing_LifeStyle_Play "Play (Write only)" { channel="amazonechocontrol:flashbriefingprofile:account1:flashbriefing2:playOnDevice"}
```
@@ -284,7 +287,7 @@ sitemap amazonechocontrol label="Echo Devices"
Switch item=Echo_Living_Room_AmazonMusic
Text item=Echo_Living_Room_BluetoothMAC
- // Change the Place holder with the MAC address shown, if alexa is connected to the device
+ // Change the Place holder with the MAC address shown, if Alexa is connected to the device
Selection item=Echo_Living_Room_BluetoothMAC mappings=[ ''='Disconnected', ''='Bluetooth Device 1', ''='Bluetooth Device 2']
// These are only view of the possible options. Enable ShowIDsInGUI in the binding configuration and look in drop-down-box of this channel in the Paper UI Control section
@@ -320,7 +323,7 @@ sitemap amazonechocontrol label="Echo Devices"
## Tutorials
-### Let alexa speak a text from a rule:
+### Let Alexa speak a text from a rule:
1) Create a rule with a trigger of your choice
@@ -360,15 +363,19 @@ end
```
Expert:
-You can use a json formatted string to control the title and the sound:
+You can use a json formatted string to control title, sound and volume:
```php
-{ "sound": true, "speak":"" "title": "", "body": ""}
+{ "sound": true, "speak":"" "title": "", "body": "", "volume": 20}
```
-The combination of sound=true and speak in SSML syntax is not allowed
+The combination of `sound=true` and `speak` in SSML syntax is not allowed.
+Not all properties need to be specified.
+The value for `volume` can be between 0 and 100 to set the volume.
+A volume value smaller then 0 means that the current alexa volume should be used.
+No specification uses the volume from the `textToSpeechVolume` channel.
-Note: If you turn off the sound and alexa is playing music, it will anyway turn down the volume for a moment. This behavior can not be changed.
+Note: If you turn off the sound and Alexa is playing music, it will anyway turn down the volume for a moment. This behavior can not be changed.
```php
rule "Say welcome if the door opens"
@@ -404,10 +411,10 @@ then
end
```
-Note 1: Do not use a to short time for playing the sound, because alexa needs some time to start playing the sound.
-It's not recommended to use a time below 10 seconds.
+Note 1: Do not use a to short time for playing the sound, because Alexa needs some time to start playing the sound.
+It is not recommended to use a time below 10 seconds.
-Note 2: The rule have no effect for your default alarm sound used in the alexa app.
+Note 2: The rule have no effect for your default alarm sound used in the Alexa app.
### Play a spotify playlist if a switch was changed to on:
@@ -425,7 +432,7 @@ then
end
```
-Note: It's recommended to test the command send to play music command first with the voice and the real alexa device. E.g. say 'Alexa, Playlist Party'
+Note: It is recommended to test the command send to play music command first with the voice and the real Alexa device. E.g. say 'Alexa, Playlist Party'
### Start playing weather/traffic/etc:
@@ -458,9 +465,9 @@ end
## Credits
-The idea for writing this binding came from this blog: http://blog.loetzimmer.de/2017/10/amazon-alexa-hort-auf-die-shell-echo.html (German).
+The idea for writing this binding came from this blog: https://blog.loetzimmer.de/2017/10/amazon-alexa-hort-auf-die-shell-echo.html (German).
Thank you Alex!
-The technical information for the web socket connection to get live alexa state updates cames from Ingo. He has done the alexa iobrokern implementation https://github.com/Apollon77
+The technical information for the web socket connection to get live Alexa state updates cames from Ingo. He has done the Alexa ioBroker implementation https://github.com/Apollon77
Thank you Ingo!
## Trademark Disclaimer
diff --git a/bundles/org.openhab.binding.amazonechocontrol/pom.xml b/bundles/org.openhab.binding.amazonechocontrol/pom.xml
old mode 100755
new mode 100644
index f70d3a6bf158c..fd6c339e739ab
--- a/bundles/org.openhab.binding.amazonechocontrol/pom.xml
+++ b/bundles/org.openhab.binding.amazonechocontrol/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.amazonechocontrol
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/feature/feature.xml b/bundles/org.openhab.binding.amazonechocontrol/src/main/feature/feature.xml
index 2ab102669fd09..038bb5321e4ce 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AccountServlet.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AccountServlet.java
index a4c32e59db2ab..c9cbec6a130ab 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AccountServlet.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AccountServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -95,16 +95,14 @@ public AccountServlet(HttpService httpService, String id, AccountHandler account
} catch (UnsupportedEncodingException e) {
servletUrlWithoutRoot = "";
servletUrl = "";
- logger.warn("Register servlet fails {}", e);
+ logger.warn("Register servlet fails", e);
return;
}
servletUrl = "/" + servletUrlWithoutRoot;
try {
httpService.registerServlet(servletUrl, this, null, httpService.createDefaultHttpContext());
- } catch (ServletException e) {
- logger.warn("Register servlet fails {}", e);
- } catch (NamespaceException e) {
- logger.warn("Register servlet fails {}", e);
+ } catch (NamespaceException | ServletException e) {
+ logger.warn("Register servlet fails", e);
}
}
@@ -325,7 +323,7 @@ protected void doGet(@Nullable HttpServletRequest req, @Nullable HttpServletResp
String html = connection.getLoginPage();
returnHtml(connection, resp, html, "amazon.com");
} catch (URISyntaxException e) {
- logger.warn("get failed with uri syntax error {}", e);
+ logger.warn("get failed with uri syntax error", e);
}
}
@@ -341,7 +339,7 @@ public Map getQueryMap(@Nullable String query) {
try {
value = URLDecoder.decode(elements[1], "UTF8");
} catch (UnsupportedEncodingException e) {
- logger.info("Unsupported encoding {}", e);
+ logger.info("Unsupported encoding", e);
}
map.put(name, value);
}
@@ -472,7 +470,7 @@ private void createPageEndAndSent(HttpServletResponse resp, StringBuilder html)
try {
resp.getWriter().write(html.toString());
} catch (IOException e) {
- logger.warn("return html failed with IO error {}", e);
+ logger.warn("return html failed with IO error", e);
}
}
@@ -697,7 +695,7 @@ private void returnHtml(Connection connection, HttpServletResponse resp, String
try {
resp.getWriter().write(resultHtml);
} catch (IOException e) {
- logger.warn("return html failed with IO error {}", e);
+ logger.warn("return html failed with IO error", e);
}
}
@@ -706,7 +704,7 @@ void returnError(HttpServletResponse resp, String errorMessage) {
resp.getWriter().write("" + StringEscapeUtils.escapeHtml(errorMessage) + " Try again");
} catch (IOException e) {
- logger.info("Returning error message failed {}", e);
+ logger.info("Returning error message failed", e);
}
}
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlBindingConstants.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlBindingConstants.java
old mode 100755
new mode 100644
index 45675aadba7a1..c1229f4e94b57
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlBindingConstants.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlHandlerFactory.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlHandlerFactory.java
old mode 100755
new mode 100644
index f0cf1faf5e142..47242988769f2
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlHandlerFactory.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AmazonEchoControlHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/BindingServlet.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/BindingServlet.java
index 9984ece665d94..a7bd193dc491b 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/BindingServlet.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/BindingServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -57,10 +57,8 @@ public BindingServlet(HttpService httpService) {
servletUrl = "/" + servletUrlWithoutRoot;
try {
httpService.registerServlet(servletUrl, this, null, httpService.createDefaultHttpContext());
- } catch (ServletException e) {
- logger.warn("Register servlet fails {}", e);
- } catch (NamespaceException e) {
- logger.warn("Register servlet fails {}", e);
+ } catch (NamespaceException | ServletException e) {
+ logger.warn("Register servlet fails", e);
}
}
@@ -123,7 +121,7 @@ protected void doGet(@Nullable HttpServletRequest req, @Nullable HttpServletResp
try {
resp.getWriter().write(html.toString());
} catch (IOException e) {
- logger.warn("return html failed with uri syntax error {}", e);
+ logger.warn("return html failed with uri syntax error", e);
}
}
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java
old mode 100755
new mode 100644
index 8f95e4070985d..7f8ed58eabb9c
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/Connection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -429,7 +429,7 @@ public boolean tryRestoreLogin(@Nullable String data, @Nullable String overloade
}
}
} catch (URISyntaxException | IOException | ConnectionException e) {
- logger.debug("Getting account customer Id failed {}", e);
+ logger.debug("Getting account customer Id failed", e);
}
return loginTime;
}
@@ -450,7 +450,7 @@ public boolean tryRestoreLogin(@Nullable String data, @Nullable String overloade
return authentication;
}
} catch (JsonSyntaxException | IllegalStateException e) {
- logger.info("No valid json received {}", e);
+ logger.info("No valid json received", e);
return null;
}
}
@@ -624,7 +624,7 @@ public HttpsURLConnection makeRequest(String verb, String url, @Nullable String
try {
makeRequest(verb, url, postData, json, autoredirect, customHeaders, badRequestRepeats - 1);
} catch (IOException | URISyntaxException e) {
- logger.debug("Repeat fails {}", e);
+ logger.debug("Repeat fails", e);
}
}, 500, TimeUnit.MILLISECONDS);
return connection;
@@ -652,7 +652,7 @@ public HttpsURLConnection makeRequest(String verb, String url, @Nullable String
if (connection != null) {
connection.disconnect();
}
- logger.warn("Request to url '{}' fails with unkown error", url, e);
+ logger.warn("Request to url '{}' fails with unknown error", url, e);
throw e;
} catch (Exception e) {
if (connection != null) {
@@ -887,7 +887,7 @@ private T parseJson(String json, Class type) throws JsonSyntaxException,
try {
return gson.fromJson(json, type);
} catch (JsonParseException | IllegalStateException e) {
- logger.warn("Parsing json failed {}", e);
+ logger.warn("Parsing json failed", e);
logger.warn("Illegal json: {}", json);
throw e;
}
@@ -905,7 +905,7 @@ public WakeWord[] getWakeWords() {
return result;
}
} catch (IOException | URISyntaxException e) {
- logger.info("getting wakewords failed {}", e);
+ logger.info("getting wakewords failed", e);
}
return new WakeWord[0];
}
@@ -950,7 +950,7 @@ public Activity[] getActivities(int number, @Nullable Long startTime) {
return activiesArray;
}
} catch (IOException | URISyntaxException e) {
- logger.info("getting activities failed {}", e);
+ logger.info("getting activities failed", e);
}
return new Activity[0];
}
@@ -1008,7 +1008,7 @@ public DeviceNotificationState[] getDeviceNotificationStates() {
return deviceNotificationStates;
}
} catch (IOException | URISyntaxException e) {
- logger.info("Error getting device notification states {}", e);
+ logger.info("Error getting device notification states", e);
}
return new DeviceNotificationState[0];
}
@@ -1023,7 +1023,7 @@ public AscendingAlarmModel[] getAscendingAlarm() {
return ascendingAlarmModelList;
}
} catch (IOException | URISyntaxException e) {
- logger.info("Error getting device notification states {}", e);
+ logger.info("Error getting device notification states", e);
}
return new AscendingAlarmModel[0];
}
@@ -1100,8 +1100,8 @@ public void sendNotificationToMobileApp(String customerId, String text, @Nullabl
executeSequenceCommand(null, "Alexa.Notifications.SendMobilePush", parameters);
}
- public void sendAnnouncement(Device device, String text, String bodyText, @Nullable String title, int ttsVolume,
- int standardVolume) throws IOException, URISyntaxException {
+ public void sendAnnouncement(Device device, String speak, String bodyText, @Nullable String title,
+ @Nullable Integer ttsVolume, int standardVolume) throws IOException, URISyntaxException {
Map parameters = new HashMap<>();
parameters.put("expireAfter", "PT5S");
JsonAnnouncementContent[] contentArray = new JsonAnnouncementContent[1];
@@ -1112,10 +1112,10 @@ public void sendAnnouncement(Device device, String text, String bodyText, @Nulla
content.display.title = title;
}
content.display.body = bodyText;
- if (text.startsWith("") && text.endsWith("")) {
+ if (speak.startsWith("") && speak.endsWith("")) {
content.speak.type = "ssml";
}
- content.speak.value = text;
+ content.speak.value = speak;
contentArray[0] = content;
@@ -1140,7 +1140,7 @@ public void sendAnnouncement(Device device, String text, String bodyText, @Nulla
executeSequenceCommandWithVolume(device, "AlexaAnnouncement", parameters, ttsVolume, standardVolume);
}
- public void textToSpeech(Device device, String text, int ttsVolume, int standardVolume)
+ public void textToSpeech(Device device, String text, @Nullable Integer ttsVolume, int standardVolume)
throws IOException, URISyntaxException {
Map parameters = new HashMap<>();
parameters.put("textToSpeak", text);
@@ -1148,28 +1148,23 @@ public void textToSpeech(Device device, String text, int ttsVolume, int standard
}
private void executeSequenceCommandWithVolume(@Nullable Device device, String command,
- @Nullable Map parameters, int ttsVolume, int standardVolume)
+ @Nullable Map parameters, @Nullable Integer ttsVolume, int standardVolume)
throws IOException, URISyntaxException {
- if (ttsVolume != 0) {
-
+ if (ttsVolume != null) {
JsonArray nodesToExecute = new JsonArray();
-
Map volumeParameters = new HashMap<>();
// add tts volume
volumeParameters.clear();
volumeParameters.put("value", ttsVolume);
nodesToExecute.add(createExecutionNode(device, "Alexa.DeviceControls.Volume", volumeParameters));
-
// add command
nodesToExecute.add(createExecutionNode(device, command, parameters));
-
// add volume
volumeParameters.clear();
volumeParameters.put("value", standardVolume);
nodesToExecute.add(createExecutionNode(device, "Alexa.DeviceControls.Volume", volumeParameters));
executeSequenceNodes(nodesToExecute);
-
} else {
executeSequenceCommand(device, command, parameters);
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/ConnectionException.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/ConnectionException.java
index ba0f3e06791a8..3d7abf5a6df4e 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/ConnectionException.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/ConnectionException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/HttpException.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/HttpException.java
old mode 100755
new mode 100644
index da55580791ea6..2faa954cb967d
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/HttpException.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/HttpException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/IWebSocketCommandHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/IWebSocketCommandHandler.java
index 345507692e775..3e00770a9f4b8 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/IWebSocketCommandHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/IWebSocketCommandHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/WebSocketConnection.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/WebSocketConnection.java
index 302e7c90dcbaa..2ebcc2e842629 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/WebSocketConnection.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/WebSocketConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -101,7 +101,7 @@ public WebSocketConnection(String amazonSite, List sessionCookies,
try {
webSocketClient.start();
} catch (Exception e) {
- logger.warn("Web socket start failed: {}", e);
+ logger.warn("Web socket start failed", e);
throw new IOException("Web socket start failed");
}
@@ -117,7 +117,7 @@ public WebSocketConnection(String amazonSite, List sessionCookies,
webSocketClient.connect(listener, uri, request);
} catch (URISyntaxException e) {
- logger.debug("Initialize web socket failed: {}", e);
+ logger.debug("Initialize web socket failed", e);
}
}
@@ -152,7 +152,7 @@ public void close() {
try {
session.close();
} catch (Exception e) {
- logger.debug("Closing sessing failed {}", e);
+ logger.debug("Closing sessing failed", e);
}
}
try {
@@ -160,7 +160,7 @@ public void close() {
} catch (InterruptedException e) {
// Just ignore
} catch (Exception e) {
- logger.debug("Stopping websocket failed {}", e);
+ logger.debug("Stopping websocket failed", e);
}
webSocketClient.destroy();
}
@@ -347,7 +347,7 @@ Message parseIncomingMessage(byte[] data) {
message.content.pushCommand = gson.fromJson(message.content.payload,
JsonPushCommand.class);
} catch (JsonSyntaxException e) {
- logger.info("Parsing json failed {}", e);
+ logger.info("Parsing json failed", e);
logger.info("Illegal json: {}", payload);
}
}
@@ -408,7 +408,7 @@ public void onWebSocketBinary(byte @Nullable [] data, int offset, int len) {
return;
}
} catch (Exception e) {
- logger.debug("Handling of push notification failed {}", e);
+ logger.debug("Handling of push notification failed", e);
}
}
@@ -427,7 +427,7 @@ public void onWebSocketClose(int code, @Nullable String reason) {
@Override
public void onWebSocketError(@Nullable Throwable error) {
- logger.info("Web Socket error {}", error);
+ logger.info("Web Socket error", error);
WebSocketConnection.this.close();
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandler.java
index cd288e6dc3d46..b24bb64594f48 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -48,7 +48,7 @@ protected ChannelHandler(IAmazonThingHandler thingHandler, Gson gson) {
try {
return gson.fromJson(json, type);
} catch (JsonSyntaxException e) {
- logger.debug("Json parse error {}", e);
+ logger.debug("Json parse error", e);
return null;
}
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerAnnouncement.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerAnnouncement.java
index 3d663522d61ba..2464c2e3cb068 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerAnnouncement.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerAnnouncement.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -16,7 +16,6 @@
import java.net.URISyntaxException;
import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.core.library.types.StringType;
import org.eclipse.smarthome.core.types.Command;
@@ -32,10 +31,13 @@
* @author Michael Geramb - Initial contribution
*/
public class ChannelHandlerAnnouncement extends ChannelHandler {
- public static final String CHANNEL_NAME = "announcement";
+ private static final String CHANNEL_NAME = "announcement";
- public ChannelHandlerAnnouncement(IAmazonThingHandler thingHandler, Gson gson) {
+ protected final IEchoThingHandler thingHandler;
+
+ public ChannelHandlerAnnouncement(IEchoThingHandler thingHandler, Gson gson) {
super(thingHandler, gson);
+ this.thingHandler = thingHandler;
}
@Override
@@ -47,15 +49,16 @@ public boolean tryHandleCommand(Device device, Connection connection, String cha
String body = commandValue;
String title = null;
String speak = commandValue;
+ Integer volume = null;
if (commandValue.startsWith("{") && commandValue.endsWith("}")) {
try {
AnnouncementRequestJson request = parseJson(commandValue, AnnouncementRequestJson.class);
if (request != null) {
- if (StringUtils.isEmpty(request.speak)) {
+ speak = request.speak;
+ if (speak == null || speak.length() == 0) {
speak = " "; // blank generates a beep
- } else {
- speak = request.speak;
}
+ volume = request.volume;
title = request.title;
body = request.body;
if (body == null) {
@@ -72,6 +75,9 @@ public boolean tryHandleCommand(Device device, Connection connection, String cha
speak = "Error: The combination of sound and speak in SSML syntax is not allowed";
}
}
+ if ("".equals(speak)) {
+ volume = -1; // Do not change volume
+ }
}
} catch (JsonSyntaxException e) {
body = "Invalid Json." + e.getLocalizedMessage();
@@ -81,7 +87,7 @@ public boolean tryHandleCommand(Device device, Connection connection, String cha
body = e.getLocalizedMessage();
}
}
- connection.sendAnnouncement(device, speak, body, title, 0, 0);
+ thingHandler.startAnnouncment(device, speak, body, title, volume);
}
RefreshChannel();
}
@@ -97,5 +103,6 @@ static class AnnouncementRequestJson {
public @Nullable String title;
public @Nullable String body;
public @Nullable String speak;
+ public @Nullable Integer volume;
}
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerSendMessage.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerSendMessage.java
new file mode 100644
index 0000000000000..75893ec405310
--- /dev/null
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/ChannelHandlerSendMessage.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) 2010-2020 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.amazonechocontrol.internal.channelhandler;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.time.LocalDateTime;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.library.types.StringType;
+import org.eclipse.smarthome.core.types.Command;
+import org.openhab.binding.amazonechocontrol.internal.Connection;
+import org.openhab.binding.amazonechocontrol.internal.jsons.JsonDevices.Device;
+
+import com.google.gson.Gson;
+
+/**
+ * The {@link ChannelHandlerSendMessage} is responsible for the announcement channel
+ *
+ * @author Michael Geramb - Initial contribution
+ */
+public class ChannelHandlerSendMessage extends ChannelHandler {
+ private static final String CHANNEL_NAME = "sendMessage";
+ private @Nullable AccountJson accountJson;
+ private int lastMessageId = 1000;
+
+ public ChannelHandlerSendMessage(IAmazonThingHandler thingHandler, Gson gson) {
+ super(thingHandler, gson);
+ }
+
+ @Override
+ public boolean tryHandleCommand(Device device, Connection connection, String channelId, Command command)
+ throws IOException, URISyntaxException {
+ if (channelId.equals(CHANNEL_NAME)) {
+ if (command instanceof StringType) {
+ String commandValue = ((StringType) command).toFullString();
+ String baseUrl = "https://alexa-comms-mobile-service." + connection.getAmazonSite();
+
+ AccountJson currentAccountJson = this.accountJson;
+ if (currentAccountJson == null) {
+ String accountResult = connection.makeRequestAndReturnString(baseUrl + "/accounts");
+ AccountJson[] accountsJson = this.gson.fromJson(accountResult, AccountJson[].class);
+ if (accountsJson == null) {
+ return false;
+ }
+ for (AccountJson accountJson : accountsJson) {
+ Boolean signedInUser = accountJson.signedInUser;
+ if (signedInUser != null && signedInUser) {
+ this.accountJson = accountJson;
+ currentAccountJson = accountJson;
+ break;
+ }
+ }
+ }
+ if (currentAccountJson == null) {
+ return false;
+ }
+ String commsId = currentAccountJson.commsId;
+ if (commsId == null) {
+ return false;
+ }
+ String senderCommsId = commsId;
+ String receiverCommsId = commsId;
+
+ SendConversationJson conversationJson = new SendConversationJson();
+ conversationJson.conversationId = "amzn1.comms.messaging.id.conversationV2~31e6fe8f-8b0c-4e84-a1e4-80030a09009b";
+ conversationJson.clientMessageId = java.util.UUID.randomUUID().toString();
+ conversationJson.messageId = lastMessageId++;
+ conversationJson.sender = senderCommsId;
+ conversationJson.time = LocalDateTime.now().toString();
+ conversationJson.payload.text = commandValue;
+
+ String sendConversationBody = this.gson.toJson(new SendConversationJson[] { conversationJson });
+ String sendUrl = baseUrl + "/users/" + senderCommsId + "/conversations/" + receiverCommsId
+ + "/messages";
+ connection.makeRequestAndReturnString("POST", sendUrl, sendConversationBody, true, null);
+ }
+ RefreshChannel();
+ }
+ return false;
+ }
+
+ void RefreshChannel() {
+ thingHandler.updateChannelState(CHANNEL_NAME, new StringType(""));
+ }
+
+ static class AccountJson {
+ public @Nullable String commsId;
+ public @Nullable String directedId;
+ public @Nullable String phoneCountryCode;
+ public @Nullable String phoneNumber;
+ public @Nullable String firstName;
+ public @Nullable String lastName;
+ public @Nullable String phoneticFirstName;
+ public @Nullable String phoneticLastName;
+ public @Nullable String commsProvisionStatus;
+ public @Nullable Boolean isChild;
+ public @Nullable Boolean signedInUser;
+ public @Nullable Boolean commsProvisioned;
+ public @Nullable Boolean speakerProvisioned;
+ }
+
+ static class SendConversationJson {
+ public @Nullable String conversationId;
+ public @Nullable String clientMessageId;
+ public @Nullable Integer messageId;
+ public @Nullable String time;
+ public @Nullable String sender;
+ public String type = "message/text";
+ public Payload payload = new Payload();
+ public Integer status = 1;
+
+ static class Payload {
+ public @Nullable String text;
+ }
+ }
+
+}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IAmazonThingHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IAmazonThingHandler.java
index f0e412c9879ed..c5c7684b2eb48 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IAmazonThingHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IAmazonThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IEchoThingHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IEchoThingHandler.java
new file mode 100644
index 0000000000000..967926ccbd256
--- /dev/null
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/channelhandler/IEchoThingHandler.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2010-2020 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.amazonechocontrol.internal.channelhandler;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.binding.amazonechocontrol.internal.jsons.JsonDevices.Device;
+
+/**
+ * The {@link IEchoThingHandler} is used from ChannelHandlers to communicate with the thing
+ *
+ * @author Michael Geramb - Initial contribution
+ */
+@NonNullByDefault
+public interface IEchoThingHandler extends IAmazonThingHandler {
+ void startAnnouncment(Device device, String speak, String bodyText, @Nullable String title,
+ @Nullable Integer volume) throws IOException, URISyntaxException;
+}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/discovery/AmazonEchoDiscovery.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/discovery/AmazonEchoDiscovery.java
old mode 100755
new mode 100644
index 29158a5d9c701..0cb44a44a5588
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/discovery/AmazonEchoDiscovery.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/discovery/AmazonEchoDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/AccountHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/AccountHandler.java
old mode 100755
new mode 100644
index 871c56798e13b..b4482c4024ed3
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/AccountHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/AccountHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -40,12 +40,16 @@
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
+import org.eclipse.smarthome.core.types.State;
import org.openhab.binding.amazonechocontrol.internal.AccountServlet;
import org.openhab.binding.amazonechocontrol.internal.Connection;
import org.openhab.binding.amazonechocontrol.internal.ConnectionException;
import org.openhab.binding.amazonechocontrol.internal.HttpException;
import org.openhab.binding.amazonechocontrol.internal.IWebSocketCommandHandler;
import org.openhab.binding.amazonechocontrol.internal.WebSocketConnection;
+import org.openhab.binding.amazonechocontrol.internal.channelhandler.ChannelHandler;
+import org.openhab.binding.amazonechocontrol.internal.channelhandler.ChannelHandlerSendMessage;
+import org.openhab.binding.amazonechocontrol.internal.channelhandler.IAmazonThingHandler;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonActivities.Activity;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonActivities.Activity.SourceDeviceId;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonAscendingAlarm.AscendingAlarmModel;
@@ -78,7 +82,7 @@
* @author Michael Geramb - Initial Contribution
*/
@NonNullByDefault
-public class AccountHandler extends BaseBridgeHandler implements IWebSocketCommandHandler {
+public class AccountHandler extends BaseBridgeHandler implements IWebSocketCommandHandler, IAmazonThingHandler {
private final Logger logger = LoggerFactory.getLogger(AccountHandler.class);
private Storage stateStorage;
@@ -97,12 +101,14 @@ public class AccountHandler extends BaseBridgeHandler implements IWebSocketComma
private @Nullable AccountServlet accountServlet;
private final Gson gson;
int checkDataCounter;
+ private List channelHandlers = new ArrayList<>();
public AccountHandler(Bridge bridge, HttpService httpService, Storage stateStorage, Gson gson) {
super(bridge);
this.gson = gson;
this.httpService = httpService;
this.stateStorage = stateStorage;
+ channelHandlers.add(new ChannelHandlerSendMessage(this, this.gson));
}
@Override
@@ -127,11 +133,31 @@ public void initialize() {
logger.debug("amazon account bridge handler started.");
}
+ @Override
+ public void updateChannelState(String channelId, State state) {
+ updateState(channelId, state);
+ }
+
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
- logger.trace("Command '{}' received for channel '{}'", command, channelUID);
- if (command instanceof RefreshType) {
- refreshData();
+ try {
+ logger.trace("Command '{}' received for channel '{}'", command, channelUID);
+ Connection connection = this.connection;
+ if (connection == null) {
+ return;
+ }
+
+ String channelId = channelUID.getId();
+ for (ChannelHandler channelHandler : channelHandlers) {
+ if (channelHandler.tryHandleCommand(new Device(), connection, channelId, command)) {
+ return;
+ }
+ }
+ if (command instanceof RefreshType) {
+ refreshData();
+ }
+ } catch (IOException | URISyntaxException e) {
+ logger.info("handleCommand fails", e);
}
}
@@ -318,7 +344,7 @@ private void checkLogin() {
}
} catch (Exception e) { // this handler can be removed later, if we know that nothing else can fail.
- logger.error("check login fails with unexpected error {}", e);
+ logger.error("check login fails with unexpected error", e);
}
}
@@ -359,7 +385,7 @@ boolean checkWebSocketConnection() {
this.webSocketConnection = new WebSocketConnection(connection.getAmazonSite(),
connection.getSessionCookies(), this);
} catch (IOException e) {
- logger.warn("Web socket connection starting failed: {}", e);
+ logger.warn("Web socket connection starting failed", e);
}
}
return false;
@@ -383,9 +409,9 @@ private void checkData() {
}
logger.debug("checkData {} finished", getThing().getUID().getAsString());
} catch (HttpException | JsonSyntaxException | ConnectionException e) {
- logger.debug("checkData fails {}", e);
+ logger.debug("checkData fails", e);
} catch (Exception e) { // this handler can be removed later, if we know that nothing else can fail.
- logger.error("checkData fails with unexpected error {}", e);
+ logger.error("checkData fails with unexpected error", e);
}
}
}
@@ -403,7 +429,7 @@ private void refreshNotifications(@Nullable JsonCommandPayloadPushNotificationCh
try {
notifications = currentConnection.notifications();
} catch (IOException | URISyntaxException e) {
- logger.debug("refreshNotifications failed {}", e);
+ logger.debug("refreshNotifications failed", e);
return;
}
ZonedDateTime timeStampNow = ZonedDateTime.now();
@@ -454,7 +480,7 @@ private void refreshData() {
try {
musicProviders = currentConnection.getMusicProviders();
} catch (HttpException | JsonSyntaxException | ConnectionException e) {
- logger.debug("Update music provider failed {}", e);
+ logger.debug("Update music provider failed", e);
}
}
}
@@ -470,13 +496,13 @@ private void refreshData() {
try {
notificationSounds = currentConnection.getNotificationSounds(device);
} catch (IOException | HttpException | JsonSyntaxException | ConnectionException e) {
- logger.debug("Update notification sounds failed {}", e);
+ logger.debug("Update notification sounds failed", e);
}
// update playlists
try {
playlists = currentConnection.getPlaylists(device);
} catch (IOException | HttpException | JsonSyntaxException | ConnectionException e) {
- logger.debug("Update playlist failed {}", e);
+ logger.debug("Update playlist failed", e);
}
}
@@ -517,9 +543,9 @@ private void refreshData() {
logger.debug("refresh data {} finished", getThing().getUID().getAsString());
} catch (HttpException | JsonSyntaxException | ConnectionException e) {
- logger.debug("refresh data fails {}", e);
+ logger.debug("refresh data fails", e);
} catch (Exception e) { // this handler can be removed later, if we know that nothing else can fail.
- logger.error("refresh data fails with unexpected error {}", e);
+ logger.error("refresh data fails with unexpected error", e);
}
}
}
@@ -611,7 +637,7 @@ public void setEnabledFlashBriefingsJson(String flashBriefingJson) {
try {
currentConnection.setEnabledFlashBriefings(feeds);
} catch (IOException | URISyntaxException e) {
- logger.warn("Set flashbriefing profile failed {}", e);
+ logger.warn("Set flashbriefing profile failed", e);
}
}
updateFlashBriefingHandlers();
@@ -673,7 +699,7 @@ private void updateFlashBriefingProfiles(Connection currentConnection) {
}
this.currentFlashBriefingJson = gson.toJson(forSerializer);
} catch (HttpException | JsonSyntaxException | IOException | URISyntaxException | ConnectionException e) {
- logger.warn("get flash briefing profiles fails {}", e);
+ logger.warn("get flash briefing profiles fails", e);
}
}
@@ -684,7 +710,7 @@ public void webSocketCommandReceived(JsonPushCommand pushCommand) {
handleWebsocketCommand(pushCommand);
} catch (Exception e) {
// should never happen, but if the exception is going out of this function, the binding stop working.
- logger.warn("handling of websockets fails: {}", e);
+ logger.warn("handling of websockets fails", e);
}
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/EchoHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/EchoHandler.java
old mode 100755
new mode 100644
index b5c5901023ded..5867ec69de201
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/EchoHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/EchoHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,7 +12,46 @@
*/
package org.openhab.binding.amazonechocontrol.internal.handler;
-import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.*;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_AMAZON_MUSIC;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_AMAZON_MUSIC_PLAY_LIST_ID;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_AMAZON_MUSIC_TRACK_ID;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_ASCENDING_ALARM;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_BLUETOOTH;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_BLUETOOTH_DEVICE_NAME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_BLUETOOTH_MAC;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_EQUALIZER_BASS;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_EQUALIZER_MIDRANGE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_EQUALIZER_TREBLE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_IMAGE_URL;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_LAST_VOICE_COMMAND;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_MEDIA_LENGTH;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_MEDIA_PROGRESS;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_MEDIA_PROGRESS_TIME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_MUSIC_PROVIDER_ID;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_NEXT_ALARM;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_NEXT_MUSIC_ALARM;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_NEXT_REMINDER;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_NEXT_TIMER;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_NOTIFICATION_VOLUME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_PLAYER;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_PLAY_ALARM_SOUND;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_PLAY_MUSIC_VOICE_COMMAND;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_PLAY_ON_DEVICE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_PROVIDER_DISPLAY_NAME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_RADIO;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_RADIO_STATION_ID;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_REMIND;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_SHUFFLE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_START_COMMAND;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_START_ROUTINE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_SUBTITLE1;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_SUBTITLE2;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TEXT_TO_SPEECH;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TEXT_TO_SPEECH_VOLUME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TITLE;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_VOLUME;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_PROPERTY_SERIAL_NUMBER;
+import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.FLASH_BRIEFING_COMMAND_PREFIX;
import java.io.IOException;
import java.net.URISyntaxException;
@@ -63,7 +102,7 @@
import org.openhab.binding.amazonechocontrol.internal.HttpException;
import org.openhab.binding.amazonechocontrol.internal.channelhandler.ChannelHandler;
import org.openhab.binding.amazonechocontrol.internal.channelhandler.ChannelHandlerAnnouncement;
-import org.openhab.binding.amazonechocontrol.internal.channelhandler.IAmazonThingHandler;
+import org.openhab.binding.amazonechocontrol.internal.channelhandler.IEchoThingHandler;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonActivities.Activity;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonActivities.Activity.Description;
import org.openhab.binding.amazonechocontrol.internal.jsons.JsonAscendingAlarm.AscendingAlarmModel;
@@ -99,7 +138,7 @@
* @author Michael Geramb - Initial contribution
*/
@NonNullByDefault
-public class EchoHandler extends BaseThingHandler implements IAmazonThingHandler {
+public class EchoHandler extends BaseThingHandler implements IEchoThingHandler {
private final Logger logger = LoggerFactory.getLogger(EchoHandler.class);
private Gson gson;
@@ -686,10 +725,8 @@ public void handleCommand(ChannelUID channelUID, Command command) {
} else {
this.updateStateJob = scheduler.schedule(doRefresh, waitForUpdate, TimeUnit.MILLISECONDS);
}
- } catch (IOException |
-
- URISyntaxException e) {
- logger.info("handleCommand fails: {}", e);
+ } catch (IOException | URISyntaxException e) {
+ logger.info("handleCommand fails", e);
}
}
@@ -719,7 +756,7 @@ private boolean handleEqualizerCommands(String channelId, Command command, Conne
connection.SetEqualizer(device, newEqualizerSetting);
return true;
} catch (HttpException | IOException | ConnectionException e) {
- logger.debug("Update equalizer failed {}", e);
+ logger.debug("Update equalizer failed", e);
this.lastKnownEqualizer = null;
}
@@ -730,22 +767,38 @@ private boolean handleEqualizerCommands(String channelId, Command command, Conne
private void startTextToSpeech(Connection connection, Device device, String text)
throws IOException, URISyntaxException {
+ Integer volume = null;
if (textToSpeechVolume != 0) {
- @Nullable
- ScheduledFuture> oldIgnoreVolumeChange = this.ignoreVolumeChange;
- if (oldIgnoreVolumeChange != null) {
- oldIgnoreVolumeChange.cancel(false);
- }
- this.ignoreVolumeChange = scheduler.schedule(this::stopIgnoreVolumeChange, 2000, TimeUnit.MILLISECONDS);
+ startIgnoreVolumeChange();
+ volume = textToSpeechVolume;
}
if (text.startsWith("") && text.endsWith("")) {
String bodyText = text.replaceAll("<[^>]+>", "");
- connection.sendAnnouncement(device, text, bodyText, null, textToSpeechVolume, lastKnownVolume);
+ connection.sendAnnouncement(device, text, bodyText, null, volume, lastKnownVolume);
} else {
- connection.textToSpeech(device, text, textToSpeechVolume, lastKnownVolume);
+ connection.textToSpeech(device, text, volume, lastKnownVolume);
}
}
+ @Override
+ public void startAnnouncment(Device device, String speak, String bodyText, @Nullable String title,
+ @Nullable Integer volume) throws IOException, URISyntaxException {
+ Connection connection = this.findConnection();
+ if (connection == null) {
+ return;
+ }
+ if (volume == null && textToSpeechVolume != 0) {
+ volume = textToSpeechVolume;
+ }
+ if (volume != null && volume < 0) {
+ volume = null; // the meaning of negative values is 'do not use'. The api requires null in this case.
+ }
+ if (volume != null) {
+ startIgnoreVolumeChange();
+ }
+ connection.sendAnnouncement(device, speak, bodyText, title, volume, lastKnownVolume);
+ }
+
private void stopCurrentNotification() {
ScheduledFuture> currentNotifcationUpdateTimer = this.currentNotifcationUpdateTimer;
if (currentNotifcationUpdateTimer != null) {
@@ -760,7 +813,7 @@ private void stopCurrentNotification() {
try {
currentConnection.stopNotification(currentNotification);
} catch (IOException | URISyntaxException e) {
- logger.warn("Stop notification failed: {}", e);
+ logger.warn("Stop notification failed", e);
}
}
}
@@ -780,7 +833,7 @@ private void updateNotificationTimerState() {
}
}
} catch (IOException | URISyntaxException e) {
- logger.warn("update notification state fails: {}", e);
+ logger.warn("update notification state fails", e);
}
if (stopCurrentNotifcation) {
if (currentNotification != null) {
@@ -891,10 +944,10 @@ public void updateState(AccountHandler accountHandler, @Nullable Device device,
if (e.getCode() == 400) {
// Ignore
} else {
- logger.info("getPlayer fails: {}", e);
+ logger.info("getPlayer fails", e);
}
} catch (IOException | URISyntaxException e) {
- logger.info("getPlayer fails: {}", e);
+ logger.info("getPlayer fails", e);
}
// check playing
isPlaying = (playerInfo != null && StringUtils.equals(playerInfo.state, "PLAYING"));
@@ -947,10 +1000,10 @@ public void updateState(AccountHandler accountHandler, @Nullable Device device,
updateState(CHANNEL_RADIO_STATION_ID, new StringType(""));
} else {
- logger.info("getMediaState fails: {}", e);
+ logger.info("getMediaState fails", e);
}
} catch (IOException | URISyntaxException e) {
- logger.info("getMediaState fails: {}", e);
+ logger.info("getMediaState fails", e);
}
// handle music provider id
@@ -1175,7 +1228,7 @@ private void updateEqualizerState() {
treble = equalizer.treble;
this.lastKnownEqualizer = equalizer;
} catch (IOException | URISyntaxException | HttpException | ConnectionException e) {
- logger.debug("Get equalizer failes {}", e);
+ logger.debug("Get equalizer failes", e);
return;
}
if (bass != null) {
@@ -1253,6 +1306,15 @@ public void handlePushActivity(Activity pushActivity) {
}
}
+ private void startIgnoreVolumeChange() {
+ @Nullable
+ ScheduledFuture> oldIgnoreVolumeChange = this.ignoreVolumeChange;
+ if (oldIgnoreVolumeChange != null) {
+ oldIgnoreVolumeChange.cancel(false);
+ }
+ this.ignoreVolumeChange = scheduler.schedule(this::stopIgnoreVolumeChange, 2000, TimeUnit.MILLISECONDS);
+ }
+
private void stopIgnoreVolumeChange() {
this.ignoreVolumeChange = null;
}
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/FlashBriefingProfileHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/FlashBriefingProfileHandler.java
index a190b05274674..bf8b2a9de8956 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/FlashBriefingProfileHandler.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/FlashBriefingProfileHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -156,7 +156,7 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
}
} catch (IOException | URISyntaxException e) {
- logger.warn("Handle command failed {}", e);
+ logger.warn("Handle command failed", e);
}
if (waitForUpdate >= 0) {
this.updateStateJob = scheduler.schedule(() -> accountHandler.updateFlashBriefingHandlers(), waitForUpdate,
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonActivities.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonActivities.java
index b09660af70a1e..7892ce1300ce3 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonActivities.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonActivities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementContent.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementContent.java
index ce2296773e417..9d94cd5d84f6d 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementContent.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementContent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementTarget.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementTarget.java
index 6e99bec84f1c6..5612805da66b8 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementTarget.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAnnouncementTarget.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAscendingAlarm.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAscendingAlarm.java
index 95c4d6c81a8a5..444a2ec67c461 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAscendingAlarm.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAscendingAlarm.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAutomation.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAutomation.java
index d3be585e7c7f4..6f529e216bc22 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAutomation.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonAutomation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBluetoothStates.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBluetoothStates.java
index 4d2ba0adb07cc..db8d256ba6770 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBluetoothStates.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBluetoothStates.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBootstrapResult.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBootstrapResult.java
index dffce100b83b8..747d24f67dd6b 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBootstrapResult.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonBootstrapResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushActivity.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushActivity.java
index c53128cf0966a..e62fcdf02b7f0 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushActivity.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushActivity.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushAudioPlayerState.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushAudioPlayerState.java
index 3aa0740893081..d33188b4372a4 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushAudioPlayerState.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushAudioPlayerState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushBluetoothStateChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushBluetoothStateChange.java
index fec5439c523c0..2736fa6772a4d 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushBluetoothStateChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushBluetoothStateChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushContentFocusChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushContentFocusChange.java
index 20c539d50b007..f29b0be84a69d 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushContentFocusChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushContentFocusChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDevice.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDevice.java
index c7b42709229ec..95fee29973f9a 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDevice.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDopllerConnectionChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDopllerConnectionChange.java
index 6376e50a439a2..55c833358f75d 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDopllerConnectionChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushDopllerConnectionChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushEqualizerChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushEqualizerChange.java
index d2354255b2c5f..d88e9737a43ee 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushEqualizerChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushEqualizerChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaChange.java
index 31e08d3cc3e55..4f56a5f340c7e 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaQueueChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaQueueChange.java
index 4fb4d30252478..265b0dc7fbb58 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaQueueChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushMediaQueueChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushNotificationChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushNotificationChange.java
index c32f9e8518340..676555de250c6 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushNotificationChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushNotificationChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushVolumeChange.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushVolumeChange.java
index 0fe803aa91e71..125edf9c92cbb 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushVolumeChange.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonCommandPayloadPushVolumeChange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDeviceNotificationState.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDeviceNotificationState.java
index 596c172a2048b..1d5093860c7b0 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDeviceNotificationState.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDeviceNotificationState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDevices.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDevices.java
old mode 100755
new mode 100644
index 2ff3a02ad65d1..37e074e3e4112
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDevices.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonDevices.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEnabledFeeds.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEnabledFeeds.java
index 50162a3e4c0f5..b2976238f2f5e 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEnabledFeeds.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEnabledFeeds.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEqualizer.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEqualizer.java
index b9903243b1a28..daccdcccb130d 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEqualizer.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonEqualizer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonExchangeTokenResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonExchangeTokenResponse.java
index 48807bea68910..559837d514779 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonExchangeTokenResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonExchangeTokenResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonFeed.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonFeed.java
index 143983cae69ba..cdda3fc862790 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonFeed.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonFeed.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMediaState.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMediaState.java
old mode 100755
new mode 100644
index 0d23fb92d1995..92389c207c6cb
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMediaState.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMediaState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMusicProvider.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMusicProvider.java
index 4890a5dd0371d..da28a765b015c 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMusicProvider.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonMusicProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationRequest.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationRequest.java
index 25e3eb182e0b2..34acee7e78fb2 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationRequest.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationResponse.java
index e339d176c5bad..fd4f55c1b7c25 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSound.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSound.java
index 2853cfb34f34c..b99502d4258ec 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSound.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSound.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSounds.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSounds.java
index ea715dae85c0a..a4eb8b4be7773 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSounds.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationSounds.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationsResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationsResponse.java
index b0f8d38917bca..c12a0d12124fb 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationsResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonNotificationsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaySearchPhraseOperationPayload.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaySearchPhraseOperationPayload.java
index 49a1c327f1ad3..dda429a2fc31f 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaySearchPhraseOperationPayload.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaySearchPhraseOperationPayload.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayValidationResult.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayValidationResult.java
index d6a522c9c0796..fc23e2567f146 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayValidationResult.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayValidationResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayerState.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayerState.java
old mode 100755
new mode 100644
index f3013b518cc13..dd106fd811623
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayerState.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlayerState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaylists.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaylists.java
index d079c686df8c5..3210623b9853c 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaylists.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPlaylists.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPushCommand.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPushCommand.java
index fd493d87d2c83..b2b78bb02a723 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPushCommand.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonPushCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppRequest.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppRequest.java
index 8b2e2762a22d5..42e5d2d94e1e5 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppRequest.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppResponse.java
index b2a22649f54ea..8a7391b4c3fce 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRegisterAppResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRenewTokenResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRenewTokenResponse.java
index 4f48efc5e02a9..7133fb8451963 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRenewTokenResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonRenewTokenResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonStartRoutineRequest.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonStartRoutineRequest.java
index 219bca29b313a..5e93e372af1ec 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonStartRoutineRequest.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonStartRoutineRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonTokenResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonTokenResponse.java
index ab812c7042f92..e95ced344848f 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonTokenResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonTokenResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonUsersMeResponse.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonUsersMeResponse.java
index c8714c9de184d..87b283a3fee68 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonUsersMeResponse.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonUsersMeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWakeWords.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWakeWords.java
index c59a5bca171ab..57b7fdf5ac228 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWakeWords.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWakeWords.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWebSiteCookie.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWebSiteCookie.java
index 2af5feeb24129..948b01711983b 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWebSiteCookie.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/jsons/JsonWebSiteCookie.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/statedescription/AmazonEchoDynamicStateDescriptionProvider.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/statedescription/AmazonEchoDynamicStateDescriptionProvider.java
index 72f2c3b98f0af..9c50084a11c3e 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/statedescription/AmazonEchoDynamicStateDescriptionProvider.java
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/statedescription/AmazonEchoDynamicStateDescriptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -79,6 +79,9 @@ protected void unsetThingRegistry(ThingRegistry thingRegistry) {
return null;
}
ThingUID accountThingId = thing.getBridgeUID();
+ if (accountThingId == null) {
+ return null;
+ }
Thing accountThing = thingRegistry.get(accountThingId);
if (accountThing == null) {
return null;
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/binding/binding.xml
old mode 100755
new mode 100644
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/i18n/amazonechocontrol_de.properties b/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/i18n/amazonechocontrol_de.properties
old mode 100755
new mode 100644
index 3c39840e2980e..699cd51b94144
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/i18n/amazonechocontrol_de.properties
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/i18n/amazonechocontrol_de.properties
@@ -56,6 +56,9 @@ channel-type.amazonechocontrol.providerDisplayName.description = Name des Musika
channel-type.amazonechocontrol.bluetoothMAC.label = Bluetooth Verbindung
channel-type.amazonechocontrol.bluetoothMAC.description = MAC-Adresse des verbundenen Bluetoothgerätes
+channel-type.amazonechocontrol.sendMessage.label = Nachricht senden
+channel-type.amazonechocontrol.sendMessage.description = Schickt eine Nachricht an die Echo Geräte (Nur schreiben).
+
channel-type.amazonechocontrol.announcement.label = Ankündigung
channel-type.amazonechocontrol.announcement.description = Zeigt die Ankündungsnachricht am Display (Nur schreiben). In der Binding Beschreibung ist im Tutorials Abschnitt eine Erklärung wie der Title gesetzt und der Sound deaktiviert wird.
diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/thing/thing-types.xml
index dfc4a2efde084..ae8b0443f071b 100644
--- a/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -1,12 +1,15 @@
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
Amazon Account where the amazon echo devices are registered.
+
+
+
@@ -40,7 +43,7 @@
-
+
@@ -261,7 +264,7 @@
String
-
+
The command which must be spoken to active the routing without the preceding "Alexa," (Write Only)
@@ -384,6 +387,11 @@
Voice command as text. E.g. 'Yesterday from the Beatles' (Write only)
+
+ String
+
+ Sends a message to the Echo devices (Write only).
+ String
@@ -440,7 +448,7 @@
Dimmer
-
+
Notification Volume
diff --git a/bundles/org.openhab.binding.ambientweather/NOTICE b/bundles/org.openhab.binding.ambientweather/NOTICE
index 47910b33d6c9f..b490a72fbb6ce 100644
--- a/bundles/org.openhab.binding.ambientweather/NOTICE
+++ b/bundles/org.openhab.binding.ambientweather/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
@@ -37,4 +37,4 @@ okio
socket.io-client
* License: MIT License
* Project: https://socketio.github.io/socket.io-client-java/
-* Source: https://github.com/socketio/socket.io-client-java
\ No newline at end of file
+* Source: https://github.com/socketio/socket.io-client-java
diff --git a/bundles/org.openhab.binding.ambientweather/README.md b/bundles/org.openhab.binding.ambientweather/README.md
index af4054bf246a2..70c18a79032bd 100644
--- a/bundles/org.openhab.binding.ambientweather/README.md
+++ b/bundles/org.openhab.binding.ambientweather/README.md
@@ -1,16 +1,20 @@
# Ambient Weather Binding
The Ambient Weather binding integrates weather station data that's stored on the Ambient Weather online service.
-The binding uses Ambient Weather's real-time API, so updates from weather stations are delivered the the binding in near real-time.
+The binding uses Ambient Weather's real-time API, so updates from weather stations are delivered to the binding in near real-time.
## Supported Things
-The binding currently supports weather data from these weather stations
+The binding currently supports weather data from these weather stations.
-- WS-0900-IP,
-- WS-1400-IP / WS-1401-IP,
-- WS-2902A, and
-- WS-8482.
+| Thing | ID |
+|--------------------------|-----------|
+| Account | bridge |
+| WS-0900-IP | ws0900ip |
+| WS-1400-IP / WS-1401-IP | ws1400ip |
+| WS-2902A | ws2902a |
+| WS-8482 | ws8482 |
+| WS-0265 | ws0265 |
Other stations can be added relatively easily with changes in just several places in the source code.
@@ -20,15 +24,18 @@ Automatic discovery is currently not supported due to the lack of weather statio
## Thing Configuration
-### Bridge Thing Configuration
+### Account
-The Bridge thing requires a valid application Key and API key.
-Application and API keys can be obtained on the *My Account* page of your `ambientweather.net` dashboard.
+| Parameter | Parameter ID | Required/Optional | Description |
+|------------------|-------------------|-------------------|-------------|
+| API Key | apiKey | Required | Obtain the API key on the *My Account* page of your `ambientweather.net` dashboard. |
+| Application Key | apiKey | Required | Obtain the Application key on the *My Account* page of your `ambientweather.net` dashboard. |
-### Weather Station Thing Configuration
+### Weather Station
-The Weather Station things require the MAC address of the weather station.
-This MAC address must be on the same `ambientweather.net` dashboard as the API and Application keys.
+| Parameter | Parameter ID | Required/Optional | Description |
+|------------------|-------------------|-------------------|-------------|
+| MAC Address | macAddress | Required | This is the weather station's MAC address. It must be configured in your `ambientweather.net` dashboard. |
## Channels
@@ -76,6 +83,8 @@ The following channels are supported by the binding. Note that specific weather
| indoorSensor | batteryIndicator | String | Battery indicator |
| | | | |
| remoteSensor\<1-10\> | temperature | Number:Temperature | Temperature |
+| remoteSensor\<1-10\> | dewPoint | Number:Temperature | Dew Point |
+| remoteSensor\<1-10\> | feelingTemperature | Number:Temperature | "Real feel" temperature |
| remoteSensor\<1-10\> | humidity | Number:Dimensionless | Humidity |
| remoteSensor\<1-10\> | batteryIndicator | String | Battery indicator |
| remoteSensor\<1-10\> | co2 | Number:Dimensionless | Carbon Dioxide level |
@@ -89,9 +98,9 @@ The following channels are supported by the binding. Note that specific weather
### Things
```
-Bridge ambientweather:bridge:mybridge [ applicationKey="abcdefg", apiKey="tuvwxyz" ] {
- Thing ambientweather:ws1400ip:ws1400ip WS-1400IP [ macAddress="00:f1:bb:00:00:01" ]
- Thing ambientweather:ws8482:ws8482 WS-8482 [ macAddress="00:f1:bb:00:00:ab" ]
+Bridge ambientweather:bridge:account "Ambient Weather Account" [ applicationKey="bd7eb3fe87f74e9.....", apiKey="efe88d6202be43e6a40....." ] {
+ Thing ws1400ip 1400 "Ambient Weather WS-1400-IP" [ macAddress="00:ab:cd:00:00:01" ]
+ Thing ws8482 8482 "Ambient Weather WS-8482" [ macAddress="00:ab:cd:00:00:02" ]
}
```
@@ -99,64 +108,64 @@ Bridge ambientweather:bridge:mybridge [ applicationKey="abcdefg", apiKey="tuvwxy
```
// WS-1400-IP Weather Station
-String WS1400IP_StationName "Station Name [%s]" { channel="ambientweather:ws1400ip:ws1400ip:station#name" }
-String WS1400IP_StationLocation "Station Location [%s]" { channel="ambientweather:ws1400ip:ws1400ip:station#location" }
-
-DateTime WS1400IP_ObservationTime "Station Observation Time [%s]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#observationTime" }
-String WS1400IP_StationBattery "Station Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#batteryIndicator" }
-Number:Temperature WS1400IP_Temperature "Temperature [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#temperature" }
-Number:Temperature WS1400IP_DewPoint "Dew Point [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#dewPoint" }
-Number:Temperature WS1400IP_RealFeel "RealFeel [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#feelingTemperature" }
-Number:Dimensionless WS1400IP_Humidity "Humidity [%.1f %%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#relativeHumidity" }
-Number:Pressure WS1400IP_PressureAbsolute "Pressure Absolute [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#pressureAbsolute" }
-Number:Pressure WS1400IP_PressureRelative "Pressure Relative [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#pressureRelative" }
-String WS1400IP_PressureTrend "Pressure Trend [%s] { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#pressureTrend" }
-
-Number:Speed WS1400IP_WindSpeed "Wind Speed [%.0f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#windSpeed" }
-Number:Angle WS1400IP_WindDirectionDegrees "Wind Direction Degrees [%d %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#windDirectionDegrees" }
-String WS1400IP_WindDirection "Wind Direction [%s]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#windDirection" }
-Number:Speed WS1400IP_WindGust "Wind Gust [%.0f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#windGust" }
-Number:Speed WS1400IP_WindGustDailyMax "Wind Gust Max Daily [%.0f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#windGustMaxDaily" }
+String WS1400IP_StationName "Station Name [%s]" { channel="ambientweather:ws1400ip:account:1400:station#name" }
+String WS1400IP_StationLocation "Station Location [%s]" { channel="ambientweather:ws1400ip:account:1400:station#location" }
+
+DateTime WS1400IP_ObservationTime "Station Observation Time [%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#observationTime" }
+String WS1400IP_StationBattery "Station Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#batteryIndicator" }
+Number:Temperature WS1400IP_Temperature "Temperature [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#temperature" }
+Number:Temperature WS1400IP_DewPoint "Dew Point [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#dewPoint" }
+Number:Temperature WS1400IP_RealFeel "RealFeel [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#feelingTemperature" }
+Number:Dimensionless WS1400IP_Humidity "Humidity [%.1f %%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#relativeHumidity" }
+Number:Pressure WS1400IP_PressureAbsolute "Pressure Absolute [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#pressureAbsolute" }
+Number:Pressure WS1400IP_PressureRelative "Pressure Relative [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#pressureRelative" }
+String WS1400IP_PressureTrend "Pressure Trend [%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#pressureTrend" }
+
+Number:Speed WS1400IP_WindSpeed "Wind Speed [%.0f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#windSpeed" }
+Number:Angle WS1400IP_WindDirectionDegrees "Wind Direction Degrees [%d %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#windDirectionDegrees" }
+String WS1400IP_WindDirection "Wind Direction [%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#windDirection" }
+Number:Speed WS1400IP_WindGust "Wind Gust [%.0f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#windGust" }
+Number:Speed WS1400IP_WindGustDailyMax "Wind Gust Max Daily [%.0f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#windGustMaxDaily" }
// Use this if your units are SI
-Number:Speed WS1400IP_RainHourlyRate "Rain Hourly Rate [%.1f mm/h]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainHourlyRate" }
+Number:Speed WS1400IP_RainHourlyRate "Rain Hourly Rate [%.1f mm/h]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainHourlyRate" }
// Use this if your units are Imperial
-Number:Speed WS1400IP_RainHourlyRate "Rain Hourly Rate [%.2f in/h]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainHourlyRate" }
+Number:Speed WS1400IP_RainHourlyRate "Rain Hourly Rate [%.2f in/h]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainHourlyRate" }
-Number:Length WS1400IP_RainDaily "Rain Daily [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainDay" }
-Number:Length WS1400IP_RainWeekly "Rain Weekly [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainWeek" }
-Number:Length WS1400IP_RainMonthly "Rain Monthly [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainMonth" }
-Number:Length WS1400IP_RainYearly "Rain Yearly [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainYear" }
-Number:Length WS1400IP_RainTotal "Rain Total [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainTotal" }
-Number:Length WS1400IP_RainEvent "Rain Event [%.2f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainEvent" }
-DateTime WS1400IP_RainLastTime "Rain Last Time [%s]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#rainLastTime" }
+Number:Length WS1400IP_RainDaily "Rain Daily [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainDay" }
+Number:Length WS1400IP_RainWeekly "Rain Weekly [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainWeek" }
+Number:Length WS1400IP_RainMonthly "Rain Monthly [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainMonth" }
+Number:Length WS1400IP_RainYearly "Rain Yearly [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainYear" }
+Number:Length WS1400IP_RainTotal "Rain Total [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainTotal" }
+Number:Length WS1400IP_RainEvent "Rain Event [%.2f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainEvent" }
+DateTime WS1400IP_RainLastTime "Rain Last Time [%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#rainLastTime" }
-Number:Intensity WS1400IP_SolarRadiation "Solar Radiation [%.0f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#solarRadiation" }
-Number WS1400IP_UVIndex "UV Index [%.0f]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#uvIndex" }
-String WS1400IP_UVDanger "UV Danger Level [%s]" { channel="ambientweather:ws1400ip:ws1400ip:weatherDataWs1400ip#uvDanger" }
+Number:Intensity WS1400IP_SolarRadiation "Solar Radiation [%.0f %unit%]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#solarRadiation" }
+Number WS1400IP_UVIndex "UV Index [%.0f]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#uvIndex" }
+String WS1400IP_UVDanger "UV Danger Level [%s]" { channel="ambientweather:ws1400ip:account:1400:weatherDataWs1400ip#uvDanger" }
-Number:Temperature WS1400IP_IndoorTemperature "Indoor Temperature [%.1f %unit%]" { channel="ambientweather:ws1400ip:ws1400ip:indoorSensor#temperature" }
-Number:Dimensionless WS1400IP_IndoorHumidity "Indoor Humidity [%.1f %%]" { channel="ambientweather:ws1400ip:ws1400ip:indoorSensor#relativeHumidity" }
-String WS1400IP_IndoorBattery "Indoor Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws1400ip:ws1400ip:indoorSensor#batteryIndicator" }
+Number:Temperature WS1400IP_IndoorTemperature "Indoor Temperature [%.1f %unit%]" { channel="ambientweather:ws1400ip:account:1400:indoorSensor#temperature" }
+Number:Dimensionless WS1400IP_IndoorHumidity "Indoor Humidity [%.1f %%]" { channel="ambientweather:ws1400ip:account:1400:indoorSensor#relativeHumidity" }
+String WS1400IP_IndoorBattery "Indoor Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws1400ip:account:1400:indoorSensor#batteryIndicator" }
// WS-8482 Weather Station
String WS8482_StationName "Station Name [%s]" { channel="ambientweather:ws8482:ws8482:station#name" }
String WS8482_StationLocation "Station Location [%s]" { channel="ambientweather:ws8482:ws8482:station#location" }
-DateTime WS8482_ObservationTime "Observation Time [%s]" { channel="ambientweather:ws8482:ws8482:weatherDataWs8482#observationTime" }
-Number:Temperature WS8482_IndoorTemperature "Indoor Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:ws8482:weatherDataWs8482#temperature" }
-Number:Dimensionless WS8482_IndoorHumidity "Indoor Humidity [%.1f %%]" { channel="ambientweather:ws8482:ws8482:weatherDataWs8482#relativeHumidity" }
-String WS8482_StationBattery "Station Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:ws8482:weatherDataWs8482#batteryIndicator" }
+DateTime WS8482_ObservationTime "Observation Time [%s]" { channel="ambientweather:ws8482:account:8482:weatherDataWs8482#observationTime" }
+Number:Temperature WS8482_IndoorTemperature "Indoor Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:account:8482:weatherDataWs8482#temperature" }
+Number:Dimensionless WS8482_IndoorHumidity "Indoor Humidity [%.1f %%]" { channel="ambientweather:ws8482:account:8482:weatherDataWs8482#relativeHumidity" }
+String WS8482_StationBattery "Station Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:account:8482:weatherDataWs8482#batteryIndicator" }
-Number:Temperature WS8482_RemoteTemperature "Remote Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:ws8482:remoteSensor1#temperature" }
-Number:Dimensionless WS8482_RemoteHumidity "Remote Humidity [%.1f %%]" { channel="ambientweather:ws8482:ws8482:remoteSensor1#relativeHumidity" }
-String WS8482_RemoteBattery "Remote Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:ws8482:remoteSensor1#batteryIndicator" }
+Number:Temperature WS8482_RemoteTemperature "Remote Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:account:8482:remoteSensor1#temperature" }
+Number:Dimensionless WS8482_RemoteHumidity "Remote Humidity [%.1f %%]" { channel="ambientweather:ws8482:account:8482:remoteSensor1#relativeHumidity" }
+String WS8482_RemoteBattery "Remote Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:account:8482:remoteSensor1#batteryIndicator" }
-Number:Temperature WS8482_SoilTemperature "Soil Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:ws8482:remoteSensor2#soilTemperature" }
-Number:Dimensionless WS8482_SoilMoisture "Soil Moisture [%.1f %%]" { channel="ambientweather:ws8482:ws8482:remoteSensor2#soilMoisture" }
-String WS8482_SoilMoistureLevel "Soil Moisture Level [%s]" { channel="ambientweather:ws8482:ws8482:remoteSensor2#soilMoistureLevel" }
-String WS8482_SoilSensorBattery "Remote Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:ws8482:remoteSensor2#batteryIndicator" }
+Number:Temperature WS8482_SoilTemperature "Soil Temperature [%.1f %unit%]" { channel="ambientweather:ws8482:account:8482:remoteSensor2#soilTemperature" }
+Number:Dimensionless WS8482_SoilMoisture "Soil Moisture [%.1f %%]" { channel="ambientweather:ws8482:account:8482:remoteSensor2#soilMoisture" }
+String WS8482_SoilMoistureLevel "Soil Moisture Level [%s]" { channel="ambientweather:ws8482:account:8482:remoteSensor2#soilMoistureLevel" }
+String WS8482_SoilSensorBattery "Remote Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws8482:account:8482:remoteSensor2#batteryIndicator" }
```
### Transforms
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/embedExternalDependency.profile b/bundles/org.openhab.binding.ambientweather/noEmbedDependencies.profile
similarity index 100%
rename from bundles/org.openhab.binding.bluetooth.bluez/embedExternalDependency.profile
rename to bundles/org.openhab.binding.ambientweather/noEmbedDependencies.profile
diff --git a/bundles/org.openhab.binding.ambientweather/pom.xml b/bundles/org.openhab.binding.ambientweather/pom.xml
index f6ce535ebc4c5..1c189cee07733 100644
--- a/bundles/org.openhab.binding.ambientweather/pom.xml
+++ b/bundles/org.openhab.binding.ambientweather/pom.xml
@@ -1,13 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.ambientweather
@@ -15,44 +13,40 @@
openHAB Add-ons :: Bundles :: Ambient Weather Binding
-
- io.socket
- socket.io-client
+ org.openhab.osgiify
+ io.socket.socket.io-client1.0.0
- provided
+ compile
-
- io.socket
- engine.io-client
+ org.openhab.osgiify
+ io.socket.engine.io-client1.0.0
- provided
+ compile
-
- com.squareup.okhttp3
- okhttp
- 3.12.1
- provided
+ org.apache.servicemix.bundles
+ org.apache.servicemix.bundles.okhttp
+ 3.8.1_1
+ compile
-
- com.squareup.okio
- okio
- 1.15.0
- provided
+ org.apache.servicemix.bundles
+ org.apache.servicemix.bundles.okio
+ 1.13.0_1
+ compile
-
org.jsonjson20180813
- provided
+ compileandroid.*;resolution:=optional,com.android.org.*;resolution:=optional,dalvik.*;resolution:=optional,javax.annotation.meta.*;resolution:=optional,org.apache.harmony.*;resolution:=optional,org.conscrypt.*;resolution:=optional,sun.security.*;resolution:=optional
+
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/feature/feature.xml b/bundles/org.openhab.binding.ambientweather/src/main/feature/feature.xml
index 0ee1bc41f42ac..f7a6bc88e646d 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/feature/feature.xml
@@ -1,15 +1,14 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
-
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/3.8.1_1
+ mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/1.13.0_1
+ mvn:org.openhab.osgiify/io.socket.socket.io-client/1.0.0
+ mvn:org.openhab.osgiify/io.socket.engine.io-client/1.0.0
+ mvn:org.json/json/20180813mvn:org.openhab.addons.bundles/org.openhab.binding.ambientweather/${project.version}
- wrap:mvn:io.socket/socket.io-client/1.0.0$Bundle-Name=SocketIo%20Client&Bundle-SymbolicName=io.socket.socket.io-client&Bundle-Version=1.0.0
- wrap:mvn:io.socket/engine.io-client/1.0.0$Bundle-Name=EngineIo%20Client&Bundle-SymbolicName=io.socket.engine.io-client&Bundle-Version=1.0.0
- wrap:mvn:com.squareup.okhttp3/okhttp/3.12.1$Bundle-Name=OkHttp&Bundle-SymbolicName=com.squareup.okhttp3.okhttp&Bundle-Version=3.12.1
- wrap:mvn:com.squareup.okio/okio/1.15.0$Bundle-Name=Okio&Bundle-SymbolicName=com.squareup.okio.okio&Bundle-Version=1.15.0
- wrap:mvn:org.json/json/20180813$Bundle-Name=Json&Bundle-SymbolicName=org.json.json&Bundle-Version=20180813
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherBindingConstants.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherBindingConstants.java
index 2a81b69e6805d..87b75ce025b65 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherBindingConstants.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -49,13 +49,17 @@ public class AmbientWeatherBindingConstants {
public static final String THING_TYPE_WS8482 = "ws8482";
public static final ThingTypeUID UID_WS8482 = new ThingTypeUID(BINDING_ID, THING_TYPE_WS8482);
- // WS-1400-IP series weather stations
+ // WS-0900-IP series weather stations
public static final String THING_TYPE_WS0900IP = "ws0900ip";
public static final ThingTypeUID UID_WS0900IP = new ThingTypeUID(BINDING_ID, THING_TYPE_WS0900IP);
+ // WS-0265 weather station
+ public static final String THING_TYPE_WS0265 = "ws0265";
+ public static final ThingTypeUID UID_WS0265 = new ThingTypeUID(BINDING_ID, THING_TYPE_WS0265);
+
// Collection of weather station thing types
public static final Set SUPPORTED_STATION_THING_TYPES_UIDS = Collections.unmodifiableSet(
- Stream.of(UID_WS1400IP, UID_WS2902A, UID_WS8482, UID_WS0900IP).collect(Collectors.toSet()));
+ Stream.of(UID_WS1400IP, UID_WS2902A, UID_WS8482, UID_WS0900IP, UID_WS0265).collect(Collectors.toSet()));
// Collection of all supported thing types
public static final Set SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
@@ -67,6 +71,7 @@ public class AmbientWeatherBindingConstants {
public static final String CHGRP_WS2902A = "weatherDataWs2902a";
public static final String CHGRP_WS8482 = "weatherDataWs8482";
public static final String CHGRP_WS0900IP = "weatherDataWs0900ip";
+ public static final String CHGRP_WS0265 = "weatherDataWs0265";
// Channel groups used across weather station types
public static final String CHGRP_STATION = "station";
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherHandlerFactory.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherHandlerFactory.java
index 3f76f9b52cedd..8075403939ca0 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherHandlerFactory.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/AmbientWeatherHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -24,10 +24,9 @@
import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
import org.openhab.binding.ambientweather.internal.handler.AmbientWeatherBridgeHandler;
import org.openhab.binding.ambientweather.internal.handler.AmbientWeatherStationHandler;
+import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* The {@link AmbientWeatherHandlerFactory} is responsible for creating the
@@ -37,10 +36,14 @@
*/
@Component(configurationPid = "binding.ambientweather", service = ThingHandlerFactory.class)
public class AmbientWeatherHandlerFactory extends BaseThingHandlerFactory {
- private final Logger logger = LoggerFactory.getLogger(AmbientWeatherHandlerFactory.class);
// Needed for converting UTC time to local time
- private TimeZoneProvider timeZoneProvider;
+ private final TimeZoneProvider timeZoneProvider;
+
+ @Activate
+ public AmbientWeatherHandlerFactory(@Reference TimeZoneProvider timeZoneProvider) {
+ this.timeZoneProvider = timeZoneProvider;
+ }
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
@@ -59,14 +62,4 @@ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
}
return null;
}
-
- @Reference
- protected void setTimeZoneProvider(TimeZoneProvider timeZoneProvider) {
- this.timeZoneProvider = timeZoneProvider;
- }
-
- protected void unsetTimeZoneProvider(TimeZoneProvider timeZone) {
- this.timeZoneProvider = null;
- }
-
}
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/BridgeConfig.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/BridgeConfig.java
index 2ebe00d2681a2..423213b245460 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/BridgeConfig.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/BridgeConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/StationConfig.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/StationConfig.java
index dc68ae4dd506f..cae072847e06d 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/StationConfig.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/config/StationConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java
index 020d0c0e5a005..de91ba46eaf45 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java
index 504fb11a419c1..031675e6f8461 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -181,6 +181,15 @@ private void disconnectFromService() {
}
}
+ /*
+ * Attempt to reconnect to the Ambient Weather real-time API
+ */
+ private void reconnectToService() {
+ logger.debug("Listener: Attempting to reconnect to service");
+ disconnectFromService();
+ connectToService();
+ }
+
/*
* Socket.io event callbacks
*/
@@ -220,7 +229,8 @@ public void call(final Object... args) {
private Emitter.Listener onEventReconnect = new Emitter.Listener() {
@Override
public void call(final Object... args) {
- logger.debug("Listener: Received socket event: {}", Socket.EVENT_RECONNECT);
+ logger.debug("Listener: Received reconnect event from service");
+ reconnectToService();
}
};
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherStationHandler.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherStationHandler.java
index 0efedb7437d44..496ded6e6cbbc 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherStationHandler.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/handler/AmbientWeatherStationHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/DeviceJson.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/DeviceJson.java
index 4a2c17143be53..eb086e1be48ef 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/DeviceJson.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/DeviceJson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataGenericJson.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataGenericJson.java
index d43a1c0ef2ab4..a948c4dc4851a 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataGenericJson.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataGenericJson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataJson.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataJson.java
index eeb03a2b61561..fc977ff87090c 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataJson.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventDataJson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventSubscribedJson.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventSubscribedJson.java
index 316f3a391ed33..cda5d52de7d17 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventSubscribedJson.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/EventSubscribedJson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/StationInfoJson.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/StationInfoJson.java
index 4d42beddaca3c..52b103a49ed5f 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/StationInfoJson.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/model/StationInfoJson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/AbstractProcessor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/AbstractProcessor.java
index 0e9a5b25c4247..ef0df868ebd0c 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/AbstractProcessor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/AbstractProcessor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorFactory.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorFactory.java
index 2d412136a0d2d..0c659405967f5 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorFactory.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -39,6 +39,7 @@ public class ProcessorFactory {
private @Nullable static Ws2902aProcessor WS2902A_PROCESSOR;
private @Nullable static Ws8482Processor WS8482_PROCESSOR;
private @Nullable static Ws0900ipProcessor WS0900IP_PROCESSOR;
+ private @Nullable static Ws0265Processor WS0265_PROCESSOR;
/**
* Individual weather station processors use this one Gson instance,
@@ -93,6 +94,14 @@ public static AbstractProcessor getProcessor(Thing thing) throws ProcessorNotFou
}
return processor;
}
+ case "ambientweather:ws0265": {
+ Ws0265Processor processor = WS0265_PROCESSOR;
+ if (processor == null) {
+ processor = new Ws0265Processor();
+ WS0265_PROCESSOR = processor;
+ }
+ return processor;
+ }
}
throw new ProcessorNotFoundException("No processor for thing type " + thingType);
}
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorInterface.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorInterface.java
index 0c72e86dc666c..6d59dce847f82 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorInterface.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorInterface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorNotFoundException.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorNotFoundException.java
index 1027c90f0b98e..f04567867aacc 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorNotFoundException.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/ProcessorNotFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/RemoteSensor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/RemoteSensor.java
index af996e7d6407c..0e2ae2e430899 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/RemoteSensor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/RemoteSensor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -83,6 +83,12 @@ private void updateSensorChannels(AmbientWeatherStationHandler handler, int i, f
if (("temp" + sensorNumber + "f").equals(name)) {
handler.updateQuantity(CHGRP_REMOTE_SENSOR + sensorNumber, CH_TEMPERATURE, reader.nextDouble(),
ImperialUnits.FAHRENHEIT);
+ } else if (("dewPoint" + sensorNumber).equals(name)) {
+ handler.updateQuantity(CHGRP_REMOTE_SENSOR + sensorNumber, CH_DEW_POINT, reader.nextDouble(),
+ ImperialUnits.FAHRENHEIT);
+ } else if (("feelsLike" + sensorNumber).equals(name)) {
+ handler.updateQuantity(CHGRP_REMOTE_SENSOR + sensorNumber, CH_FEELING_TEMPERATURE,
+ reader.nextDouble(), ImperialUnits.FAHRENHEIT);
} else if (("humidity" + sensorNumber).equals(name)) {
handler.updateQuantity(CHGRP_REMOTE_SENSOR + sensorNumber, CH_HUMIDITY, reader.nextDouble(),
SmartHomeUnits.PERCENT);
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0265Processor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0265Processor.java
new file mode 100644
index 0000000000000..7d0926e09472d
--- /dev/null
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0265Processor.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2010-2020 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.ambientweather.internal.processor;
+
+import static org.openhab.binding.ambientweather.internal.AmbientWeatherBindingConstants.*;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.core.library.unit.ImperialUnits;
+import org.openhab.binding.ambientweather.internal.handler.AmbientWeatherStationHandler;
+import org.openhab.binding.ambientweather.internal.model.EventDataJson;
+
+/**
+ * The {@link Ws0265Processor} is responsible for updating
+ * the channels associated with the WS-0265 series weather stations in
+ * response to the receipt of a weather data update from the Ambient
+ * Weather real-time API.
+ *
+ * @author Mark Hilbush - Initial contribution
+ */
+@NonNullByDefault
+public class Ws0265Processor extends AbstractProcessor {
+
+ @Override
+ public void setChannelGroupId() {
+ channelGroupId = CHGRP_WS0265;
+ }
+
+ @Override
+ public void setNumberOfSensors() {
+ remoteSensor.setNumberOfSensors(7);
+ }
+
+ @Override
+ public void processInfoUpdate(AmbientWeatherStationHandler handler, String station, String name, String location) {
+ // Update name and location channels
+ handler.updateString(CHGRP_STATION, CH_NAME, name);
+ handler.updateString(CHGRP_STATION, CH_LOCATION, location);
+ }
+
+ @Override
+ public void processWeatherData(AmbientWeatherStationHandler handler, String station, String jsonData) {
+ EventDataJson data = parseEventData(station, jsonData);
+ if (data == null) {
+ return;
+ }
+
+ // Update the weather data channels
+ handler.updateDate(channelGroupId, CH_OBSERVATION_TIME, data.date);
+ handler.updateQuantity(channelGroupId, CH_TEMPERATURE, data.tempinf, ImperialUnits.FAHRENHEIT);
+
+ // Update the remote sensor channels
+ remoteSensor.updateChannels(handler, jsonData);
+ }
+}
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0900ipProcessor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0900ipProcessor.java
index 5b90e56b39147..be8bfb0839f88 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0900ipProcessor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws0900ipProcessor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws1400ipProcessor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws1400ipProcessor.java
index 403d78ffa63b9..bca0047d452f6 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws1400ipProcessor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws1400ipProcessor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws2902aProcessor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws2902aProcessor.java
index a225144e5cbe3..f2c190d639ddf 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws2902aProcessor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws2902aProcessor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws8482Processor.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws8482Processor.java
index aa9e249d3b5bd..4f7be14d2ac88 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws8482Processor.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/processor/Ws8482Processor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/PressureTrend.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/PressureTrend.java
index fdcf9966f46a6..2a83899911d59 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/PressureTrend.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/PressureTrend.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/SlidingTimeWindow.java b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/SlidingTimeWindow.java
index 9b505b5bc4187..ad5774f005da2 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/SlidingTimeWindow.java
+++ b/bundles/org.openhab.binding.ambientweather/src/main/java/org/openhab/binding/ambientweather/internal/util/SlidingTimeWindow.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/binding/binding.xml
index 6dab2a8d40971..33b4b07fe3f9b 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/binding/binding.xml
@@ -1,7 +1,7 @@
+ xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
AmbientWeather BindingThis binding supports weather stations from Ambient Weather
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/bridge-config.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/bridge-config.xml
index 5312aed8f50f3..b7700982f44dc 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/bridge-config.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/bridge-config.xml
@@ -1,7 +1,7 @@
+ xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/station-config.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/station-config.xml
index be28ead38d72e..3f8f31c13303f 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/station-config.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/config/station-config.xml
@@ -1,7 +1,7 @@
+ xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/bridge.xml
index 8c907936b54c6..bd26988812923 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/bridge.xml
@@ -1,12 +1,12 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
-
- The Ambient Weather bridge represents a connection to the Ambient Weasther service
+
+ Represents an account at Ambient Weather (ambientweather.net)
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channel-group-types.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channel-group-types.xml
index a117f09f1190f..6d9310a214598 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channel-group-types.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channel-group-types.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
@@ -29,6 +29,8 @@
Remote Sensor
+
+
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channels.xml
index 4f77c27466d31..a18e7e5860a5b 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/channels.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
String
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0265.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0265.xml
new file mode 100644
index 0000000000000..9a2a8869367fb
--- /dev/null
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0265.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+ Ambient Weather Station WS-0265
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Weather Data
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0900.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0900.xml
index 24763264a7382..c6a73c55705e6 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0900.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws0900.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws1400ip.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws1400ip.xml
index 9358902daef67..13fbd28271e10 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws1400ip.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws1400ip.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws2902a.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws2902a.xml
index 9be36d0ad092e..e91c25130d7e3 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws2902a.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws2902a.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws8482.xml b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws8482.xml
index a4328f6a1f383..11d02807e81e5 100644
--- a/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws8482.xml
+++ b/bundles/org.openhab.binding.ambientweather/src/main/resources/ESH-INF/thing/ws8482.xml
@@ -1,7 +1,7 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.astro/NOTICE b/bundles/org.openhab.binding.astro/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.astro/NOTICE
+++ b/bundles/org.openhab.binding.astro/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.astro/README.md b/bundles/org.openhab.binding.astro/README.md
index 3aa73f955beee..2de237b309078 100644
--- a/bundles/org.openhab.binding.astro/README.md
+++ b/bundles/org.openhab.binding.astro/README.md
@@ -20,7 +20,7 @@ No binding configuration required.
## Thing Configuration
-All Things require the parameter `geolocation` (as `,,[]`) for which the calculation is done.
+All Things require the parameter `geolocation` (as `,[,]`) for which the calculation is done.
The altitude segment is optional and sharpens results provided by the Radiation group.
Optionally, a refresh `interval` (in seconds) can be defined to also calculate positional data like azimuth and elevation.
@@ -159,7 +159,7 @@ astro:sun:home [ geolocation="52.5200066,13.4049540,100", interval=60 ] {
}
```
-or a offset and latest
+or an offset and latest
```
astro:sun:home [ geolocation="52.5200066,13.4049540,100", interval=60 ] {
diff --git a/bundles/org.openhab.binding.astro/pom.xml b/bundles/org.openhab.binding.astro/pom.xml
index c4b8ba4251386..64039b086689e 100644
--- a/bundles/org.openhab.binding.astro/pom.xml
+++ b/bundles/org.openhab.binding.astro/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.astro
diff --git a/bundles/org.openhab.binding.astro/src/main/feature/feature.xml b/bundles/org.openhab.binding.astro/src/main/feature/feature.xml
index 54ce647443ecb..ea697a208bd43 100644
--- a/bundles/org.openhab.binding.astro/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.astro/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroBindingConstants.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroBindingConstants.java
index db29c82d294fe..702ac09d70b71 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroBindingConstants.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroHandlerFactory.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroHandlerFactory.java
index 515fd88053408..590971da7fc6e 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroHandlerFactory.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/AstroHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java
index 69a1ce3610c9b..8da448e623289 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SeasonCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SeasonCalc.java
index d7a995486d9f5..fe8971bee9b30 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SeasonCalc.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SeasonCalc.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunCalc.java
index 4fc564b83d32f..13ecfb7096609 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunCalc.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunCalc.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java
index 63788dc6c6c73..dff40d1f70474 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroChannelConfig.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroChannelConfig.java
index 6fbcf404d85fc..e9f501829fc6a 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroChannelConfig.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroChannelConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroThingConfig.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroThingConfig.java
index 71620578074e2..ada798c0d55a1 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroThingConfig.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/config/AstroThingConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/discovery/AstroDiscoveryService.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/discovery/AstroDiscoveryService.java
index e0f215d46622a..e67a27b642c76 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/discovery/AstroDiscoveryService.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/discovery/AstroDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java
index ae50d00a9b6ae..20eb9e5543a91 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/AstroThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/MoonHandler.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/MoonHandler.java
index ae27aaf2018a6..380bbd149fd05 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/MoonHandler.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/MoonHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java
index 260a3308d3851..60fee63061ae5 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/AbstractJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/AbstractJob.java
index 50d79db2dee2e..67ecc35a226fa 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/AbstractJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/AbstractJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/CompositeJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/CompositeJob.java
index 971d14376b1fc..8d798365c621d 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/CompositeJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/CompositeJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobMoon.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobMoon.java
index 2673c70038b78..6daa1f269118f 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobMoon.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobMoon.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobSun.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobSun.java
index 89477dae19509..b8736298b1cea 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobSun.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/DailyJobSun.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/EventJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/EventJob.java
index 2a41570f019de..649654735c119 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/EventJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/EventJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java
index a472aa300ded5..9f4c0638f5059 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/Job.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PositionalJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PositionalJob.java
index 6dd2e90f8ba4a..f1caa38f612fa 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PositionalJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PositionalJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PublishPlanetJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PublishPlanetJob.java
index c77ac85a6e7d1..63eff15deabe0 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PublishPlanetJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/PublishPlanetJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/SunPhaseJob.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/SunPhaseJob.java
index b1a93065e04dd..2614190ce427d 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/SunPhaseJob.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/job/SunPhaseJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Eclipse.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Eclipse.java
index 453dd084cbb5f..e3d50dab066b1 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Eclipse.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Eclipse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Moon.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Moon.java
index 043e7bf3e46c9..0be35eeb019c5 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Moon.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Moon.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonDistance.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonDistance.java
index c6d779c73da12..9ac71887a9317 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonDistance.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonDistance.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhase.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhase.java
index 8aa2c6d69e2e5..f7bd01cfa44cd 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhase.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhase.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhaseName.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhaseName.java
index 7ac5f1d5bfc0b..465eeeecf9c26 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhaseName.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/MoonPhaseName.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Planet.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Planet.java
index c6c0ff25aaaaa..0b10b1748db2c 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Planet.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Planet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Position.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Position.java
index 959cda467075b..484749a293a15 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Position.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Position.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Radiation.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Radiation.java
index 6093da69da472..1d9a27558a757 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Radiation.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Radiation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Range.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Range.java
index 0a0dfe360a244..13a824f598f34 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Range.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Range.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/RiseSet.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/RiseSet.java
index 4a2db6f1e6aac..7c6e1ecdddac7 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/RiseSet.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/RiseSet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Season.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Season.java
index 345810c7036d7..d298aefeea07c 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Season.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Season.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SeasonName.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SeasonName.java
index 299c9028b374a..e372fcdec7578 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SeasonName.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SeasonName.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Sun.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Sun.java
index 708896475c03e..7fbd251ae888a 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Sun.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Sun.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunEclipse.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunEclipse.java
index cc1622a72d676..d936a1bea82f9 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunEclipse.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunEclipse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhase.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhase.java
index 7fb646e477c20..bc229a9099f07 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhase.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhase.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhaseName.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhaseName.java
index 588615923a36f..a1ccef050cc3e 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhaseName.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunPhaseName.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunZodiac.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunZodiac.java
index 6372f3fd57387..be331e8cb2d28 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunZodiac.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/SunZodiac.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Zodiac.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Zodiac.java
index d9db8c0959e22..c8aefbaba03d1 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Zodiac.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/Zodiac.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/ZodiacSign.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/ZodiacSign.java
index 39142c4c137d6..fbafbbe0a6e00 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/ZodiacSign.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/model/ZodiacSign.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java
index 25d0c9a27cede..dc3fbf43185ea 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/DateTimeUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java
index 02ae87577d15a..fec1cd6eac9da 100644
--- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java
+++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/moon.xml b/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/moon.xml
index 849de457b593d..7e8918b151584 100644
--- a/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/moon.xml
+++ b/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/moon.xml
@@ -5,7 +5,7 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Provides astronomical data from the moon
diff --git a/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/sun.xml b/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/sun.xml
index a0ca343e193c2..79d07f7704606 100644
--- a/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/sun.xml
+++ b/bundles/org.openhab.binding.astro/src/main/resources/ESH-INF/thing/sun.xml
@@ -5,7 +5,7 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Provides astronomical data from the sun
diff --git a/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/calc/SunCalcTest.java b/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/calc/SunCalcTest.java
index c9cfd4059a6a9..f93c5a2708b8f 100644
--- a/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/calc/SunCalcTest.java
+++ b/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/calc/SunCalcTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -36,9 +36,9 @@
*
checks if the generated {@link Sun#getAllRanges()} are consistent with
* each other
*
- *
+ *
* @author Witold Markowski - Initial contribution
- * @see [astro]
+ * @see [astro]
* Sun Phase returns UNDEF
* @see Heavens Above Sun
*/
diff --git a/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/model/SunTest.java b/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/model/SunTest.java
index 28933e87cf007..bf77b1aaa3027 100644
--- a/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/model/SunTest.java
+++ b/bundles/org.openhab.binding.astro/src/test/java/org/openhab/binding/astro/internal/model/SunTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -27,9 +27,9 @@
/***
* A set of standard unit test of {@link Sun} class. In particular it checks if
* {@link Sun#getAllRanges()} contains a correct {@link SunPhaseName}.
- *
+ *
* @author Witold Markowski - Initial contribution
- * @see [astro]
+ * @see [astro]
* Sun Phase returns UNDEF
*/
public class SunTest {
diff --git a/bundles/org.openhab.binding.atlona/NOTICE b/bundles/org.openhab.binding.atlona/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.atlona/NOTICE
+++ b/bundles/org.openhab.binding.atlona/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.atlona/README.md b/bundles/org.openhab.binding.atlona/README.md
index b4c6d9a3d6b99..668e4e0dd523d 100644
--- a/bundles/org.openhab.binding.atlona/README.md
+++ b/bundles/org.openhab.binding.atlona/README.md
@@ -1,6 +1,6 @@
# Atlona Binding
-This binding integrates Atlona AT-UHD-PRO3 HdBaseT matrix switches [Atlona AT-UHD-PRO3 HdBaseT matrix switches](http://www.atlona.com) into your openHAB installation.
+This binding integrates Atlona AT-UHD-PRO3 HdBaseT matrix switches [Atlona AT-UHD-PRO3 HdBaseT matrix switches](https://www.atlona.com) into your openHAB installation.
## Supported Things
@@ -163,24 +163,24 @@ The # of presets allowed depends on the firmware you are using (5 presets up to
The matrixcmd channel will take the following commands:
-| Command | Description |
-|-------------|---------------------------------------------------------------------------------------------------------------------------------------|
-| resetmatrix | Resets the matrix back to it's default values (USE WITH CARE!). Note: some firmware upgrades require a resetmatrix after installing. |
-| resetports | Resets the ports back to their default values (outputX=inputX) |
-| allportsX | Sets all the output ports to the input port X |
+| Command | Description |
+|-------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| resetmatrix | Resets the matrix back to its default values (USE WITH CARE!). Note: some firmware upgrades require a resetmatrix after installing. |
+| resetports | Resets the ports back to their default values (outputX=inputX) |
+| allportsX | Sets all the output ports to the input port X |
Note: if X doesn't exist - nothing will occur.
The # of presets allowed depends on the firmware you are using (5 presets up to rev 13, 10 for rev 14 and above).
## Changes/Warnings
-As of firmware 1.6.03 (rev 13), there are three issues on Atlona firmware (I've notified them on these issues):
+As of firmware 1.6.03 (rev 13), there are three issues on Atlona firmware (I have notified them on these issues):
- clearX command does not work. The TCP/IP command "ClearX" as specified in Atlona's protocol will ALWAYS return a "Command Failed". Please avoid this channel until atlona releases a new firmware.
-- There is no way to query what the current status is of: panellock, and irenable. This addon simply assumes that panellock is off and irenable is on at startup.
+- There is no way to query what the current status is of: panellock, and irenable. This add-on simply assumes that panellock is off and irenable is on at startup.
-- If you make a change in the switches UI that requires a reboot (mainly changing any of the settings on the "Network" tab in the switch configuration UI), this addon's connection will be inconsistently closed at different times.
+- If you make a change in the switches UI that requires a reboot (mainly changing any of the settings on the "Network" tab in the switch configuration UI), this add-on's connection will be inconsistently closed at different times.
The thing will go OFFLINE and then back ONLINE when the reconnect attempt is made - and then it starts all over again. Please make sure you reboot as soon as possible when the switch UI notifies you.
- a bug in the firmware will sometimes cause memory presets to disappear after a reboot
diff --git a/bundles/org.openhab.binding.atlona/pom.xml b/bundles/org.openhab.binding.atlona/pom.xml
index 8ade82b6228e5..8b4894e209dd4 100644
--- a/bundles/org.openhab.binding.atlona/pom.xml
+++ b/bundles/org.openhab.binding.atlona/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.atlona
diff --git a/bundles/org.openhab.binding.atlona/src/main/feature/feature.xml b/bundles/org.openhab.binding.atlona/src/main/feature/feature.xml
index 1ee49b503b9dc..602ed7fc48665 100644
--- a/bundles/org.openhab.binding.atlona/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.atlona/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaBindingConstants.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaBindingConstants.java
index 1a6ec68d1a50b..c4faa20669b2f 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaBindingConstants.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerCallback.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerCallback.java
index c7eb3ffb316a4..5aa63f4eb0ee3 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerCallback.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerFactory.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerFactory.java
index dda7876a0a1d5..15ebb302f4255 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerFactory.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/AtlonaHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/StatefulHandlerCallback.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/StatefulHandlerCallback.java
index 28b85571dd028..0395b8aebd827 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/StatefulHandlerCallback.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/StatefulHandlerCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/discovery/AtlonaDiscovery.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/discovery/AtlonaDiscovery.java
index 2d10e276665be..0146b870e584a 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/discovery/AtlonaDiscovery.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/discovery/AtlonaDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaCapabilities.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaCapabilities.java
index 58d5c1cf54a4e..acc689d7b972e 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaCapabilities.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaCapabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaHandler.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaHandler.java
index d045ad4ddfaaf..defa9a011881d 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaHandler.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/handler/AtlonaHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketChannelSession.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketChannelSession.java
index 5b8ac3b422d5a..bf4570248bf9c 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketChannelSession.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketChannelSession.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSession.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSession.java
index 68bdbb5693abb..cd8b3e33d3b32 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSession.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSession.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSessionListener.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSessionListener.java
index e551dd7d0b2b0..bfc66ba6fc854 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSessionListener.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketSessionListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Capabilities.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Capabilities.java
index 130064d1f9b08..91c9ba51cbc93 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Capabilities.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Capabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Config.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Config.java
index 93863f81269f9..99e0954d3724d 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Config.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Config.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Constants.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Constants.java
index ae5e3b463606c..94eda2fa6e0c9 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Constants.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Constants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Handler.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Handler.java
index f3462afe7b826..2a0b62ace3bba 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Handler.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Handler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3PortocolHandler.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3PortocolHandler.java
index 0fa8ad1937268..e2637d0e32130 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3PortocolHandler.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3PortocolHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Utilities.java b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Utilities.java
index 3db8b59d7335d..5a6f92da6649c 100644
--- a/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Utilities.java
+++ b/bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3Utilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.atlona/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.atlona/src/main/resources/ESH-INF/thing/thing-types.xml
index 5956195415af1..4bd479432f5a8 100644
--- a/bundles/org.openhab.binding.atlona/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.atlona/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -57,14 +57,14 @@
true
-
+
User Name to login with if Telnet Login is onfalsetruepassword
-
+
Password to login with if Telnet Login is onfalsetrue
@@ -82,7 +82,7 @@
true
-
+
Interval (in seconds) to try to (re)connect to the matrix10true
@@ -163,14 +163,14 @@
true
-
+
User Name to login with if Telnet Login is onfalsetruepassword
-
+
Password to login with if Telnet Login is onfalsetrue
@@ -188,7 +188,7 @@
true
-
+
Interval (in seconds) to try to (re)connect to the matrix10true
@@ -292,7 +292,7 @@
password
-
+
Password to use (if Telnet Login is ON)true
@@ -310,7 +310,7 @@
true
-
+
Interval (in seconds) to try to (re)connect10true
@@ -479,14 +479,14 @@
true
-
+
User Name to login with if Telnet Login is onfalsetruepassword
-
+
Password to login with if Telnet Login is onfalsetrue
@@ -504,7 +504,7 @@
true
-
+
Interval (in seconds) to try to (re)connect to the matrix10true
diff --git a/bundles/org.openhab.binding.autelis/NOTICE b/bundles/org.openhab.binding.autelis/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.autelis/NOTICE
+++ b/bundles/org.openhab.binding.autelis/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.autelis/README.md b/bundles/org.openhab.binding.autelis/README.md
index e6bfbeb47c686..ed592ec378f55 100644
--- a/bundles/org.openhab.binding.autelis/README.md
+++ b/bundles/org.openhab.binding.autelis/README.md
@@ -1,6 +1,7 @@
# Autelis Pool Control Binding
-Autelis manufactures a network enabled pool interface for many popular pool systems. See [the Autelis website](http://www.autelis.com) and the [Autelis Command Protocol](http://www.autelis.com/wiki/index.php?title=Pool_Control_(PI)_HTTP_Command_Reference) for more information.
+Autelis manufactures a network enabled pool interface for many popular pool systems.
+See [the Autelis website](https://www.autelis.com) and the [Autelis Command Protocol](http://www.autelis.com/wiki/index.php?title=Pool_Control_(PI)_HTTP_Command_Reference) for more information.
This binding supports:
@@ -11,7 +12,8 @@ This binding supports:
## Auto Discovery
-The binding will automatically discover Autelis controllers using UPNP. If found it will try and connect with the factory default username and password.
+The binding will automatically discover Autelis controllers using UPnP.
+If found it will try and connect with the factory default username and password.
## Binding Configuration
@@ -81,6 +83,7 @@ Pentair devices support the following channels:
| temp-pooltemp | Number |
| temp-spatemp | Number |
| temp-airtemp | Number |
+| temp-soltemp | Number |
| temp-tempunits | String |
| temp-htpump | Number |
| pump-pump1 | String |
diff --git a/bundles/org.openhab.binding.autelis/pom.xml b/bundles/org.openhab.binding.autelis/pom.xml
index bcdb4e05c8214..1478f43ce9037 100644
--- a/bundles/org.openhab.binding.autelis/pom.xml
+++ b/bundles/org.openhab.binding.autelis/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.autelis
diff --git a/bundles/org.openhab.binding.autelis/src/main/feature/feature.xml b/bundles/org.openhab.binding.autelis/src/main/feature/feature.xml
index a79992ac079d2..53541e4096688 100644
--- a/bundles/org.openhab.binding.autelis/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.autelis/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisBindingConstants.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisBindingConstants.java
index 6ddb860bc3a5e..0f50292eaab4e 100644
--- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisBindingConstants.java
+++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisHandlerFactory.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisHandlerFactory.java
index 19ba2b51b5af2..23eddd7f397c4 100644
--- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisHandlerFactory.java
+++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/AutelisHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/config/AutelisConfiguration.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/config/AutelisConfiguration.java
index 4a72ca4d054af..89216a3a36794 100644
--- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/config/AutelisConfiguration.java
+++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/config/AutelisConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/discovery/AutelisDiscoveryParticipant.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/discovery/AutelisDiscoveryParticipant.java
index 9df0b5b9e8408..25d15fc21516e 100644
--- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/discovery/AutelisDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/discovery/AutelisDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java
index bff175c48f456..ee32edaea597f 100644
--- a/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java
+++ b/bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/jandy.xml b/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/jandy.xml
index f5611427e0f46..c2dd522bbd228 100644
--- a/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/jandy.xml
+++ b/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/jandy.xml
@@ -200,7 +200,7 @@
The host name or IP address of the Autelis Controller.
-
+ network-addressThe port the Autelis Controller is listening on.
@@ -388,7 +388,7 @@
Number
-
+
Indicates what equipment is available
diff --git a/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/pentair.xml b/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/pentair.xml
index cc3127e0b271f..93e1d8f0140bc 100644
--- a/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/pentair.xml
+++ b/bundles/org.openhab.binding.autelis/src/main/resources/ESH-INF/thing/pentair.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
- A Pentair pool control thing represents a Autelis pool controller for Pentair systems
+ A Pentair pool control thing represents an Autelis pool controller for Pentair systems
@@ -127,6 +127,7 @@
+
@@ -179,7 +180,7 @@
The host name or IP address of the Autelis Controller.
-
+ network-addressThe port the Autelis Controller is listening on.
@@ -194,7 +195,7 @@
The password to use when connecting to a Autelis Controller.
-
+
Specifies the refresh interval in seconds5
@@ -335,7 +336,15 @@
Number
- The current air temperature
+ The current temperature measured by the air sensor
+ Temperature
+
+
+
+
+ Number
+
+ The current temperature measured by the solar sensorTemperature
diff --git a/bundles/org.openhab.binding.avmfritz/NOTICE b/bundles/org.openhab.binding.avmfritz/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.avmfritz/NOTICE
+++ b/bundles/org.openhab.binding.avmfritz/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.avmfritz/README.md b/bundles/org.openhab.binding.avmfritz/README.md
index e30936edb77cc..777a6a214fae6 100644
--- a/bundles/org.openhab.binding.avmfritz/README.md
+++ b/bundles/org.openhab.binding.avmfritz/README.md
@@ -1,6 +1,6 @@
# AVM FRITZ! Binding
-The binding integrates the AHA ( [AVM Home Automation](http://avm.de/ratgeber/smart-home/) ) system.
+The binding integrates the AHA ( [AVM Home Automation](https://avm.de/ratgeber/smart-home/) ) system.
## Supported Things
@@ -23,7 +23,7 @@ It only supports temperature readings.
### FRITZ!Powerline 546E
-This [powerline adapter](http://avm.de/produkte/fritzpowerline/fritzpowerline-546e/) can be used via the bridge or in stand-alone mode.
+This [powerline adapter](https://avm.de/produkte/fritzpowerline/fritzpowerline-546e/) can be used via the bridge or in stand-alone mode.
It supports switching the outlet and reading the current power, current voltage and accumulated energy consumption.
This device does not contain a temperature sensor.
**NOTE:** The `voltage` channel will be added to the thing during runtime - if the interface supports it (FRITZ!OS 7 or higher).
@@ -79,7 +79,7 @@ If correct credentials are set in the bridge configuration, connected AHA device
- `ipAddress` (mandatory), default "fritz.box"
- `protocol` (optional, "http" or "https"), default "http"
-- `port` (optional, 0 to 65335), no default (derived from protocol: 80 or 443)
+- `port` (optional, 1 to 65535), no default (derived from protocol: 80 or 443)
- `password` (optional), no default (depends on FRITZ!Box security configuration)
- `user` (optional), no default (depends on FRITZ!Box security configuration)
- `pollingInterval` (optional, 5 to 60), default 15 (in seconds)
@@ -91,7 +91,7 @@ If correct credentials are set in the bridge configuration, connected AHA device
- `ain` (optional, advanced), no default (AIN number of the device)
- `ipAddress` (mandatory), default "fritz.powerline"
- `protocol` (optional, "http" or "https"), default "http"
-- `port` (optional, 0 to 65335), no default (derived from protocol: 80 or 443)
+- `port` (optional, 1 to 65535), no default (derived from protocol: 80 or 443)
- `password` (optional), no default (depends on FRITZ!Powerline security configuration)
- `pollingInterval` (optional, 5 to 60), default 15 (in seconds)
- `asyncTimeout` (optional, 1000 to 60000), default 10000 (in milliseconds)
diff --git a/bundles/org.openhab.binding.avmfritz/pom.xml b/bundles/org.openhab.binding.avmfritz/pom.xml
index 5b11175a5f9c1..d6e8a49a94c5a 100644
--- a/bundles/org.openhab.binding.avmfritz/pom.xml
+++ b/bundles/org.openhab.binding.avmfritz/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.avmfritz
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/feature/feature.xml b/bundles/org.openhab.binding.avmfritz/src/main/feature/feature.xml
index 97e80f964bc3d..73e0fc4f79453 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzDynamicStateDescriptionProvider.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzDynamicStateDescriptionProvider.java
index b9d6a35501a83..04644aca9cfba 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzDynamicStateDescriptionProvider.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzDynamicStateDescriptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzHandlerFactory.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzHandlerFactory.java
index c88cf2ae84677..b6d2ca17d7659 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzHandlerFactory.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzTlsTrustManagerProvider.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzTlsTrustManagerProvider.java
new file mode 100644
index 0000000000000..122c0b57f6b72
--- /dev/null
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/AVMFritzTlsTrustManagerProvider.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2010-2020 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.avmfritz.internal;
+
+import javax.net.ssl.X509ExtendedTrustManager;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.io.net.http.TlsTrustManagerProvider;
+import org.eclipse.smarthome.io.net.http.TrustAllTrustMananger;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Provides a TrustManager to allow secure connections to any FRITZ!Box
+ *
+ * @author Chritoph Weitkamp - Initial Contribution
+ */
+@Component
+@NonNullByDefault
+public class AVMFritzTlsTrustManagerProvider implements TlsTrustManagerProvider {
+
+ @Override
+ public String getHostName() {
+ return "fritz.box";
+ }
+
+ @Override
+ public X509ExtendedTrustManager getTrustManager() {
+ return TrustAllTrustMananger.getInstance();
+ }
+}
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/BindingConstants.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/BindingConstants.java
index d06b02988e041..21831628cf8bb 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/BindingConstants.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/BindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzBaseModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzBaseModel.java
index 79f119d1b63d7..aa2c3f3e40212 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzBaseModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzBaseModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AlertModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AlertModel.java
index 8541ce9bce97a..09b27253e7b57 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AlertModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/AlertModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/ButtonModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/ButtonModel.java
index 618cd58c7e3f6..5b5aa6f47f3f3 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/ButtonModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/ButtonModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceListModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceListModel.java
index bc196c6b15d96..d2c52088a8cab 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceListModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceListModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceModel.java
index acfbac9e7910a..b729ad4e35040 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/DeviceModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/GroupModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/GroupModel.java
index 20e113c1ca77e..a4e3b01612c66 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/GroupModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/GroupModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModel.java
index b9870a2f7fd07..90c27cc57da72 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/PowerMeterModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/PowerMeterModel.java
index 1c76faa78f2cd..c90e50d5ec9c7 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/PowerMeterModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/PowerMeterModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/SwitchModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/SwitchModel.java
index fa65868c333ba..d6fa3473ea09c 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/SwitchModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/SwitchModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/TemperatureModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/TemperatureModel.java
index fc19426e43c59..98826ffd56d42 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/TemperatureModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/TemperatureModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/ApplyMaskListModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/ApplyMaskListModel.java
index cf560283a2001..508991e858020 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/ApplyMaskListModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/ApplyMaskListModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceListModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceListModel.java
index c0216f225c9d5..3e509e5d6621b 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceListModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceListModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceModel.java
index 56e5882cf47a6..c76c4399488f4 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/DeviceModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateListModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateListModel.java
index c7f6ae30136b5..b3be020a88df3 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateListModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateListModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateModel.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateModel.java
index 112e0be197fdd..10042d216909c 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateModel.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/ahamodel/templates/TemplateModel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzConfiguration.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzConfiguration.java
index f34e1843ef9da..9c81cec6b4cea 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzConfiguration.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzTemperatureChannelConfig.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzTemperatureChannelConfig.java
index 6d62a55201225..7e1a962f020f5 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzTemperatureChannelConfig.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/config/AVMFritzTemperatureChannelConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java
index e405c27362ac3..bbe1a73bad3bf 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzUpnpDiscoveryParticipant.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzUpnpDiscoveryParticipant.java
index 37e6abd51c2e7..f6528dd68063e 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzUpnpDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzUpnpDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java
index 6a6adc8b54f6b..c9e9a7d092068 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseThingHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseThingHandler.java
index 0f8799b23e4bb..de752c698766b 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseThingHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/BoxHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/BoxHandler.java
index 11c240c3fad6e..f364e36013be7 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/BoxHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/BoxHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/DeviceHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/DeviceHandler.java
index da862ab7e9663..68bcab484314c 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/DeviceHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/DeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/GroupHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/GroupHandler.java
index 4b746c50f206b..ba5048ef77914 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/GroupHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/GroupHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/Powerline546EHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/Powerline546EHandler.java
index 62f9d759a3e08..d9ae2584f05a6 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/Powerline546EHandler.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/Powerline546EHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaContentExchange.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaContentExchange.java
index da3578cb06764..8245c7ad8481c 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaContentExchange.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaContentExchange.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -54,7 +54,7 @@ public FritzAhaContentExchange(FritzAhaCallback callback) {
*/
@Override
public void onSuccess(Response response) {
- logger.debug("HTTP response: {}", response.getStatus());
+ logger.debug("{} response: {}", response.getRequest().getScheme().toUpperCase(), response.getStatus());
}
/**
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaWebInterface.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaWebInterface.java
index 4842ebb220193..c7fe6b40f9cd7 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaWebInterface.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/FritzAhaWebInterface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaApplyTemplateCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaApplyTemplateCallback.java
index 58fa1467145fb..0a9f15bf0f44f 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaApplyTemplateCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaApplyTemplateCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaCallback.java
index 9d469acc32f91..6383e64bf20a3 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaDiscoveryCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaDiscoveryCallback.java
index bb0dd227e9fa4..e35b97c96cf4c 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaDiscoveryCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaDiscoveryCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaReauthCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaReauthCallback.java
index aa07e29790753..bb74e93719380 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaReauthCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaReauthCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,8 +12,6 @@
*/
package org.openhab.binding.avmfritz.internal.hardware.callbacks;
-import static org.eclipse.jetty.http.HttpMethod.*;
-
import org.eclipse.jetty.http.HttpMethod;
import org.openhab.binding.avmfritz.internal.hardware.FritzAhaWebInterface;
@@ -77,7 +75,7 @@ public boolean isFinalAttempt() {
* after decremented retry counter)
*
* @param newRetryCallback
- * Callback to retry with
+ * Callback to retry with
*/
public void setRetryCallback(FritzAhaCallback newRetryCallback) {
retryCallback = newRetryCallback;
@@ -104,10 +102,15 @@ public void execute(int status, String response) {
if (retries >= 1) {
webIface.authenticate();
retries--;
- if (httpMethod == GET) {
- webIface.asyncGet(path, args, retryCallback);
- } else if (httpMethod == POST) {
- webIface.asyncPost(path, args, retryCallback);
+ switch (httpMethod) {
+ case GET:
+ webIface.asyncGet(path, args, retryCallback);
+ break;
+ case POST:
+ webIface.asyncPost(path, args, retryCallback);
+ break;
+ default:
+ break;
}
}
} else {
@@ -119,15 +122,15 @@ public void execute(int status, String response) {
* Constructor for retryable authentication
*
* @param path
- * Path to HTTP interface
+ * Path to HTTP interface
* @param args
- * Arguments to use
+ * Arguments to use
* @param webIface
- * Web interface to use
+ * Web interface to use
* @param httpMethod
- * Method used
+ * Method used
* @param retries
- * Number of retries
+ * Number of retries
*/
public FritzAhaReauthCallback(String path, String args, FritzAhaWebInterface webIface, HttpMethod httpMethod,
int retries) {
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetHeatingTemperatureCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetHeatingTemperatureCallback.java
index 616e33501d546..290d8aca7146e 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetHeatingTemperatureCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetHeatingTemperatureCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetSwitchCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetSwitchCallback.java
index 0cf7cd5e80489..d5c3e04883ec5 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetSwitchCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaSetSwitchCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateCallback.java
index b20cc1d081fd0..a98c3d6686f0d 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateTemplatesCallback.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateTemplatesCallback.java
index bfd4ffaed7fcc..31955c59bd804 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateTemplatesCallback.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/hardware/callbacks/FritzAhaUpdateTemplatesCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/util/JAXBUtils.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/util/JAXBUtils.java
old mode 100755
new mode 100644
index bbda56c8f5b7c..734333eef771e
--- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/util/JAXBUtils.java
+++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/util/JAXBUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/binding/binding.xml
index d74b552faa5cf..352d70b5eea51 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/binding/binding.xml
@@ -1,6 +1,5 @@
-
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/config/config.xml
index bb8112515d0ad..6934c281ffcf3 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/config/config.xml
@@ -19,11 +19,11 @@
network-address
-
+
The local IP address or hostname of the FRITZ!Box.fritz.box
-
+ Port of the FRITZ!Box.
@@ -85,11 +85,11 @@
network-address
-
+
The localIP address or hostname of the FRITZ!Powerline.fritz.powerline
-
+ Port of the FRITZ!Powerline.
@@ -143,7 +143,7 @@
-
+
Current temperature offset (in °C).0
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/bridge-types.xml b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/bridge-types.xml
index bb0ca0c1834a7..3baf1d84574f5 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/bridge-types.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/bridge-types.xml
@@ -2,7 +2,7 @@
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/channel-types.xml
index 7e93d6fc6e7b9..05bb38c688e88 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/channel-types.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/channel-types.xml
@@ -28,7 +28,7 @@
Contact
-
+
Device is locked for switching over external sources.Contact
@@ -118,7 +118,7 @@
String
-
+
States the mode of the radiator (ON/OFF/COMFORT/ECO/BOOST/WINDOW_OPEN).
diff --git a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/thing-types.xml
index 296af5642ddd3..b251b0fda53c8 100644
--- a/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.avmfritz/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -188,7 +188,7 @@
-
+
HAN-FUN contact (e.g. SmartHome Tür-/Fensterkontakt or SmartHome Bewegungsmelder).
@@ -206,12 +206,12 @@
-
+
HAN-FUN switch (e.g. SmartHome Wandtaster).
-
+
Triggered when a button was pressed.
diff --git a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzDeviceListModelTest.java b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzDeviceListModelTest.java
index 9c79a74dcb72a..0a743776fc6d5 100644
--- a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzDeviceListModelTest.java
+++ b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzDeviceListModelTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzTemplateListModelTest.java b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzTemplateListModelTest.java
index 6315a2ca9edf8..b00707aaad810 100644
--- a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzTemplateListModelTest.java
+++ b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/AVMFritzTemplateListModelTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModelTest.java b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModelTest.java
index 4d442592e5cd9..8292fe288cd3b 100644
--- a/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModelTest.java
+++ b/bundles/org.openhab.binding.avmfritz/src/test/java/org/openhab/binding/avmfritz/internal/ahamodel/HeatingModelTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/NOTICE b/bundles/org.openhab.binding.bigassfan/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.bigassfan/NOTICE
+++ b/bundles/org.openhab.binding.bigassfan/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.bigassfan/README.md b/bundles/org.openhab.binding.bigassfan/README.md
index 52e1a1dcd330d..e9fc5c11da12f 100644
--- a/bundles/org.openhab.binding.bigassfan/README.md
+++ b/bundles/org.openhab.binding.bigassfan/README.md
@@ -1,14 +1,39 @@
# BigAssFan Binding
-The [BigAssFan](http://www.bigassfans.com/) binding is used to enable communication between openHAB and Big Ass Fans' Haiku family of residential fans and lights that implement the SenseME technology.
+The [BigAssFan](https://www.bigassfans.com/) binding is used to enable communication between openHAB and Big Ass Fans' Haiku family of residential fans and lights that implement the SenseME technology.
## Overview
-Fans and lights are discovered dynamically.
-There is a single thing created for each fan and/or connected to the network.
+Fans, lights and controllers are discovered dynamically.
+There is a single thing created for each fan, light, or controller that's connected to the local WiFi network.
Each thing has channels that allow control of the fan and light, as well as to monitor the status.
When a fan or light is controlled from the remote control, Wall Controller, or smartphone app, the openHAB items linked to the device's channels will be updated to reflect the status.
+## Supported Things
+
+The binding currently supports the following devices.
+
+| Thing | ID | |
+|-------------|-------------|--------------------|
+| Fan | fan | BigAssFan consisting of fan and integrated LED light |
+| Light | light | Standalone LED light |
+| Controller | controller | Fan wall controller |
+
+## Thing Configuration
+
+| Parameter | Parameter ID | Required/Optional | Description |
+|--------------|---------------|-------------------|-------------|
+| Label | label | Required | Label given to device in the Haiku Smartphone app. |
+| IP Address | ipAddress | Required | IP address of the device. |
+| MAC Address | macAddress | Required | MAC address of the device. |
+
+In the event that any of this information is changed on the device, the thing configuration must be updated manually, as it cannot be determined automatically by the binding.
+
+### Manual Thing Creation
+
+Fans and lights can be manually created in the *Paper UI* or *HABmin*, or by placing a *.things* file in the *conf/things* directory.
+See example below.
+
## Device Discovery
The BigAssFan binding discovers Haiku fans and lights on the network, and creates an inbox entry for each discovered device.
@@ -22,16 +47,6 @@ To **disable** background discovery, add the following line to the *conf/service
discovery.bigassfan:background=false
```
-## Thing Configuration
-
-The device's IP address, MAC address, and name is set at time of discovery.
-However, in the event that any of this information changes, the configuration must be updated.
-
-### Manual Thing Creation
-
-Fans and lights can be manually created in the *PaperUI* or *HABmin*, or by placing a *.things* file in the *conf/things* directory.
-See example below.
-
## Channels
The following channels are supported for fans:
@@ -84,50 +99,50 @@ The following channels are supported for wall controllers:
The following item definitions would be used to control the fan.
```java
-Switch PorchFanPower { channel="bigassfan:fan:20F85EDAA56A:fan-power" }
-Dimmer PorchFanSpeed { channel="bigassfan:fan:20F85EDAA56A:fan-speed" }
-Switch PorchFanAuto { channel="bigassfan:fan:20F85EDAA56A:fan-auto" }
-Switch PorchFanWhoosh { channel="bigassfan:fan:20F85EDAA56A:fan-whoosh" }
-Switch PorchFanSleep { channel="bigassfan:fan:20F85EDAA56A:fan-sleep" }
-String PorchFanSmartmode { channel="bigassfan:fan:20F85EDAA56A:fan-smartmode" }
-Dimmer PorchFanSpeedMin { channel="bigassfan:fan:20F85EDAA56A:fan-learn-minspeed" }
-Dimmer PorchFanSpeedMax { channel="bigassfan:fan:20F85EDAA56A:fan-learn-maxspeed" }
+Switch PorchFanPower { channel="bigassfan:fan:20F85EDAA56A:fan-power" }
+Dimmer PorchFanSpeed { channel="bigassfan:fan:20F85EDAA56A:fan-speed" }
+Switch PorchFanAuto { channel="bigassfan:fan:20F85EDAA56A:fan-auto" }
+Switch PorchFanWhoosh { channel="bigassfan:fan:20F85EDAA56A:fan-whoosh" }
+Switch PorchFanSleep { channel="bigassfan:fan:20F85EDAA56A:fan-sleep" }
+String PorchFanSmartmode { channel="bigassfan:fan:20F85EDAA56A:fan-smartmode" }
+Dimmer PorchFanSpeedMin { channel="bigassfan:fan:20F85EDAA56A:fan-learn-minspeed" }
+Dimmer PorchFanSpeedMax { channel="bigassfan:fan:20F85EDAA56A:fan-learn-maxspeed" }
```
The following item definitions would be used to control the light.
```java
-Switch PorchFanLightPower { channel="bigassfan:fan:20F85EDAA56A:light-power" }
-Dimmer PorchFanLightLevel { channel="bigassfan:fan:20F85EDAA56A:light-level" }
-Switch PorchFanLightAuto { channel="bigassfan:fan:20F85EDAA56A:light-auto" }
-Switch PorchFanLightSmarter { channel="bigassfan:fan:20F85EDAA56A:light-smarter" }
-Dimmer PorchFanLightLevelMin { channel="bigassfan:fan:20F85EDAA56A:light-level-min" }
-Dimmer PorchFanLightLevelMax { channel="bigassfan:fan:20F85EDAA56A:light-level-max" }
+Switch PorchFanLightPower { channel="bigassfan:fan:20F85EDAA56A:light-power" }
+Dimmer PorchFanLightLevel { channel="bigassfan:fan:20F85EDAA56A:light-level" }
+Switch PorchFanLightAuto { channel="bigassfan:fan:20F85EDAA56A:light-auto" }
+Switch PorchFanLightSmarter { channel="bigassfan:fan:20F85EDAA56A:light-smarter" }
+Dimmer PorchFanLightLevelMin { channel="bigassfan:fan:20F85EDAA56A:light-level-min" }
+Dimmer PorchFanLightLevelMax { channel="bigassfan:fan:20F85EDAA56A:light-level-max" }
```
The following read-only items are provided by the fan.
```java
-String PorchFanLightPresent { channel="bigassfan:fan:20F85EDAA56A:light-present" }
-Switch PorchFanMotionSensor { channel="bigassfan:fan:20F85EDAA56A:motion" }
-DateTime PorchFanTime { channel="bigassfan:fan:20F85EDAA56A:time" }
+String PorchFanLightPresent { channel="bigassfan:fan:20F85EDAA56A:light-present" }
+Switch PorchFanMotionSensor { channel="bigassfan:fan:20F85EDAA56A:motion" }
+DateTime PorchFanTime { channel="bigassfan:fan:20F85EDAA56A:time" }
```
## Light Items
```java
-Switch KitchenLightPower { channel="bigassfan:light:20F85EDA87A0:light-power" }
-Dimmer KitchenLightLevel { channel="bigassfan:light:20F85EDA87A0:light-level" }
-Switch KitchenLightHue { channel="bigassfan:light:20F85EDA87A0:light-hue" }
+Switch KitchenLightPower { channel="bigassfan:light:20F85EDA87A0:light-power" }
+Dimmer KitchenLightLevel { channel="bigassfan:light:20F85EDA87A0:light-level" }
+Switch KitchenLightHue { channel="bigassfan:light:20F85EDA87A0:light-hue" }
```
The following read-only items are provided by the light.
```java
-String KitchenLightPresent { channel="bigassfan:light:20F85EDA87A0:light-present" }
-String KitchenLightColor { channel="bigassfan:light:20F85EDA87A0:light-color" }
-Switch KitchenLightMotionSensor { channel="bigassfan:light:20F85EDA87A0:motion" }
-DateTime KitchenLightTime { channel="bigassfan:light:20F85EDA87A0:time" }
+String KitchenLightPresent { channel="bigassfan:light:20F85EDA87A0:light-present" }
+String KitchenLightColor { channel="bigassfan:light:20F85EDA87A0:light-color" }
+Switch KitchenLightMotionSensor { channel="bigassfan:light:20F85EDA87A0:motion" }
+DateTime KitchenLightTime { channel="bigassfan:light:20F85EDA87A0:time" }
```
## Wall Controller Items
@@ -135,8 +150,8 @@ DateTime KitchenLightTime { channel="bigassfan:light:20F85EDA87A0:time
The following read-only items are provided by the wall controller.
```java
-Switch PorchControllerMotionSensor { channel="bigassfan:controller:20F85ED87F01:motion" }
-DateTime PorchControllerTime { channel="bigassfan:controller:20F85ED87F01:time" }
+Switch PorchControllerMotionSensor { channel="bigassfan:controller:20F85ED87F01:motion" }
+DateTime PorchControllerTime { channel="bigassfan:controller:20F85ED87F01:time" }
```
### Sitemap
@@ -165,7 +180,3 @@ The file should contain lines formatted like this.
```java
bigassfan:fan:20F85EDAA56A [ label="Porch Fan", ipAddress="192.168.12.62", macAddress="20:F8:5E:DA:A5:6A" ]
```
-
-#### Unsupported Features
-
-Standalone lights are not supported.
diff --git a/bundles/org.openhab.binding.bigassfan/pom.xml b/bundles/org.openhab.binding.bigassfan/pom.xml
index fa5590f3b57aa..8b214499065e2 100644
--- a/bundles/org.openhab.binding.bigassfan/pom.xml
+++ b/bundles/org.openhab.binding.bigassfan/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bigassfan
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/feature/feature.xml b/bundles/org.openhab.binding.bigassfan/src/main/feature/feature.xml
index 6bd5d0fb37ba7..a1fe880d1f1d2 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bigassfan/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanBindingConstants.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanBindingConstants.java
index 39570cd508ac4..7f95c40777b92 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanBindingConstants.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java
index f2b287c4d2e2e..1149975907a32 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanHandlerFactory.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanHandlerFactory.java
index ef57bb29283a9..6ccd5f6fc4b1c 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanHandlerFactory.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/BigAssFanHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDevice.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDevice.java
index 5245ebfd5c4fa..dc1123753b80d 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDevice.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDiscoveryService.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDiscoveryService.java
index 7408101965a57..c9cf1ed89ec84 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDiscoveryService.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/BigAssFanDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/DiscoveryListener.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/DiscoveryListener.java
index f1885feb75499..10bb5778c959e 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/DiscoveryListener.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/discovery/DiscoveryListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java
index 79c2b747c071a..8887aebe579a4 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/handler/BigAssFanHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/utils/BigAssFanConverter.java b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/utils/BigAssFanConverter.java
index aaaca1610d426..a2636309d0acd 100644
--- a/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/utils/BigAssFanConverter.java
+++ b/bundles/org.openhab.binding.bigassfan/src/main/java/org/openhab/binding/bigassfan/internal/utils/BigAssFanConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml b/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml
index d7fd872f525f7..d381b5d2bc373 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bluetooth.bluegiga
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/feature/feature.xml b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/feature/feature.xml
index 37c4c90553787..20d5b6946e564 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaAdapterConstants.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaAdapterConstants.java
index a07c17363543e..619a1623248d6 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaAdapterConstants.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaAdapterConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaBluetoothDevice.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaBluetoothDevice.java
index beeaaba81156d..c8a0ba8b93055 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaBluetoothDevice.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/BlueGigaBluetoothDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/handler/BlueGigaBridgeHandler.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/handler/BlueGigaBridgeHandler.java
index eaf08050e5dcf..4c5eafabc2c30 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/handler/BlueGigaBridgeHandler.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/handler/BlueGigaBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaCommand.java
index 3573b5d11df48..7e971e1251994 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaEventListener.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaEventListener.java
index 62dc80cb72ebb..852f926b45b3d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaEventListener.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaException.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaException.java
index a0c5612f8a57e..46e4e17b32ccb 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaException.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaHandlerListener.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaHandlerListener.java
index e0869e8da9a1a..cda1ff5e6644e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaHandlerListener.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaHandlerListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaPacket.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaPacket.java
index fb62787b80744..3dd1896c44b30 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaPacket.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponse.java
index f2cf9e85cb3d4..5e5c2160a39ad 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponsePackets.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponsePackets.java
index d4a432ced5432..9d57955c72fe1 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponsePackets.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaResponsePackets.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaSerialHandler.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaSerialHandler.java
index ab969b3cd3de8..3e88fb13ce98f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaSerialHandler.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/BlueGigaSerialHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeValueEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeValueEvent.java
index 178cf92134ee1..8cf9924ef1a16 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeValueEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeValueEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteCommand.java
index cb953f64cdf40..5f7ec0a11efb1 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteResponse.java
index 1198288197e7e..ec966afa67948 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaAttributeWriteResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteCommand.java
index c5915d02cb336..5a624a68071b4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteResponse.java
index ed7b7677f53f4..cec2ead41c399 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaExecuteWriteResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueCommand.java
index e62f0d444ccf2..ccf281cdd84ef 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueResponse.java
index 87946d9200162..86c96b905a826 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindByTypeValueResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationCommand.java
index 8e501d9f9eaf1..6765ada61c250 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationFoundEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationFoundEvent.java
index 3256faa515da1..e17b95d1af39f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationFoundEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationFoundEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationResponse.java
index 41a3af02f2c53..fd8dad5b61a53 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaFindInformationResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaGroupFoundEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaGroupFoundEvent.java
index c70673c573fca..0e7440f1a2381 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaGroupFoundEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaGroupFoundEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmCommand.java
index 7abf11247147b..c0e54fbb35c7a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmResponse.java
index 26e8abe360ffd..366c86e07e96d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicateConfirmResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicatedEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicatedEvent.java
index 2269224a0b693..94349ff6b0f32 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicatedEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaIndicatedEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteCommand.java
index e4545eee04876..ad232759d68e4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteResponse.java
index 2302ab2914d10..f1e11225d8482 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaPrepareWriteResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaProcedureCompletedEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaProcedureCompletedEvent.java
index 16a6505a9431b..85f261c0543bf 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaProcedureCompletedEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaProcedureCompletedEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeCommand.java
index f2475b749f640..b2193f7364d2e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeResponse.java
index d24eda841dd87..79e8fa3b6f4c8 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByGroupTypeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleCommand.java
index 2072b3866e5d9..cbc258b76f17a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleResponse.java
index 515a1ba3d1a56..75ecd0bed6605 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByHandleResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeCommand.java
index 53173543f625d..20623366ee043 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeResponse.java
index d061882e5313c..7015d38ed8892 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadByTypeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongCommand.java
index a05ae08d79028..3d989043d74ce 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongResponse.java
index fe752795fa412..a1129951639f6 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadLongResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleCommand.java
index 69a307b3b95e6..15b2b29cda71a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponse.java
index a1d788b64b2d4..06ee10b3c1ad0 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponseEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponseEvent.java
index 9f6d25c874ff4..b06960b0684e7 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponseEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaReadMultipleResponseEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandCommand.java
index adbf224817a11..41caead0acf14 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandResponse.java
index e8be148fcdcb0..79ee6a098b363 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributeclient/BlueGigaWriteCommandResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaAttributeStatusEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaAttributeStatusEvent.java
index 11c8d63487d1b..9ab1eafeb8532 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaAttributeStatusEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaAttributeStatusEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadCommand.java
index d5ca6d77001a1..fb7444bc48513 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadResponse.java
index 81221c9657606..c8dd6856fe45d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeCommand.java
index 517bbf3bf3199..93a4027f09f50 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeResponse.java
index 758e362203983..a62dd049e3431 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaReadTypeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesCommand.java
index 1de7798fc6984..6e8fbc2104354 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesResponse.java
index 86bd65b15a7a5..7244b10705ab5 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaSendAttributesResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadRequestEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadRequestEvent.java
index ae1010ea1b36f..df16c1018f81b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadRequestEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadRequestEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseCommand.java
index 95330696a3b60..16b8fb89d83cf 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseResponse.java
index 742f209ada7bb..74da2e70897aa 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserReadResponseResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseCommand.java
index 3b5ec01f95e84..90400f4b559df 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseResponse.java
index 08bd5817af7f7..9601de52efc99 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaUserWriteResponseResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaValueEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaValueEvent.java
index ad1eb5f776052..0a815e8bde105 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaValueEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaValueEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteCommand.java
index 3551214812c35..50755d781a53d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteResponse.java
index e662d1099b8d1..220972f32f8a9 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/attributedb/BlueGigaWriteResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetCommand.java
index 67c594b17eb12..927b7025d0c44 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetResponse.java
index 4ef59edbaeee4..0679e7aaad33b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaChannelMapGetResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaConnectionStatusEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaConnectionStatusEvent.java
index 40e420c82c0b9..3401ef10e02fc 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaConnectionStatusEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaConnectionStatusEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectCommand.java
index 1a4e8daa414ad..2ddd2bffc152b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectResponse.java
index 7b943148c67be..b108a187a70f3 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectedEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectedEvent.java
index f8fb3bfe6ad37..a3d3a3954addb 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectedEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaDisconnectedEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaFeatureIndEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaFeatureIndEvent.java
index ab9a48b0d39fa..b0e67213c3281 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaFeatureIndEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaFeatureIndEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiCommand.java
index 3dff0a5489f92..fd2a8ee9a9a91 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiResponse.java
index 7ea7443986e76..bcbcf35716278 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetRssiResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusCommand.java
index 207821c455d80..e0c8bf2923215 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusResponse.java
index 13d1e0c731470..57870c12d6af6 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaGetStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateCommand.java
index 21f2e2d7be1aa..5c119f632f240 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateResponse.java
index 8acb784b496eb..68e5431d44a43 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaUpdateResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaVersionIndEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaVersionIndEvent.java
index 4a33bb6b9afda..aaffb35041915 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaVersionIndEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/connection/BlueGigaVersionIndEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectCommand.java
index 0e2a94e63f978..c5e0812baac4b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectResponse.java
index a35d2a2b2adbd..30beb84ff3cbd 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectDirectResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveCommand.java
index 204d6bec60701..1021a4f1ff0d5 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveResponse.java
index f8afb2f50ab38..92f9e1587df51 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaConnectSelectiveResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverCommand.java
index a1984b4d9232f..3bca00a7abc33 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverResponse.java
index 43ebd12e3f3e8..b0f86206a724b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaDiscoverResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureCommand.java
index 113f890ddb2dc..51ae404bfcf37 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureResponse.java
index c24745791f8fb..ba3bc8a67b916 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaEndProcedureResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaScanResponseEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaScanResponseEvent.java
index d54058aa10fa3..16a8eb8e86fec 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaScanResponseEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaScanResponseEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataCommand.java
index e21a8cd9da44f..13ed72e92bf69 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataResponse.java
index bc8007f7c0eec..3c48eb69adb4b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvDataResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersCommand.java
index c583bdcb5dd5f..04cb1689e6e2c 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersResponse.java
index c0c1fe4f4f83a..1445aeec38226 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetAdvParametersResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeCommand.java
index 68fab95df40e9..3c3020b0f896a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeResponse.java
index 5646662b473d7..92ac111ba6f68 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetModeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersCommand.java
index 196a0a16de501..c9163bcaa6bc2 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersResponse.java
index e7a312bb93250..7dc257dd9fc85 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/gap/BlueGigaSetScanParametersResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondStatusEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondStatusEvent.java
index 23507311ddaa7..3802b06a7815a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondStatusEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondStatusEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondingFailEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondingFailEvent.java
index acb77830639c2..b844ba6a82108 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondingFailEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaBondingFailEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingCommand.java
index e864b7a6af7f9..c385cb7d2670f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingResponse.java
index d955f5a419799..df90fb90bcb0a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaDeleteBondingResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartCommand.java
index f1ea469fe459a..533a856d29aa4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartResponse.java
index c44633f8f3d5d..c5d8c895031fe 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaEncryptStartResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsCommand.java
index 39f9315fc3284..4cbcd2c60f28e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsResponse.java
index 8b8dee328a22e..a890daef832a9 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaGetBondsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyCommand.java
index 92e58f5fd8aa0..d076267c59b98 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyResponse.java
index 9453af16f0135..f307905a6c421 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPassKeyResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyDisplayEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyDisplayEvent.java
index 1a74c9d4dbaae..4e77874e89ff3 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyDisplayEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyDisplayEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyRequestEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyRequestEvent.java
index 644cf5c63096f..5a34be40513bf 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyRequestEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaPasskeyRequestEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeCommand.java
index 24ae53e0e65f6..c28571d33ac4d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeResponse.java
index 6afc64c8fad19..633a22dc7e459 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetBondableModeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersCommand.java
index 4301cd195b374..a16f2524f0308 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersResponse.java
index 774a2ee273f40..1004f3ca1fdbb 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaSetParametersResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsCommand.java
index 046563a9e52f8..52b4de92bcdaa 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsResponse.java
index 954a9da845d95..230e658535466 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/security/BlueGigaWhitelistBondsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetCommand.java
index 5dcac06b8caf2..0d6cb973d9c0e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetResponse.java
index 5de4c6ec225a2..ca238ce66e26e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaAddressGetResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaBootEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaBootEvent.java
index fdee13bf04ff9..c27e9d4614eb3 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaBootEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaBootEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkRxEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkRxEvent.java
index 99530be3d674c..7408c036c79eb 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkRxEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkRxEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkTxEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkTxEvent.java
index cf0f03afbb6cc..cae6da2eb2b86 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkTxEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaEndpointWatermarkTxEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsCommand.java
index 49bc0cf69c8a2..f5af500901c72 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsResponse.java
index 7f9c7035ed3a3..c7a321a3269ee 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetConnectionsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersCommand.java
index 110ebc386a0dd..6b2416c397a48 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersResponse.java
index 687ef06775cce..d3f1b9a33fa9a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetCountersResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoCommand.java
index 16186e4f9e223..d3c22ff5037d9 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoResponse.java
index f4d16922a632d..27dd4ab357730 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaGetInfoResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloCommand.java
index 4880f57361c63..ddaf2340bf43a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloResponse.java
index 2571f54f402e2..61f1fcf1492c5 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaHelloResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaNoLicenseKeyEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaNoLicenseKeyEvent.java
index 4d2143dffd1f8..2563bb35fa783 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaNoLicenseKeyEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaNoLicenseKeyEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaProtocolErrorEvent.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaProtocolErrorEvent.java
index f271b4721a49f..6a5e0b68344ee 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaProtocolErrorEvent.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaProtocolErrorEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetCommand.java
index ffdac606b09b6..82b3965c584f9 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetResponse.java
index 8f9e74875c91b..862450c90a6a3 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaResetResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendCommand.java
index a80073eecd2aa..e1585c628f9d0 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendResponse.java
index 5281501436fbb..265b97e41fb49 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistAppendResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearCommand.java
index 52f3a43471388..f1a1ab3e95563 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearResponse.java
index 5227e3f347f6e..61c88c3af611f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistClearResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveCommand.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveCommand.java
index dc8129b898d7b..267084041a63d 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveCommand.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveResponse.java
index 573deb9759a35..0b9452d6b7201 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/command/system/BlueGigaWhitelistRemoveResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirDataType.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirDataType.java
index eb207062d4337..82cf6c5168533 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirDataType.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirDataType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirFlags.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirFlags.java
index d3ebcef4088c4..7f71475cbbc4f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirFlags.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirFlags.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirPacket.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirPacket.java
index e01a2a1ebb88e..6c7b7de8da5fb 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirPacket.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecord.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecord.java
index bc215fc28f4d6..69d71bf0d6be2 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecord.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecord.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeChangeReason.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeChangeReason.java
index fa1be06ad3431..a38ce72c05cab 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeChangeReason.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeChangeReason.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeValueType.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeValueType.java
index 7bb19a2b2be66..4fff21eeb63d5 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeValueType.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/AttributeValueType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BgApiResponse.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BgApiResponse.java
index a062f79f446b0..d44c1bd2c977f 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BgApiResponse.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BgApiResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BluetoothAddressType.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BluetoothAddressType.java
index fbf9415446c48..598caf2eb4818 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BluetoothAddressType.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/BluetoothAddressType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ConnectionStatusFlag.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ConnectionStatusFlag.java
index 0068741ba862d..538de850dd64a 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ConnectionStatusFlag.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ConnectionStatusFlag.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapConnectableMode.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapConnectableMode.java
index 958cb92eb7dcb..e576b469e60a0 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapConnectableMode.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapConnectableMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverMode.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverMode.java
index a94f5977a72c9..d4b5e9d731015 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverMode.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverableMode.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverableMode.java
index 8b9b0b905ae6e..e0bad97b97e71 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverableMode.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/GapDiscoverableMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ScanResponseType.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ScanResponseType.java
index 0050de0ff1cd7..0517ef3554186 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ScanResponseType.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/ScanResponseType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/SmpIoCapabilities.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/SmpIoCapabilities.java
index 0e2c23964cd1a..3f4ece9237494 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/SmpIoCapabilities.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/enumeration/SmpIoCapabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/factory/BlueGigaHandlerFactory.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/factory/BlueGigaHandlerFactory.java
index 1d2a86d46b104..56d9ffa98e00e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/factory/BlueGigaHandlerFactory.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/main/java/org/openhab/binding/bluetooth/bluegiga/internal/factory/BlueGigaHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/src/test/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecordTest.java b/bundles/org.openhab.binding.bluetooth.bluegiga/src/test/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecordTest.java
index fcd6e843ce3b8..9a09cb8408db4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluegiga/src/test/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecordTest.java
+++ b/bundles/org.openhab.binding.bluetooth.bluegiga/src/test/java/org/openhab/binding/bluetooth/bluegiga/internal/eir/EirRecordTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -19,9 +19,12 @@
import java.util.UUID;
import org.junit.Test;
-import org.openhab.binding.bluetooth.bluegiga.internal.eir.EirDataType;
-import org.openhab.binding.bluetooth.bluegiga.internal.eir.EirRecord;
+/**
+ * Tests {@link EirRecord}.
+ *
+ * @author Kai Kreuzer - Initial contribution
+ */
public class EirRecordTest {
@SuppressWarnings("unchecked")
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/NOTICE b/bundles/org.openhab.binding.bluetooth.bluez/NOTICE
index 14d2cd35aa10f..9de2136994836 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/NOTICE
+++ b/bundles/org.openhab.binding.bluetooth.bluez/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
@@ -43,4 +43,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/README.md b/bundles/org.openhab.binding.bluetooth.bluez/README.md
index 77e347f540dcf..28b23b31b454c 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/README.md
+++ b/bundles/org.openhab.binding.bluetooth.bluez/README.md
@@ -2,9 +2,39 @@
This extension supports Bluetooth access via BlueZ on Linux (ARMv6hf).
+# Setup
+
Please note that at least BlueZ 5.43 is required, while 5.48 or above are [not (yet) supported](https://github.com/intel-iot-devkit/tinyb/issues/131) either.
-Also note that the OS user needs to be a member of the "bluetooth" group of Linux in order to have the rights to access the BlueZ stack.
+Some settings are required to ensure that openHAB has access to Bluez.
+To allow openHAB to access Bluez via dbus you need to add the following entry within your dbus configuration in `/etc/dbus-1/system.d/bluetooth.conf`
+
+```xml
+
+
+ ...
+
+
+
+
+ ...
+
+```
+
+and add openHAB to the "bluetooth" group.
+
+```shell
+sudo adduser openhab bluetooth
+```
+
+Also, in case you don't want to manually enable your bluetooth adapters with `bluetoothctl`, ensure that it's automatically enabled by setting the option `AutoEnable` in your `/etc/bluetooth/main.conf` to `true`.
+Restart running services for changes to take effect.
+
+```
+systemctl restart dbus
+systemctl restart bluetooth
+systemctl restart openhab2
+```
## Supported Things
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/pom.xml b/bundles/org.openhab.binding.bluetooth.bluez/pom.xml
index 0b5ef883b9789..74ecbc52b211b 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/pom.xml
+++ b/bundles/org.openhab.binding.bluetooth.bluez/pom.xml
@@ -1,24 +1,17 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bluetooth.bluezopenHAB Add-ons :: Bundles :: BlueZ Bluetooth Adapter
-
- org.openhab.osgiify
- intel-iot-devkit.tinyb
- 0.5.1
-
-
org.openhab.addons.bundles
@@ -30,7 +23,7 @@
org.openhab.osgiifyintel-iot-devkit.tinyb0.5.1
- provided
+ compile
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/feature/feature.xml b/bundles/org.openhab.binding.bluetooth.bluez/src/main/feature/feature.xml
index 9c1f255ac4d0a..9885924e6ef87 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZAdapterConstants.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZAdapterConstants.java
index 6ef6d804b9899..9bacff6ea89b9 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZAdapterConstants.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZAdapterConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZBluetoothDevice.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZBluetoothDevice.java
index 95bf4d39935d7..c06a3c248148e 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZBluetoothDevice.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/BlueZBluetoothDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZAdapterConfiguration.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZAdapterConfiguration.java
index 2dc3f9aca362f..43e874c230a18 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZAdapterConfiguration.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZAdapterConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZBridgeHandler.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZBridgeHandler.java
index 54bf41a03014c..181e5e84625f4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZBridgeHandler.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/handler/BlueZBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -98,7 +98,7 @@ public void initialize() {
throw new IllegalStateException("BlueZ JNI connection cannot be established.", e);
} catch (RuntimeException e) {
// we do not get anything more specific from TinyB here
- if (e.getMessage().contains("AccessDenied")) {
+ if (e.getMessage() != null && e.getMessage().contains("AccessDenied")) {
throw new IllegalStateException(
"Cannot access BlueZ stack due to permission problems. Make sure that your OS user is part of the 'bluetooth' group of BlueZ.");
} else {
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/BlueZHandlerFactory.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/BlueZHandlerFactory.java
index d0b5b3ed5d9e5..cf8029a372150 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/BlueZHandlerFactory.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/BlueZHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/discovery/BlueZDiscoveryService.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/discovery/BlueZDiscoveryService.java
index 7144d09f8a587..6e020b84c1dbf 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/discovery/BlueZDiscoveryService.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/discovery/BlueZDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -61,11 +61,11 @@ protected void startScan() {
return;
} catch (RuntimeException e) {
// we do not get anything more specific from TinyB here
- if (e.getMessage().contains("AccessDenied")) {
+ if (e.getMessage() != null && e.getMessage().contains("AccessDenied")) {
logger.warn(
"Cannot access BlueZ stack due to permission problems. Make sure that your OS user is part of the 'bluetooth' group of BlueZ.");
} else {
- logger.warn("Failed to scan for Bluetooth devices: {} ", e.getMessage(), e);
+ logger.warn("Failed to scan for Bluetooth devices", e);
}
}
}
diff --git a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/package-info.java b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/package-info.java
index 7719f7f7c9ab8..40479c28eadd4 100644
--- a/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/package-info.java
+++ b/bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/package-info.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,7 +10,8 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-@org.osgi.annotation.bundle.Header(name = org.osgi.framework.Constants.BUNDLE_NATIVECODE, value = "lib/armv6hf/libjavatinyb.so;lib/armv6hf/libtinyb.so;processor=arm;osname=linux,*")
+@org.osgi.annotation.bundle.Header(name = org.osgi.framework.Constants.BUNDLE_NATIVECODE, value = "lib/armv6hf/libjavatinyb.so;lib/armv6hf/libtinyb.so;processor=arm;osname=linux, lib/x86-64/libjavatinyb.so;lib/x86-64/libtinyb.so;processor=amd64;osname=linux, *")
+@org.osgi.annotation.bundle.Header(name = "Specification-Version", value = "0.5.0-28-gac6d308.0.5.0-28-gac6d308")
package org.openhab.binding.bluetooth.bluez;
/**
@@ -18,4 +19,4 @@
*
* @author Jan N. Klug - Initial contribution
*
- */
\ No newline at end of file
+ */
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/NOTICE b/bundles/org.openhab.binding.bluetooth.blukii/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/NOTICE
+++ b/bundles/org.openhab.binding.bluetooth.blukii/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/README.md b/bundles/org.openhab.binding.bluetooth.blukii/README.md
index 48fd2b16e6828..1d98626a2304e 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/README.md
+++ b/bundles/org.openhab.binding.bluetooth.blukii/README.md
@@ -1,6 +1,6 @@
# Blukii
-This extension adds support for [Blukii](http://www.blukii.com/) Sensor Beacons.
+This extension adds support for [Blukii](https://www.blukii.com/) Sensor Beacons.
## Supported Things
@@ -50,4 +50,4 @@ Number:Illuminance luminance "Luminance [%.0f %unit%]" { channel="
Number:Angle tiltX "Tilt (X-Axis) [%.0f %unit%]" { channel="bluetooth:blukii:hci0:beacon:tiltx" }
Number:Angle tiltY "Tilt (Y-Axis) [%.0f %unit%]" { channel="bluetooth:blukii:hci0:beacon:tilty" }
Number:Angle tiltZ "Tilt (Z-Axis) [%.0f %unit%]" { channel="bluetooth:blukii:hci0:beacon:tiltz" }
-```
\ No newline at end of file
+```
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/pom.xml b/bundles/org.openhab.binding.bluetooth.blukii/pom.xml
index e59172cb28583..b057e94babce9 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/pom.xml
+++ b/bundles/org.openhab.binding.bluetooth.blukii/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bluetooth.blukii
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/feature/feature.xml b/bundles/org.openhab.binding.bluetooth.blukii/src/main/feature/feature.xml
index 79be2a0140906..9de45bf093a61 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/BlukiiBindingConstants.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/BlukiiBindingConstants.java
index bc7ec507f2ee0..555d537ac34c8 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/BlukiiBindingConstants.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/BlukiiBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/handler/BlukiiHandler.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/handler/BlukiiHandler.java
index 64feac1d67969..90239d47e9e8a 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/handler/BlukiiHandler.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/handler/BlukiiHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiDiscoveryParticipant.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiDiscoveryParticipant.java
index 50881b15f9ad3..83ec28e117328 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiHandlerFactory.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiHandlerFactory.java
index 6486c88c4d4c7..247b04ec561e7 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiHandlerFactory.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/BlukiiHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Accelerometer.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Accelerometer.java
index 876c2fc27bbf6..33eb5e88b01c9 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Accelerometer.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Accelerometer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiData.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiData.java
index 9f6599f4f7e6d..71dab74be4caf 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiData.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiDataDecoder.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiDataDecoder.java
index 8a17a7ba99e59..4afa8504faf5c 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiDataDecoder.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/BlukiiDataDecoder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Environment.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Environment.java
index 40f194e596b63..c8b8a8d20a6ee 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Environment.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Environment.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Magnetometer.java b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Magnetometer.java
index 5671ba903664c..7ae9597d62dcf 100644
--- a/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Magnetometer.java
+++ b/bundles/org.openhab.binding.bluetooth.blukii/src/main/java/org/openhab/binding/bluetooth/blukii/internal/data/Magnetometer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/NOTICE b/bundles/org.openhab.binding.bluetooth.ruuvitag/NOTICE
index b50307325bc27..2733452284a12 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/NOTICE
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/README.md b/bundles/org.openhab.binding.bluetooth.ruuvitag/README.md
index cd29e1d7f75b4..63c9c00591893 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/README.md
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/README.md
@@ -1,6 +1,6 @@
# Ruuvi Tag
-This extension adds support for [Ruuvi Tag](http://www.ruuvitag.com/) Sensor Beacons.
+This extension adds support for [Ruuvi Tag](https://ruuvi.com/) Sensor Beacons.
## Supported Things
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml b/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml
index f4f896b160df5..d3f53a928cac0 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bluetooth.ruuvitag
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/feature/feature.xml b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/feature/feature.xml
index 8b73134128e3e..0e9d99154bb29 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagBindingConstants.java b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagBindingConstants.java
index e7e53e7e95d68..316a13777f933 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagBindingConstants.java
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagDiscoveryParticipant.java b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagDiscoveryParticipant.java
index c10ef6d3f7a6c..17f885b148e8c 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandler.java b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandler.java
index 43b80c12c3565..5b7aa963a3df4 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandler.java
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandlerFactory.java b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandlerFactory.java
index 1d73b700282a1..a595f6f97126a 100644
--- a/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandlerFactory.java
+++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/src/main/java/org/openhab/binding/bluetooth/ruuvitag/internal/RuuviTagHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/CONTRIBUTE.md b/bundles/org.openhab.binding.bluetooth/CONTRIBUTE.md
index 61e06062b4613..700b04af9ce25 100644
--- a/bundles/org.openhab.binding.bluetooth/CONTRIBUTE.md
+++ b/bundles/org.openhab.binding.bluetooth/CONTRIBUTE.md
@@ -15,13 +15,13 @@ This includes the main classes required to implement Bluetooth:
## Implementing a new Bluetooth Adapter bundle
-Bluetooth adapters are modelled as a bridge in ESH.
+Bluetooth adapters are modelled as a bridge in openHAB.
The bridge handler provides the link with the Bluetooth hardware (eg a dongle, or system Bluetooth API).
An adapter bundle needs to implement two main classes: the `BridgeHandler` which should implement `BluetoothAdapter` (any be registered as a service), and a `ThingFactory`, which is required to instantiate the handler.
The bridge handler must implement any functionality required to interface to the Bluetooth layer.
It is responsible for managing the Bluetooth scanning, device discovery (i.e. the device interrogation to get the list of services and characteristics) and reading and writing of characteristics.
-The bridge needs to manage any interaction between the interface with any things it provides – this needs to account for any constraints that a interface may impose such that things do not need to worry about any peculiarities imposed by a specific interface.
+The bridge needs to manage any interaction between the interface with any things it provides – this needs to account for any constraints that an interface may impose such that things do not need to worry about any peculiarities imposed by a specific interface.
Classes such as `BluetoothCharacteristic` or `BluetoothService` may be extended to provide additional functionality to interface to a specific library if needed.
diff --git a/bundles/org.openhab.binding.bluetooth/NOTICE b/bundles/org.openhab.binding.bluetooth/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.bluetooth/NOTICE
+++ b/bundles/org.openhab.binding.bluetooth/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.bluetooth/pom.xml b/bundles/org.openhab.binding.bluetooth/pom.xml
index 067864de9f56b..3bff93d8fab67 100644
--- a/bundles/org.openhab.binding.bluetooth/pom.xml
+++ b/bundles/org.openhab.binding.bluetooth/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bluetooth
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/feature/feature.xml b/bundles/org.openhab.binding.bluetooth/src/main/feature/feature.xml
index 66d2468568763..bb33699dbe6af 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bluetooth/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java
index 6d26814c125b4..3149716c0a52c 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BeaconBluetoothHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAdapter.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAdapter.java
index 2a9106d453e96..552bac5d4a7a2 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAdapter.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAddress.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAddress.java
index 0ab3015b22268..06bdf262f29bb 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAddress.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothAddress.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothBindingConstants.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothBindingConstants.java
index 637371fee9c96..6e9669cdef320 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothBindingConstants.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCharacteristic.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCharacteristic.java
index e5703630020a6..6cb407d2333a7 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCharacteristic.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCharacteristic.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothClass.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothClass.java
index 58787493b037c..48edfff214714 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothClass.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothClass.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompanyIdentifiers.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompanyIdentifiers.java
index 1cb2da9387b0f..627c060792f44 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompanyIdentifiers.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompanyIdentifiers.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompletionStatus.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompletionStatus.java
index 48c39c42e7369..933b8f443f8ef 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompletionStatus.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothCompletionStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDescriptor.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDescriptor.java
index 45403c44e35cc..2d406253c9c6c 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDescriptor.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDescriptor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDevice.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDevice.java
index af3222e1c0747..c64f7fa6651f3 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDevice.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDeviceListener.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDeviceListener.java
index 4f7afb3bc012b..6c58812cb33e8 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDeviceListener.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDeviceListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDiscoveryListener.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDiscoveryListener.java
index bde307cad9efc..6ab7c99194368 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDiscoveryListener.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothDiscoveryListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothService.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothService.java
index 412d4d3f75a8b..c407f6a75f3b8 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothService.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/BluetoothService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/ConnectedBluetoothHandler.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/ConnectedBluetoothHandler.java
index 03d1d8dace945..7e7dd0440ecba 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/ConnectedBluetoothHandler.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/ConnectedBluetoothHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/BluetoothDiscoveryParticipant.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/BluetoothDiscoveryParticipant.java
index 3a544af6f036b..038d25a1fdb1f 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/BluetoothDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/BluetoothDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryService.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryService.java
index 2762e326e1de2..2917ba21d9a85 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryService.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/discovery/internal/BluetoothDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/internal/BluetoothHandlerFactory.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/internal/BluetoothHandlerFactory.java
index 3f79cf4611a1d..e00e78b4d92b3 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/internal/BluetoothHandlerFactory.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/internal/BluetoothHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothConnectionStatusNotification.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothConnectionStatusNotification.java
index 29fea3e989a4a..4483f4d35d750 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothConnectionStatusNotification.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothConnectionStatusNotification.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothNotification.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothNotification.java
index 35ad0869cff93..50e9a2aefda7a 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothNotification.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothNotification.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothScanNotification.java b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothScanNotification.java
index cd39a7b00533d..d6a2a08b7e43b 100644
--- a/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothScanNotification.java
+++ b/bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/notification/BluetoothScanNotification.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/BluetoothAddressTest.java b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/BluetoothAddressTest.java
index b96b289c66cc8..b4fe82408d272 100644
--- a/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/BluetoothAddressTest.java
+++ b/bundles/org.openhab.binding.bluetooth/src/test/java/org/openhab/binding/bluetooth/BluetoothAddressTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -13,8 +13,12 @@
package org.openhab.binding.bluetooth;
import org.junit.Test;
-import org.openhab.binding.bluetooth.BluetoothAddress;
+/**
+ * Tests {@link BluetoothAddress}.
+ *
+ * @author Kai Kreuzer - Initial contribution
+ */
public class BluetoothAddressTest {
@Test(expected = IllegalArgumentException.class)
diff --git a/bundles/org.openhab.binding.boschindego/NOTICE b/bundles/org.openhab.binding.boschindego/NOTICE
index b97e7c167cd1b..496122bf2c4f3 100644
--- a/bundles/org.openhab.binding.boschindego/NOTICE
+++ b/bundles/org.openhab.binding.boschindego/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.boschindego/pom.xml b/bundles/org.openhab.binding.boschindego/pom.xml
index 93360e34df14a..175a019af0919 100644
--- a/bundles/org.openhab.binding.boschindego/pom.xml
+++ b/bundles/org.openhab.binding.boschindego/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.boschindego
@@ -15,10 +14,10 @@
- org.openhab.osgiify
- de.zazaz.iot.bosch.indego.bosch-indego-controller-lib
+ de.zazaz.iot.bosch.indego
+ bosch-indego-controller-lib0.8
- provided
+ compile
diff --git a/bundles/org.openhab.binding.boschindego/src/main/feature/feature.xml b/bundles/org.openhab.binding.boschindego/src/main/feature/feature.xml
index 7d5c0d0e4506c..22bafe1398949 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.boschindego/src/main/feature/feature.xml
@@ -1,13 +1,13 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab.tp-jacksonmvn:org.apache.httpcomponents/httpcore-osgi/4.4.9mvn:org.apache.httpcomponents/httpclient-osgi/4.5.5
- mvn:org.openhab.osgiify/de.zazaz.iot.bosch.indego.bosch-indego-controller-lib/0.8
+ mvn:commons-codec/commons-codec/1.10mvn:org.openhab.addons.bundles/org.openhab.binding.boschindego/${project.version}
diff --git a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoBindingConstants.java b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoBindingConstants.java
index 2a5c9374dff16..7a1fb6e9da62a 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoBindingConstants.java
+++ b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoHandlerFactory.java b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoHandlerFactory.java
index 231e407619166..5317c4220bc0d 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoHandlerFactory.java
+++ b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/BoschIndegoHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/IndegoStateConstants.java b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/IndegoStateConstants.java
index dc7f36002666a..5c325339aa8ee 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/IndegoStateConstants.java
+++ b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/IndegoStateConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/handler/BoschIndegoHandler.java b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/handler/BoschIndegoHandler.java
index ae60c9ea3290d..04b011f270bc2 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/handler/BoschIndegoHandler.java
+++ b/bundles/org.openhab.binding.boschindego/src/main/java/org/openhab/binding/boschindego/internal/handler/BoschIndegoHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.boschindego/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.boschindego/src/main/resources/ESH-INF/thing/thing-types.xml
index 4f0799fc1fd44..cc6798ff0179c 100644
--- a/bundles/org.openhab.binding.boschindego/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.boschindego/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -26,7 +26,7 @@
Password for the Bosch Indego account.
-
+
Specifies the refresh interval in seconds.180
@@ -35,7 +35,7 @@
Number
-
+
@@ -52,7 +52,7 @@
Number
-
+
API-code of the Indego state
@@ -90,7 +90,7 @@
Dimmer
-
+
diff --git a/bundles/org.openhab.binding.bosesoundtouch/NOTICE b/bundles/org.openhab.binding.bosesoundtouch/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/NOTICE
+++ b/bundles/org.openhab.binding.bosesoundtouch/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.bosesoundtouch/pom.xml b/bundles/org.openhab.binding.bosesoundtouch/pom.xml
index ee1fb03aa18e2..ebd0cf33d3f76 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/pom.xml
+++ b/bundles/org.openhab.binding.bosesoundtouch/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.bosesoundtouch
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/feature/feature.xml b/bundles/org.openhab.binding.bosesoundtouch/src/main/feature/feature.xml
index d2297f41f5eda..fc7d06348db1a 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/APIRequest.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/APIRequest.java
index b23189469ca04..15dd1e59a3bc1 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/APIRequest.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/APIRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -45,4 +45,4 @@ private APIRequest(String name) {
public String toString() {
return name;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/AvailableSources.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/AvailableSources.java
index a468c40ca9a37..c3ac1f63ef2ee 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/AvailableSources.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/AvailableSources.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchBindingConstants.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchBindingConstants.java
index 3845ffd5efdd1..6118940695601 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchBindingConstants.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchConfiguration.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchConfiguration.java
index 4fb45f449ac62..dede672884757 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchConfiguration.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchHandlerFactory.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchHandlerFactory.java
index 963fc92efdeb2..40904de720200 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchHandlerFactory.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotFoundException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotFoundException.java
index c0673142bc885..5a85e535388fe 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotFoundException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public BoseSoundTouchNotFoundException(String message, Throwable cause) {
public BoseSoundTouchNotFoundException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotificationChannelConfiguration.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotificationChannelConfiguration.java
index 8c6b98800a72b..a40e8b302b321 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotificationChannelConfiguration.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseSoundTouchNotificationChannelConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseStateDescriptionOptionProvider.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseStateDescriptionOptionProvider.java
index 562942e421dab..ca139fba52713 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseStateDescriptionOptionProvider.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/BoseStateDescriptionOptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/CommandExecutor.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/CommandExecutor.java
index 207f8955a4b7b..0a0e651e66fea 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/CommandExecutor.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/CommandExecutor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java
index 04754280a54b3..b8b79d18b539d 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemMaker.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemMaker.java
index e9275a03b2b5a..6b150abc801ec 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemMaker.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemMaker.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -234,4 +234,4 @@ private ContentItem getTV() throws OperationModeNotAvailableException {
}
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemNotPresetableException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemNotPresetableException.java
index 92f2607ce743e..4eedf809fe76d 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemNotPresetableException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/ContentItemNotPresetableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public ContentItemNotPresetableException(String message, Throwable cause) {
public ContentItemNotPresetableException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoInternetRadioPresetFoundException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoInternetRadioPresetFoundException.java
index 3192d6dc010d7..138250aa61d45 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoInternetRadioPresetFoundException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoInternetRadioPresetFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public NoInternetRadioPresetFoundException(String message, Throwable cause) {
public NoInternetRadioPresetFoundException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoPresetFoundException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoPresetFoundException.java
index d22d1948ae32d..d2c062e5904d1 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoPresetFoundException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoPresetFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public NoPresetFoundException(String message, Throwable cause) {
public NoPresetFoundException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoStoredMusicPresetFoundException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoStoredMusicPresetFoundException.java
index 07369e2e61294..0f059c7fdd740 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoStoredMusicPresetFoundException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/NoStoredMusicPresetFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public NoStoredMusicPresetFoundException(String message, Throwable cause) {
public NoStoredMusicPresetFoundException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeNotAvailableException.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeNotAvailableException.java
index b36d7d93c6cd5..a75d0ec4d200a 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeNotAvailableException.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeNotAvailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,4 +35,4 @@ public OperationModeNotAvailableException(String message, Throwable cause) {
public OperationModeNotAvailableException(Throwable cause) {
super(cause);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeType.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeType.java
index 0bbb44eef1a1c..65c65c217e1e4 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeType.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/OperationModeType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -49,4 +49,4 @@ private OperationModeType() {
public String toString() {
return name;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/PresetContainer.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/PresetContainer.java
index d3d60cee67272..30e75ec41575b 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/PresetContainer.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/PresetContainer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/RemoteKeyType.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/RemoteKeyType.java
index b39bcbd3d15e2..f2e4321d65d6d 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/RemoteKeyType.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/RemoteKeyType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -58,4 +58,4 @@ public String toString() {
return name;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLHandlerState.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLHandlerState.java
index e1e14fae433e0..f7ad34366cc90 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLHandlerState.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLHandlerState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseHandler.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseHandler.java
index 57d59ccc994dd..3033de1ccd132 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseHandler.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -688,4 +688,4 @@ private void updateSkipEnabled(OnOffType state) {
private void updateSkipPreviousEnabled(OnOffType state) {
handler.updateState(CHANNEL_SKIPPREVIOUSENABLED, state);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseProcessor.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseProcessor.java
index cbc6b47156db0..f4ee3762ec72d 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseProcessor.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/XMLResponseProcessor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/DiscoveryUtil.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/DiscoveryUtil.java
index 7369f2e092b84..f02491967de57 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/DiscoveryUtil.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/DiscoveryUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/SoundTouchDiscoveryParticipant.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/SoundTouchDiscoveryParticipant.java
index 578adfd507750..a01d3e2815212 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/SoundTouchDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/discovery/SoundTouchDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/handler/BoseSoundTouchHandler.java b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/handler/BoseSoundTouchHandler.java
index b318df962094b..ae9eb40a7edd7 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/handler/BoseSoundTouchHandler.java
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/java/org/openhab/binding/bosesoundtouch/internal/handler/BoseSoundTouchHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/config/config.xml
index 8450593c75016..c9160a16d4f2c 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/config/config.xml
@@ -54,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/thing/channels.xml
index 3d1d59ac051d8..ae82eee4f9267 100644
--- a/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.bosesoundtouch/src/main/resources/ESH-INF/thing/channels.xml
@@ -91,14 +91,14 @@
String
-
+
Location of current playing radio stationString
-
+
Name of current playing radio station
@@ -156,27 +156,27 @@
Switch
-
+
Current source allows ratingNumber
-
+
A selected presetable Contentitem is save as Preset with number >6Switch
-
+
Current source allows skipping to next trackSwitch
-
+
Current source allows scrolling through tracks
diff --git a/bundles/org.openhab.binding.buienradar/NOTICE b/bundles/org.openhab.binding.buienradar/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.buienradar/NOTICE
+++ b/bundles/org.openhab.binding.buienradar/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.buienradar/README.md b/bundles/org.openhab.binding.buienradar/README.md
index 03d0133d1cc2d..20eeb03f10a70 100644
--- a/bundles/org.openhab.binding.buienradar/README.md
+++ b/bundles/org.openhab.binding.buienradar/README.md
@@ -19,7 +19,7 @@ No auto-discovery is currently possible.
## Configuration of the thing
-The configuration can be done via the PaperUI web interface, or manually by adding a Thing to your `.things` file:
+The configuration can be done via the Paper UI web interface, or manually by adding a Thing to your `.things` file:
```
Thing buienradar:rain_forecast:home [ location="52.198864211111925,5.4192629660193585" ]
diff --git a/bundles/org.openhab.binding.buienradar/pom.xml b/bundles/org.openhab.binding.buienradar/pom.xml
index 7bee1270d67b7..e302c21ceff4a 100644
--- a/bundles/org.openhab.binding.buienradar/pom.xml
+++ b/bundles/org.openhab.binding.buienradar/pom.xml
@@ -1,10 +1,9 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.buienradaropenHAB Add-ons :: Bundles :: Buienradar Binding
diff --git a/bundles/org.openhab.binding.buienradar/src/main/feature/feature.xml b/bundles/org.openhab.binding.buienradar/src/main/feature/feature.xml
index 3a36188a6ae61..a5ecbeaf6b236 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.buienradar/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarBindingConstants.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarBindingConstants.java
index c3df364683531..445ed12743ef0 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarBindingConstants.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarConfiguration.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarConfiguration.java
index 601b0c74876fd..17939a5a77c10 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarConfiguration.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java
index 02dd02ff7e617..4d03395bc39c3 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandlerFactory.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandlerFactory.java
index 0354fe8f7ac5a..ffaceab04bc8c 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandlerFactory.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/BuienradarHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarParseException.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarParseException.java
index 22304027d7e49..a04bd7f5e53b6 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarParseException.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarParseException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarPredictionAPI.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarPredictionAPI.java
index 529d8f3ad8340..67e007da3cf0d 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarPredictionAPI.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/BuienradarPredictionAPI.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/Prediction.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/Prediction.java
index 8aabe8d33c7de..c6d5e7ab7fd70 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/Prediction.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/Prediction.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/PredictionAPI.java b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/PredictionAPI.java
index 18f3ea978281a..fba5737e3972e 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/PredictionAPI.java
+++ b/bundles/org.openhab.binding.buienradar/src/main/java/org/openhab/binding/buienradar/internal/buienradarapi/PredictionAPI.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/binding/binding.xml
index 5fb8b6e93f664..7467ff2d25851 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/binding/binding.xml
@@ -1,7 +1,7 @@
+ xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
Buienradar BindingThe Buienradar Binding periodically (5 minutes) retrieves results from the Buienradar API. For personal use only.
diff --git a/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/thing/thing-types.xml
index 0ff4e018c8c02..9331977e8d02b 100644
--- a/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.buienradar/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -1,12 +1,11 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
-
+
Does a simple rain forecast at the specified longitude/latitude of
two hours, in 5 minute increments using the buienradar.nl webservice.
@@ -47,7 +46,7 @@
-
+
Refresh interval in minutes5
@@ -76,7 +75,7 @@
Number:Speed
-
+
Current rainfall
diff --git a/bundles/org.openhab.binding.buienradar/src/test/java/org/openhab/binding/buienradar/BuienradarPredictionAPITest.java b/bundles/org.openhab.binding.buienradar/src/test/java/org/openhab/binding/buienradar/BuienradarPredictionAPITest.java
index f60a5e329d85b..5ccec06efbf87 100644
--- a/bundles/org.openhab.binding.buienradar/src/test/java/org/openhab/binding/buienradar/BuienradarPredictionAPITest.java
+++ b/bundles/org.openhab.binding.buienradar/src/test/java/org/openhab/binding/buienradar/BuienradarPredictionAPITest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -24,6 +24,11 @@
import org.openhab.binding.buienradar.internal.buienradarapi.BuienradarPredictionAPI;
import org.openhab.binding.buienradar.internal.buienradarapi.Prediction;
+/**
+ * Tests {@link BuienradarPredictionAPI}.
+ *
+ * @author Edwin de Jong - Initial contribution
+ */
public class BuienradarPredictionAPITest {
private static final ZonedDateTime NOW = ZonedDateTime.of(2019, 3, 10, 20, 37, 0, 0, ZoneId.of("Europe/Amsterdam"));
diff --git a/bundles/org.openhab.binding.chromecast/NOTICE b/bundles/org.openhab.binding.chromecast/NOTICE
index 64345eb4919d9..7f3293872baf9 100644
--- a/bundles/org.openhab.binding.chromecast/NOTICE
+++ b/bundles/org.openhab.binding.chromecast/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.chromecast/pom.xml b/bundles/org.openhab.binding.chromecast/pom.xml
index 8e6917bfb1ec0..0e025eadec2f0 100644
--- a/bundles/org.openhab.binding.chromecast/pom.xml
+++ b/bundles/org.openhab.binding.chromecast/pom.xml
@@ -1,24 +1,51 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.chromecastopenHAB Add-ons :: Bundles :: Chromecast Binding
+
+ jackson-core,jackson-annotations,jackson-databind
+
+
su.litvak.chromecastapi-v2
- 0.11.1
- provided
+ 0.11.2
+ compile
+
+
+ com.google.protobuf
+ protobuf-java
+ 2.6.0
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.9.9
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.9.9
+ compile
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.9.9
+ compile
diff --git a/bundles/org.openhab.binding.chromecast/src/main/feature/feature.xml b/bundles/org.openhab.binding.chromecast/src/main/feature/feature.xml
index fd3a96e1c588d..d2722594f1652 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.chromecast/src/main/feature/feature.xml
@@ -1,13 +1,11 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab-transport-mdnsopenhab.tp-jackson
- mvn:com.google.protobuf/protobuf-java/2.6.0
- mvn:su.litvak.chromecast/api-v2/0.11.1mvn:org.openhab.addons.bundles/org.openhab.binding.chromecast/${project.version}
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastAudioSink.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastAudioSink.java
index cc415a8c8747a..cad428ccc4edf 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastAudioSink.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastAudioSink.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -20,6 +20,7 @@
import org.eclipse.smarthome.core.audio.FixedLengthAudioStream;
import org.eclipse.smarthome.core.audio.URLAudioStream;
import org.eclipse.smarthome.core.audio.UnsupportedAudioFormatException;
+import org.eclipse.smarthome.core.library.types.OnOffType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,30 +42,37 @@ public ChromecastAudioSink(ChromecastCommander commander, AudioHTTPServer audioH
}
public void process(AudioStream audioStream) throws UnsupportedAudioFormatException {
- String url;
- if (audioStream instanceof URLAudioStream) {
- // it is an external URL, the speaker can access it itself and play it.
- URLAudioStream urlAudioStream = (URLAudioStream) audioStream;
- url = urlAudioStream.getURL();
+ if (audioStream == null) {
+ // in case the audioStream is null, this should be interpreted as a request to end any currently playing
+ // stream.
+ logger.trace("Stop currently playing stream.");
+ commander.handleStop(OnOffType.ON);
} else {
- if (callbackUrl != null) {
- // we serve it on our own HTTP server
- String relativeUrl;
- if (audioStream instanceof FixedLengthAudioStream) {
- relativeUrl = audioHTTPServer.serve((FixedLengthAudioStream) audioStream, 10);
+ String url;
+ if (audioStream instanceof URLAudioStream) {
+ // it is an external URL, the speaker can access it itself and play it.
+ URLAudioStream urlAudioStream = (URLAudioStream) audioStream;
+ url = urlAudioStream.getURL();
+ } else {
+ if (callbackUrl != null) {
+ // we serve it on our own HTTP server
+ String relativeUrl;
+ if (audioStream instanceof FixedLengthAudioStream) {
+ relativeUrl = audioHTTPServer.serve((FixedLengthAudioStream) audioStream, 10);
+ } else {
+ relativeUrl = audioHTTPServer.serve(audioStream);
+ }
+ url = callbackUrl + relativeUrl;
} else {
- relativeUrl = audioHTTPServer.serve(audioStream);
+ logger.warn("We do not have any callback url, so Chromecast cannot play the audio stream!");
+ return;
}
- url = callbackUrl + relativeUrl;
- } else {
- logger.warn("We do not have any callback url, so Chromecast cannot play the audio stream!");
- return;
}
- }
- String mimeType = Objects.equals(audioStream.getFormat().getCodec(), AudioFormat.CODEC_MP3) ? "audio/mpeg"
- : "audio/wav";
+ String mimeType = Objects.equals(audioStream.getFormat().getCodec(), AudioFormat.CODEC_MP3) ? "audio/mpeg"
+ : "audio/wav";
- commander.playMedia("Notification", url, mimeType);
+ commander.playMedia("Notification", url, mimeType);
+ }
}
}
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastBindingConstants.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastBindingConstants.java
index 4adf6a0fd549e..82e3d15c3ab10 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastBindingConstants.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastCommander.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastCommander.java
index 7b7c6737fb6f5..23c3584a24be3 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastCommander.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastCommander.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -172,7 +172,7 @@ private void handleControl(final Command command) {
}
}
- private void handleStop(final Command command) {
+ public void handleStop(final Command command) {
if (command == OnOffType.ON) {
try {
chromeCast.stopApp();
@@ -255,8 +255,8 @@ private void stopMediaPlayerApp() {
chromeCast.stopApp();
logger.debug("Media player app stopped");
}
- } catch (final Exception e) {
- logger.debug("Failed stopping media player app: {}", e);
+ } catch (final IOException e) {
+ logger.debug("Failed stopping media player app", e);
}
}
}
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastEventReceiver.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastEventReceiver.java
index 6f5270a604925..85c74702bda2b 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastEventReceiver.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastEventReceiver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastScheduler.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastScheduler.java
index d0f440a43666e..eb071b113d082 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastScheduler.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastScheduler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastStatusUpdater.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastStatusUpdater.java
index 879f5172db92a..cc48007d832f4 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastStatusUpdater.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastStatusUpdater.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -257,7 +257,8 @@ private void updateImage(Map metadata) {
}
if (callback.isLinked(CHANNEL_IMAGE)) {
- callback.updateState(CHANNEL_IMAGE, imageSrc == null ? UNDEF : HttpUtil.downloadImage(imageSrc));
+ State image = imageSrc == null ? UNDEF : HttpUtil.downloadImage(imageSrc);
+ callback.updateState(CHANNEL_IMAGE, image == null ? UNDEF : image);
}
}
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/discovery/ChromecastDiscoveryParticipant.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/discovery/ChromecastDiscoveryParticipant.java
index d77bb4e687bd9..1d9c161db2b36 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/discovery/ChromecastDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/discovery/ChromecastDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/factory/ChromecastHandlerFactory.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/factory/ChromecastHandlerFactory.java
index 3073daf74e216..0fd92389800a1 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/factory/ChromecastHandlerFactory.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/factory/ChromecastHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/handler/ChromecastHandler.java b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/handler/ChromecastHandler.java
index 79c247b72d8f4..74bdfd691eec4 100644
--- a/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/handler/ChromecastHandler.java
+++ b/bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/handler/ChromecastHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/NOTICE b/bundles/org.openhab.binding.cm11a/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.cm11a/NOTICE
+++ b/bundles/org.openhab.binding.cm11a/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.cm11a/README.md b/bundles/org.openhab.binding.cm11a/README.md
index 0e911ad3e65d3..298836421e1ab 100644
--- a/bundles/org.openhab.binding.cm11a/README.md
+++ b/bundles/org.openhab.binding.cm11a/README.md
@@ -89,6 +89,6 @@ DimmerA2 "Porch lights" (someGroup) { channel="cm11a:dimmer:MyCm11a
## References
-1. [CM11A (X10) Protocol Document](http://wanderingsamurai.net/electronics/cm11a-x10-protocol-document)
-2. [Heyu - control software for the cm11a](http://www.heyu.org/)
+1. [CM11A (X10) Protocol Document](https://wanderingsamurai.net/electronics/cm11a-x10-protocol-document)
+2. [Heyu - control software for the cm11a](https://www.heyu.org/)
3. cm11a Controllers are available for purchase from several sites on the internet
diff --git a/bundles/org.openhab.binding.cm11a/pom.xml b/bundles/org.openhab.binding.cm11a/pom.xml
index 84a927a41ba50..235a1d376d9ec 100644
--- a/bundles/org.openhab.binding.cm11a/pom.xml
+++ b/bundles/org.openhab.binding.cm11a/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.cm11a
diff --git a/bundles/org.openhab.binding.cm11a/src/main/feature/feature.xml b/bundles/org.openhab.binding.cm11a/src/main/feature/feature.xml
index 45545e930829a..18a0f4dcce5ad 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.cm11a/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/CM11ABindingConstants.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/CM11ABindingConstants.java
index 68b24d50785a9..80a5a72e87108 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/CM11ABindingConstants.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/CM11ABindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/Cm11aHandlerFactory.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/Cm11aHandlerFactory.java
index 89020bcc914dc..ceba2e9f4adc7 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/Cm11aHandlerFactory.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/Cm11aHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/InvalidAddressException.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/InvalidAddressException.java
index 28ac8ae035f0f..1232884e13cce 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/InvalidAddressException.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/InvalidAddressException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10Interface.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10Interface.java
index 17fb9bcbcbc64..9560b33f3c585 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10Interface.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10Interface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10ReceivedData.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10ReceivedData.java
index eec173c4ece0c..d3e271cc22ced 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10ReceivedData.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/X10ReceivedData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/config/Cm11aConfig.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/config/Cm11aConfig.java
index 3b35ceea17999..d7dacf5e2751c 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/config/Cm11aConfig.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/config/Cm11aConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aAbstractHandler.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aAbstractHandler.java
index dac86358c43a0..32089eb176e97 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aAbstractHandler.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aAbstractHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aApplianceHandler.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aApplianceHandler.java
index 174696a7d0555..c85cd19f54e45 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aApplianceHandler.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aApplianceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aBridgeHandler.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aBridgeHandler.java
index 21124a4299218..1ba1242651063 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aBridgeHandler.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aLampHandler.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aLampHandler.java
index 66de2c1cea7c8..d168f1bc8bd1f 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aLampHandler.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/Cm11aLampHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/ReceivedDataListener.java b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/ReceivedDataListener.java
index dcfb5f789bf43..e09e79e591a2e 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/ReceivedDataListener.java
+++ b/bundles/org.openhab.binding.cm11a/src/main/java/org/openhab/binding/cm11a/internal/handler/ReceivedDataListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.cm11a/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.cm11a/src/main/resources/ESH-INF/thing/thing-types.xml
index 3e1754f83fbb8..99a27a40b31ee 100644
--- a/bundles/org.openhab.binding.cm11a/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.cm11a/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -6,17 +6,17 @@
-
+
CM11 is a device that allows control of X10 devices for a computer.
-
+
serial-portSerial port used to communicate with the CM11a
-
+
Specifies the refresh interval in seconds.60
@@ -38,7 +38,7 @@
-
+
Address of dimmer in the X10 system
@@ -59,7 +59,7 @@
-
+
Address of switch in the X10 system
diff --git a/bundles/org.openhab.binding.coolmasternet/NOTICE b/bundles/org.openhab.binding.coolmasternet/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.coolmasternet/NOTICE
+++ b/bundles/org.openhab.binding.coolmasternet/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.coolmasternet/pom.xml b/bundles/org.openhab.binding.coolmasternet/pom.xml
index d70eb1db7e37c..2d7be14641163 100644
--- a/bundles/org.openhab.binding.coolmasternet/pom.xml
+++ b/bundles/org.openhab.binding.coolmasternet/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.coolmasternet
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/feature/feature.xml b/bundles/org.openhab.binding.coolmasternet/src/main/feature/feature.xml
index f92aeb6b4b5ca..419f735e4e4ab 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/ControllerHandler.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/ControllerHandler.java
index 703fbe03dfb85..f92c4239353b0 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/ControllerHandler.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/ControllerHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetBindingConstants.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetBindingConstants.java
index 382d0971d8aa6..857fa0aa0b4ea 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetBindingConstants.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetHandlerFactory.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetHandlerFactory.java
index f5f5faeb802c2..2fa4ae89dffde 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetHandlerFactory.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/CoolMasterNetHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/ControllerConfiguration.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/ControllerConfiguration.java
index c99ec54b13013..6f559dd232325 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/ControllerConfiguration.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/ControllerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/HVACConfiguration.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/HVACConfiguration.java
index 7e7013ae5b83f..5c46a50418b8f 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/HVACConfiguration.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/config/HVACConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/handler/HVACHandler.java b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/handler/HVACHandler.java
index 0af4a9fe34d35..0aa4b8b279f30 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/handler/HVACHandler.java
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/java/org/openhab/binding/coolmasternet/internal/handler/HVACHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.coolmasternet/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.coolmasternet/src/main/resources/ESH-INF/thing/thing-types.xml
index 09cb953bb4157..3ac019c18fb18 100644
--- a/bundles/org.openhab.binding.coolmasternet/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.coolmasternet/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -24,7 +24,7 @@
-
+
Frequency to poll the controller for updates, in seconds. Defaults to every 5 seconds.5false
diff --git a/bundles/org.openhab.binding.daikin/NOTICE b/bundles/org.openhab.binding.daikin/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.daikin/NOTICE
+++ b/bundles/org.openhab.binding.daikin/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.daikin/README.md b/bundles/org.openhab.binding.daikin/README.md
index 1bd8508117be7..e95b4cbde4271 100644
--- a/bundles/org.openhab.binding.daikin/README.md
+++ b/bundles/org.openhab.binding.daikin/README.md
@@ -1,14 +1,17 @@
# Daikin Binding
-The Daikin binding allows you to control your Daikin air conditioning units with openHAB. In order to do so, your Daikin air conditioning unit must have a BRP072A42 or BRP15B61 WiFi adapter installed.
+The Daikin binding allows you to control your Daikin air conditioning units with openHAB.
+In order to do so, your Daikin air conditioning unit must have a BRP072A42 or BRP15B61 WiFi adapter installed.
## Supported Things
-Daikin air conditioning units with a BRP072A42 or BRP15B61 installed. This may work with the older KRP series of wired adapters, but has not been tested with them.
+Daikin air conditioning units with a BRP072A42 or BRP15B61 installed.
+This may work with the older KRP series of wired adapters, but has not been tested with them.
## Discovery
-This addon will broadcast messages on your local network looking for Daikin air conditioning units and adding them to the queue of new items discovered. You can also manually add a new item if you know the IP address.
+This add-on will broadcast messages on your local network looking for Daikin air conditioning units and adding them to the queue of new items discovered.
+You can also manually add a new item if you know the IP address.
## Thing Configuration
@@ -88,7 +91,7 @@ Selection item=DaikinACUnit_Mode mappings=["AUTO"="Auto", "DEHUMIDIFIER"="Dehumi
Selection item=DaikinACUnit_Fan mappings=["AUTO"="Auto", "SILENCE"="Silence", "LEVEL_1"="Level 1", "LEVEL_2"="Level 2", "LEVEL_3"="Level 3", "LEVEL_4"="Level 4", "LEVEL_5"="Level 5"] visibility=[DaikinACUnit_Power==ON]
Text item=DaikinACUnit_IndoorTemperature
Text item=DaikinACUnit_OutdoorTemperature
-# Additional items for BRP1B61
+# Additional items for BRP15B61
Switch item=DaikinACUnit_Zone1 visibility=[DaikinACUnit_Power==ON]
Switch item=DaikinACUnit_Zone2 visibility=[DaikinACUnit_Power==ON]
Switch item=DaikinACUnit_Zone3 visibility=[DaikinACUnit_Power==ON]
diff --git a/bundles/org.openhab.binding.daikin/pom.xml b/bundles/org.openhab.binding.daikin/pom.xml
index 3e6ef6b908e49..a917419470ccc 100644
--- a/bundles/org.openhab.binding.daikin/pom.xml
+++ b/bundles/org.openhab.binding.daikin/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.daikin
diff --git a/bundles/org.openhab.binding.daikin/src/main/feature/feature.xml b/bundles/org.openhab.binding.daikin/src/main/feature/feature.xml
index 26cb87e648c4d..0406457d131c1 100644
--- a/bundles/org.openhab.binding.daikin/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.daikin/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinBindingConstants.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinBindingConstants.java
index db66c28027d7d..278b5297d6f6b 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinBindingConstants.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinCommunicationException.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinCommunicationException.java
index ebae7cda0deec..eff77e990bf5a 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinCommunicationException.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinCommunicationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinHandlerFactory.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinHandlerFactory.java
index d3233fae08de8..c0ddb5a1a77ee 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinHandlerFactory.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java
index 5e7194c9dc5ca..6a776d728c222 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/DaikinWebTargets.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/ControlInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/ControlInfo.java
index ac30c22a7c8f5..3f2a1cce57ebe 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/ControlInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/ControlInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java
index c363e18b0f8c4..fd356b0400aee 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/Enums.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/SensorInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/SensorInfo.java
index 459222d6573bf..d4124016565ff 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/SensorInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/SensorInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseBasicInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseBasicInfo.java
index 4e30cade0f706..603bbd0b22f47 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseBasicInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseBasicInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseControlInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseControlInfo.java
index 4311c629acc52..9560ffcf197b0 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseControlInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseControlInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseEnums.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseEnums.java
index ea80a9bb27227..dc196ad6f8a66 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseEnums.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseEnums.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseModelInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseModelInfo.java
index 504000b15bbd2..2f8fddc37c907 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseModelInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseModelInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseZoneInfo.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseZoneInfo.java
index 28ecd880375c5..d3114efc7cf69 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseZoneInfo.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/api/airbase/AirbaseZoneInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/config/DaikinConfiguration.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/config/DaikinConfiguration.java
index ccb1ba3c1e7c1..ccdbc33a759bb 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/config/DaikinConfiguration.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/config/DaikinConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/discovery/DaikinACUnitDiscoveryService.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/discovery/DaikinACUnitDiscoveryService.java
index a31e9cb50b490..2076bbdc6ebc8 100644
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/discovery/DaikinACUnitDiscoveryService.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/discovery/DaikinACUnitDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/handler/DaikinAcUnitHandler.java b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/handler/DaikinAcUnitHandler.java
old mode 100644
new mode 100755
index ee6eb93d0b06b..7ad1938a80124
--- a/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/handler/DaikinAcUnitHandler.java
+++ b/bundles/org.openhab.binding.daikin/src/main/java/org/openhab/binding/daikin/internal/handler/DaikinAcUnitHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -136,7 +136,7 @@ private void handleCommandInternal(ChannelUID channelUID, Command command) throw
return;
}
}
- logger.warn("Received command of wrong type for thing '{}' on channel {}", thing.getUID().getAsString(),
+ logger.debug("Received command ({}) of wrong type for thing '{}' on channel {}", command, thing.getUID().getAsString(),
channelUID.getId());
}
diff --git a/bundles/org.openhab.binding.daikin/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.daikin/src/main/resources/ESH-INF/thing/thing-types.xml
index 07666ceeaf24e..5e7f1d4b85c5a 100644
--- a/bundles/org.openhab.binding.daikin/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.daikin/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -98,7 +98,7 @@
-
+ StringCurrent fan speed setting of the AC unit
@@ -115,7 +115,7 @@
-
+ StringCurrent fan swing setting of the AC unit
diff --git a/bundles/org.openhab.binding.darksky/NOTICE b/bundles/org.openhab.binding.darksky/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.darksky/NOTICE
+++ b/bundles/org.openhab.binding.darksky/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.darksky/README.md b/bundles/org.openhab.binding.darksky/README.md
index 24543e9401dee..b443e1b2e0451 100644
--- a/bundles/org.openhab.binding.darksky/README.md
+++ b/bundles/org.openhab.binding.darksky/README.md
@@ -29,10 +29,10 @@ Once the system location will be changed, the background discovery updates the c
### Dark Sky Account
| Parameter | Description |
-|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| apikey | API key to access the Dark Sky API. **Mandatory** |
-| refreshInterval | Specifies the refresh interval (in minutes). Optional, the default value is 60, the minimum value is 1. Note: when using a free API key (1000 calls/day), do not use an interval less than 2. |
-| language | Language to be used by the Dark Sky API. Optional, valid values are: `ar`, `az`, `be`, `bg`, `bs`, `ca`, `cs`, `da`, `de`, `el`, `en`, `es`, `et`, `fi`, `fr`, `he`, `hr`, `hu`, `id`, `is`, `it`, `ja`, `ka`, `ko`, `kw`, `lv`, `nb`, `nl`, `no`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `sr`, `sv`, `tet`, `tr`, `uk`, `x-pig-latin`, `zh`, `zh-tw`. |
+| apikey | API key to access the Dark Sky API. **Mandatory** |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| refreshInterval | Specifies the refresh interval (in minutes). Optional, the default value is 60, the minimum value is 1. Note: when using a free API key (1000 calls/day), do not use an interval less than 2. |
+| language | Language to be used by the Dark Sky API. Optional, valid values are: `ar`, `az`, `be`, `bg`, `bn`, `bs`, `ca`, `cs`, `da`, `de`, `el`, `en`, `eo`, `es`, `et`, `fi`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `is`, `it`, `ja`, `ka`, `ko`, `kn`, `kw`, `lv`, `mr`, `nb`, `nl`, `no`, `pa`, `pl`, `pt`, `ro`, `ru`, `sk`, `sl`, `sr`, `sv`, `ta`, `te`, `tet`, `tr`, `uk`, `x-pig-latin`, `zh`, `zh-tw`. |
### Current Weather And Forecast
@@ -49,76 +49,80 @@ Once one of the parameters `forecastHours`, `forecastDays` or `numberOfAlerts` w
### Current Weather
-| Channel Group ID | Channel ID | Item Type | Description |
-|------------------|--------------------|----------------------|-------------------------------------------------------------------------|
-| current | time-stamp | DateTime | Time of data observation. |
-| current | condition | String | Current weather condition. |
-| current | icon | Image | Icon representing the current weather condition. |
-| current | icon-id | String | Id of the icon representing the current weather condition. **Advanced** |
-| current | temperature | Number:Temperature | Current temperature. |
-| current | pressure | Number:Pressure | Current barometric pressure. |
-| current | humidity | Number:Dimensionless | Current atmospheric humidity. |
-| current | wind-speed | Number:Speed | Current wind speed. |
-| current | wind-direction | Number:Angle | Current wind direction. |
-| current | gust-speed | Number:Speed | Current gust speed. **Advanced** |
-| current | cloudiness | Number:Dimensionless | Current cloudiness. |
-| current | visibility | Number:Length | Current visibility. |
-| current | rain | Number:Speed | Current rain intensity. |
-| current | snow | Number:Speed | Current snow intensity. |
-| current | precip-intensity | Number:Speed | Current precipitation intensity. |
-| current | precip-probability | Number:Dimensionless | Current precipitation probability. |
-| current | precip-type | String | Current precipitation type (Rain, Snow or Sleet). |
-| current | uvindex | Number | Current UV index. |
-| current | ozone | Number:ArealDensity | Current ozone. |
+| Channel Group ID | Channel ID | Item Type | Description |
+|------------------|----------------------|----------------------|-------------------------------------------------------------------------|
+| current | time-stamp | DateTime | Time of data observation. |
+| current | condition | String | Current weather condition. |
+| current | icon | Image | Icon representing the current weather condition. |
+| current | icon-id | String | Id of the icon representing the current weather condition. **Advanced** |
+| current | temperature | Number:Temperature | Current temperature. |
+| current | apparent-temperature | Number:Temperature | Current apparent temperature. |
+| current | pressure | Number:Pressure | Current barometric pressure. |
+| current | humidity | Number:Dimensionless | Current atmospheric humidity. |
+| current | wind-speed | Number:Speed | Current wind speed. |
+| current | wind-direction | Number:Angle | Current wind direction. |
+| current | gust-speed | Number:Speed | Current gust speed. **Advanced** |
+| current | cloudiness | Number:Dimensionless | Current cloudiness. |
+| current | visibility | Number:Length | Current visibility. |
+| current | rain | Number:Speed | Current rain intensity. |
+| current | snow | Number:Speed | Current snow intensity. |
+| current | precip-intensity | Number:Speed | Current precipitation intensity. |
+| current | precip-probability | Number:Dimensionless | Current precipitation probability. |
+| current | precip-type | String | Current precipitation type (Rain, Snow or Sleet). |
+| current | uvindex | Number | Current UV index. |
+| current | ozone | Number:ArealDensity | Current ozone. |
### Hourly Forecast
-| Channel Group ID | Channel ID | Item Type | Description |
-|-------------------------------------------------------|--------------------|----------------------|------------------------------------------------------|
-| forecastHours01, forecastHours02, ... forecastHours48 | time-stamp | DateTime | Time of data forecasted. |
-| forecastHours01, forecastHours02, ... forecastHours48 | condition | String | Forecast weather condition. |
-| forecastHours01, forecastHours02, ... forecastHours48 | icon | Image | Icon representing the forecasted weather condition. |
-| forecastHours01, forecastHours02, ... forecastHours48 | icon-id | String | Id of the forecasted weather condition. **Advanced** |
-| forecastHours01, forecastHours02, ... forecastHours48 | temperature | Number:Temperature | Forecasted temperature. |
-| forecastHours01, forecastHours02, ... forecastHours48 | pressure | Number:Pressure | Forecasted barometric pressure. |
-| forecastHours01, forecastHours02, ... forecastHours48 | humidity | Number:Dimensionless | Forecasted atmospheric humidity. |
-| forecastHours01, forecastHours02, ... forecastHours48 | wind-speed | Number:Speed | Forecasted wind speed. |
-| forecastHours01, forecastHours02, ... forecastHours48 | wind-direction | Number:Angle | Forecasted wind direction. |
-| forecastHours01, forecastHours02, ... forecastHours48 | gust-speed | Number:Speed | Forecasted gust speed. **Advanced** |
-| forecastHours01, forecastHours02, ... forecastHours48 | cloudiness | Number:Dimensionless | Forecasted cloudiness. |
-| forecastHours01, forecastHours02, ... forecastHours48 | visibility | Number:Length | Forecasted visibility. |
-| forecastHours01, forecastHours02, ... forecastHours48 | rain | Number:Speed | Forecasted rain intensity. |
-| forecastHours01, forecastHours02, ... forecastHours48 | snow | Number:Speed | Forecasted snow intensity. |
-| forecastHours01, forecastHours02, ... forecastHours48 | precip-intensity | Number:Speed | Forecasted precipitation intensity. |
-| forecastHours01, forecastHours02, ... forecastHours48 | precip-probability | Number:Dimensionless | Forecasted precipitation probability. |
-| forecastHours01, forecastHours02, ... forecastHours48 | precip-type | String | Forecasted precipitation type (Rain, Snow or Sleet). |
-| forecastHours01, forecastHours02, ... forecastHours48 | uvindex | Number | Forecasted UV index. |
-| forecastHours01, forecastHours02, ... forecastHours48 | ozone | Number:ArealDensity | Forecasted ozone. |
+| Channel Group ID | Channel ID | Item Type | Description |
+|-------------------------------------------------------|----------------------|----------------------|------------------------------------------------------|
+| forecastHours01, forecastHours02, ... forecastHours48 | time-stamp | DateTime | Time of data forecasted. |
+| forecastHours01, forecastHours02, ... forecastHours48 | condition | String | Forecast weather condition. |
+| forecastHours01, forecastHours02, ... forecastHours48 | icon | Image | Icon representing the forecasted weather condition. |
+| forecastHours01, forecastHours02, ... forecastHours48 | icon-id | String | Id of the forecasted weather condition. **Advanced** |
+| forecastHours01, forecastHours02, ... forecastHours48 | temperature | Number:Temperature | Forecasted temperature. |
+| forecastHours01, forecastHours02, ... forecastHours48 | apparent-temperature | Number:Temperature | Forecasted apparent temperature. |
+| forecastHours01, forecastHours02, ... forecastHours48 | pressure | Number:Pressure | Forecasted barometric pressure. |
+| forecastHours01, forecastHours02, ... forecastHours48 | humidity | Number:Dimensionless | Forecasted atmospheric humidity. |
+| forecastHours01, forecastHours02, ... forecastHours48 | wind-speed | Number:Speed | Forecasted wind speed. |
+| forecastHours01, forecastHours02, ... forecastHours48 | wind-direction | Number:Angle | Forecasted wind direction. |
+| forecastHours01, forecastHours02, ... forecastHours48 | gust-speed | Number:Speed | Forecasted gust speed. **Advanced** |
+| forecastHours01, forecastHours02, ... forecastHours48 | cloudiness | Number:Dimensionless | Forecasted cloudiness. |
+| forecastHours01, forecastHours02, ... forecastHours48 | visibility | Number:Length | Forecasted visibility. |
+| forecastHours01, forecastHours02, ... forecastHours48 | rain | Number:Speed | Forecasted rain intensity. |
+| forecastHours01, forecastHours02, ... forecastHours48 | snow | Number:Speed | Forecasted snow intensity. |
+| forecastHours01, forecastHours02, ... forecastHours48 | precip-intensity | Number:Speed | Forecasted precipitation intensity. |
+| forecastHours01, forecastHours02, ... forecastHours48 | precip-probability | Number:Dimensionless | Forecasted precipitation probability. |
+| forecastHours01, forecastHours02, ... forecastHours48 | precip-type | String | Forecasted precipitation type (Rain, Snow or Sleet). |
+| forecastHours01, forecastHours02, ... forecastHours48 | uvindex | Number | Forecasted UV index. |
+| forecastHours01, forecastHours02, ... forecastHours48 | ozone | Number:ArealDensity | Forecasted ozone. |
### Daily Forecast
-| Channel Group ID | Channel ID | Item Type | Description |
-|-----------------------------------------------------------------|--------------------|----------------------|------------------------------------------------------|
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | time-stamp | DateTime | Time of data forecasted. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | condition | String | Forecast weather condition. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | icon | Image | Icon representing the forecasted weather condition. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | icon-id | String | Id of the forecasted weather condition. **Advanced** |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | min-temperature | Number:Temperature | Minimum forecasted temperature of a day. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | max-temperature | Number:Temperature | Maximum forecasted temperature of a day. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | pressure | Number:Pressure | Forecasted barometric pressure. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | humidity | Number:Dimensionless | Forecasted atmospheric humidity. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | wind-speed | Number:Speed | Forecasted wind speed. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | wind-direction | Number:Angle | Forecasted wind direction. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | gust-speed | Number:Speed | Forecasted gust speed. **Advanced** |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | cloudiness | Number:Dimensionless | Forecasted cloudiness. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | visibility | Number:Length | Forecasted visibility. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | rain | Number:Speed | Forecasted rain intensity. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | snow | Number:Speed | Forecasted snow intensity. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-intensity | Number:Speed | Forecasted precipitation intensity. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-probability | Number:Dimensionless | Forecasted precipitation probability. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-type | String | Forecasted precipitation type (Rain, Snow or Sleet). |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | uvindex | Number | Forecasted UV index. |
-| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | ozone | Number:ArealDensity | Forecasted ozone. |
+| Channel Group ID | Channel ID | Item Type | Description |
+|-----------------------------------------------------------------|--------------------------|----------------------|------------------------------------------------------|
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | time-stamp | DateTime | Time of data forecasted. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | condition | String | Forecast weather condition. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | icon | Image | Icon representing the forecasted weather condition. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | icon-id | String | Id of the forecasted weather condition. **Advanced** |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | min-temperature | Number:Temperature | Minimum forecasted temperature of a day. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | max-temperature | Number:Temperature | Maximum forecasted temperature of a day. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | min-apparent-temperature | Number:Temperature | Minimum forecasted apparent temperature of a day. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | max-apparent-temperature | Number:Temperature | Maximum forecasted apparent temperature of a day. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | pressure | Number:Pressure | Forecasted barometric pressure. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | humidity | Number:Dimensionless | Forecasted atmospheric humidity. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | wind-speed | Number:Speed | Forecasted wind speed. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | wind-direction | Number:Angle | Forecasted wind direction. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | gust-speed | Number:Speed | Forecasted gust speed. **Advanced** |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | cloudiness | Number:Dimensionless | Forecasted cloudiness. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | visibility | Number:Length | Forecasted visibility. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | rain | Number:Speed | Forecasted rain intensity. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | snow | Number:Speed | Forecasted snow intensity. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-intensity | Number:Speed | Forecasted precipitation intensity. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-probability | Number:Dimensionless | Forecasted precipitation probability. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | precip-type | String | Forecasted precipitation type (Rain, Snow or Sleet). |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | uvindex | Number | Forecasted UV index. |
+| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | ozone | Number:ArealDensity | Forecasted ozone. |
### Severe Weather Alerts
@@ -184,6 +188,7 @@ DateTime localLastMeasurement "Timestamp of last measurement [%1$tY-%1$tm-%1$tdT
String localCurrentCondition "Current condition [%s]" { channel="darksky:weather-and-forecast:api:local:current#condition" }
Image localCurrentConditionIcon "Icon" { channel="darksky:weather-and-forecast:api:local:current#icon" }
Number:Temperature localCurrentTemperature "Current temperature [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:current#temperature" }
+Number:Temperature localCurrentApparentTemperature "Current apparent temperature [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:current#apparent-temperature" }
Number:Pressure localCurrentPressure "Current barometric pressure [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:current#pressure" }
Number:Dimensionless localCurrentHumidity "Current atmospheric humidity [%d %unit%]" { channel="darksky:weather-and-forecast:api:local:current#humidity" }
Number:Speed localCurrentWindSpeed "Current wind speed [%.1f km/h]" { channel="darksky:weather-and-forecast:api:local:current#wind-speed" }
@@ -195,7 +200,7 @@ Number:Speed localCurrentSnowIntensity "Current snow intensity [%.2f mm/h]" { channel="darksky:weather-and-forecast:api:local:current#precip-intensity" }
Number:Dimensionless localCurrentPrecipitationProbability "Current precipitation probability [%d %unit%]" { channel="darksky:weather-and-forecast:api:local:current#precip-probability" }
String localCurrentPrecipitationType "Current precipitation type [%s]" { channel="darksky:weather-and-forecast:api:local:current#precip-type" }
-Number localCurrentUVIndex "Current precipitation probability [%d]" { channel="darksky:weather-and-forecast:api:local:current#uvindex" }
+Number localCurrentUVIndex "Current UV index [%d]" { channel="darksky:weather-and-forecast:api:local:current#uvindex" }
Number:ArealDensity localCurrentOzone "Current ozone [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:current#ozone" }
DateTime localSunrise "Sunrise [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]" { channel="darksky:weather-and-forecast:api:local:current#sunrise" }
DateTime localSunset "Sunset [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]" { channel="darksky:weather-and-forecast:api:local:current#sunset" }
@@ -205,6 +210,8 @@ String localDailyForecastTodayCondition "Condition for today [%s]"
Image localDailyForecastTodayConditionIcon "Icon" { channel="darksky:weather-and-forecast:api:local:forecastToday#icon" }
Number:Temperature localDailyForecastTodayMinTemperature "Minimum temperature for today [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#min-temperature" }
Number:Temperature localDailyForecastTodayMaxTemperature "Maximum temperature for today [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#max-temperature" }
+Number:Temperature localDailyForecastTodayMinApparentTemperature "Minimum apparent temperature for today [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#min-apparent-temperature" }
+Number:Temperature localDailyForecastTodayMaxApparentTemperature "Maximum apparent temperature for today [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#max-apparent-temperature" }
Number:Pressure localDailyForecastTodayPressure "Barometric pressure for today [%.1f %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#pressure" }
Number:Dimensionless localDailyForecastTodayHumidity "Atmospheric humidity for today [%d %unit%]" { channel="darksky:weather-and-forecast:api:local:forecastToday#humidity" }
Number:Speed localDailyForecastTodayWindSpeed "Wind speed for today [%.1f km/h]" { channel="darksky:weather-and-forecast:api:local:forecastToday#wind-speed" }
@@ -264,6 +271,7 @@ sitemap demo label="Dark Sky" {
Text item=localCurrentCondition
Image item=localCurrentConditionIcon
Text item=localCurrentTemperature
+ Text item=localCurrentApparentTemperature
Text item=localCurrentPressure
Text item=localCurrentHumidity
Text item=localCurrentWindSpeed
@@ -286,6 +294,8 @@ sitemap demo label="Dark Sky" {
Image item=localDailyForecastTodayConditionIcon
Text item=localDailyForecastTodayMinTemperature
Text item=localDailyForecastTodayMaxTemperature
+ Text item=localDailyForecastTodayMinApparentTemperature
+ Text item=localDailyForecastTodayMaxApparentTemperature
Text item=localDailyForecastTodayPressure
Text item=localDailyForecastTodayHumidity
Text item=localDailyForecastTodayWindSpeed
diff --git a/bundles/org.openhab.binding.darksky/pom.xml b/bundles/org.openhab.binding.darksky/pom.xml
index ba72c0301a021..d39f7e4cf801d 100644
--- a/bundles/org.openhab.binding.darksky/pom.xml
+++ b/bundles/org.openhab.binding.darksky/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.darksky
diff --git a/bundles/org.openhab.binding.darksky/src/main/feature/feature.xml b/bundles/org.openhab.binding.darksky/src/main/feature/feature.xml
index 5d4f11afdb6d8..665164779eb5c 100644
--- a/bundles/org.openhab.binding.darksky/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.darksky/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/DarkSkyBindingConstants.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/DarkSkyBindingConstants.java
index 94d543d7b5c90..59db385752aba 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/DarkSkyBindingConstants.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/DarkSkyBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -62,6 +62,9 @@ public class DarkSkyBindingConstants {
public static final String CHANNEL_TEMPERATURE = "temperature";
public static final String CHANNEL_MIN_TEMPERATURE = "min-temperature";
public static final String CHANNEL_MAX_TEMPERATURE = "max-temperature";
+ public static final String CHANNEL_APPARENT_TEMPERATURE = "apparent-temperature";
+ public static final String CHANNEL_MIN_APPARENT_TEMPERATURE = "min-apparent-temperature";
+ public static final String CHANNEL_MAX_APPARENT_TEMPERATURE = "max-apparent-temperature";
public static final String CHANNEL_PRESSURE = "pressure";
public static final String CHANNEL_HUMIDITY = "humidity";
public static final String CHANNEL_WIND_SPEED = "wind-speed";
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyAPIConfiguration.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyAPIConfiguration.java
index bd88fc410e611..6e855d90292a1 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyAPIConfiguration.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyAPIConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -30,37 +30,12 @@
public class DarkSkyAPIConfiguration {
// supported languages (see https://darksky.net/dev/docs#forecast-request)
- public static final Set SUPPORTED_LANGUAGES = Collections.unmodifiableSet(Stream
- .of("ar", "az", "be", "bg", "bs", "ca", "cs", "da", "de", "el", "en", "es", "et", "fi", "fr", "he", "hr",
- "hu", "id", "is", "it", "ja", "ka", "ko", "kw", "lv", "nb", "nl", "no", "pl", "pt", "ro", "ru",
- "sk", "sl", "sr", "sv", "tet", "tr", "uk", "x-pig-latin", "zh", "zh-tw")
- .collect(Collectors.toSet()));
-
- private @Nullable String apikey;
- private int refreshInterval;
- private @Nullable String language;
-
- public @Nullable String getApikey() {
- return apikey;
- }
-
- public void setApikey(String apikey) {
- this.apikey = apikey;
- }
-
- public int getRefreshInterval() {
- return refreshInterval;
- }
-
- public void setRefreshInterval(int refreshInterval) {
- this.refreshInterval = refreshInterval;
- }
-
- public @Nullable String getLanguage() {
- return language;
- }
-
- public void setLanguage(String language) {
- this.language = language;
- }
+ public static final Set SUPPORTED_LANGUAGES = Collections.unmodifiableSet(Stream.of("ar", "az", "be", "bg",
+ "bn", "bs", "ca", "cs", "da", "de", "el", "en", "eo", "es", "et", "fi", "fr", "he", "hi", "hr", "hu", "id",
+ "is", "it", "ja", "ka", "kn", "ko", "kw", "lv", "mr", "nb", "nl", "no", "pa", "pl", "pt", "ro", "ru", "sk",
+ "sl", "sr", "sv", "ta", "te", "tet", "tr", "uk", "x-pig-latin", "zh", "zh-tw").collect(Collectors.toSet()));
+
+ public @Nullable String apikey;
+ public int refreshInterval = 60;
+ public @Nullable String language;
}
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyChannelConfiguration.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyChannelConfiguration.java
index dfe0bba496989..3a71c4e95c336 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyChannelConfiguration.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyChannelConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyWeatherAndForecastConfiguration.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyWeatherAndForecastConfiguration.java
index 162a9a6b38372..dbe24e51e94b8 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyWeatherAndForecastConfiguration.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/config/DarkSkyWeatherAndForecastConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyCommunicationException.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyCommunicationException.java
index 8a7aac0689964..206d23a558310 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyCommunicationException.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyCommunicationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConfigurationException.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConfigurationException.java
index f2906be1981e4..3ffb847051a78 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConfigurationException.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConfigurationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConnection.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConnection.java
index 9566fafca3227..029b08010fa77 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConnection.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/connection/DarkSkyConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -59,7 +59,6 @@ public class DarkSkyConnection {
private static final String PNG_CONTENT_TYPE = "image/png";
private static final String PARAM_EXCLUDE = "exclude";
- private static final String PARAM_EXTEND = "extend";
private static final String PARAM_UNITS = "units";
private static final String PARAM_LANG = "lang";
@@ -81,7 +80,7 @@ public DarkSkyConnection(DarkSkyAPIHandler handler, HttpClient httpClient) {
this.httpClient = httpClient;
DarkSkyAPIConfiguration config = handler.getDarkSkyAPIConfig();
- cache = new ExpiringCacheMap<>(TimeUnit.MINUTES.toMillis(config.getRefreshInterval()));
+ cache = new ExpiringCacheMap<>(TimeUnit.MINUTES.toMillis(config.refreshInterval));
}
/**
@@ -101,7 +100,7 @@ public DarkSkyConnection(DarkSkyAPIHandler handler, HttpClient httpClient) {
DarkSkyAPIConfiguration config = handler.getDarkSkyAPIConfig();
- String url = String.format(Locale.ROOT, WEATHER_URL, StringUtils.trimToEmpty(config.getApikey()),
+ String url = String.format(Locale.ROOT, WEATHER_URL, StringUtils.trimToEmpty(config.apikey),
location.getLatitude().doubleValue(), location.getLongitude().doubleValue());
return gson.fromJson(getResponseFromCache(buildURL(url, getRequestParams(config))),
@@ -147,7 +146,7 @@ private Map getRequestParams(DarkSkyAPIConfiguration config) {
params.put(PARAM_UNITS, "si");
- String language = StringUtils.trimToEmpty(config.getLanguage());
+ String language = StringUtils.trimToEmpty(config.language);
if (!language.isEmpty()) {
params.put(PARAM_LANG, language.toLowerCase());
}
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/discovery/DarkSkyDiscoveryService.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/discovery/DarkSkyDiscoveryService.java
index 29055e8f66275..1532ba62fb3bb 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/discovery/DarkSkyDiscoveryService.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/discovery/DarkSkyDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/factory/DarkSkyHandlerFactory.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/factory/DarkSkyHandlerFactory.java
index 54b516633214a..82ba97dd0563e 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/factory/DarkSkyHandlerFactory.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/factory/DarkSkyHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyAPIHandler.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyAPIHandler.java
index 3d469605a11a9..2606364388908 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyAPIHandler.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyAPIHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -75,18 +75,18 @@ public void initialize() {
config = getConfigAs(DarkSkyAPIConfiguration.class);
boolean configValid = true;
- if (StringUtils.trimToNull(config.getApikey()) == null) {
+ if (StringUtils.trimToNull(config.apikey) == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
"@text/offline.conf-error-missing-apikey");
configValid = false;
}
- int refreshInterval = config.getRefreshInterval();
- if (refreshInterval < 10) {
+ int refreshInterval = config.refreshInterval;
+ if (refreshInterval < 1) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
"@text/offline.conf-error-not-supported-refreshInterval");
configValid = false;
}
- String language = config.getLanguage();
+ String language = config.language;
if (language != null) {
language = StringUtils.trimToEmpty(language);
if (!DarkSkyAPIConfiguration.SUPPORTED_LANGUAGES.contains(language.toLowerCase())) {
@@ -109,7 +109,8 @@ public void initialize() {
updateStatus(ThingStatus.UNKNOWN);
- if (refreshJob == null || refreshJob.isCancelled()) {
+ ScheduledFuture> localRefreshJob = refreshJob;
+ if (localRefreshJob == null || localRefreshJob.isCancelled()) {
logger.debug("Start refresh job at interval {} min.", refreshInterval);
refreshJob = scheduler.scheduleWithFixedDelay(this::updateThings, INITIAL_DELAY_IN_SECONDS,
TimeUnit.MINUTES.toSeconds(refreshInterval), TimeUnit.SECONDS);
@@ -120,9 +121,10 @@ public void initialize() {
@Override
public void dispose() {
logger.debug("Dispose Dark Sky API handler '{}'.", getThing().getUID());
- if (refreshJob != null && !refreshJob.isCancelled()) {
+ ScheduledFuture> localRefreshJob = refreshJob;
+ if (localRefreshJob != null && !localRefreshJob.isCancelled()) {
logger.debug("Stop refresh job.");
- if (refreshJob.cancel(true)) {
+ if (localRefreshJob.cancel(true)) {
refreshJob = null;
}
}
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyWeatherAndForecastHandler.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyWeatherAndForecastHandler.java
index fd71fe036a600..bcf6d0a89aeeb 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyWeatherAndForecastHandler.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/handler/DarkSkyWeatherAndForecastHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -425,6 +425,9 @@ private void updateCurrentChannel(ChannelUID channelUID) {
case CHANNEL_TEMPERATURE:
state = getQuantityTypeState(currentData.getTemperature(), CELSIUS);
break;
+ case CHANNEL_APPARENT_TEMPERATURE:
+ state = getQuantityTypeState(currentData.getApparentTemperature(), CELSIUS);
+ break;
case CHANNEL_PRESSURE:
state = getQuantityTypeState(currentData.getPressure(), HECTO(PASCAL));
break;
@@ -512,6 +515,9 @@ private void updateHourlyForecastChannel(ChannelUID channelUID, int count) {
case CHANNEL_TEMPERATURE:
state = getQuantityTypeState(forecastData.getTemperature(), CELSIUS);
break;
+ case CHANNEL_APPARENT_TEMPERATURE:
+ state = getQuantityTypeState(forecastData.getApparentTemperature(), CELSIUS);
+ break;
case CHANNEL_PRESSURE:
state = getQuantityTypeState(forecastData.getPressure(), HECTO(PASCAL));
break;
@@ -599,6 +605,12 @@ private void updateDailyForecastChannel(ChannelUID channelUID, int count) {
case CHANNEL_MAX_TEMPERATURE:
state = getQuantityTypeState(forecastData.getTemperatureMax(), CELSIUS);
break;
+ case CHANNEL_MIN_APPARENT_TEMPERATURE:
+ state = getQuantityTypeState(forecastData.getApparentTemperatureMin(), CELSIUS);
+ break;
+ case CHANNEL_MAX_APPARENT_TEMPERATURE:
+ state = getQuantityTypeState(forecastData.getApparentTemperatureMax(), CELSIUS);
+ break;
case CHANNEL_PRESSURE:
state = getQuantityTypeState(forecastData.getPressure(), HECTO(PASCAL));
break;
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyCurrentlyData.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyCurrentlyData.java
index f9dce6af96e09..70a163c38ba0b 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyCurrentlyData.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyCurrentlyData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyDailyData.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyDailyData.java
index 8d1efc7e2debb..ef858b62ff3b9 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyDailyData.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyDailyData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyHourlyData.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyHourlyData.java
index 1efb787a44c48..6279eaf7d80c4 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyHourlyData.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyHourlyData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyJsonWeatherData.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyJsonWeatherData.java
index 5336dd08fccac..adc2d9d0bbfdd 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyJsonWeatherData.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/model/DarkSkyJsonWeatherData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCache.java b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCache.java
index d964bdc15599d..591849dc4b9b4 100644
--- a/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCache.java
+++ b/bundles/org.openhab.binding.darksky/src/main/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCache.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/config/config.xml
index da4259bbada04..4d78a0b12d5f9 100644
--- a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/config/config.xml
@@ -24,6 +24,7 @@
+
@@ -31,11 +32,13 @@
+
+
@@ -43,12 +46,15 @@
+
+
+
@@ -57,6 +63,8 @@
+
+
diff --git a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/i18n/darksky_de.properties b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/i18n/darksky_de.properties
index 3d993b67559e0..2c81facc175e1 100644
--- a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/i18n/darksky_de.properties
+++ b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/i18n/darksky_de.properties
@@ -19,6 +19,7 @@ bridge-type.config.darksky.weather-api.language.option.ar = Arabisch
bridge-type.config.darksky.weather-api.language.option.az = Aserbaidschaner
bridge-type.config.darksky.weather-api.language.option.be = Belarussisch
bridge-type.config.darksky.weather-api.language.option.bg = Bulgarisch
+bridge-type.config.darksky.weather-api.language.option.bn = Bengali
bridge-type.config.darksky.weather-api.language.option.bs = Bosnisch
bridge-type.config.darksky.weather-api.language.option.ca = Katalanisch
bridge-type.config.darksky.weather-api.language.option.cz = Tschechisch
@@ -26,11 +27,13 @@ bridge-type.config.darksky.weather-api.language.option.da = D
bridge-type.config.darksky.weather-api.language.option.de = Deutsch
bridge-type.config.darksky.weather-api.language.option.el = Griechisch
bridge-type.config.darksky.weather-api.language.option.en = Englisch
+bridge-type.config.darksky.weather-api.language.option.eo = Esperanto
bridge-type.config.darksky.weather-api.language.option.es = Spanisch
bridge-type.config.darksky.weather-api.language.option.et = Estnisch
bridge-type.config.darksky.weather-api.language.option.fi = Finnisch
bridge-type.config.darksky.weather-api.language.option.fr = Französisch
bridge-type.config.darksky.weather-api.language.option.he = Hebräisch
+bridge-type.config.darksky.weather-api.language.option.hi = Hindi
bridge-type.config.darksky.weather-api.language.option.hr = Kroatisch
bridge-type.config.darksky.weather-api.language.option.hu = Ungarisch
bridge-type.config.darksky.weather-api.language.option.id = Indonesian
@@ -38,12 +41,15 @@ bridge-type.config.darksky.weather-api.language.option.is = Isl
bridge-type.config.darksky.weather-api.language.option.it = Italienisch
bridge-type.config.darksky.weather-api.language.option.ja = Japanisch
bridge-type.config.darksky.weather-api.language.option.ka = Georgisch
+bridge-type.config.darksky.weather-api.language.option.kn = Kanadisch
bridge-type.config.darksky.weather-api.language.option.ko = Koreanisch
bridge-type.config.darksky.weather-api.language.option.kw = Kornisch
bridge-type.config.darksky.weather-api.language.option.lv = Lettisch
+bridge-type.config.darksky.weather-api.language.option.mr = Marathi
bridge-type.config.darksky.weather-api.language.option.nb = Norwegischer Bokmål
bridge-type.config.darksky.weather-api.language.option.nl = Holländisch
bridge-type.config.darksky.weather-api.language.option.no = Norwegischer Bokmål (Alias für 'nb')
+bridge-type.config.darksky.weather-api.language.option.pa = Punjabi
bridge-type.config.darksky.weather-api.language.option.pl = Polnisch
bridge-type.config.darksky.weather-api.language.option.pt = Portugiesisch
bridge-type.config.darksky.weather-api.language.option.ro = Rumänisch
@@ -51,7 +57,9 @@ bridge-type.config.darksky.weather-api.language.option.ru = Russisch
bridge-type.config.darksky.weather-api.language.option.sk = Slowakisch
bridge-type.config.darksky.weather-api.language.option.sl = Slowenisch
bridge-type.config.darksky.weather-api.language.option.sr = Serbisch
-bridge-type.config.darksky.weather-api.language.option.sw = Schwedisch
+bridge-type.config.darksky.weather-api.language.option.sv = Schwedisch
+bridge-type.config.darksky.weather-api.language.option.ta = Tamil
+bridge-type.config.darksky.weather-api.language.option.te = Telugu
bridge-type.config.darksky.weather-api.language.option.tet = Tetum
bridge-type.config.darksky.weather-api.language.option.tr = Türkisch
bridge-type.config.darksky.weather-api.language.option.uk = Ukrainisch
@@ -223,6 +231,18 @@ channel-type.darksky.forecasted-min-outdoor-temperature.description = Zeigt die
channel-type.darksky.forecasted-max-outdoor-temperature.label = Maximale Temperatur
channel-type.darksky.forecasted-max-outdoor-temperature.description = Zeigt die vorhergesagte maximale Außentemperatur an.
+channel-type.darksky.apparent-temperature.label = Gefühlte Temperatur
+channel-type.darksky.apparent-temperature.description = Zeigt die gefühlte Außentemperatur an.
+
+channel-type.darksky.forecasted-apparent-temperature.label = Vorhergesagte Gefühlte Temperatur
+channel-type.darksky.forecasted-apparent-temperature.description = Zeigt die vorhergesagte gefühlte Außentemperatur an.
+
+channel-type.darksky.forecasted-min-apparent-temperature.label = Minimale Gefühlte Temperatur
+channel-type.darksky.forecasted-min-apparent-temperature.description = Zeigt die vorhergesagte minimale gefühlte Außentemperatur an.
+
+channel-type.darksky.forecasted-max-apparent-temperature.label = Maximale Gefühlte Temperatur
+channel-type.darksky.forecasted-max-apparent-temperature.description = Zeigt die vorhergesagte maximale gefühlte Außentemperatur an.
+
channel-type.darksky.forecasted-barometric-pressure.label = Vorhergesagter Luftdruck
channel-type.darksky.forecasted-barometric-pressure.description = Zeigt den vorhergesagten Luftdruck an.
@@ -354,13 +374,13 @@ channel-type.config.darksky.sunrise-sunset-event.latest.label = Sp
channel-type.config.darksky.sunrise-sunset-event.latest.description = Spätester Zeitpunkt eines Triggers am aktuellen Tag (in hh:mm).
# thing status
-offline.conf-error-missing-apikey = Der Parameter 'API Schlüssel' muss konfiguriert werden.
-offline.conf-error-invalid-apikey = Ungültiger 'API Schlüssel'. Mehr Infos unter https://darksky.net/dev/docs/faq#faq-general.
-offline.conf-error-not-supported-refreshInterval = Der Parameter 'Abfrageintervall' muss mindestens 1 min betragen.
-offline.conf-error-not-supported-language = Der angegebene Parameter 'Sprache' wird nicht unterstützt.
+offline.conf-error-missing-apikey = Der Parameter 'apikey' muss konfiguriert werden.
+offline.conf-error-invalid-apikey = Ungültiger API Schlüssel. Mehr Infos unter https://darksky.net/dev/docs/faq#faq-general.
+offline.conf-error-not-supported-refreshInterval = Der Parameter 'refreshInterval' muss mindestens 1 min betragen.
+offline.conf-error-not-supported-language = Der angegebene Parameter 'language' wird nicht unterstützt.
-offline.conf-error-missing-location = Der Parameter 'Ort' muss konfiguriert werden.
-offline.conf-error-parsing-location = Der Parameter 'Ort' kann nicht in Latitude und Longitude getrennt werden.
+offline.conf-error-missing-location = Der Parameter 'location' muss konfiguriert werden.
+offline.conf-error-parsing-location = Der Parameter 'location' kann nicht in Latitude und Longitude getrennt werden.
offline.conf-error-not-supported-number-of-hours = Der Parameter 'forecastHours' muss zwischen 0 und 120 liegen - Schrittweite: 3.
offline.conf-error-not-supported-number-of-days = Der Parameter 'forecastDays' muss zwischen 0 und 16 liegen.
offline.conf-error-not-supported-number-of-alerts = Der Parameter 'numberOfAlerts' muss größer als 0 sein.
diff --git a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/channel-types.xml
index 81fefcd5f392e..34117f3c7284d 100644
--- a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/channel-types.xml
+++ b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/channel-types.xml
@@ -14,6 +14,7 @@
+
@@ -44,6 +45,7 @@
+
@@ -71,6 +73,8 @@
+
+
@@ -182,6 +186,38 @@
+
+ Number:Temperature
+
+ Current apparent temperature.
+ Temperature
+
+
+
+
+ Number:Temperature
+
+ Forecasted apparent temperature.
+ Temperature
+
+
+
+
+ Number:Temperature
+
+ Minimum forecasted apparent temperature.
+ Temperature
+
+
+
+
+ Number:Temperature
+
+ Maximum forecasted apparent temperature.
+ Temperature
+
+
+
Number:Pressure
diff --git a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/thing-types.xml
index 0d4cf8f9e6317..0e8abcb5929e7 100644
--- a/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.darksky/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -10,7 +10,7 @@
-
+
Provides current weather and forecast data from the Dark Sky API.
diff --git a/bundles/org.openhab.binding.darksky/src/test/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCacheTest.java b/bundles/org.openhab.binding.darksky/src/test/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCacheTest.java
index 52a237e9a3af4..0906f0799322e 100644
--- a/bundles/org.openhab.binding.darksky/src/test/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCacheTest.java
+++ b/bundles/org.openhab.binding.darksky/src/test/java/org/openhab/binding/darksky/internal/utils/ByteArrayFileCacheTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/NOTICE b/bundles/org.openhab.binding.deconz/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.deconz/NOTICE
+++ b/bundles/org.openhab.binding.deconz/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.deconz/README.md b/bundles/org.openhab.binding.deconz/README.md
index b13a1046c14d1..cbd47dea5d307 100644
--- a/bundles/org.openhab.binding.deconz/README.md
+++ b/bundles/org.openhab.binding.deconz/README.md
@@ -1,12 +1,11 @@
# Dresden Elektronik deCONZ Binding
The Zigbee binding currently does not support the Dresden Elektronik Raspbee and Conbee Zigbee dongles.
-The manufacturer provides a companion app called deCONZ together with the mentioned hardware. deCONZ
-offers a documented real-time channel that this binding makes use of to bring support for all
-paired Zigbee sensors and switches.
+The manufacturer provides a companion app called deCONZ together with the mentioned hardware.
+deCONZ offers a documented real-time channel that this binding makes use of to bring support for all paired Zigbee sensors and switches.
-deCONZ also acts as a HUE bridge. This binding is meant to be used together with the HUE binding
-which makes the lights and plugs available.
+deCONZ also acts as a HUE bridge.
+This binding is meant to be used together with the HUE binding which makes the lights and plugs available.
## Supported Things
@@ -26,6 +25,7 @@ These things are supported:
| Open/Close Sensor | ZHAOpenClose | `openclosesensor` |
| Water Leakage Sensor | ZHAWater | `waterleakagesensor` |
| Alarm Sensor | ZHAAlarm | `alarmsensor` |
+| Fire Sensor | ZHAFire | `firesensor` |
| Vibration Sensor | ZHAVibration | `vibrationsensor` |
| deCONZ Artificial Daylight Sensor | deCONZ specific: simulated sensor | `daylightsensor` |
@@ -38,14 +38,22 @@ Sensors, switches are discovered as soon as a `deconz` bridge Thing comes online
These configuration parameters are available:
-| Parameter | Description | Type | Default |
-| :-------- | :------------------------------------------------------------ | :-------: | :-------: |
-| host | Host address (hostname/ip:port) of deCONZ interface | string | n/a |
-| apikey | Authorization API key (optional, can be filled automatically) | string | n/a |
+| Parameter | Description | Type | Default |
+|-----------|---------------------------------------------------------------------------------|---------|---------|
+| host | Host address (hostname / ip) of deCONZ interface | string | n/a |
+| httpPort | Port of deCONZ HTTP interface | string | 80 |
+| port | Port of deCONZ Websocket (optional, can be filled automatically) **(Advanced)** | string | n/a |
+| apikey | Authorization API key (optional, can be filled automatically) | string | n/a |
+| timeout | Timeout for asynchronous HTTP requests (in milliseconds) | integer | 2000 |
The deCONZ bridge requires the IP address or hostname as a configuration value in order for the binding to know where to access it.
+If needed you can specify an optional port for the HTTP interface or the Websocket.
+The Websocket port can be filled automatically by requesting it via the HTTP interface - you only need to specify it if your deCONZ instance is running containerized.
-The API key is an optional value. If a deCONZ API key is available because it has already been created manually, it can also be entered as a configuration value. Otherwise the field can be left empty and the binding will generate the key automatically. For this process the deCONZ bridge must be unlocked in the deCONZ software so that third party applications can register. [See deCONZ documentation](http://dresden-elektronik.github.io/deconz-rest-doc/getting_started/#unlock-the-gateway)
+The API key is an optional value.
+If a deCONZ API key is available because it has already been created manually, it can also be entered as a configuration value.
+Otherwise the field can be left empty and the binding will generate the key automatically.
+For this process the deCONZ bridge must be unlocked in the deCONZ software so that third party applications can register ([see deCONZ documentation](https://dresden-elektronik.github.io/deconz-rest-doc/getting_started/#unlock-the-gateway)).
### Textual Thing Configuration - Retrieving an API Key
@@ -55,14 +63,16 @@ If you use the textual configuration, the thing file without an API key will loo
Bridge deconz:deconz:homeserver [ host="192.168.0.10" ]
```
-In this case, the API key is generated automatically as described above (the deCONZ bridge has to be unlocked). Please note that the generated key cannot be written automatically to the `.thing` file, and has to be set manually.
-The generated key can be queried from the configuration using the openHAB console. To do this log into the [console](https://www.openhab.org/docs/administration/console.html) and use the command `things show` to display the configuration parameters, e.g:
+In this case, the API key is generated automatically as described above (the deCONZ bridge has to be unlocked).
+Please note that the generated key cannot be written automatically to the `.thing` file, and has to be set manually.
+The generated key can be queried from the configuration using the openHAB console.
+To do this log into the [console](https://www.openhab.org/docs/administration/console.html) and use the command `things show` to display the configuration parameters, e.g:
```
things show deconz:deconz:homeserver
```
-Afterwards the displayed API key has to be inserted in the `.thing` file as `apikey` configuration value, e.g.:
+Afterwards the API key has to be inserted in the `.thing` file as `apikey` configuration value, e.g.:
```
Bridge deconz:deconz:homeserver [ host="192.168.0.10", apikey="ABCDEFGHIJ" ]
@@ -90,6 +100,7 @@ The devices support some of the following channels:
| pressure | Number:Pressure | R | Current pressure in hPa | pressuresensor |
| open | Contact | R | Status of contacts: `OPEN`; `CLOSED` | openclosesensor |
| waterleakage | Switch | R | Status of water leakage: `ON` = water leakage detected; `OFF` = no water leakage detected | waterleakagesensor |
+| fire | Switch | R | Status of a fire: `ON` = fire was detected; `OFF` = no fire detected | firesensor |
| alarm | Switch | R | Status of an alarm: `ON` = alarm was triggered; `OFF` = no alarm | alarmsensor |
| tampered | Switch | R | Status of a zone: `ON` = zone is being tampered; `OFF` = zone is not tampered | any IAS sensor |
| vibration | Switch | R | Status of vibration: `ON` = vibration was detected; `OFF` = no vibration | alarmsensor |
diff --git a/bundles/org.openhab.binding.deconz/pom.xml b/bundles/org.openhab.binding.deconz/pom.xml
index 098a0cfda26af..5245f4ad06255 100644
--- a/bundles/org.openhab.binding.deconz/pom.xml
+++ b/bundles/org.openhab.binding.deconz/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.deconz
diff --git a/bundles/org.openhab.binding.deconz/src/main/feature/feature.xml b/bundles/org.openhab.binding.deconz/src/main/feature/feature.xml
index e72bbf9d70e69..dff0a3b336b82 100644
--- a/bundles/org.openhab.binding.deconz/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.deconz/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/BindingConstants.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/BindingConstants.java
index 61beb5ffdafee..eef9a79dff1af 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/BindingConstants.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/BindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -41,6 +41,7 @@ public class BindingConstants {
public static final ThingTypeUID THING_TYPE_OPENCLOSE_SENSOR = new ThingTypeUID(BINDING_ID, "openclosesensor");
public static final ThingTypeUID THING_TYPE_WATERLEAKAGE_SENSOR = new ThingTypeUID(BINDING_ID,
"waterleakagesensor");
+ public static final ThingTypeUID THING_TYPE_FIRE_SENSOR = new ThingTypeUID(BINDING_ID, "firesensor");
public static final ThingTypeUID THING_TYPE_ALARM_SENSOR = new ThingTypeUID(BINDING_ID, "alarmsensor");
public static final ThingTypeUID THING_TYPE_VIBRATION_SENSOR = new ThingTypeUID(BINDING_ID, "vibrationsensor");
@@ -64,6 +65,7 @@ public class BindingConstants {
public static final String CHANNEL_BUTTONEVENT = "buttonevent";
public static final String CHANNEL_OPENCLOSE = "open";
public static final String CHANNEL_WATERLEAKAGE = "waterleakage";
+ public static final String CHANNEL_FIRE = "fire";
public static final String CHANNEL_ALARM = "alarm";
public static final String CHANNEL_TAMPERED = "tampered";
public static final String CHANNEL_VIBRATION = "vibration";
@@ -72,15 +74,16 @@ public class BindingConstants {
// Thing configuration
public static final String CONFIG_HOST = "host";
+ public static final String CONFIG_HTTP_PORT = "httpPort";
public static final String CONFIG_APIKEY = "apikey";
public static final String UNIQUE_ID = "uid";
- public static String url(String host, @Nullable String apikey, @Nullable String endpointType,
+ public static String url(String host, int port, @Nullable String apikey, @Nullable String endpointType,
@Nullable String endpointID) {
StringBuilder url = new StringBuilder();
url.append("http://");
- url.append(host);
+ url.append(host).append(":").append(port);
url.append("/api/");
if (apikey != null) {
url.append(apikey);
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/HandlerFactory.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/HandlerFactory.java
index 7484f00cbde88..844b5c1e42046 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/HandlerFactory.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/HandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -32,9 +32,12 @@
import org.openhab.binding.deconz.internal.handler.DeconzBridgeHandler;
import org.openhab.binding.deconz.internal.handler.SensorThingHandler;
import org.openhab.binding.deconz.internal.netutils.AsyncHttpClient;
+import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
+import com.google.gson.Gson;
+
/**
* The {@link HandlerFactory} is responsible for creating things and thing
* handlers.
@@ -44,48 +47,38 @@
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.deconz")
@NonNullByDefault
public class HandlerFactory extends BaseThingHandlerFactory {
- private static final Set SUPPORTED_THING_TYPES_UIDS = Collections
- .unmodifiableSet(Stream.of(BRIDGE_TYPE, THING_TYPE_PRESENCE_SENSOR, THING_TYPE_DAYLIGHT_SENSOR,
- THING_TYPE_POWER_SENSOR, THING_TYPE_CONSUMPTION_SENSOR, THING_TYPE_LIGHT_SENSOR,
- THING_TYPE_TEMPERATURE_SENSOR, THING_TYPE_HUMIDITY_SENSOR, THING_TYPE_PRESSURE_SENSOR,
- THING_TYPE_SWITCH, THING_TYPE_OPENCLOSE_SENSOR, THING_TYPE_WATERLEAKAGE_SENSOR,
+ private static final Set SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
+ Stream.of(BRIDGE_TYPE, THING_TYPE_PRESENCE_SENSOR, THING_TYPE_DAYLIGHT_SENSOR, THING_TYPE_POWER_SENSOR,
+ THING_TYPE_CONSUMPTION_SENSOR, THING_TYPE_LIGHT_SENSOR, THING_TYPE_TEMPERATURE_SENSOR,
+ THING_TYPE_HUMIDITY_SENSOR, THING_TYPE_PRESSURE_SENSOR, THING_TYPE_SWITCH,
+ THING_TYPE_OPENCLOSE_SENSOR, THING_TYPE_WATERLEAKAGE_SENSOR, THING_TYPE_FIRE_SENSOR,
THING_TYPE_ALARM_SENSOR, THING_TYPE_VIBRATION_SENSOR).collect(Collectors.toSet()));
- private @NonNullByDefault({}) WebSocketFactory webSocketFactory;
- private @NonNullByDefault({}) HttpClientFactory httpClientFactory;
+ private final Gson gson = new Gson();
+ private final WebSocketFactory webSocketFactory;
+ private final HttpClientFactory httpClientFactory;
+
+ @Activate
+ public HandlerFactory(final @Reference WebSocketFactory webSocketFactory,
+ final @Reference HttpClientFactory httpClientFactory) {
+ this.webSocketFactory = webSocketFactory;
+ this.httpClientFactory = httpClientFactory;
+ }
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
}
- @Reference
- public void setWebSocketFactory(WebSocketFactory factory) {
- webSocketFactory = factory;
- }
-
- @Reference
- public void setHttpClientFactory(HttpClientFactory factory) {
- httpClientFactory = factory;
- }
-
- public void unsetWebSocketFactory(WebSocketFactory factory) {
- webSocketFactory = null;
- }
-
- public void unsetHttpClientFactory(HttpClientFactory factory) {
- httpClientFactory = null;
- }
-
@Override
protected @Nullable ThingHandler createHandler(Thing thing) {
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
if (BRIDGE_TYPE.equals(thingTypeUID)) {
return new DeconzBridgeHandler((Bridge) thing, webSocketFactory,
- new AsyncHttpClient(httpClientFactory.getCommonHttpClient()));
+ new AsyncHttpClient(httpClientFactory.getCommonHttpClient()), gson);
} else {
- return new SensorThingHandler(thing);
+ return new SensorThingHandler(thing, gson);
}
}
}
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/BridgeDiscoveryParticipant.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/BridgeDiscoveryParticipant.java
index 0c9945ab60cbf..8a95a2a7ba77d 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/BridgeDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/BridgeDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,6 +12,8 @@
*/
package org.openhab.binding.deconz.internal.discovery;
+import static org.openhab.binding.deconz.internal.BindingConstants.*;
+
import java.net.URL;
import java.util.Collections;
import java.util.Map;
@@ -27,7 +29,6 @@
import org.eclipse.smarthome.core.thing.ThingUID;
import org.jupnp.model.meta.DeviceDetails;
import org.jupnp.model.meta.RemoteDevice;
-import org.openhab.binding.deconz.internal.BindingConstants;
import org.osgi.service.component.annotations.Component;
/**
@@ -45,7 +46,7 @@ public class BridgeDiscoveryParticipant implements UpnpDiscoveryParticipant {
@Override
public Set getSupportedThingTypeUIDs() {
- return Collections.singleton(BindingConstants.BRIDGE_TYPE);
+ return Collections.singleton(BRIDGE_TYPE);
}
@Override
@@ -64,12 +65,14 @@ public Set getSupportedThingTypeUIDs() {
name = name.substring(0, name.indexOf('(') - 1);
}
// Add host+port
- String host = descriptorURL.getHost() + ":" + String.valueOf(descriptorURL.getPort());
- name = name + " (" + host + ")";
+ String host = descriptorURL.getHost();
+ int port = descriptorURL.getPort();
+ name = name + " (" + host + ":" + String.valueOf(port) + ")";
Map properties = new TreeMap<>();
- properties.put(BindingConstants.CONFIG_HOST, host);
+ properties.put(CONFIG_HOST, host);
+ properties.put(CONFIG_HTTP_PORT, port);
return DiscoveryResultBuilder.create(uid).withProperties(properties).withLabel(name)
.withRepresentationProperty(UDN).build();
@@ -80,7 +83,7 @@ public Set getSupportedThingTypeUIDs() {
DeviceDetails details = device.getDetails();
if (details != null && details.getManufacturerDetails() != null
&& "dresden elektronik".equals(details.getManufacturerDetails().getManufacturer())) {
- return new ThingUID(BindingConstants.BRIDGE_TYPE, details.getSerialNumber());
+ return new ThingUID(BRIDGE_TYPE, details.getSerialNumber());
}
return null;
}
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/ThingDiscoveryService.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/ThingDiscoveryService.java
index 5a858f18e7783..f14a10791cc2c 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/ThingDiscoveryService.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/discovery/ThingDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -47,8 +47,8 @@ public class ThingDiscoveryService extends AbstractDiscoveryService implements D
.unmodifiableSet(Stream.of(THING_TYPE_PRESENCE_SENSOR, THING_TYPE_DAYLIGHT_SENSOR, THING_TYPE_POWER_SENSOR,
THING_TYPE_CONSUMPTION_SENSOR, THING_TYPE_LIGHT_SENSOR, THING_TYPE_TEMPERATURE_SENSOR,
THING_TYPE_HUMIDITY_SENSOR, THING_TYPE_PRESSURE_SENSOR, THING_TYPE_SWITCH,
- THING_TYPE_OPENCLOSE_SENSOR, THING_TYPE_WATERLEAKAGE_SENSOR, THING_TYPE_ALARM_SENSOR,
- THING_TYPE_VIBRATION_SENSOR).collect(Collectors.toSet()));
+ THING_TYPE_OPENCLOSE_SENSOR, THING_TYPE_WATERLEAKAGE_SENSOR, THING_TYPE_FIRE_SENSOR,
+ THING_TYPE_ALARM_SENSOR, THING_TYPE_VIBRATION_SENSOR).collect(Collectors.toSet()));
private @Nullable DeconzBridgeHandler handler;
private @Nullable ScheduledFuture> scanningJob;
@@ -107,6 +107,8 @@ private void addDevice(String sensorID, SensorMessage sensor) {
thingTypeUID = THING_TYPE_OPENCLOSE_SENSOR;
} else if (sensor.type.contains("ZHAWater")) { // ZHAWater
thingTypeUID = THING_TYPE_WATERLEAKAGE_SENSOR;
+ } else if (sensor.type.contains("ZHAFire")) {
+ thingTypeUID = THING_TYPE_FIRE_SENSOR; // ZHAFire
} else if (sensor.type.contains("ZHAAlarm")) {
thingTypeUID = THING_TYPE_ALARM_SENSOR; // ZHAAlarm
} else if (sensor.type.contains("ZHAVibration")) {
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/ApiKeyMessage.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/ApiKeyMessage.java
index f0d2de37cec40..d1eababee804a 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/ApiKeyMessage.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/ApiKeyMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/BridgeFullState.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/BridgeFullState.java
index 002976c01a292..13e06f7cf84df 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/BridgeFullState.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/BridgeFullState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorConfig.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorConfig.java
index f0b4a71969490..cda5e008dc13a 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorConfig.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorMessage.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorMessage.java
index 9ce45fb6c6282..70c91bb14f838 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorMessage.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorState.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorState.java
index 250fd5e2ea306..3813f3426e11d 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorState.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/dto/SensorState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeConfig.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeConfig.java
index 02610939ba189..6fdef4f5673ac 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeConfig.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -23,6 +23,16 @@
@NonNullByDefault
public class DeconzBridgeConfig {
public String host = "";
+ public int httpPort = 80;
+ public int port = 0;
public @Nullable String apikey;
int timeout = 2000;
+
+ public String getHostWithoutPort() {
+ String hostWithoutPort = host;
+ if (hostWithoutPort.indexOf(':') > 0) {
+ hostWithoutPort = hostWithoutPort.substring(0, hostWithoutPort.indexOf(':'));
+ }
+ return hostWithoutPort;
+ }
}
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeHandler.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeHandler.java
index 0be0a9d579dd5..3dac30459c814 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeHandler.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/DeconzBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -19,8 +19,10 @@
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionException;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -61,21 +63,22 @@ public class DeconzBridgeHandler extends BaseBridgeHandler implements WebSocketC
private final WebSocketConnection websocket;
private final AsyncHttpClient http;
private DeconzBridgeConfig config = new DeconzBridgeConfig();
- private final Gson gson = new Gson();
+ private final Gson gson;
private @Nullable ScheduledFuture> scheduledFuture;
- private int websocketport = 0;
+ private int websocketPort = 0;
/** Prevent a dispose/init cycle while this flag is set. Use for property updates */
private boolean ignoreConfigurationUpdate;
/** The poll frequency for the API Key verification */
private static final int POLL_FREQUENCY_SEC = 10;
- public DeconzBridgeHandler(Bridge thing, WebSocketFactory webSocketFactory, AsyncHttpClient http) {
+ public DeconzBridgeHandler(Bridge thing, WebSocketFactory webSocketFactory, AsyncHttpClient http, Gson gson) {
super(thing);
this.http = http;
+ this.gson = gson;
String websocketID = thing.getUID().getAsString().replace(':', '-');
websocketID = websocketID.length() < 3 ? websocketID : websocketID.substring(websocketID.length() - 20);
- this.websocket = new WebSocketConnection(this, webSocketFactory.createWebSocketClient(websocketID));
+ this.websocket = new WebSocketConnection(this, webSocketFactory.createWebSocketClient(websocketID), gson);
}
@Override
@@ -157,12 +160,13 @@ public void requestFullState() {
if (config.apikey == null) {
return;
}
- String url = url(config.host, config.apikey, null, null);
-
+ String url = url(config.getHostWithoutPort(), config.httpPort, config.apikey, null, null);
http.get(url, config.timeout).thenApply(this::parseBridgeFullStateResponse).exceptionally(e -> {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
- if (!(e instanceof SocketTimeoutException)) {
- logger.warn("Get full state failed", e);
+ if (e instanceof SocketTimeoutException || e instanceof TimeoutException
+ || e instanceof CompletionException) {
+ logger.debug("Get full state failed", e);
+ } else {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
}
return null;
}).whenComplete((value, error) -> {
@@ -171,9 +175,7 @@ public void requestFullState() {
thingDiscoveryService.stateRequestFinished(value != null ? value.sensors : null);
}
}).thenAccept(fullState -> {
- // Auth failed
if (fullState == null) {
- requestApiKey();
return;
}
if (fullState.config.name.isEmpty()) {
@@ -199,7 +201,8 @@ public void requestFullState() {
updateProperties(editProperties);
ignoreConfigurationUpdate = false;
- websocketport = fullState.config.websocketport;
+ // Use requested websocket port if no specific port is given
+ websocketPort = config.port == 0 ? fullState.config.websocketport : config.port;
startWebsocket();
}).exceptionally(e -> {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, e.getMessage());
@@ -213,18 +216,14 @@ public void requestFullState() {
* {@link #requestFullState} need to be called first to obtain the websocket port.
*/
private void startWebsocket() {
- if (websocket.isConnected() || websocketport == 0) {
+ if (websocket.isConnected() || websocketPort == 0) {
return;
}
- String host = config.host;
- if (host.indexOf(':') > 0) {
- host = host.substring(0, host.indexOf(':'));
- }
stopTimer();
scheduledFuture = scheduler.schedule(this::startWebsocket, POLL_FREQUENCY_SEC, TimeUnit.SECONDS);
- websocket.start(host + ":" + String.valueOf(websocketport));
+ websocket.start(config.getHostWithoutPort() + ":" + String.valueOf(websocketPort));
}
/**
@@ -235,7 +234,7 @@ private void startWebsocket() {
private CompletableFuture> requestApiKey() {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_PENDING, "Requesting API Key");
stopTimer();
- String url = url(config.host, null, null, null);
+ String url = url(config.getHostWithoutPort(), config.httpPort, null, null, null);
return http.post(url, "{\"devicetype\":\"openHAB\"}", config.timeout).thenAccept(this::parseAPIKeyResponse)
.exceptionally(e -> {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingConfig.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingConfig.java
index ad1cfac459dd1..9d3dd328c8722 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingConfig.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingHandler.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingHandler.java
index 55f7e41b35659..e659867e9b0b3 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingHandler.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/handler/SensorThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -17,12 +17,17 @@
import static org.eclipse.smarthome.core.library.unit.SmartHomeUnits.*;
import static org.openhab.binding.deconz.internal.BindingConstants.*;
+import java.net.SocketTimeoutException;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
+import java.util.concurrent.CompletionException;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import javax.measure.quantity.Dimensionless;
import javax.measure.quantity.ElectricCurrent;
@@ -33,7 +38,6 @@
import javax.measure.quantity.Pressure;
import javax.measure.quantity.Temperature;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.core.library.types.DateTimeType;
@@ -58,8 +62,8 @@
import org.openhab.binding.deconz.internal.dto.SensorMessage;
import org.openhab.binding.deconz.internal.dto.SensorState;
import org.openhab.binding.deconz.internal.netutils.AsyncHttpClient;
-import org.openhab.binding.deconz.internal.netutils.ValueUpdateListener;
import org.openhab.binding.deconz.internal.netutils.WebSocketConnection;
+import org.openhab.binding.deconz.internal.netutils.WebSocketValueUpdateListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -80,20 +84,23 @@
* @author David Graeff - Initial contribution
*/
@NonNullByDefault
-public class SensorThingHandler extends BaseThingHandler implements ValueUpdateListener {
+public class SensorThingHandler extends BaseThingHandler implements WebSocketValueUpdateListener {
private final Logger logger = LoggerFactory.getLogger(SensorThingHandler.class);
private SensorThingConfig config = new SensorThingConfig();
private DeconzBridgeConfig bridgeConfig = new DeconzBridgeConfig();
- private final Gson gson = new Gson();
+ private final Gson gson;
+ private @Nullable ScheduledFuture> scheduledFuture;
private @Nullable WebSocketConnection connection;
+ private @Nullable AsyncHttpClient http;
/** The sensor state. Contains all possible fields for all supported sensors and switches */
private SensorState state = new SensorState();
/** Prevent a dispose/init cycle while this flag is set. Use for property updates */
private boolean ignoreConfigurationUpdate;
- public SensorThingHandler(Thing thing) {
+ public SensorThingHandler(Thing thing, Gson gson) {
super(thing);
+ this.gson = gson;
}
@Override
@@ -113,6 +120,17 @@ public void handleConfigurationUpdate(Map configurationParameter
}
}
+ /**
+ * Stops the API request
+ */
+ private void stopTimer() {
+ ScheduledFuture> future = scheduledFuture;
+ if (future != null && !future.isCancelled()) {
+ future.cancel(true);
+ scheduledFuture = null;
+ }
+ }
+
private @Nullable SensorMessage parseStateResponse(AsyncHttpClient.Result r) {
if (r.getResponseCode() == 403) {
return null;
@@ -124,7 +142,7 @@ public void handleConfigurationUpdate(Map configurationParameter
}
@Override
- public void bridgeStatusChanged(@NonNull ThingStatusInfo bridgeStatusInfo) {
+ public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) {
if (config.id.isEmpty()) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "ID not set");
return;
@@ -148,103 +166,118 @@ public void bridgeStatusChanged(@NonNull ThingStatusInfo bridgeStatusInfo) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE);
return;
}
- DeconzBridgeHandler handler = (DeconzBridgeHandler) bridge.getHandler();
- if (handler == null) {
+ DeconzBridgeHandler bridgeHandler = (DeconzBridgeHandler) bridge.getHandler();
+ if (bridgeHandler == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE);
return;
}
- final WebSocketConnection webSocketConnection = handler.getWebsocketConnection();
+ final WebSocketConnection webSocketConnection = bridgeHandler.getWebsocketConnection();
this.connection = webSocketConnection;
- this.bridgeConfig = handler.getBridgeConfig();
+ final AsyncHttpClient asyncHttpClient = bridgeHandler.getHttp();
+ this.http = asyncHttpClient;
+ this.bridgeConfig = bridgeHandler.getBridgeConfig();
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_PENDING);
- String url = url(bridgeConfig.host, bridgeConfig.apikey, "sensors", config.id);
+ // Real-time data
+ webSocketConnection.registerValueListener(config.id, this);
+
+ requestState();
+ }
+ /**
+ * Perform a request to the REST API for retrieving the full sensor state with all data and configuration.
+ */
+ public void requestState() {
+ AsyncHttpClient asyncHttpClient = http;
+ if (asyncHttpClient == null) {
+ return;
+ }
+ String url = url(bridgeConfig.host, bridgeConfig.httpPort, bridgeConfig.apikey, "sensors", config.id);
// Get initial data
- handler.getHttp().get(url.toString(), bridgeConfig.timeout).thenApply(this::parseStateResponse) //
- .exceptionally(e -> {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
- logger.debug("Get state failed", e);
- return null;
- }).thenAccept(newState -> {
- // Auth failed
- if (newState == null) {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "Auth failed");
- return;
- }
+ asyncHttpClient.get(url, bridgeConfig.timeout).thenApply(this::parseStateResponse).exceptionally(e -> {
+ if (e instanceof SocketTimeoutException || e instanceof TimeoutException
+ || e instanceof CompletionException) {
+ logger.debug("Get new state failed", e);
+ } else {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ }
- // Add some information about the sensor
- if (!newState.config.reachable) {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, "Not reachable");
- return;
- }
+ stopTimer();
+ scheduledFuture = scheduler.schedule(this::requestState, 10, TimeUnit.SECONDS);
- if (!newState.config.on) {
- updateStatus(ThingStatus.OFFLINE);
- return;
- }
+ return null;
+ }).thenAccept(newState -> {
+ if (newState == null) {
+ return;
+ }
- Map editProperties = editProperties();
- editProperties.put(Thing.PROPERTY_FIRMWARE_VERSION, newState.swversion);
- editProperties.put(Thing.PROPERTY_MODEL_ID, newState.modelid);
- editProperties.put(UNIQUE_ID, newState.uniqueid);
- ignoreConfigurationUpdate = true;
- updateProperties(editProperties);
-
- // Some sensors support optional channels
- // (see https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Supported-Devices#sensors)
- // any battery-powered sensor
- Integer batteryLevel = newState.config.battery;
- if (batteryLevel != null) {
- createAndUpdateChannelIfExists(CHANNEL_BATTERY_LEVEL,
- new DecimalType(batteryLevel.longValue()));
- createAndUpdateChannelIfExists(CHANNEL_BATTERY_LOW,
- batteryLevel <= 10 ? OnOffType.ON : OnOffType.OFF);
- }
+ // Add some information about the sensor
+ if (!newState.config.reachable) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.GONE, "Not reachable");
+ return;
+ }
- // some Xiaomi sensors
- Float temperature = newState.config.temperature;
- if (temperature != null) {
- createAndUpdateChannelIfExists(CHANNEL_TEMPERATURE,
- new QuantityType(temperature / 100, CELSIUS));
- }
+ if (!newState.config.on) {
+ updateStatus(ThingStatus.OFFLINE);
+ return;
+ }
- // ZHAPresence - e.g. IKEA TRÃ…DFRI motion sensor
- if (newState.state.dark != null) {
- createChannel(CHANNEL_DARK);
- }
+ Map editProperties = editProperties();
+ editProperties.put(Thing.PROPERTY_FIRMWARE_VERSION, newState.swversion);
+ editProperties.put(Thing.PROPERTY_MODEL_ID, newState.modelid);
+ editProperties.put(UNIQUE_ID, newState.uniqueid);
+ ignoreConfigurationUpdate = true;
+ updateProperties(editProperties);
+
+ // Some sensors support optional channels
+ // (see https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Supported-Devices#sensors)
+ // any battery-powered sensor
+ Integer batteryLevel = newState.config.battery;
+ if (batteryLevel != null) {
+ createAndUpdateChannelIfExists(CHANNEL_BATTERY_LEVEL, new DecimalType(batteryLevel.longValue()));
+ createAndUpdateChannelIfExists(CHANNEL_BATTERY_LOW, batteryLevel <= 10 ? OnOffType.ON : OnOffType.OFF);
+ }
- // ZHAConsumption - e.g Bitron 902010/25 or Heiman SmartPlug
- if (newState.state.power != null) {
- createChannel(CHANNEL_POWER);
- }
+ // some Xiaomi sensors
+ Float temperature = newState.config.temperature;
+ if (temperature != null) {
+ createAndUpdateChannelIfExists(CHANNEL_TEMPERATURE,
+ new QuantityType(temperature / 100, CELSIUS));
+ }
- // ZHAPower - e.g. Heiman SmartPlug
- if (newState.state.voltage != null) {
- createChannel(CHANNEL_VOLTAGE);
- }
- if (newState.state.current != null) {
- createChannel(CHANNEL_CURRENT);
- }
+ // ZHAPresence - e.g. IKEA TRÃ…DFRI motion sensor
+ if (newState.state.dark != null) {
+ createChannel(CHANNEL_DARK);
+ }
- // IAS Zone sensor - e.g. Heiman HS1MS motion sensor
- if (newState.state.tampered != null) {
- createChannel(CHANNEL_TAMPERED);
- }
- ignoreConfigurationUpdate = false;
+ // ZHAConsumption - e.g Bitron 902010/25 or Heiman SmartPlug
+ if (newState.state.power != null) {
+ createChannel(CHANNEL_POWER);
+ }
- // Initial data
- for (Channel channel : thing.getChannels()) {
- valueUpdated(channel.getUID(), newState.state, true);
- }
+ // ZHAPower - e.g. Heiman SmartPlug
+ if (newState.state.voltage != null) {
+ createChannel(CHANNEL_VOLTAGE);
+ }
+ if (newState.state.current != null) {
+ createChannel(CHANNEL_CURRENT);
+ }
- // Real-time data
- webSocketConnection.registerValueListener(config.id, this);
- updateStatus(ThingStatus.ONLINE, ThingStatusDetail.NONE);
- });
+ // IAS Zone sensor - e.g. Heiman HS1MS motion sensor
+ if (newState.state.tampered != null) {
+ createChannel(CHANNEL_TAMPERED);
+ }
+ ignoreConfigurationUpdate = false;
+
+ // Initial data
+ for (Channel channel : thing.getChannels()) {
+ valueUpdated(channel.getUID(), newState.state, true);
+ }
+ updateStatus(ThingStatus.ONLINE);
+ });
}
private void createAndUpdateChannelIfExists(String channelId, State state) {
@@ -282,6 +315,7 @@ private void createAndUpdateChannelIfExists(String channelId, State state) {
@Override
public void dispose() {
+ stopTimer();
WebSocketConnection webSocketConnection = connection;
if (webSocketConnection != null) {
webSocketConnection.unregisterValueListener(config.id);
@@ -299,32 +333,32 @@ public void initialize() {
}
}
- public void valueUpdated(ChannelUID channelUID, SensorState state, boolean initializing) {
- this.state = state;
-
- Integer buttonevent = state.buttonevent;
- String lastUpdated = state.lastupdated;
- Integer status = state.status;
- Boolean presence = state.presence;
- Boolean open = state.open;
- Float power = state.power;
- Float consumption = state.consumption;
- Float voltage = state.voltage;
- Float current = state.current;
- Integer lux = state.lux;
- Integer lightlevel = state.lightlevel;
- Float temperature = state.temperature;
- Float humidity = state.humidity;
- Integer pressure = state.pressure;
+ public void valueUpdated(ChannelUID channelUID, SensorState newState, boolean initializing) {
+ this.state = newState;
+
+ Integer buttonevent = newState.buttonevent;
+ String lastUpdated = newState.lastupdated;
+ Integer status = newState.status;
+ Boolean presence = newState.presence;
+ Boolean open = newState.open;
+ Float power = newState.power;
+ Float consumption = newState.consumption;
+ Float voltage = newState.voltage;
+ Float current = newState.current;
+ Integer lux = newState.lux;
+ Integer lightlevel = newState.lightlevel;
+ Float temperature = newState.temperature;
+ Float humidity = newState.humidity;
+ Integer pressure = newState.pressure;
switch (channelUID.getId()) {
case CHANNEL_LIGHT:
- if (state.dark != null) {
- boolean dark = state.dark;
+ Boolean dark = newState.dark;
+ if (dark != null) {
+ Boolean daylight = newState.daylight;
if (dark) { // if it's dark, it's dark ;)
updateState(channelUID, new StringType("Dark"));
- } else if (state.daylight != null) { // if its not dark, it might be between darkness and daylight
- boolean daylight = state.daylight;
+ } else if (daylight != null) { // if its not dark, it might be between darkness and daylight
if (daylight) {
updateState(channelUID, new StringType("Daylight"));
} else if (!daylight) {
@@ -366,10 +400,10 @@ public void valueUpdated(ChannelUID channelUID, SensorState state, boolean initi
}
break;
case CHANNEL_DARK:
- updateState(channelUID, Boolean.TRUE.equals(state.dark) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.dark) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_DAYLIGHT:
- updateState(channelUID, Boolean.TRUE.equals(state.daylight) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.daylight) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_TEMPERATURE:
if (temperature != null) {
@@ -402,16 +436,19 @@ public void valueUpdated(ChannelUID channelUID, SensorState state, boolean initi
}
break;
case CHANNEL_WATERLEAKAGE:
- updateState(channelUID, Boolean.TRUE.equals(state.water) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.water) ? OnOffType.ON : OnOffType.OFF);
+ break;
+ case CHANNEL_FIRE:
+ updateState(channelUID, Boolean.TRUE.equals(newState.fire) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_ALARM:
- updateState(channelUID, Boolean.TRUE.equals(state.alarm) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.alarm) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_TAMPERED:
- updateState(channelUID, Boolean.TRUE.equals(state.tampered) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.tampered) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_VIBRATION:
- updateState(channelUID, Boolean.TRUE.equals(state.vibration) ? OnOffType.ON : OnOffType.OFF);
+ updateState(channelUID, Boolean.TRUE.equals(newState.vibration) ? OnOffType.ON : OnOffType.OFF);
break;
case CHANNEL_BUTTON:
if (buttonevent != null) {
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/AsyncHttpClient.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/AsyncHttpClient.java
index cc8d578cc8c30..b3b98c092d92c 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/AsyncHttpClient.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/AsyncHttpClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -13,7 +13,6 @@
package org.openhab.binding.deconz.internal.netutils;
import java.io.ByteArrayInputStream;
-import java.io.IOException;
import java.net.URI;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@@ -34,6 +33,7 @@
*/
@NonNullByDefault
public class AsyncHttpClient {
+
private final HttpClient client;
public AsyncHttpClient(HttpClient client) {
@@ -47,7 +47,6 @@ public AsyncHttpClient(HttpClient client) {
* @param jsonString The message body
* @param timeout A timeout
* @return The result
- * @throws IOException Any IO exception in an error case.
*/
public CompletableFuture post(String address, String jsonString, int timeout) {
return doNetwork(HttpMethod.POST, address, jsonString, timeout);
@@ -60,7 +59,6 @@ public CompletableFuture post(String address, String jsonString, int tim
* @param jsonString The message body
* @param timeout A timeout
* @return The result
- * @throws IOException Any IO exception in an error case.
*/
public CompletableFuture put(String address, String jsonString, int timeout) {
return doNetwork(HttpMethod.PUT, address, jsonString, timeout);
@@ -72,7 +70,6 @@ public CompletableFuture put(String address, String jsonString, int time
* @param address The address
* @param timeout A timeout
* @return The result
- * @throws IOException Any IO exception in an error case.
*/
public CompletableFuture get(String address, int timeout) {
return doNetwork(HttpMethod.GET, address, null, timeout);
@@ -84,14 +81,13 @@ public CompletableFuture get(String address, int timeout) {
* @param address The address
* @param timeout A timeout
* @return The result
- * @throws IOException Any IO exception in an error case.
*/
public CompletableFuture delete(String address, int timeout) {
return doNetwork(HttpMethod.DELETE, address, null, timeout);
}
private CompletableFuture doNetwork(HttpMethod method, String address, @Nullable String body, int timeout) {
- final CompletableFuture f = new CompletableFuture();
+ final CompletableFuture f = new CompletableFuture<>();
Request request = client.newRequest(URI.create(address));
if (body != null) {
try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes());
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnection.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnection.java
index d39a1e55b4d07..d832ded7bc896 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnection.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -44,13 +44,15 @@ public class WebSocketConnection {
private final WebSocketClient client;
private final WebSocketConnectionListener connectionListener;
- private final Map valueListener = new HashMap<>();
- private final Gson gson = new Gson();
+ private final Map valueListener = new HashMap<>();
+ private final Gson gson;
private boolean connected = false;
- public WebSocketConnection(WebSocketConnectionListener listener, WebSocketClient client) {
+ public WebSocketConnection(WebSocketConnectionListener listener, WebSocketClient client, Gson gson) {
this.connectionListener = listener;
this.client = client;
+ this.client.setMaxIdleTimeout(0);
+ this.gson = gson;
}
public void start(String ip) {
@@ -74,12 +76,12 @@ public void close() {
connected = false;
client.stop();
} catch (Exception e) {
- logger.debug("Error while closing connection: {}", e);
+ logger.debug("Error while closing connection", e);
}
client.destroy();
}
- public void registerValueListener(String sensorID, ValueUpdateListener listener) {
+ public void registerValueListener(String sensorID, WebSocketValueUpdateListener listener) {
valueListener.put(sensorID, listener);
}
@@ -98,7 +100,7 @@ public void onConnect(Session session) {
@OnWebSocketMessage
public void onMessage(String message) {
SensorMessage changedMessage = gson.fromJson(message, SensorMessage.class);
- ValueUpdateListener listener = valueListener.get(changedMessage.id);
+ WebSocketValueUpdateListener listener = valueListener.get(changedMessage.id);
if (listener != null) {
listener.websocketUpdate(changedMessage.id, changedMessage.state);
}
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnectionListener.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnectionListener.java
index 0c90f4f862ded..01749714e1d21 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnectionListener.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketConnectionListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/ValueUpdateListener.java b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketValueUpdateListener.java
similarity index 88%
rename from bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/ValueUpdateListener.java
rename to bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketValueUpdateListener.java
index 8af5f8f083169..a5c31b021e74a 100644
--- a/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/ValueUpdateListener.java
+++ b/bundles/org.openhab.binding.deconz/src/main/java/org/openhab/binding/deconz/internal/netutils/WebSocketValueUpdateListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -21,7 +21,7 @@
* @author David Graeff - Initial contribution
*/
@NonNullByDefault
-public interface ValueUpdateListener {
+public interface WebSocketValueUpdateListener {
/**
* A sensor state was updated.
*
diff --git a/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/config/config.xml
index 4f018848c2eb6..7a455b32502fc 100644
--- a/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/config/config.xml
@@ -8,12 +8,28 @@
network-address
- IP address or host name and port
+ IP address or host name of deCONZ interface.
+
+
+
+ Port of the deCONZ HTTP interface.
+ 80
+
+
+
+ Port of the deCONZ Websocket.
+ true
- If no API Key is provided, a new one will be requested. You need to authorize the access on the deCONZ
- web interface.
+ password
+ If no API Key is provided, a new one will be requested. You need to authorize the access on the deCONZ web interface.
+
+
+
+ Timeout for asynchronous HTTP requests (in milliseconds).
+ true
+ 2000
diff --git a/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/thing/thing-types.xml
index 22490c9b083f4..05362ff619ae7 100644
--- a/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.deconz/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -335,6 +335,29 @@
+
+
+
+
+
+ A fire sensor
+
+
+
+
+
+ uid
+
+
+
+
+
+ Switch
+
+ A fire was detected.
+
+
+
diff --git a/bundles/org.openhab.binding.denonmarantz/NOTICE b/bundles/org.openhab.binding.denonmarantz/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.denonmarantz/NOTICE
+++ b/bundles/org.openhab.binding.denonmarantz/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.denonmarantz/README.md b/bundles/org.openhab.binding.denonmarantz/README.md
index 55c2ae2334780..c49b1b30e6996 100644
--- a/bundles/org.openhab.binding.denonmarantz/README.md
+++ b/bundles/org.openhab.binding.denonmarantz/README.md
@@ -112,6 +112,6 @@ These resources can be useful to learn what to send using the `command`channel:
- [AVR-X2000/E400](http://www2.aerne.com/Public/dok-sw.nsf/0c6187bc750a16fcc1256e3c005a9740/96a2ba120706d10dc1257bdd0033493f/$FILE/AVRX2000_E400_PROTOCOL(10.1.0)_V04.pdf)
- [AVR-X4000](https://usa.denon.com/us/product/hometheater/receivers/avrx4000?docname=AVRX4000_PROTOCOL(10%203%200)_V03.pdf)
-- [AVR-3311CI/AVR-3311/AVR-991](http://www.awe-europe.com/documents/Control%20Docs/Denon/Archive/AVR3311CI_AVR3311_991_PROTOCOL_V7.1.0.pdf)
+- [AVR-3311CI/AVR-3311/AVR-991](https://www.awe-europe.com/documents/Control%20Docs/Denon/Archive/AVR3311CI_AVR3311_991_PROTOCOL_V7.1.0.pdf)
- [CEOL Piccolo DRA-N5/RCD-N8](http://www.audioproducts.com.au/downloadcenter/products/Denon/CEOLPICCOLOBK/Manuals/DRAN5_RCDN8_PROTOCOL_V.1.0.0.pdf)
- [Marantz Control Protocol (2014+)](http://m.us.marantz.com/DocumentMaster/US/Marantz%202014%20NR%20Series%20-%20SR%20Series%20RS232%20IP%20Protocol.xls)
diff --git a/bundles/org.openhab.binding.denonmarantz/pom.xml b/bundles/org.openhab.binding.denonmarantz/pom.xml
index bc97f4d55a6d9..fb55e867bf830 100644
--- a/bundles/org.openhab.binding.denonmarantz/pom.xml
+++ b/bundles/org.openhab.binding.denonmarantz/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.denonmarantz
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/feature/feature.xml b/bundles/org.openhab.binding.denonmarantz/src/main/feature/feature.xml
index 7491fc7910fb0..ddc816aaaf4f0 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzBindingConstants.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzBindingConstants.java
index 01b60a3ef580e..ff3bc920fe844 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzBindingConstants.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzHandlerFactory.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzHandlerFactory.java
index eb5de3f25e173..2be47557fd86f 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzHandlerFactory.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java
index d46d7689f04db..ba74bb2347238 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzStateChangedListener.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzStateChangedListener.java
index 8b269fe6bb233..96307e224623b 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzStateChangedListener.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzStateChangedListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/UnsupportedCommandTypeException.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/UnsupportedCommandTypeException.java
index 07f8137db82d9..0cf72b4625f56 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/UnsupportedCommandTypeException.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/UnsupportedCommandTypeException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/config/DenonMarantzConfiguration.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/config/DenonMarantzConfiguration.java
index 8f606686dcb9d..a307a57c2a831 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/config/DenonMarantzConfiguration.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/config/DenonMarantzConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnector.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnector.java
index 2ecfd28579f49..816897198b240 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnector.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnector.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnectorFactory.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnectorFactory.java
index 89dc4b8f0382c..5c4ef4b9e2911 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnectorFactory.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/DenonMarantzConnectorFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java
index d6495edad00fd..3a470eff6166d 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/http/DenonMarantzHttpConnector.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -127,7 +127,7 @@ public void connect() {
try {
refreshHttpProperties();
} catch (IOException e) {
- logger.debug("IO error while retrieving document: {}", e);
+ logger.debug("IO error while retrieving document", e);
state.connectionError("IO error while connecting to AVR: " + e.getMessage());
stopPolling();
} catch (RuntimeException e) {
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClient.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClient.java
index 3daf22f62092f..496c523931eb0 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClient.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java
index 7f91ff1d214be..2942c36c84d2a 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetListener.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetListener.java
index d6db11ccf43b9..1bf3bb3d486ce 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetListener.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/discovery/DenonMarantzDiscoveryParticipant.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/discovery/DenonMarantzDiscoveryParticipant.java
index b313fec5b9e5e..d2167ff942e07 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/discovery/DenonMarantzDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/discovery/DenonMarantzDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/handler/DenonMarantzHandler.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/handler/DenonMarantzHandler.java
index 23d7d9d16d266..7bf78b46ca878 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/handler/DenonMarantzHandler.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/handler/DenonMarantzHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -208,7 +208,7 @@ private void autoConfigure() {
httpApiUsable = true;
}
} catch (InterruptedException | TimeoutException | ExecutionException e) {
- logger.debug("Error when trying to access AVR using HTTP on port 80: {}, reverting to Telnet mode.", e);
+ logger.debug("Error when trying to access AVR using HTTP on port 80, reverting to Telnet mode.", e);
}
if (telnetEnable) {
@@ -224,7 +224,7 @@ private void autoConfigure() {
httpApiUsable = true;
}
} catch (InterruptedException | TimeoutException | ExecutionException e) {
- logger.debug("Additionally tried to connect to port 8080, this also failed: {}", e);
+ logger.debug("Additionally tried to connect to port 8080, this also failed", e);
}
}
@@ -240,7 +240,7 @@ private void autoConfigure() {
.timeout(3, TimeUnit.SECONDS).send();
status = response.getStatus();
} catch (InterruptedException | TimeoutException | ExecutionException e) {
- logger.debug("Failed in fetching the Deviceinfo.xml to determine zone count: {}", e);
+ logger.debug("Failed in fetching the Deviceinfo.xml to determine zone count", e);
}
if (status == HttpURLConnection.HTTP_OK && response != null) {
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/OnOffAdapter.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/OnOffAdapter.java
index 9d66006220183..fe99770220e45 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/OnOffAdapter.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/OnOffAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java
index 9bb396731ac60..76411bce37660 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/StringAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/VolumeAdapter.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/VolumeAdapter.java
index 4e4a59d634a58..4bbda93770957 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/VolumeAdapter.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/adapters/VolumeAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Deviceinfo.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Deviceinfo.java
index 77fa38d058fc6..9ae1fd8c8cade 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Deviceinfo.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Deviceinfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Main.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Main.java
index 66249780f9033..b4943aff107a2 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Main.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/Main.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatus.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatus.java
index daa7847a3b7ed..ae2fe3dec63b9 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatus.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatusLite.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatusLite.java
index e57c3b2fc4b2d..e017d92c924b0 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatusLite.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/ZoneStatusLite.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandRequest.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandRequest.java
index ae0ed3f7b9e72..40a6d42f37f37 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandRequest.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandResponse.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandResponse.java
index 7a91c544266fe..34127e6d6a8e8 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandResponse.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/AppCommandResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandRx.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandRx.java
index 1ccb972837a66..9280e57e1fd67 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandRx.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandRx.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandTx.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandTx.java
index 1d8580fc64d83..e46c2d532b1da 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandTx.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/CommandTx.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/DeletedSourceList.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/DeletedSourceList.java
index bb3b9f951e304..0cadd5ac9a2d1 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/DeletedSourceList.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/DeletedSourceList.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/RenameSourceList.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/RenameSourceList.java
index 5d55c98f8ce53..ba12f159194e8 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/RenameSourceList.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/RenameSourceList.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/Text.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/Text.java
index 5c214bbe7d3f0..bb2a46537200e 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/Text.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/commands/Text.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/OnOffType.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/OnOffType.java
index 99775dc15737c..90826605784dc 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/OnOffType.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/OnOffType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/StringType.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/StringType.java
index 74ab9630ef7af..c1adc93b4ed05 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/StringType.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/StringType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/VolumeType.java b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/VolumeType.java
index e1d1de7b6b9cc..fa4082cdfe1c3 100644
--- a/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/VolumeType.java
+++ b/bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/xml/entities/types/VolumeType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/NOTICE b/bundles/org.openhab.binding.digiplex/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.digiplex/NOTICE
+++ b/bundles/org.openhab.binding.digiplex/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.digiplex/README.md b/bundles/org.openhab.binding.digiplex/README.md
index ee682768f3cca..21be39fd64eeb 100644
--- a/bundles/org.openhab.binding.digiplex/README.md
+++ b/bundles/org.openhab.binding.digiplex/README.md
@@ -99,7 +99,7 @@ Message format is as follows:
`` is your PIN as entered on a keypad.
-**Note**: For security reasons please consider not storing your PIN in openhab configuration files.
+**Note**: For security reasons please consider not storing your PIN in openHAB configuration files.
**Note2**: Please consult your alarm system manual how to enable `Quick Arm` feature. It is not enabled by default.
@@ -107,4 +107,4 @@ For example, the following sitemap item can be used to send commands to the area
```
Switch item=areaControl label="Actions[]" mappings=[QA="Regular Quick Arm",QS="Stay Quick Arm",D1111="Disarm"] labelcolor=[Ok="green",Fail="red"]
-```
\ No newline at end of file
+```
diff --git a/bundles/org.openhab.binding.digiplex/pom.xml b/bundles/org.openhab.binding.digiplex/pom.xml
index 602de896293ae..a7ac73facfb71 100644
--- a/bundles/org.openhab.binding.digiplex/pom.xml
+++ b/bundles/org.openhab.binding.digiplex/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.digiplex
diff --git a/bundles/org.openhab.binding.digiplex/src/main/feature/feature.xml b/bundles/org.openhab.binding.digiplex/src/main/feature/feature.xml
index 2afd8dccfb985..f927556337fe0 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.digiplex/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexAreaConfiguration.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexAreaConfiguration.java
index 3745cda75a41d..9314b8090fd90 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexAreaConfiguration.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexAreaConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBindingConstants.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBindingConstants.java
index 11fb2d11d25d4..9713fcbdc393e 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBindingConstants.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBridgeConfiguration.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBridgeConfiguration.java
index f61efb4b41ce5..bbc11dbe4ea53 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBridgeConfiguration.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexBridgeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexHandlerFactory.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexHandlerFactory.java
index 119e83ecdefcb..9732fa2a0a32c 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexHandlerFactory.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/DigiplexHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AbstractResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AbstractResponse.java
index 945455104c385..7716f54331d11 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AbstractResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AbstractResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmDisarmResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmDisarmResponse.java
index 4ec6d8281dc5b..560fa0668c38d 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmDisarmResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmDisarmResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmRequest.java
index 610a7459b1e4c..c43cdc140081b 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaArmRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaDisarmRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaDisarmRequest.java
index fb956b36fc5ca..3eaff49d74c78 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaDisarmRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaDisarmRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelRequest.java
index 2f15664b91d98..e4573fc5d1409 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelResponse.java
index 70cc9a6df8983..f4149ea481e6f 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaLabelResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaQuickArmRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaQuickArmRequest.java
index e290f045cc55a..46c48c71136d4 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaQuickArmRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaQuickArmRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatus.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatus.java
index 164f0edf89906..7da08ff102dae 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatus.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusRequest.java
index 43a15902066fa..48ff540fd5132 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusResponse.java
index 27337810335a2..75e11719a56cc 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/AreaStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmDisarmType.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmDisarmType.java
index 8ac2949d5a59e..ae6d7ff08c08f 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmDisarmType.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmDisarmType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmType.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmType.java
index d4bd86cf3c82e..f11c321b61949 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmType.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ArmType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/CommunicationStatus.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/CommunicationStatus.java
index 7af5679da92a1..e404bed64f621 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/CommunicationStatus.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/CommunicationStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessage.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessage.java
index 3bb4a6e877235..6952080282594 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessage.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessageHandler.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessageHandler.java
index 820cf1ec3fc06..aa6a0ae29e796 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessageHandler.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexMessageHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexRequest.java
index 4a3ea46ca9b47..04133a3314c98 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponse.java
index e0e74ac968c62..003d36e43246b 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponseResolver.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponseResolver.java
index 4a41c68a9f129..b436d1a8fe0c4 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponseResolver.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/DigiplexResponseResolver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/UnknownResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/UnknownResponse.java
index 19431413b9d11..3fd8991cb9726 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/UnknownResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/UnknownResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelRequest.java
index f3bb4347a7c85..2d750df1e603b 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelResponse.java
index 3529fb2123083..3398fc074e752 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneLabelResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatus.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatus.java
index 0b7014bd735a8..f1b1226bd5575 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatus.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusRequest.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusRequest.java
index d2b74c5ce3ab7..41e4df3c9a4f5 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusRequest.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusResponse.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusResponse.java
index c5ae249df5a36..453ea9b09f94d 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusResponse.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/ZoneStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AbstractEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AbstractEvent.java
index c1aa9adb10f6f..a981de3b6d323 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AbstractEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AbstractEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEvent.java
index 1025d58b1dd32..53eb468fbcae5 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEventType.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEventType.java
index 025e02f73d244..5d60f7fd43538 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEventType.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/AreaEventType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/GenericEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/GenericEvent.java
index 7d0d21604c7a4..aa9303e0f03c4 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/GenericEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/GenericEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmEvent.java
index 4a0d8a58ef4f5..bf7a05194fe89 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmType.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmType.java
index 3243977575be7..ebd593d6d49a0 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmType.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/SpecialAlarmType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEvent.java
index f1996add070a2..bda34d54900fc 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEventType.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEventType.java
index 601b2623b5854..c152248d3bf73 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEventType.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneEventType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneStatusEvent.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneStatusEvent.java
index 743af364bf0cf..52cd3ab4f8167 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneStatusEvent.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/communication/events/ZoneStatusEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/discovery/DigiplexDiscoveryService.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/discovery/DigiplexDiscoveryService.java
index bebf19ec4d7ca..b24c49a547c6e 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/discovery/DigiplexDiscoveryService.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/discovery/DigiplexDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexAreaHandler.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexAreaHandler.java
index 4f1ec29387ca1..1210f85183748 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexAreaHandler.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexAreaHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexBridgeHandler.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexBridgeHandler.java
index 5a7e213e3f9c9..9d929b2b27109 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexBridgeHandler.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexZoneHandler.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexZoneHandler.java
index 7ca0504177ebc..57f1070c42ad0 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexZoneHandler.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/DigiplexZoneHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/TypeUtils.java b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/TypeUtils.java
index 94bb424e13f56..4e0203eb17192 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/TypeUtils.java
+++ b/bundles/org.openhab.binding.digiplex/src/main/java/org/openhab/binding/digiplex/internal/handler/TypeUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/area.xml b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/area.xml
index 1b6e5735c6f70..bc0e7ea788425 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/area.xml
+++ b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/area.xml
@@ -22,8 +22,8 @@
-
-
+
+
Controls how often area status will be refreshed from the PRT3 module60
@@ -48,7 +48,7 @@
Contact
-
+
Indicates if area is armed
@@ -60,7 +60,7 @@
Contact
-
+
@@ -86,15 +86,15 @@
Indicates if area is ready (no open zones)
-
-
+
+
Contact
-
+
Indicates if area is in the programming mode
@@ -106,7 +106,7 @@
Contact
-
+
Indicates if area is in alarm
diff --git a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/bridge.xml
index b4ffefaaec3cd..44f828e5ae1b5 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/bridge.xml
@@ -5,7 +5,7 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Digiplex PRT3 module with Serial Interface
@@ -46,19 +46,19 @@
Number
-
+
Counts messages sent to the alarm systemNumber
-
+
Counts responses received from the alarm systemNumber
-
+
Counts events received from the alarm system
diff --git a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/zone.xml b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/zone.xml
index 339751e32f966..69e11cff68c3c 100644
--- a/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/zone.xml
+++ b/bundles/org.openhab.binding.digiplex/src/main/resources/ESH-INF/thing/zone.xml
@@ -35,7 +35,7 @@
String
-
+
Indicates actual zone state as a string
@@ -49,7 +49,7 @@
Contact
-
+
Indicates if zone is in alarm
@@ -61,7 +61,7 @@
Contact
-
+
Indicates if zone is in fire alarm
@@ -73,7 +73,7 @@
Contact
-
+
Indicates if zone has lost a supervision
@@ -85,7 +85,7 @@
Contact
-
+
Indicates if zone is low on battery
@@ -97,7 +97,7 @@
DateTime
-
+
Indicates when the zone has been triggered for the last time
diff --git a/bundles/org.openhab.binding.digitalstrom/NOTICE b/bundles/org.openhab.binding.digitalstrom/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.digitalstrom/NOTICE
+++ b/bundles/org.openhab.binding.digitalstrom/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.digitalstrom/README.md b/bundles/org.openhab.binding.digitalstrom/README.md
index 205ba8faa45b5..4b17a8f83850c 100644
--- a/bundles/org.openhab.binding.digitalstrom/README.md
+++ b/bundles/org.openhab.binding.digitalstrom/README.md
@@ -1,6 +1,6 @@
# digitalSTROM Binding
- This binding integrates the [digitalSTROM-System](http://www.digitalstrom.de/).
+ This binding integrates the [digitalSTROM-System](https://www.digitalstrom.de/).
The integration happens through the digitalSTROM-Server, which acts as a gateway to connect the digitalSTROM-Devices.
The digitalSTROM-Server communicates through the digitalSTROM-Meters with the digitalSTROM-Devices, which are directly connected to the power-line.
@@ -16,10 +16,13 @@ The digitalSTROM-Server is required for accessing any other digitalSTROM-Devices
### digitalSTROM-Devices
-At this point almost all available **GE**, **SW**, **GR** and **BL** digitalSTROM-Devices with a set output-mode, unequal *disabled*, are supported by this binding. Furthermore sensor devices like the **dS-iSens200** and **SW-devices** with binary-inputs are supported.
+At this point almost all available **GE**, **SW**, **GR** and **BL** digitalSTROM-Devices with a set output-mode, unequal *disabled*, are supported by this binding.
+Furthermore sensor devices like the **dS-iSens200** and **SW-devices** with binary-inputs are supported.
Last but not least the **circuit** (dS-Meter) is supported, too. They will provide the power consumption and electric meter as channels.
-For that there are identically named thing types. Only the *GR* type has a channel (shade), which cannot be changed. The other types add their channels dynamically affected by the set color-group and output-mode. They also automatically change or add the channels, if the color-group or output-mode has changed through the dSS-web-configuration or the configured sensor priorities of the thing has changed.
+For that there are identically named thing types. Only the *GR* type has a channel (shade), which cannot be changed.
+The other types add their channels dynamically affected by the set color-group and output-mode.
+They also automatically change or add the channels, if the color-group or output-mode has changed through the dSS-web-configuration or the configured sensor priorities of the thing has changed.
- The following table shows all tested digitalSTROM-Devices with their output-modes.
@@ -30,7 +33,7 @@ For that there are identically named thing types. Only the *GR* type has a chann
| GE-TKM210 | switched, dimmed | yellow |
| GE-SDM200 | switched, dimmed | yellow |
| GE-UMV200 | 1-10V dimmed | yellow |
-| GR-KL200 | standard output-mode | grey |
+| GR-KL200 | standard output-mode | grey |
| GR-KL210 | standard output-mode| grey |
| GR-KL220 | standard output-mode | grey |
| SW-KL200 | switch, powersave, wipe | black, yellow |
@@ -57,7 +60,8 @@ The different scene thing types are listed in the following table.
### digitalSTROM-Zone-Temperature-Control
Last but not least, the digitalSTROM-Zone-Temperature-Control is also supported, if a zone-temerature-control is configured, as thing-type **zone_temperature_control**.
-The difference between the digitalSTROM-heating-control-app is, that there are no operation-modes, like *comfort* or *eco*. You can directly set the target temperature, in case *pid-control* is configured, otherwise you can set the value in percent of heating valves at the zone.
+The difference between the digitalSTROM-heating-control-app is, that there are no operation-modes, like *comfort* or *eco*.
+You can directly set the target temperature, in case *pid-control* is configured, otherwise you can set the value in percent of heating valves at the zone.
The needed channels will be added automatically, as it is also the case for the devices.
## Discovery
@@ -87,7 +91,7 @@ The digitalSTROM-Server thing has the following configuration parameter groups:
#### Connection configuration
If the digitalSTROM-Server isn’t found automatically, e.g. because the server isn’t placed at the local network or the mDNS-service is deactivated, you have to insert the network address or URL and the authentication data manually through the graphical user interface or type it into the \*.thing with textual configuration.
-If you use your user name and password for authentication and there is already a token for this application, it will be automatically retrieved from the digitalSTROM-Server, otherwise a new application-token will be generated.
+If you use your user name and password for authentication and there is already a token for this application, it will be automatically retrieved from the digitalSTROM-Server, otherwise a new application-token will be generated.
| Parameter Label | Parameter ID | Description | Required | Advanced
|--------------|------------|--------------------------------|----------------- |------------- |
@@ -137,7 +141,7 @@ In addition to the configuration the digitalSTROM-Server has the following prope
| Serial | The digitalSTROM-Server hardware serial number. |
| Ethernet | The digitalSTROM-Server IEEE mac address. |
| MachineID | The digitalSTROM-Server unique id. |
-| Kernel | The digitalSTROM-Server linux kernel release string. |
+| Kernel | The digitalSTROM-Server Linux kernel release string. |
### digitalSTROM-Devices
@@ -156,7 +160,7 @@ The following table shows the parameter:
#### Sensor setup
The GE, BL and SW digitalSTROM-Devices usually have sensors to capture power consumption data.
-So these devices have the following parameters to read them out.
+So these devices have the following parameters to read them out.
| Parameter Label | Parameter ID| Description | Required | Advanced | Default |
|-----------------|--------------------|-----------------------------|----------------- |------------- | -----------|
@@ -173,12 +177,12 @@ The following table shows all informative properties:
| ------------- | ------------------------------------- |
|dSUID | The unique identifier of a digitalSTORM-device with virtual devices. |
| deviceName | he name of a digitalSTROM-Device. |
-| meterDSID | Identifier of the meter to which the device is connected. |
-| hwInfo | The hardware type from this digitalSTROM-Device. |
-| zoneID |The digitalSTROM-Device is part of this zone. |
-| groups | The digitalSTROM-Device is part of this user-defined or functional groups. |
-| output mode | The current digitalSTROM-Device output mode e.g. 22 = dimmable. |
-| funcColorGroup | The current digitalSTROM-Device functional color group e.g. yellow = light. |
+| meterDSID | Identifier of the meter to which the device is connected. |
+| hwInfo | The hardware type from this digitalSTROM-Device. |
+| zoneID |The digitalSTROM-Device is part of this zone. |
+| groups | The digitalSTROM-Device is part of this user-defined or functional groups. |
+| output mode | The current digitalSTROM-Device output mode e.g. 22 = dimmable. |
+| funcColorGroup | The current digitalSTROM-Device functional color group e.g. yellow = light. |
The device scene configurations will also be persisted in the properties. There are in the format:
@@ -224,7 +228,7 @@ As configuration only the zone ID or the zone name, to identify the controlled z
### digitalSTROM-Scenes
-The digitalSTROM-Scenes can be defined with following parameters.
+The digitalSTROM-Scenes can be defined with following parameters.
| Parameter Label | Parameter ID| Description | Required | Advanced |
|-----------------|------------------------|----------------------------------|----------------- |------------- |
@@ -269,7 +273,7 @@ Thing digitalstrom:groupScene:preset1 (digitalstrom:dssBridge:myDssBridge) [ zon
## Channels
-All devices support some of the following channels:
+All devices support some of the following channels:
### Output-Channels
@@ -331,10 +335,10 @@ digitalSTROM-Devices which are able to set a binary-input sensor like SW-UMR200
|-------|---------|------------------------------------|----------------- |
| binary_input_presence | Switch | Will be activated, if a presence is detected. | SW |
| binary_input_brightness | Switch | Will be activated, if the brightness is higher than a setted value. | SW |
-| binary_input_presence_in_darkness | Switch | Will be activated, if a presence is detected. Sensor has a integrated twilight sensor. | SW |
+| binary_input_presence_in_darkness | Switch | Will be activated, if a presence is detected. Sensor has an integrated twilight sensor. | SW |
| binary_input_twilight | Switch | Will be activated by twilight. | SW |
| binary_input_motion | Switch | Will be activated, if a motion is detected. | SW |
-| binary_input_motion_in_darkness | Switch | Will be activated, if a motion is detected. Sensor has a integrated twilight sensor. | SW |
+| binary_input_motion_in_darkness | Switch | Will be activated, if a motion is detected. Sensor has an integrated twilight sensor. | SW |
| binary_input_smoke | Switch | Will be activated, if smoke is detected. | SW |
| binary_input_wind_strenght_above_limit | Switch | Will be activated, if wind strength is above a user adjusted limit. | SW |
| binary_input_rain | Switch | Will be activated, if rain is detected. | SW |
@@ -379,7 +383,7 @@ The digitalSTROM-Server
* The digitalSTROM-Server only informs the binding about scene-commands. So if you set the output value of devices e.g. through the dSS-App, the binding will not be informed about the changes and you have to send a "refresh-command" to update the channel.
* If you press a physical switch at your digitalSTROM-installation and the called scene-value is not red out yet, it can take a bit time to read it out and change the state of the channel.
It the scene-value is red out, the state will change immediately.
-See also *General-Informations/digitalSTROM-Scenes*.
+See also *General-Informations/digitalSTROM-Scenes*.
*Channels with accepted command type increase and decrease:*
@@ -400,10 +404,10 @@ Bridge digitalstrom:dssBridge:dSS [ dSSAddress="urlOfMyDss", userName="dssadmin
SW SW-ZWS-200 [ dSID="3504175fe0000000000651c0"]
SW SW-UMR-200 [ dSID="302ed89f43f00ec0000a1034"]
dSiSens200 dS-iSens200 [ dSID="302ed89f43f026800003543d"]
- zoneTemperatureControl zoneTemperatureControl [ zoneID="livingroom"]
+ zoneTemperatureControl zoneTemperatureControl [ zoneID="livingroom"]
GR GR-KL220 [ dSID="3504175fe0000000000651c1" ]
namedScene Scene1 [ zoneID="5", groupID="1", sceneID="5"]
- circuit circuit1 [ dSID="3504175fe0000010000004e4" ]
+ circuit circuit1 [ dSID="3504175fe0000010000004e4" ]
GR GR-KL200 [ dSID="3504175fe0000000000651c1" ]
}
```
@@ -511,7 +515,7 @@ sitemap demo label="Main Menu"
Frame label="TV"{
Switch item=DeviceSwitch
- }
+ }
}
}
```
@@ -530,7 +534,7 @@ The current troubleshooting to read out the new scene configuration after a save
1. delete the thing to delete the persistently saved scene configuration
2. restart the server to delete the temporary saved scene configuration
-3. add the thing again to read out the scene configuration again.
+3. add the thing again to read out the scene configuration again.
### Initial state of digitalSTROM-Scenes and devices
@@ -550,5 +554,5 @@ If you configure your system with textual configuration files, like *\*.thing*,
If you want to create a rule, which uses things of the digitalSTROM-Binding, there are also two things you have to consider.
-1. If the rule contains several digitalSTROM-Devices, which can be summarized in a digitalSTROM-Scene, e.g. some lights in a zone, please use a equivalent supported scene. That will significantly reduce the communication to the digitalSTROM-Server, increases performance and does not bypass the digitalSTROM state-machine.
+1. If the rule contains several digitalSTROM-Devices, which can be summarized in a digitalSTROM-Scene, e.g. some lights in a zone, please use an equivalent supported scene. That will significantly reduce the communication to the digitalSTROM-Server, increases performance and does not bypass the digitalSTROM state-machine.
2. If you implement your own temperature control algorithm for a zone/room, e.g. because you want to use other temperature sensors, and call more than one digitalSTROM-BL-KM200, please use the *zone_temperature_control* for valve value control. The *zone_temperature_control* for valve value control will call all digitalSTROM-BL-KM200 with one command and increases the performance. To get the needed channel at the *zone_temperature_control* you have to choose a control mode unequal to *pid-controlled* for the affected zone at the digitalSTROM-heating-control-app.
diff --git a/bundles/org.openhab.binding.digitalstrom/pom.xml b/bundles/org.openhab.binding.digitalstrom/pom.xml
index bb94a7a6b4f6f..09313cbb8eb0f 100644
--- a/bundles/org.openhab.binding.digitalstrom/pom.xml
+++ b/bundles/org.openhab.binding.digitalstrom/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.digitalstrom
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/feature/feature.xml b/bundles/org.openhab.binding.digitalstrom/src/main/feature/feature.xml
index df8d8f004b5b0..7d06aa273d5df 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMBindingConstants.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMBindingConstants.java
index 7c76467a5f5db..f91ddddd3bcfe 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMBindingConstants.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java
index 2dc9028d4c2e8..c1f3e2cdda757 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/DigitalSTROMHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeDiscoveryService.java
index eb63876aaaa3e..2f91b45c22230 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeDiscoveryService.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeMDNSDiscoveryParticipant.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeMDNSDiscoveryParticipant.java
index 69b363d7922f6..31a6d5d639f0a 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeMDNSDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/BridgeMDNSDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java
index a0a8e51688635..1876237fb3952 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DiscoveryServiceManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DiscoveryServiceManager.java
index be66c3c8496b4..e721edfc1fd7d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DiscoveryServiceManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/DiscoveryServiceManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/SceneDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/SceneDiscoveryService.java
index 254bbc1043500..0e321d3e86ac7 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/SceneDiscoveryService.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/SceneDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java
index 07999a018e8be..567650d12a528 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/discovery/ZoneTemperatureControlDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java
index 24216f8be1af8..c51c2539001d6 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/BridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java
index d89c97854e53d..e82a5a82f12e1 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/CircuitHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java
index cf72c449cd344..f6aca36cc2233 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/DeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/SceneHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/SceneHandler.java
index 35cfb0064e880..be199d9853b11 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/SceneHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/SceneHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/ZoneTemperatureControlHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/ZoneTemperatureControlHandler.java
index 5a5391a4b032c..36f03b09da645 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/ZoneTemperatureControlHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/handler/ZoneTemperatureControlHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/GeneralLibConstance.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/GeneralLibConstance.java
index 5cab4c5b601e8..8034bf8ad0d1a 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/GeneralLibConstance.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/GeneralLibConstance.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/TemperatureControlSensorTransmitter.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/TemperatureControlSensorTransmitter.java
index cadc16cace6ce..4adefa0370517 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/TemperatureControlSensorTransmitter.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/TemperatureControlSensorTransmitter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlModes.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlModes.java
index 40a543ecadea5..135c124a2d86e 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlModes.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlModes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlStates.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlStates.java
index e07e1e5aaf0a3..4767d9794c69d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlStates.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/ControlStates.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/OperationModes.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/OperationModes.java
index f1fbcb1d0137c..e96784aa17586 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/OperationModes.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/constants/OperationModes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/AssignSensorType.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/AssignSensorType.java
index 5acb5dc0280d9..e9c95f87fb4ea 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/AssignSensorType.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/AssignSensorType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/CachedSensorValue.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/CachedSensorValue.java
index 44daaf3d83b8f..e8ff19e5cc264 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/CachedSensorValue.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/datatypes/CachedSensorValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseSensorValues.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseSensorValues.java
index fc493fb0f502e..4c4656c5a959b 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseSensorValues.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseSensorValues.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseTemperatureControl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseTemperatureControl.java
index 9e33b6a87ab99..004012a074b3e 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseTemperatureControl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseTemperatureControl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseZoneIdentifier.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseZoneIdentifier.java
index 5670cea929a9b..b24ea905851bd 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseZoneIdentifier.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/BaseZoneIdentifier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/ZoneIdentifier.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/ZoneIdentifier.java
index c0dbfa384bd34..7e58f1deb56cf 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/ZoneIdentifier.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/ZoneIdentifier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/AssignedSensors.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/AssignedSensors.java
index b0dccfc301318..3b7896d8d1e28 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/AssignedSensors.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/AssignedSensors.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/SensorValues.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/SensorValues.java
index b61c8d64307d6..df9beddd06255 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/SensorValues.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/SensorValues.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlConfig.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlConfig.java
index 96a349fddd801..71dfe5be732bc 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlConfig.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlInternals.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlInternals.java
index e918376fb7e78..bf62c3f1ebb6c 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlInternals.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlInternals.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlStatus.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlStatus.java
index 7d258cc24bb3c..91db13d8969d8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlStatus.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlValues.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlValues.java
index 0334859b0e56d..6828d026ae11e 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlValues.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/TemperatureControlValues.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/WeatherSensorData.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/WeatherSensorData.java
index a68adf24ade1a..470939094a5f9 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/WeatherSensorData.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/climate/jsonresponsecontainer/impl/WeatherSensorData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/config/Config.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/config/Config.java
index ad6a39a524420..1c9a687faca26 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/config/Config.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/config/Config.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventHandler.java
index c077aa9e4522f..50efadc50b6f6 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventListener.java
index 1a403010f4299..c71b017da35b0 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/EventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -341,7 +341,8 @@ private boolean subscribe(String eventName) {
logger.debug("subscribed event: {} to subscriptionID: {}", eventName, subscriptionID);
} else {
logger.error(
- "Couldn't subscribe event {} ... maybe timeout because system is too busy ... event will be tried to subscribe later again ... ");
+ "Couldn't subscribe event {} ... maybe timeout because system is too busy ... event will be tried to subscribe later again ... ",
+ eventName);
}
return subscribed;
}
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventNames.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventNames.java
index d89dc56949b7d..28d69fc624e44 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventNames.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventNames.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventResponseEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventResponseEnum.java
index 0a64e53ae87c9..ff4b747b6885f 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventResponseEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/constants/EventResponseEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/Event.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/Event.java
index 707bb2b802c59..12806b23c6773 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/Event.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/Event.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItem.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItem.java
index 98c133cc08d6c..26cdc4ce35b57 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItem.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItemImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItemImpl.java
index 7eb0c59b0bfb2..b29eab5b923cd 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItemImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/EventItemImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/JSONEventImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/JSONEventImpl.java
index edec6309ea085..e11595e87c21c 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/JSONEventImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/event/types/JSONEventImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ConnectionListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ConnectionListener.java
index 6b7e83796c730..d6f8bffccf6a0 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ConnectionListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ConnectionListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/DeviceStatusListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/DeviceStatusListener.java
index ed952a2ad6310..7a258f5561c3e 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/DeviceStatusListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/DeviceStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ManagerStatusListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ManagerStatusListener.java
index 2df32c3770428..01704b88723c3 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ManagerStatusListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/ManagerStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SceneStatusListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SceneStatusListener.java
index 431bc01358fe7..58887b48e82b3 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SceneStatusListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SceneStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SystemStateChangeListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SystemStateChangeListener.java
index 08d86f04a4200..9cd50cc3b64c6 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SystemStateChangeListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/SystemStateChangeListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TemperatureControlStatusListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TemperatureControlStatusListener.java
index fab65ae1b9c18..fb1ccc5fd7739 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TemperatureControlStatusListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TemperatureControlStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TotalPowerConsumptionListener.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TotalPowerConsumptionListener.java
index fea815c8b4292..344fe51b46375 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TotalPowerConsumptionListener.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/TotalPowerConsumptionListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerStates.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerStates.java
index 6bcc74cfb93d4..2678858f9716f 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerStates.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerStates.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerTypes.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerTypes.java
index e21c3140b1a74..6b4c70dad28b8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerTypes.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/listener/stateenums/ManagerTypes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/ConnectionManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/ConnectionManager.java
index 390f63ad77e06..240e8cebf9081 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/ConnectionManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/ConnectionManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/DeviceStatusManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/DeviceStatusManager.java
index 6d03d8a52cedc..dcf75c93ba096 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/DeviceStatusManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/DeviceStatusManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/SceneManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/SceneManager.java
index d2083246f4344..398ef3969241b 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/SceneManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/SceneManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/StructureManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/StructureManager.java
index 35e7e2b6016fa..58f781fe5c632 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/StructureManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/StructureManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java
index d939756f162c7..f0b82b081adb4 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/ConnectionManagerImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/DeviceStatusManagerImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/DeviceStatusManagerImpl.java
index f809ab09fe022..791e6b43d0fc1 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/DeviceStatusManagerImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/DeviceStatusManagerImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/SceneManagerImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/SceneManagerImpl.java
index cb2f6c3b8a601..1334e664e4457 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/SceneManagerImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/SceneManagerImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/StructureManagerImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/StructureManagerImpl.java
index 9f96a53ddcbf7..5fca6688aa1e1 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/StructureManagerImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/StructureManagerImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java
index db49bf7e1f224..767b10173e106 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/AbstractSensorJobExecutor.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/AbstractSensorJobExecutor.java
index 151d62a3482e7..d4a86717c4637 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/AbstractSensorJobExecutor.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/AbstractSensorJobExecutor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/CircuitScheduler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/CircuitScheduler.java
index 12ebe3bc281cf..f7fec839446c3 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/CircuitScheduler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/CircuitScheduler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SceneReadingJobExecutor.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SceneReadingJobExecutor.java
index 6b5dd91b1e13a..2681d5d63e755 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SceneReadingJobExecutor.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SceneReadingJobExecutor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SensorJobExecutor.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SensorJobExecutor.java
index 3b11dfc410c74..561c5ad820c00 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SensorJobExecutor.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/SensorJobExecutor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/SensorJob.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/SensorJob.java
index 3e2df663d7e9d..ac6c7933a94b8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/SensorJob.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/SensorJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceConsumptionSensorJob.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceConsumptionSensorJob.java
index 8840a9fde9736..40ce1e4025d5c 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceConsumptionSensorJob.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceConsumptionSensorJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceOutputValueSensorJob.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceOutputValueSensorJob.java
index 0a6a4d4ec284c..262da686fb6e8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceOutputValueSensorJob.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/DeviceOutputValueSensorJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneConfigReadingJob.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneConfigReadingJob.java
index 5e2fa60325c35..1b1b23bd7e2b4 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneConfigReadingJob.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneConfigReadingJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneOutputValueReadingJob.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneOutputValueReadingJob.java
index e8b71d5118081..cb71f5fb6bdad 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneOutputValueReadingJob.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/sensorjobexecutor/sensorjob/impl/SceneOutputValueReadingJob.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/DsAPI.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/DsAPI.java
index cccf945301406..1aa03836a49d4 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/DsAPI.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/DsAPI.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/HttpTransport.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/HttpTransport.java
index 80ab5568257e1..e9eb8b3d83696 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/HttpTransport.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/HttpTransport.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/constants/JSONApiResponseKeysEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/constants/JSONApiResponseKeysEnum.java
index 3b1a4c0a1ab8d..02e295fb97a23 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/constants/JSONApiResponseKeysEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/constants/JSONApiResponseKeysEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java
index 7e6c11ca17191..0f868290c4596 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/DsAPIImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java
index 079aa7777893b..5003012f7d157 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/HttpTransportImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/JSONResponseHandler.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/JSONResponseHandler.java
index 87dbe1645b57a..da0d4d2b2550d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/JSONResponseHandler.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/impl/JSONResponseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java
index 25b3e5425c738..6dd65757f1e77 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/SimpleRequestBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ClassKeys.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ClassKeys.java
index c0aff7a5b919d..e6b68ac8c4aaf 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ClassKeys.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ClassKeys.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ExeptionConstants.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ExeptionConstants.java
index 923dfad1d67b0..06c88f78814b9 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ExeptionConstants.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ExeptionConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/FunctionKeys.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/FunctionKeys.java
index a875199dc676b..ef9adf2be398b 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/FunctionKeys.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/FunctionKeys.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/InterfaceKeys.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/InterfaceKeys.java
index da48cd3eadbdc..b0a1127686bfc 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/InterfaceKeys.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/InterfaceKeys.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ParameterKeys.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ParameterKeys.java
index 6441f175881c1..3c7236d69a8cd 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ParameterKeys.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/serverconnection/simpledsrequestbuilder/constants/ParameterKeys.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Apartment.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Apartment.java
index c2d1bb48979db..fb75370ceaf56 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Apartment.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Apartment.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/DetailedGroupInfo.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/DetailedGroupInfo.java
index 8a25659ed9cc9..d2ad2be615e10 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/DetailedGroupInfo.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/DetailedGroupInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Group.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Group.java
index e4f468dbd8b5f..3edf68e7901b2 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Group.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Group.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Zone.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Zone.java
index 5b52e6f236110..e574bc91c4430 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Zone.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/Zone.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/AbstractGeneralDeviceInformations.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/AbstractGeneralDeviceInformations.java
index 841db0fcc03fe..7c9140d0704cc 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/AbstractGeneralDeviceInformations.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/AbstractGeneralDeviceInformations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Circuit.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Circuit.java
index 3ed8154ee68fd..7c95f42f1e6e8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Circuit.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Circuit.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Device.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Device.java
index 4eaf870fd74b4..7766f4b38731d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Device.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/Device.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/GeneralDeviceInformation.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/GeneralDeviceInformation.java
index 295453deed144..6a9c18c57f981 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/GeneralDeviceInformation.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/GeneralDeviceInformation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/CachedMeteringValue.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/CachedMeteringValue.java
index 747838c2a3846..a4b8bc857fb6b 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/CachedMeteringValue.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/CachedMeteringValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConfig.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConfig.java
index 7b6400df51724..9f4966033f30c 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConfig.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConstants.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConstants.java
index 731d67a8cd2f6..5ef7bc86482fa 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConstants.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceSceneSpec.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceSceneSpec.java
index fb0767aa26fcd..e567c661d957d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceSceneSpec.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceSceneSpec.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceStateUpdate.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceStateUpdate.java
index 9dc16063cb285..da448f2c5e462 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceStateUpdate.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/DeviceStateUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/ChangeableDeviceConfigEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/ChangeableDeviceConfigEnum.java
index 68b5a835d396a..9692ab0affe7d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/ChangeableDeviceConfigEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/ChangeableDeviceConfigEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceBinarayInputEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceBinarayInputEnum.java
index fd19aa2eb234d..0bac5bfbffeaf 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceBinarayInputEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceBinarayInputEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceParameterClassEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceParameterClassEnum.java
index 77b827ee47693..f7a3406736d58 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceParameterClassEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/DeviceParameterClassEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FuncNameAndColorGroupEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FuncNameAndColorGroupEnum.java
index 42ffc5704f2ce..d5aa248d7d9a8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FuncNameAndColorGroupEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FuncNameAndColorGroupEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FunctionalColorGroupEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FunctionalColorGroupEnum.java
index 5008f331eb43d..add9cad553560 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FunctionalColorGroupEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/FunctionalColorGroupEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringTypeEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringTypeEnum.java
index 6d07b4fea2d9e..44c4dcf77ec0a 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringTypeEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringTypeEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringUnitsEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringUnitsEnum.java
index 787b207e9eb99..b1c9e7f98efe1 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringUnitsEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/MeteringUnitsEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/OutputModeEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/OutputModeEnum.java
index 614655b7bc713..cdcde7b619952 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/OutputModeEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/OutputModeEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/SensorEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/SensorEnum.java
index 0ee752771f2f6..7a887553e114e 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/SensorEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/constants/SensorEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DSID.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DSID.java
index cb271354ba0f9..9cf59e36ca741 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DSID.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DSID.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceBinaryInput.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceBinaryInput.java
index 405a5e2e6cdfd..0294647dce774 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceBinaryInput.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceBinaryInput.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceSensorValue.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceSensorValue.java
index 095d0030c7617..cec6210d342e5 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceSensorValue.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceSensorValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceStateUpdateImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceStateUpdateImpl.java
index b9116aaa46bc9..b1165ae3ac80d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceStateUpdateImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/DeviceStateUpdateImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONCachedMeteringValueImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONCachedMeteringValueImpl.java
index 249ef69ec7814..f8ec3ba83503c 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONCachedMeteringValueImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONCachedMeteringValueImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceConfigImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceConfigImpl.java
index 159cebd1662b9..e0b9b8096f4c8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceConfigImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceConfigImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceSceneSpecImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceSceneSpecImpl.java
index de1d684c43115..da95bc51edbf0 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceSceneSpecImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/deviceparameters/impl/JSONDeviceSceneSpecImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/CircuitImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/CircuitImpl.java
index 91d725608fa95..6a9339863546f 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/CircuitImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/CircuitImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java
index 9855c2e60be33..33400de0d2e3d 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/devices/impl/DeviceImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONApartmentImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONApartmentImpl.java
index 39edc21684726..2ed1f57f7e409 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONApartmentImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONApartmentImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONDetailedGroupInfoImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONDetailedGroupInfoImpl.java
index f107a45b50754..700585d8b8074 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONDetailedGroupInfoImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONDetailedGroupInfoImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONZoneImpl.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONZoneImpl.java
index c5b123d110e0a..d12ad3b7b1f27 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONZoneImpl.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/impl/JSONZoneImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java
index 5d786a648fa19..89736643a03b8 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/InternalScene.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/SceneDiscovery.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/SceneDiscovery.java
index 7aad4728bd118..ba7ce818dbcd7 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/SceneDiscovery.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/SceneDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ApartmentSceneEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ApartmentSceneEnum.java
index fa2c089af4af2..34ad4a36e1663 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ApartmentSceneEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ApartmentSceneEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/Scene.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/Scene.java
index 0487a8483003f..824ebe0537ec0 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/Scene.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/Scene.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneEnum.java
index 7117afdb5df7b..ca251b1a1b01a 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneTypes.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneTypes.java
index 1208cc4f59bdc..05eef8d9912fd 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneTypes.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/SceneTypes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ZoneSceneEnum.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ZoneSceneEnum.java
index e608e24ed3d70..bef880cce01b0 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ZoneSceneEnum.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/structure/scene/constants/ZoneSceneEnum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java
index 78e3a0b626cf6..084434f03cdda 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/BaseDsI18n.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsChannelTypeProvider.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsChannelTypeProvider.java
index 5a0f003606f45..7f552cde30ee5 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsChannelTypeProvider.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsChannelTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -25,7 +25,6 @@
import java.util.Set;
import org.eclipse.smarthome.core.i18n.TranslationProvider;
-import org.eclipse.smarthome.core.thing.type.ChannelGroupType;
import org.eclipse.smarthome.core.thing.type.ChannelGroupTypeUID;
import org.eclipse.smarthome.core.thing.type.ChannelType;
import org.eclipse.smarthome.core.thing.type.ChannelTypeBuilder;
@@ -185,7 +184,7 @@ public static MeteringTypeEnum getMeteringType(String channelID) {
return null;
}
- private static List supportedOutputChannelTypes = new ArrayList<>();
+ private static final List SUPPORTED_OUTPUT_CHANNEL_TYPES = new ArrayList<>();
/**
* Returns true, if the given channel type id is a output channel.
@@ -194,7 +193,7 @@ public static MeteringTypeEnum getMeteringType(String channelID) {
* @return true, if channel type id is output channel
*/
public static boolean isOutputChannel(String channelTypeID) {
- return supportedOutputChannelTypes.contains(channelTypeID);
+ return SUPPORTED_OUTPUT_CHANNEL_TYPES.contains(channelTypeID);
}
@Activate
@@ -229,19 +228,19 @@ protected void init() {
}
if (i == 2) {
channelIDpre = HEATING;
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, TEMPERATURE_CONTROLLED));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, TEMPERATURE_CONTROLLED));
}
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, SWITCH));
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, DIMMER));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, SWITCH));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, DIMMER));
if (i < 2) {
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, "2", STAGE));
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, "3", STAGE));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, "2", STAGE));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, "3", STAGE));
}
}
channelIDpre = SHADE;
- supportedOutputChannelTypes.add(channelIDpre);
- supportedOutputChannelTypes.add(buildIdentifier(channelIDpre, ANGLE));
- supportedOutputChannelTypes.add(SCENE);
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(channelIDpre);
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(buildIdentifier(channelIDpre, ANGLE));
+ SUPPORTED_OUTPUT_CHANNEL_TYPES.add(SCENE);
}
private String getSensorCategory(SensorEnum sensorType) {
@@ -455,8 +454,8 @@ private static boolean stringContains(String string, String compare) {
@Override
public Collection getChannelTypes(Locale locale) {
- List channelTypeList = new LinkedList();
- for (String channelTypeId : supportedOutputChannelTypes) {
+ List channelTypeList = new LinkedList<>();
+ for (String channelTypeId : SUPPORTED_OUTPUT_CHANNEL_TYPES) {
channelTypeList.add(
getChannelType(new ChannelTypeUID(DigitalSTROMBindingConstants.BINDING_ID, channelTypeId), locale));
}
@@ -464,19 +463,16 @@ public Collection getChannelTypes(Locale locale) {
channelTypeList.add(getChannelType(
new ChannelTypeUID(DigitalSTROMBindingConstants.BINDING_ID, buildIdentifier(sensorType)), locale));
}
-
for (MeteringTypeEnum meteringType : MeteringTypeEnum.values()) {
channelTypeList.add(getChannelType(new ChannelTypeUID(DigitalSTROMBindingConstants.BINDING_ID,
buildIdentifier(meteringType, MeteringUnitsEnum.WH)), locale));
channelTypeList.add(getChannelType(new ChannelTypeUID(DigitalSTROMBindingConstants.BINDING_ID,
buildIdentifier(TOTAL_PRE, meteringType, MeteringUnitsEnum.WH)), locale));
}
-
for (DeviceBinarayInputEnum binaryInput : DeviceBinarayInputEnum.values()) {
channelTypeList.add(getChannelType(new ChannelTypeUID(DigitalSTROMBindingConstants.BINDING_ID,
buildIdentifier(BINARY_INPUT_PRE, binaryInput)), locale));
}
-
return channelTypeList;
}
@@ -491,7 +487,7 @@ public ChannelType getChannelType(ChannelTypeUID channelTypeUID, Locale locale)
.withTags(getSimpleTags(channelID, locale))
.withStateDescription(getSensorStateDescription(sensorType)).build();
} catch (IllegalArgumentException e) {
- if (supportedOutputChannelTypes.contains(channelID)) {
+ if (SUPPORTED_OUTPUT_CHANNEL_TYPES.contains(channelID)) {
return ChannelTypeBuilder
.state(channelTypeUID, getLabelText(channelID, locale), getItemType(channelID))
.withDescription(getDescText(channelID, locale)).withCategory(getCategory(channelID))
@@ -524,20 +520,7 @@ public ChannelType getChannelType(ChannelTypeUID channelTypeUID, Locale locale)
// ignore
}
}
-
}
-
- return null;
-
- }
-
- @Override
- public ChannelGroupType getChannelGroupType(ChannelGroupTypeUID channelGroupTypeUID, Locale locale) {
- return null;
- }
-
- @Override
- public Collection getChannelGroupTypes(Locale locale) {
return null;
}
diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsDeviceThingTypeProvider.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsDeviceThingTypeProvider.java
index a495d55a6e803..f111f75a02963 100644
--- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsDeviceThingTypeProvider.java
+++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/providers/DsDeviceThingTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/NOTICE b/bundles/org.openhab.binding.dlinksmarthome/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/NOTICE
+++ b/bundles/org.openhab.binding.dlinksmarthome/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.dlinksmarthome/noEmbedDependencies.profile b/bundles/org.openhab.binding.dlinksmarthome/noEmbedDependencies.profile
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/bundles/org.openhab.binding.dlinksmarthome/pom.xml b/bundles/org.openhab.binding.dlinksmarthome/pom.xml
index f2f2831333c1a..c383f5a91ab90 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/pom.xml
+++ b/bundles/org.openhab.binding.dlinksmarthome/pom.xml
@@ -1,38 +1,19 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.dlinksmarthomeopenHAB Add-ons :: Bundles :: D-Link Smart Home Binding
-
-
-
-
- javax.xml.soap
- javax.xml.soap-api
- 1.4.0
- provided
-
-
- com.sun.xml.ws
- jaxws-rt
- 2.2.10
- provided
-
-
- com.sun.xml.messaging.saaj
- saaj-impl
- 1.5.1
- provided
-
-
+
+
+ !javax.xml.soap, com.sun.xml.messaging.saaj.soap
+
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/feature/feature.xml b/bundles/org.openhab.binding.dlinksmarthome/src/main/feature/feature.xml
index a95f5f643efd8..89ec4f621cdd8 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/feature/feature.xml
@@ -1,16 +1,11 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab-transport-mdns
- openhab.tp-jaxb
- wrap
-
- mvn:javax.xml.soap/javax.xml.soap-api/1.4.0
- wrap:mvn:com.sun.xml.ws/jaxws-rt/2.2.10$Bundle-Name=JAX%20WS%20RI%20Runtime%20Bundle&Bundle-SymbolicName=com.sun.xml.ws.jaxws-rt&Bundle-Version=2.3.2
- mvn:com.sun.xml.messaging.saaj/saaj-impl/1.5.1
+ openhab.tp-jaxwsmvn:org.openhab.addons.bundles/org.openhab.binding.dlinksmarthome/${project.version}
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkHNAPCommunication.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkHNAPCommunication.java
index 41a245047c34e..42b1fc7fb1407 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkHNAPCommunication.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkHNAPCommunication.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeBindingConstants.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeBindingConstants.java
index f41c0e5f2cefe..cbde12f77aa51 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeBindingConstants.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeDiscoveryParticipant.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeDiscoveryParticipant.java
index 6bd83467c5b77..96e0293a42e0b 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeHandlerFactory.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeHandlerFactory.java
index eb120876c51cc..c98f1c1cea995 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeHandlerFactory.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/DLinkSmartHomeHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/handler/DLinkMotionSensorHandler.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/handler/DLinkMotionSensorHandler.java
index 6b1fce88dff0b..08e5f06fb1a84 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/handler/DLinkMotionSensorHandler.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/handler/DLinkMotionSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorCommunication.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorCommunication.java
index e5af02631cfd5..df08ef3f28edc 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorCommunication.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorCommunication.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorConfig.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorConfig.java
index 64bc538260c8b..87f3627fa59e0 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorConfig.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorListener.java b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorListener.java
index 194da19fb814d..a963136021743 100644
--- a/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorListener.java
+++ b/bundles/org.openhab.binding.dlinksmarthome/src/main/java/org/openhab/binding/dlinksmarthome/internal/motionsensor/DLinkMotionSensorListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/NOTICE b/bundles/org.openhab.binding.dmx/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.dmx/NOTICE
+++ b/bundles/org.openhab.binding.dmx/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.dmx/README.md b/bundles/org.openhab.binding.dmx/README.md
index 5c60b9774c6b9..59be03274a560 100644
--- a/bundles/org.openhab.binding.dmx/README.md
+++ b/bundles/org.openhab.binding.dmx/README.md
@@ -34,11 +34,12 @@ Chaser things define a control channel that can be used to dynamically change th
## Discovery
-Discovery is not supported at the moment. You have to add all bridges and things manually.
+Discovery is not supported at the moment.
+You have to add all bridges and things manually.
## Thing Configuration
-Since the brightness perception of the human eye is not linear, all bridges support `applycurve`, a list of channels `applycurve` that have a CIE 1931 lightness correction (cf. [Poynton, C.A.: “Gamma†and its Disguises: The Nonlinear Mappings of Intensity in Perception, CRTs, Film and Video, SMPTE Journal Dec. 1993, pp. 1099 - 1108](http://www.poynton.com/PDFs/SMPTE93_Gamma.pdf)) applied.
+Since the brightness perception of the human eye is not linear, all bridges support `applycurve`, a list of channels `applycurve` that have a CIE 1931 lightness correction (cf. [Poynton, C.A.: “Gamma†and its Disguises: The Nonlinear Mappings of Intensity in Perception, CRTs, Film and Video, SMPTE Journal Dec. 1993, pp. 1099 - 1108](https://www.poynton.com/PDFs/SMPTE93_Gamma.pdf)) applied.
This list follows the format of the thing channel definition.
This is used regardless of the thing(s) that are associated to the channel.
@@ -204,7 +205,8 @@ The next `ON` command uses these values instead of the default (or configuration
|switch |chaser |Switch | turns the chaser ON or OFF |
|mute |(all bridges) |Switch | mutes the DMX output of the bridge |
-*Note:* the string send to the control channel of chaser things has to be formatted like the `steps` configuration of the chaser thing. If the new string is invalid, the old configuration will be used.
+*Note:* the string send to the control channel of chaser things has to be formatted like the `steps` configuration of the chaser thing.
+If the new string is invalid, the old configuration will be used.
## Rule Actions
@@ -227,7 +229,7 @@ Defining more than one step in `fadeString` is supported, too.
## Full Example
-This example defines a sACN/E1.31 bridge in unicast mode which transmits universe 2 and three things: a three channel dimmer used to control a RGB light, which takes 1s to fade from one color to another and 10s from 0-100% on incremental dim commands, a single channel dimmer which will turn on only to 90% if it receives a ON command and does not fully switch off (to 10%) if it receives an OFF command and chaser which changes the colors like a traffic light.
+This example defines a sACN/E1.31 bridge in unicast mode which transmits universe 2 and three things: a three channel dimmer used to control a RGB light, which takes 1s to fade from one color to another and 10s from 0-100% on incremental dim commands, a single channel dimmer which will turn on only to 90% if it receives an ON command and does not fully switch off (to 10%) if it receives an OFF command and chaser which changes the colors like a traffic light.
### demo.things:
diff --git a/bundles/org.openhab.binding.dmx/pom.xml b/bundles/org.openhab.binding.dmx/pom.xml
index 2764a889f0c1f..b784130b1848c 100644
--- a/bundles/org.openhab.binding.dmx/pom.xml
+++ b/bundles/org.openhab.binding.dmx/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.dmx
diff --git a/bundles/org.openhab.binding.dmx/src/main/feature/feature.xml b/bundles/org.openhab.binding.dmx/src/main/feature/feature.xml
index a471955568370..44ef74cf2fc1a 100644
--- a/bundles/org.openhab.binding.dmx/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/action/DmxActions.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/action/DmxActions.java
index fa0f7508abc52..942b96c56bf47 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/action/DmxActions.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/action/DmxActions.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBindingConstants.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBindingConstants.java
index 2422e37b95440..70c90665f5a04 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBindingConstants.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBridgeHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBridgeHandler.java
index d66930aa191cc..115cd6f8f66ff 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBridgeHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxHandlerFactory.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxHandlerFactory.java
index 714c5843c9b2e..4a1497bddd8c3 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxHandlerFactory.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxThingHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxThingHandler.java
index a4c6112fee16e..2f274a9f345e8 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxThingHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/DmxThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/Util.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/Util.java
index 3deadc7ca0f43..cc8d5e9c60435 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/Util.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/Util.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/ValueSet.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/ValueSet.java
index c49711af85f16..2c696a1363db3 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/ValueSet.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/ValueSet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ActionState.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ActionState.java
index fef5ea31ad689..2a5a8275cd41e 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ActionState.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ActionState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/BaseAction.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/BaseAction.java
index a9e6ae76eea79..6bf1137517462 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/BaseAction.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/BaseAction.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeAction.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeAction.java
index 074b5afc757f8..a761f1e7d588b 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeAction.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeAction.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeDirection.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeDirection.java
index 621f7fda3748b..adb22183ae3c9 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeDirection.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/FadeDirection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ResumeAction.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ResumeAction.java
index 29cd14c77090d..71defc48f77ca 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ResumeAction.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/action/ResumeAction.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ArtnetBridgeHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ArtnetBridgeHandlerConfiguration.java
index 76790110cc11b..4ed099f8f674e 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ArtnetBridgeHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ArtnetBridgeHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ChaserThingHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ChaserThingHandlerConfiguration.java
index 1b1f00ee60d4b..618e3c7cd83cf 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ChaserThingHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ChaserThingHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ColorThingHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ColorThingHandlerConfiguration.java
index e1cd9cd0810b7..3cff3754092c0 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ColorThingHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/ColorThingHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DimmerThingHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DimmerThingHandlerConfiguration.java
index de17de0d0c8c2..9dad4aafcd39f 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DimmerThingHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DimmerThingHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DmxBridgeHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DmxBridgeHandlerConfiguration.java
index a5646cc248066..2cf648879e85b 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DmxBridgeHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/DmxBridgeHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/Lib485BridgeHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/Lib485BridgeHandlerConfiguration.java
index 42ae3faeba356..787ad1163f0f2 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/Lib485BridgeHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/Lib485BridgeHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/SacnBridgeHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/SacnBridgeHandlerConfiguration.java
index ba87a4628f843..9a0fd927e0351 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/SacnBridgeHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/SacnBridgeHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/TunableWhiteThingHandlerConfiguration.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/TunableWhiteThingHandlerConfiguration.java
index ea905c0ee3d9b..461d9db5f1045 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/TunableWhiteThingHandlerConfiguration.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/config/TunableWhiteThingHandlerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetNode.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetNode.java
index a867c17314038..31ddb811120cb 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetNode.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetNode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetPacket.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetPacket.java
index 9278c75cac63c..6e13bb9a57911 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetPacket.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/ArtnetPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetHandler.java
index 6ddc13cb1099f..e0603383b117d 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetPacket.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetPacket.java
index e067968c5ef44..d2b88598b7360 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetPacket.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/DmxOverEthernetPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/IpNode.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/IpNode.java
index 55e6e5875fd75..d347db5439fcf 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/IpNode.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/IpNode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnNode.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnNode.java
index f994f7dd354d4..c0254a62a132b 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnNode.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnNode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnPacket.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnPacket.java
index e746d8e411d4a..58957ffe9a5a4 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnPacket.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/dmxoverethernet/SacnPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandler.java
index 513f6d16351a2..037524006258e 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandler.java
index e92c91a46ea22..9e6fe2f8f9477 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ColorThingHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ColorThingHandler.java
index 71c89032561ba..74b456a8b732b 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ColorThingHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/ColorThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandler.java
index a53b9898b1f39..c723005e4d854 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandler.java
index 682a22cd6693a..61570ac3aa3a9 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandler.java
index 05a92379d2c3b..71803b9626ad0 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandler.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandler.java
index 38dafbf59bfe0..42bcabcfbabc9 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/BaseDmxChannel.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/BaseDmxChannel.java
index 96c1b607501c1..a528d1b4317b1 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/BaseDmxChannel.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/BaseDmxChannel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/DmxChannel.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/DmxChannel.java
index 5b4ea5d15da52..1cd08c2401239 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/DmxChannel.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/DmxChannel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/Universe.java b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/Universe.java
index 03a70655fe2aa..c82f5c5d7a6a9 100644
--- a/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/Universe.java
+++ b/bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/multiverse/Universe.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/artnet-bridge.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/artnet-bridge.xml
index 4e3bd1258bcf7..e74d37cbe7116 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/artnet-bridge.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/artnet-bridge.xml
@@ -24,7 +24,7 @@
0
-
+
Suppress re-transmission and refresh every 800ms or send every packet.
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/channels.xml
index 2472bb58560f1..77955368c244a 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/channels.xml
@@ -13,7 +13,7 @@
Dimmer
-
+
Relative intensity of two adjacent DMX channelsColorLight
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/chaser-thing.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/chaser-thing.xml
index 375d6c324b017..7daa425457294 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/chaser-thing.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/chaser-thing.xml
@@ -15,18 +15,18 @@
-
+
Format is channel[,channel, ...] or channel[/width]true
-
+
resume old actions after this completesfalsefalse
-
+
fadeTime:value[, ...]:holdTime true
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/color-thing.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/color-thing.xml
index deb7bafc5521b..47043bbbd7b79 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/color-thing.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/color-thing.xml
@@ -17,28 +17,28 @@
-
+
Format is channel[,channel, ...] or channel[/width], has to be multiple of threetrue
-
+
Fade time in ms for changing values0
-
+
Time in ms for dimming from 0-100%0
-
+
Format is "value[, value, ...]", has to be a multiple of three. If less values than channels are defined, they are reused from the beginning.falsetrue
-
+
Format is "value[, value, ...]", has to be a multiple of three. If less values than channels are defined, they are reused from the beginning.true
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/dimmer-thing.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/dimmer-thing.xml
index dd71853aede6b..a7ebf222281e9 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/dimmer-thing.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/dimmer-thing.xml
@@ -17,28 +17,28 @@
-
+
Format is channel[,channel, ...] or channel[/width]true
-
+
Fade time in ms for changing values0
-
+
Time in ms for dimming from 0-100%0
-
+
Format is "value[, value, ...]". If less values than channels are defined, they are reused from the beginning. falsetrue
-
+
Format is "value[, value, ...]". If less values than channels are defined, they are reused from the beginning. true
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/sacn-bridge.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/sacn-bridge.xml
index 38f8e434b67ea..634133cf29cf8 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/sacn-bridge.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/sacn-bridge.xml
@@ -37,7 +37,7 @@
false
-
+
Suppress re-transmission and refresh every 800ms or send every packet.false
diff --git a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/tunablewhite-thing.xml b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/tunablewhite-thing.xml
index 6dd3df15118b9..d676c1cbe0d31 100644
--- a/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/tunablewhite-thing.xml
+++ b/bundles/org.openhab.binding.dmx/src/main/resources/ESH-INF/thing/tunablewhite-thing.xml
@@ -17,28 +17,28 @@
-
+
Format is channel[,channel, ...] or channel[/width], has to be an even numbertrue
-
+
Fade time in ms for changing values0
-
+
Time in ms for dimming from 0-100%0
-
+
Format is "value[, value, ...]", has to be a multiple of two. If less values than channels are defined, they are reused from the beginning. falsetrue
-
+
Format is "value[, value, ...]", has to be a multiple of two. If less values than channels are defined, they are reused from the beginning. true
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/FadeActionTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/FadeActionTest.java
index 6258226f0dbde..643edc7fd9f35 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/FadeActionTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/FadeActionTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/UtilTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/UtilTest.java
index eea278d36df46..5de9678c250e9 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/UtilTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/UtilTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/ValueSetTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/ValueSetTest.java
index 8f894cb2a18fa..46b552968645f 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/ValueSetTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/ValueSetTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandlerTest.java
index 4e85829108daa..403347b1eac2a 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ArtnetBridgeHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandlerTest.java
index 05c766c2331d5..fc935469d057b 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ChaserThingHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ColorThingHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ColorThingHandlerTest.java
index 74673dc73a5b3..022a52491684a 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ColorThingHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/ColorThingHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandlerTest.java
index d054575b25667..1d9df89c78d12 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DimmerThingHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DmxBridgeHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DmxBridgeHandlerTest.java
index da19d958451e1..307ac25127bfd 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DmxBridgeHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/DmxBridgeHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandlerTest.java
index 57b95894c6855..9adf10eafd556 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/Lib485BridgeHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandlerTest.java
index 85c07fec30e89..8d5c1bb0428ef 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/SacnBridgeHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandlerTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandlerTest.java
index e8c1018cd3a68..315c857caabda 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandlerTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/BaseChannelTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/BaseChannelTest.java
index 2245bf698954e..f1e1e507374cf 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/BaseChannelTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/BaseChannelTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/DmxChannelTest.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/DmxChannelTest.java
index 9d229bed65c93..7d642e6420272 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/DmxChannelTest.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/internal/multiverse/DmxChannelTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/AbstractDmxThingTestParent.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/AbstractDmxThingTestParent.java
index a674009caac50..a46274a72cff6 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/AbstractDmxThingTestParent.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/AbstractDmxThingTestParent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/TestBridgeHandler.java b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/TestBridgeHandler.java
index 0b578198b7772..f643a2506983c 100644
--- a/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/TestBridgeHandler.java
+++ b/bundles/org.openhab.binding.dmx/src/test/java/org/openhab/binding/dmx/test/TestBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.doorbird/.classpath b/bundles/org.openhab.binding.doorbird/.classpath
new file mode 100644
index 0000000000000..ffcab154155c7
--- /dev/null
+++ b/bundles/org.openhab.binding.doorbird/.classpath
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.doorbird/.project b/bundles/org.openhab.binding.doorbird/.project
new file mode 100644
index 0000000000000..0d02c43eefc3d
--- /dev/null
+++ b/bundles/org.openhab.binding.doorbird/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.binding.doorbird
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.binding.toon/NOTICE b/bundles/org.openhab.binding.doorbird/NOTICE
similarity index 88%
rename from bundles/org.openhab.binding.toon/NOTICE
rename to bundles/org.openhab.binding.doorbird/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.toon/NOTICE
+++ b/bundles/org.openhab.binding.doorbird/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.doorbird/README.md b/bundles/org.openhab.binding.doorbird/README.md
new file mode 100644
index 0000000000000..62f29a3d8b90f
--- /dev/null
+++ b/bundles/org.openhab.binding.doorbird/README.md
@@ -0,0 +1,250 @@
+# Doorbird Binding
+
+Binding for Doorbird D101 and D210x video doorbells.
+
+## Supported Things
+
+Two thing types are supported:
+
+- Doorbird D101
+- Doorbird D210x
+
+## Discovery
+
+Auto-discovery is not supported at this time.
+
+## Thing Configuration
+
+The following configuration parameters are available on the Doorbird thing:
+
+| Parameter | Required/Optional | Description |
+|--------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ID | Required | The ID number of the Doorbird device. This is usually a single digit (e.g. 1). |
+| Hostname | Required | The hostname or IP address of the Doorbird device. |
+| User ID | Required | User Id of a Doorbird user that has permissions to access the camera, motion sensor, etc. The User ID and Password must be created using the Doorbird smart phone application. |
+| Password | Required | Password of a Doorbird user. |
+| Image Refresh Rate | Optional | Rate at which image channel should be automatically updated. Leave field blank (default) to disable refresh. |
+| Doorbell Off Delay | Optional | Number of seconds to wait before setting doorbell channel OFF after a doorbell event. Leave field blank to disable. |
+| Motion Off Delay | Optional | Number of seconds to wait before setting motion channel OFF after a motion event. Leave field blank to disable. |
+| Montage Number of Images | Required | Number of images to include in the doorbell and motion montage images. Default is 0. |
+| Montage Scale Factor | Required | Percent scaling factor for montage image. Default is 100. |
+
+
+## Channels
+
+The following channels are supported by the binding.
+
+| Channel ID | Item Type | Description |
+|--------------------------|-----------|---------------------------------------------------|
+| doorbell | Trigger | Generates PRESSED event when doorbell is pressed |
+| doorbellTimestamp | DateTime | Timestamp when doorbell was pressed |
+| doorbellImage | Image | Image captured when the doorbell was pressed |
+| doorbellHistoryIndex | Number | Index of historical image for doorbell press |
+| doorbellHistoryTimestamp | DateTime | Time when doorbell was pressed for history image |
+| doorbellHistoryImage | Image | Historical image for doorbell press |
+| doorbellMontage | Image | Concatenation of first n doorbell history images |
+| motion | Switch | Changes to ON when the device detects motion |
+| motionTimestamp | DateTime | Timestamp when motion sensor was triggered |
+| motionImage | Image | Image captured when motion was detected |
+| motionHistoryIndex | Number | Index of Historical image for motion |
+| motionHistoryTimestamp | DateTime | Time when motion was detected for history image |
+| motionHistoryImage | Image | Historical image for motion sensor |
+| motionMontage | Image | Concatenation of first n motion history images |
+| light | Switch | Activates the light relay |
+| openDoor1 | Switch | Activates the door 1 relay |
+| openDoor2 | Switch | Activates the door 2 relay (D210x only) |
+| image | Image | Image from the doorbird camera |
+| imageTimestamp | DateTime | Time when image was captured from device |
+
+## Profiles
+
+Using the system default switch profile *rawbutton-on-off-switch* in a *doorbell* channel item definition will cause ON/OFF
+states to be set when the doorbell is pressed and released.
+See *Items* example below.
+
+## Rule Actions
+
+The binding supports the following actions.
+In classic rules these are accessible as shown in this example (adjust getActions with your ThingId):
+
+### restart()
+
+Restarts the Doorbird device.
+
+### sipHangup()
+
+Hangs up a SIP call.
+
+Example
+
+```
+val actions = getActions("doorbird","doorbird:d101:doorbell")
+if(actions === null) {
+ logInfo("actions", "Actions not found, check thing ID")
+ return
+ }
+ actions.sipHangup()
+ ```
+
+## Known Issues
+
+The Doorbird uses the UDP protocol on port 6524 to broadcast events for Doorbird actions, such as doorbell pressed, motion detected, etc.
+If the Doorbord is on a separate subnet or VLAN from openHAB, those UDP packets will not route by default.
+In that case, the Doorbird binding will not receive those events.
+Either put the Doorbird and openHAB on the same subnet/VLAN, or set up your network to explicitly route those UDP packets.
+
+## Full Example
+
+### Things
+
+```
+Thing doorbird:d101:doorbell Doorbird D101
+ [
+ doorbirdId="1",
+ doorbirdHost="192.168.1.100",
+ userId="dtfubb0004",
+ userPassword="HG7afc5TvN",
+ imageRefreshRate=60,
+ doorbellOffDelay=3,
+ motionOffDelay=30,
+ montageNumImages=3,
+ montageScaleFactor=35
+ ]
+```
+
+### Items
+
+```
+Switch Doorbell_Pressed
+ "Doorbell Pressed [%s]"
+
+ ["Switch"]
+ { channel="doorbird:d101:doorbell:doorbell" [profile="rawbutton-on-off-switch"] }
+
+DateTime Doorbell_PressedTimestamp
+ "Doorbell Pressed Timestamp [%1$tA, %1$tm/%1$td/%1$tY %1$tl:%1$tM %1$tp]"
+ 30
-
+
Time between to API requests in minutes. Minimum 15 minutes.1
-
+
@@ -81,13 +81,13 @@ This happens after all other channels are populated]]>
DateTime
-
+
Start Date and Time for which the warning is validDateTime
-
+
End Date and Time for which the warning is valid
diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/DwdUnwetterHandlerTest.java b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/DwdUnwetterHandlerTest.java
index 3b613385a8c21..eded0a5d7a779 100644
--- a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/DwdUnwetterHandlerTest.java
+++ b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/DwdUnwetterHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java
index f1ad0d1aed8b4..eb02be90dd287 100644
--- a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java
+++ b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java
index d30bcdd60763c..f5a588e700949 100644
--- a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java
+++ b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml b/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml
index 96c219e59498b..888e531769988 100644
--- a/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml
+++ b/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml
@@ -123,4 +123,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/NOTICE b/bundles/org.openhab.binding.elerotransmitterstick/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/NOTICE
+++ b/bundles/org.openhab.binding.elerotransmitterstick/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/pom.xml b/bundles/org.openhab.binding.elerotransmitterstick/pom.xml
index 4c24948819190..92f1bf15219c3 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/pom.xml
+++ b/bundles/org.openhab.binding.elerotransmitterstick/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.elerotransmitterstick
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/feature/feature.xml b/bundles/org.openhab.binding.elerotransmitterstick/src/main/feature/feature.xml
index 7287643d41699..1c83b9aa29f8c 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickBindingConstants.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickBindingConstants.java
index 4dc66b3e8c22c..67897e997f561 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickBindingConstants.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickHandlerFactory.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickHandlerFactory.java
index e77502ad3c9a4..edffbfebd45b5 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickHandlerFactory.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/EleroTransmitterStickHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroChannelConfig.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroChannelConfig.java
index b0a14a62c5c24..d628de9739612 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroChannelConfig.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroChannelConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroTransmitterStickConfig.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroTransmitterStickConfig.java
index 7d05bc585288e..b76f76abff1cd 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroTransmitterStickConfig.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/config/EleroTransmitterStickConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/discovery/EleroChannelDiscoveryService.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/discovery/EleroChannelDiscoveryService.java
index c2b6d6a0cdafa..fd0f70bd16ab8 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/discovery/EleroChannelDiscoveryService.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/discovery/EleroChannelDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroChannelHandler.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroChannelHandler.java
index bbd494ee41032..b35e5f82a006a 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroChannelHandler.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroChannelHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroTransmitterStickHandler.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroTransmitterStickHandler.java
index e766c2d21088b..dc6be5eb58928 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroTransmitterStickHandler.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/EleroTransmitterStickHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/StatusListener.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/StatusListener.java
index ccd5bb6475dc4..a68093152c0a3 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/StatusListener.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/handler/StatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Command.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Command.java
index 07c42fea7ff4a..bef446642cd8d 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Command.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Command.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandPacket.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandPacket.java
index 86ebf6591429c..08b721a454e5d 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandPacket.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandPacket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandType.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandType.java
index ad13dd980f25f..1777fa15d05d9 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandType.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -46,4 +46,4 @@ public static CommandType getForPercent(int percentage) {
return null;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandUtil.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandUtil.java
index 9f55d8f831678..08728941dd8ca 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandUtil.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/CommandUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ConnectException.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ConnectException.java
index 63ca535a18ea3..91fc70e4b6c11 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ConnectException.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ConnectException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/DelayedCommand.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/DelayedCommand.java
index b5a334dcaf281..d33e1af2f3392 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/DelayedCommand.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/DelayedCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Response.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Response.java
index 5d6ab910f5201..119a4a9c8cbbb 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Response.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Response.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseStatus.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseStatus.java
index 261f1314b8ede..69cb306964650 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseStatus.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseUtil.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseUtil.java
index a46452b6cbb83..b853f5ee921d2 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseUtil.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/ResponseUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java
index ee4031760d0e5..a189e51f47cd6 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/SerialConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TimedCommand.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TimedCommand.java
index 50e9f4d2f5d6a..573428d01f181 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TimedCommand.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TimedCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TransmitterStick.java b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TransmitterStick.java
index 1152ccdcb5ed4..7a33446a5b320 100644
--- a/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TransmitterStick.java
+++ b/bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/TransmitterStick.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -409,4 +409,4 @@ public interface StickListener {
void connectionDropped(Exception e);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/NOTICE b/bundles/org.openhab.binding.enocean/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.enocean/NOTICE
+++ b/bundles/org.openhab.binding.enocean/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.enocean/README.md b/bundles/org.openhab.binding.enocean/README.md
index 4dd7cc9f24a3e..1d98a619c3eef 100644
--- a/bundles/org.openhab.binding.enocean/README.md
+++ b/bundles/org.openhab.binding.enocean/README.md
@@ -68,7 +68,7 @@ Hence if your device supports one of the following EEPs the chances are good tha
|Thing type | EEP family | EEP Types | Channels¹ | Devices² | Pairing |
|---------------------------------|-------------|---------------|------------------------------|--------------------------------|-----------|
| bridge | - | - | repeaterMode, setBaseId | USB300, EnOceanPi | - |
-| pushButton | F6-01 | 0x01 | pushButton | | Manually |
+| pushButton | F6-01/D2-03 | 0x01/0x0A | pushButton, doublePress, longPress, batteryLevel | NodOn soft button | Manually/Discovery |
| rockerSwitch | F6-02 | 0x01-02 | rockerswitchA, rockerswitchB | Eltako FT55 | Discovery |
| mechanicalHandle | F6-10 | 0x00-01 | windowHandleState, contact | Hoppe SecuSignal handles, Eltako TF-FGB | Discovery |
| contact | D5-00 | 0x01 | contact | Eltako FTK(E) & TF-FKB | Discovery |
@@ -79,6 +79,7 @@ Hence if your device supports one of the following EEPs the chances are good tha
| lightSensor | A5-06 | 0x01 | illumination | Eltako TF-AHDSB | Discovery |
| roomOperatingPanel | A5-10 | 0x01-23 | temperature, setPoint, fanSpeedStage, occupancy | Thermokon SR04 | Discovery |
| automatedMeterSensor | A5-12 | 0x00-03 | counter, currentNumber, instantpower, totalusage, amrLitre, amrCubicMetre | FWZ12 | Discovery |
+| environmentalSensor | A5-13 | 0x01-02 | temperature, windspeed, illumination, rainStatus | FWS61 | Discovery |
| centralCommand | A5-38 | 0x08 | dimmer, generalSwitch | Eltako FUD14, FSR14 | Teach-in |
| rollershutter | A5-3F/D2-05/A5-38 | 0x7F/00/08 | rollershutter | Eltako FSB14, NodOn SIN-2-RS-01| Teach-in/Discovery |
| measurementSwitch | D2-01 | 0x00-0F,11,12 | generalSwitch(/A/B), instantpower, totalusage, repeaterMode | NodOn In Wall Switch | Discovery |
@@ -146,7 +147,7 @@ If you change the SenderId of your thing, you have to pair again the thing with
|---------------------------------|-------------------|-----------------------------|---|
| bridge | path | Path to the EnOcean Gateway | COM3, /dev/ttyAMA0, rfc2217://x.x.x.x:3001 |
| | nextSenderId | Set SenderId of next created thing. If omitted, the next unused SenderId is taken | 1-127 |
-| pushButton | receivingEEPId | EEP used for receiving msg | F6_01_01 |
+| pushButton | receivingEEPId | EEP used for receiving msg | F6_01_01, D2_03_0A |
| | enoceanId | EnOceanId of device this thing belongs to | hex value as string |
| rockerSwitch | receivingEEPId | | F6_02_01, F6_02_02 |
| | enoceanId | | |
@@ -168,6 +169,8 @@ If you change the SenderId of your thing, you have to pair again the thing with
| | enoceanId | | |
| automatedMeterSensor | receivingEEPId | | A5_12_00-03 |
| | enoceanId | | |
+| environmentalSensor | receivingEEPId | | A5_13_01 |
+| | enoceanId | | |
| centralCommand | senderIdOffset | SenderId used for sending msg. If omitted, nextSenderId of bridge is used | 1-127 |
| | enoceanId | | |
| | sendingEEPId | EEP used for sending msg | A5_38_08_01, A5_38_08_02 |
@@ -206,12 +209,19 @@ The channels of a thing are determined automatically based on the chosen EEP.
| repeaterMode | String | Set repeater level to 1, 2 or disable |
| setBaseId | String | Changes the BaseId of your gateway. This can only be done 10 times! So use it with care. |
| pushButton | Trigger | Channel type system:rawbutton, emits PRESSED and RELEASED events |
+| doublePress | Trigger | Channel type system:rawbutton, emits PRESSED |
+| longPress | Trigger | Channel type system:rawbutton, emits PRESSED and RELEASED events |
| rockerswitchA/B | Trigger | Channel type system:rawrocker, emits DIR1_PRESSED, DIR1_RELEASED, DIR2_PRESSED, DIR2_RELEASED events |
| windowHandleState | String | Textual representation of handle position (OPEN, CLOSED, TILTED) |
| contact | Contact | State OPEN/CLOSED (tilted handle => OPEN) |
| temperature | Number:Temperature | Temperature in degree Celsius |
| humidity | Number | Relative humidity level in percentages |
| illumination | Number:Illuminance | Illumination in lux |
+| illuminationWest | Number:Illuminance | Illumination in lux |
+| illuminationSouthNorth| Number:Illuminance | Illumination in lux |
+| illuminationEast | Number:Illuminance | Illumination in lux |
+| rainStatus | Switch | Rain indicator |
+| windspeed | Number:Speed | windspeed in m/s |
| occupancy | Switch | Occupancy button pressed (ON) or released (OFF) |
| motionDetection | Switch | On=Motion detected, Off=not |
| setPoint | Number | linear set point |
@@ -230,6 +240,7 @@ The channels of a thing are determined automatically based on the chosen EEP.
| virtualRockerswitchB | String | Used to send plain rocker switch messages (channel B used) |
| batteryVoltage | Number:ElectricPotential | Battery voltage for things with battery |
| energyStorage | Number:ElectricPotential | Energy storage, don't know what this means... |
+| batterLevel | Number | Battery level in percent |
| rssi | Number | Received Signal Strength Indication (dBm) of last received message |
| repeatCount | Number | Number of repeaters involved in the transmission of the telegram |
| lastReceived | DateTime | Date and time the last telegram was received |
diff --git a/bundles/org.openhab.binding.enocean/pom.xml b/bundles/org.openhab.binding.enocean/pom.xml
index 69768a4dbaa4f..05ec6fab883c6 100644
--- a/bundles/org.openhab.binding.enocean/pom.xml
+++ b/bundles/org.openhab.binding.enocean/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.enocean
diff --git a/bundles/org.openhab.binding.enocean/src/main/feature/feature.xml b/bundles/org.openhab.binding.enocean/src/main/feature/feature.xml
index cce96c1ad7278..5ec15b2681c8d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java
index cd4619c87a00d..2766e55e99b23 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -19,8 +19,19 @@
import java.util.Map;
import java.util.Set;
+import javax.measure.quantity.Angle;
+import javax.measure.quantity.ElectricPotential;
+import javax.measure.quantity.Energy;
+import javax.measure.quantity.Illuminance;
+import javax.measure.quantity.Power;
+import javax.measure.quantity.Speed;
+import javax.measure.quantity.Temperature;
+import javax.measure.quantity.Volume;
+
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.smarthome.core.items.ItemUtil;
import org.eclipse.smarthome.core.library.CoreItemFactory;
+import org.eclipse.smarthome.core.library.dimension.VolumetricFlowRate;
import org.eclipse.smarthome.core.thing.DefaultSystemChannelTypeProvider;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.type.ChannelTypeUID;
@@ -59,6 +70,8 @@ public class EnOceanBindingConstants {
public final static ThingTypeUID THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR = new ThingTypeUID(BINDING_ID,
"lightTemperatureOccupancySensor");
public final static ThingTypeUID THING_TYPE_LIGHTSENSOR = new ThingTypeUID(BINDING_ID, "lightSensor");
+ public final static ThingTypeUID THING_TYPE_ENVIRONMENTALSENSOR = new ThingTypeUID(BINDING_ID,
+ "environmentalSensor");
public final static ThingTypeUID THING_TYPE_GENERICTHING = new ThingTypeUID(BINDING_ID, "genericThing");
public final static ThingTypeUID THING_TYPE_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID, "rollershutter");
@@ -67,7 +80,7 @@ public class EnOceanBindingConstants {
THING_TYPE_CENTRALCOMMAND, THING_TYPE_ROOMOPERATINGPANEL, THING_TYPE_MECHANICALHANDLE,
THING_TYPE_CONTACT, THING_TYPE_MEASUREMENTSWITCH, THING_TYPE_TEMPERATURESENSOR,
THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_GENERICTHING, THING_TYPE_ROLLERSHUTTER,
- THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR,
+ THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR, THING_TYPE_ENVIRONMENTALSENSOR,
THING_TYPE_AUTOMATEDMETERSENSOR, THING_TYPE_THERMOSTAT));
// List of all Channel Type Ids, these type ids are also used as channel ids during dynamic creation of channels
@@ -90,10 +103,17 @@ public class EnOceanBindingConstants {
public final static String CHANNEL_MOTIONDETECTION = "motionDetection";
public final static String CHANNEL_VIBRATION = "vibration";
public final static String CHANNEL_ILLUMINATION = "illumination";
+ public final static String CHANNEL_ILLUMINATIONWEST = "illuminationWest";
+ public final static String CHANNEL_ILLUMINATIONSOUTHNORTH = "illuminationSouthNorth";
+ public final static String CHANNEL_ILLUMINATIONEAST = "illuminationEast";
+ public final static String CHANNEL_WINDSPEED = "windspeed";
+ public final static String CHANNEL_RAINSTATUS = "rainStatus";
public final static String CHANNEL_COUNTER = "counter";
public final static String CHANNEL_CURRENTNUMBER = "currentNumber";
public final static String CHANNEL_PUSHBUTTON = "pushButton";
+ public final static String CHANNEL_DOUBLEPRESS = "doublePress";
+ public final static String CHANNEL_LONGPRESS = "longPress";
public final static String CHANNEL_ROCKERSWITCH_CHANNELA = "rockerswitchA";
public final static String CHANNEL_ROCKERSWITCH_CHANNELB = "rockerswitchB";
@@ -110,10 +130,11 @@ public class EnOceanBindingConstants {
public final static String CHANNEL_TEACHINCMD = "teachInCMD";
public final static String CHANNEL_INSTANTPOWER = "instantpower";
public final static String CHANNEL_TOTALUSAGE = "totalusage";
- public final static String CHANNEL_INSTANTLITRE = "amrLitre";
- public final static String CHANNEL_TOTALCUBICMETRE = "amrCubicMetre";
+ public final static String CHANNEL_CURRENTFLOW = "currentFlow";
+ public final static String CHANNEL_CUMULATIVEVALUE = "cumulativeValue";
public final static String CHANNEL_BATTERY_VOLTAGE = "batteryVoltage";
public final static String CHANNEL_ENERGY_STORAGE = "energyStorage";
+ public final static String CHANNEL_BATTERY_LEVEL = "batteryLevel";
public final static String CHANNEL_AUTOOFF = "autoOFF";
public final static String CHANNEL_DELAYRADIOOFF = "delayRadioOFF";
@@ -163,21 +184,30 @@ public class EnOceanBindingConstants {
put(CHANNEL_ROLLERSHUTTER, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_ROLLERSHUTTER), CoreItemFactory.ROLLERSHUTTER));
put(CHANNEL_ANGLE, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ANGLE),
- CoreItemFactory.NUMBER));
+ CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Angle.class.getSimpleName()));
put(CHANNEL_TEMPERATURE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName()));
put(CHANNEL_HUMIDITY, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_HUMIDITY), CoreItemFactory.NUMBER));
put(CHANNEL_FANSPEEDSTAGE, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE), CoreItemFactory.STRING));
put(CHANNEL_OCCUPANCY, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_OCCUPANCY), CoreItemFactory.SWITCH));
- put(CHANNEL_MOTIONDETECTION, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_MOTIONDETECTION), CoreItemFactory.SWITCH));
+ put(CHANNEL_MOTIONDETECTION, new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_MOTION.getUID(), CoreItemFactory.SWITCH));
put(CHANNEL_VIBRATION, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_VIBRATION), CoreItemFactory.SWITCH));
put(CHANNEL_ILLUMINATION, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATION), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATION), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName()));
+ put(CHANNEL_ILLUMINATIONWEST, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONWEST), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName()));
+ put(CHANNEL_ILLUMINATIONSOUTHNORTH, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONSOUTHNORTH), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName()));
+ put(CHANNEL_ILLUMINATIONEAST, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONEAST), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName()));
+ put(CHANNEL_WINDSPEED, new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_WIND_SPEED.getUID(),
+ CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Speed.class.getSimpleName()));
+ put(CHANNEL_RAINSTATUS, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_RAINSTATUS), CoreItemFactory.SWITCH));
put(CHANNEL_COUNTER, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_COUNTER),
CoreItemFactory.NUMBER));
put(CHANNEL_CURRENTNUMBER, new EnOceanChannelDescription(
@@ -189,15 +219,23 @@ public class EnOceanBindingConstants {
put(CHANNEL_WINDOWHANDLESTATE, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWHANDLESTATE), CoreItemFactory.STRING));
put(CHANNEL_BATTERY_VOLTAGE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_BATTERY_VOLTAGE), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_BATTERY_VOLTAGE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + ElectricPotential.class.getSimpleName()));
put(CHANNEL_ENERGY_STORAGE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_ENERGY_STORAGE), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_ENERGY_STORAGE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + ElectricPotential.class.getSimpleName()));
+ put(CHANNEL_BATTERY_LEVEL, new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_CHANNEL_BATTERY_LEVEL.getUID(),
+ CoreItemFactory.NUMBER));
put(CHANNEL_TEACHINCMD, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_TEACHINCMD), CoreItemFactory.SWITCH));
put(CHANNEL_PUSHBUTTON,
new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(),
null, "Push button", false, true));
+ put(CHANNEL_DOUBLEPRESS,
+ new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(),
+ null, "Double press", false, true));
+ put(CHANNEL_LONGPRESS,
+ new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(),
+ null, "Long press", false, true));
put(CHANNEL_ROCKERSWITCH_CHANNELA,
new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWROCKER.getUID(),
@@ -224,13 +262,13 @@ public class EnOceanBindingConstants {
CoreItemFactory.ROLLERSHUTTER, "Rocker Switch Listener (Rollershutter)", true, false));
put(CHANNEL_INSTANTPOWER, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_INSTANTPOWER), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_INSTANTPOWER), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Power.class.getSimpleName()));
put(CHANNEL_TOTALUSAGE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_TOTALUSAGE), CoreItemFactory.NUMBER));
- put(CHANNEL_INSTANTLITRE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_INSTANTLITRE), CoreItemFactory.NUMBER));
- put(CHANNEL_TOTALCUBICMETRE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_TOTALCUBICMETRE), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_TOTALUSAGE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Energy.class.getSimpleName()));
+ put(CHANNEL_CURRENTFLOW, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_CURRENTFLOW), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + VolumetricFlowRate.class.getSimpleName()));
+ put(CHANNEL_CUMULATIVEVALUE, new EnOceanChannelDescription(
+ new ChannelTypeUID(BINDING_ID, CHANNEL_CUMULATIVEVALUE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Volume.class.getSimpleName()));
put(CHANNEL_AUTOOFF, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_AUTOOFF),
CoreItemFactory.NUMBER));
put(CHANNEL_DELAYRADIOOFF, new EnOceanChannelDescription(
@@ -272,9 +310,9 @@ public class EnOceanBindingConstants {
put(CHANNEL_DISPLAY_ORIENTATION, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_DISPLAY_ORIENTATION), CoreItemFactory.NUMBER));
put(CHANNEL_TEMPERATURE_SETPOINT, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE_SETPOINT), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE_SETPOINT), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName()));
put(CHANNEL_FEED_TEMPERATURE, new EnOceanChannelDescription(
- new ChannelTypeUID(BINDING_ID, CHANNEL_FEED_TEMPERATURE), CoreItemFactory.NUMBER));
+ new ChannelTypeUID(BINDING_ID, CHANNEL_FEED_TEMPERATURE), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName()));
put(CHANNEL_MEASUREMENT_CONTROL, new EnOceanChannelDescription(
new ChannelTypeUID(BINDING_ID, CHANNEL_MEASUREMENT_CONTROL), CoreItemFactory.SWITCH));
put(CHANNEL_FAILURE_CODE, new EnOceanChannelDescription(
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanChannelDescription.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanChannelDescription.java
index 7a49772edbec6..2b786e4ca0d83 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanChannelDescription.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanChannelDescription.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanConfigStatusMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanConfigStatusMessage.java
index aaf127d3ed42b..d49aaec86be7d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanConfigStatusMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanConfigStatusMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -30,4 +30,4 @@ private EnOceanConfigStatusMessage(String messageKey) {
public String getMessageKey() {
return messageKey;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanException.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanException.java
index 083d9fcd433d8..345f5de2906e3 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanException.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanHandlerFactory.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanHandlerFactory.java
index c28b6578eac0a..42896bd8250e8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanHandlerFactory.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -36,7 +36,6 @@
import org.openhab.binding.enocean.internal.handler.EnOceanClassicDeviceHandler;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
import org.osgi.service.component.annotations.Reference;
/**
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanActuatorConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanActuatorConfig.java
index 4bbe3048820af..aafe151741efa 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanActuatorConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanActuatorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanBaseConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanBaseConfig.java
index a79bf151b2534..68ecd579e332f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanBaseConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanBaseConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelContactConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelContactConfig.java
index aee0b6555fa42..e4967b3c790cd 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelContactConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelContactConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,7 +10,6 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-
package org.openhab.binding.enocean.internal.config;
/**
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java
index 93be459974919..0aa71f74b3121 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,7 +10,6 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-
package org.openhab.binding.enocean.internal.config;
/**
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchConfigBase.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchConfigBase.java
index 69c9fdf5811f6..5b99af7d7d002 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchConfigBase.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchConfigBase.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchListenerConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchListenerConfig.java
index e86f34f572ff0..99b542acac262 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchListenerConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRockerSwitchListenerConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRollershutterConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRollershutterConfig.java
index 9e2291b8028e1..819846f506b45 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRollershutterConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelRollershutterConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTeachInConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTeachInConfig.java
index b69d122cc50b4..123161b7f9b0b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTeachInConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTeachInConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTotalusageConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTotalusageConfig.java
index 75b19049ec8e2..30f27aeb48776 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTotalusageConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTotalusageConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTransformationConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTransformationConfig.java
index 84caf7e31bdb0..e3eee68d62869 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTransformationConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelTransformationConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelVirtualRockerSwitchConfig.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelVirtualRockerSwitchConfig.java
index 06920363939a6..c9e333dccfdba 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelVirtualRockerSwitchConfig.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelVirtualRockerSwitchConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanDeviceDiscoveryService.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanDeviceDiscoveryService.java
index 6b8ebca751ab6..8157ea80f0d22 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanDeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanDeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanUsbSerialDiscoveryParticipant.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanUsbSerialDiscoveryParticipant.java
index 42104ce9e57b8..92917a5dc0d69 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanUsbSerialDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/discovery/EnOceanUsbSerialDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02.java
index 1328204a40176..edeea1532f6b1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_01.java
index 8edc175347948..b9a28c3c718e0 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_02.java
index bfea4cc7c7f82..0d0023b8b6955 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_03.java
index 2c03af00943ea..b7b5d6e36e846 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_04.java
index c822f633e045a..619e99b0af669 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_05.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_05.java
index f6f91c9133fd8..1e18e383713ca 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_05.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_05.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_06.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_06.java
index ab78266d4cd69..f22c9c4584cdb 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_06.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_06.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_07.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_07.java
index fc1a12fb27395..4393637b90d20 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_07.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_07.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_08.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_08.java
index 336321c22dec4..7145e9a9765fa 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_08.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_08.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_09.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_09.java
index 87c20cbbc4d12..8debb668e6670 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_09.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_09.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0A.java
index c2ab009aaf366..a539cd3125574 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0B.java
index d3adba7c47a5b..90882522951a8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0B.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_0B.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_10.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_10.java
index 8b35344425c08..f21872e76f677 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_10.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_10.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_11.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_11.java
index 1121b89896569..4ae2ede806b93 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_11.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_11.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_12.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_12.java
index 9a6789d00a349..7a759904f649b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_12.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_12.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_13.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_13.java
index bfc034eba5160..45ee90ecccc5c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_13.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_13.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_14.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_14.java
index 9738896df684b..77d44784163f1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_14.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_14.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_15.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_15.java
index c89fee2f75d17..fccab8005bc7a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_15.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_15.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_16.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_16.java
index 1c2942c41b6f4..ed14044705e29 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_16.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_16.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_17.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_17.java
index 9ce436bc9a1c9..dfa7e7bb1b922 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_17.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_17.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_18.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_18.java
index 8c30e90c9369b..a9248f046b193 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_18.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_18.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_19.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_19.java
index 4ff583fa6539b..29d59b49d325d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_19.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_19.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1A.java
index 91ed32357024d..0a92c7fbd2d5b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1B.java
index 75f9959989c4a..fdfb87152335a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1B.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_1B.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_20.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_20.java
index 4ca62f7d5dfca..fcbe158d32c73 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_20.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_20.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -33,6 +33,16 @@ protected double getScaledMin() {
protected double getScaledMax() {
return 41.2;
}
+
+ @Override
+ protected double getUnscaledMin() {
+ return 1023;
+ }
+
+ @Override
+ protected double getUnscaledMax() {
+ return 0;
+ }
@Override
protected int getUnscaledTemperatureValue() {
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_30.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_30.java
index 16ea321a2192b..2ce86dde6c492 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_30.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_02/A5_02_30.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -34,6 +34,16 @@ protected double getScaledMax() {
return 62.3;
}
+ @Override
+ protected double getUnscaledMin() {
+ return 1023;
+ }
+
+ @Override
+ protected double getUnscaledMax() {
+ return 0;
+ }
+
@Override
protected int getUnscaledTemperatureValue() {
return getDB_1Value() + ((getDB_2Value() & 0b11) << 8);
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04.java
index 85a4e64a5f1a7..ac277ee794912 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_01.java
index 9768f28fd756d..bc23e6e7f87d7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02.java
index cbde6b103d866..5768b7867303b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02_Eltako.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02_Eltako.java
index c9556db1ee053..d454a2814f3c0 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02_Eltako.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_02_Eltako.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_03.java
index f5241f02339f0..1e4549eed763c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_04/A5_04_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01.java
index 3772137c08d78..3a03d01c1f0ec 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01_ELTAKO.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01_ELTAKO.java
index eaa48995f05c0..e8de281d3d8be 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01_ELTAKO.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_06/A5_06_01_ELTAKO.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07.java
index 7f50b36ec8e82..fded4a608d310 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_01.java
index 56fb8355a60ea..b62e2c160b66b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_02.java
index 7f94ac4b8513b..723043bb31034 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_03.java
index 7f30ed0d85b02..8d1dfb1a80b86 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_07/A5_07_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08.java
index 4ff6b3fe6bbdb..efeee2c90c2d9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01.java
index 37dcbdd8192cb..4bf3293823387 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01_FXBH.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01_FXBH.java
index 7e00a514c3c3b..98c779fdcd504 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01_FXBH.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_01_FXBH.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_02.java
index 5450058dedd0b..5a20e33856004 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_03.java
index f24bd2a97bb5b..996375da6812f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_08/A5_08_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java
index 6241df6618425..687522376fab4 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_01.java
index 29171bea02fbf..834b584141316 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_02.java
index 78a17804fad6b..fda16f26a731b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_03.java
index f0082b6b11107..14e70b874229f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_04.java
index 6f21d488579af..8b17db4ad4bcf 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_05.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_05.java
index f3387348c7558..aa4602ca10eff 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_05.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_05.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_06.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_06.java
index 385ad21539aa8..7bcdd7095359f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_06.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_06.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_07.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_07.java
index 77102577b7fe9..d2b7da706da22 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_07.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_07.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_08.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_08.java
index 77f522cd0c413..4b681b9cba55b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_08.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_08.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_09.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_09.java
index a8ef053516af6..511dd99b441f7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_09.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_09.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0A.java
index 5ffaaf4a38db3..a195ad791550d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0B.java
index 28352f5fc140d..bb86d2a3c1b59 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0B.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0B.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0C.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0C.java
index 43f2e682f12cd..60d3a43eb422a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0C.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0C.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0D.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0D.java
index 693b7b8d32e2b..c337b4987cea1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0D.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_0D.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java
index 25ff2969e64a1..ead768bc2c1d6 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java
index 847b35d4b8336..d3d6f5df0c0e3 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java
index 5055c5c3c0cf1..da00c43d95161 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java
index d943bedc71929..c848e96ed0d25 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java
index f8be66050d0a2..b3905484f3559 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java
index 735a64b946f7c..a5e9c1af31ccb 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java
index 1e3e4ddd5fb16..09093e0db92a9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java
index 603feed5851cc..fbb3c55edf4b8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java
index 9f322474170b9..b63f4fa30afc1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java
index 81b4ec176dbd2..4fb6c43a1668b 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java
index 463f6ce180d30..a15a1d41edefe 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java
index 2e6697fde0886..d424dfb7eca17 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java
index c31b7d136d6c7..862138a45da9e 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java
index 22e1f68db3a09..245527104f7a4 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java
index f77b0c8be6bd7..7fdc4ee2da8b8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1F.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1F.java
index fbc84835a7d08..c511cac08cbb9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1F.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1F.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java
index efc95acb68101..7205eeed8de64 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java
index fe65abc66063a..aa846a5ef60c8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java
index d88949b48733b..10eb5e0ab6c1a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java
index 676868f2b558a..e7537f8c64b4c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_03.java
index d68c4ac3a030f..9201e9d579a4e 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_04.java
index 30a2fdb901996..6b53e882a3698 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_11/A5_11_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -202,4 +202,4 @@ protected State convertToStateImpl(String channelId, String channelTypeId, Funct
return UnDefType.UNDEF;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12.java
index d65d535ca5607..75af695edc276 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -117,18 +117,18 @@ protected State convertToStateImpl(String channelId, String channelTypeId, Funct
Configuration config) {
switch (channelId) {
case CHANNEL_INSTANTPOWER:
- case CHANNEL_INSTANTLITRE:
+ case CHANNEL_CURRENTFLOW:
case CHANNEL_CURRENTNUMBER:
return getCurrentValue();
case CHANNEL_TOTALUSAGE:
State value = getCumulativeValue();
State currentState = getCurrentStateFunc.apply(channelId);
return EEPHelper.validateTotalUsage(value, currentState, config);
- case CHANNEL_TOTALCUBICMETRE:
+ case CHANNEL_CUMULATIVEVALUE:
case CHANNEL_COUNTER:
return getCumulativeValue();
}
return UnDefType.UNDEF;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_00.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_00.java
index 3e2e62cd001d0..c810b336a157c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_00.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_00.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_01.java
index 5b249a1bff089..bde2b5d6d8b6d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -36,4 +36,4 @@ protected State calcCumulativeValue(float value) {
protected State calcCurrentValue(float value) {
return new QuantityType<>(value, SmartHomeUnits.WATT);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_02.java
index 08d49c98d08ad..f515405430787 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,6 +35,7 @@ protected State calcCumulativeValue(float value) {
@Override
protected State calcCurrentValue(float value) {
- return new QuantityType<>(value, SmartHomeUnits.LITRE);
+ // value is given in litre/second, hence multiply by 60
+ return new QuantityType<>(value * 60, SmartHomeUnits.LITRE_PER_MINUTE);
}
}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_03.java
index b21bff18aa842..f49c202d0e3e0 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_12/A5_12_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -35,6 +35,7 @@ protected State calcCumulativeValue(float value) {
@Override
protected State calcCurrentValue(float value) {
- return new QuantityType<>(value, SmartHomeUnits.LITRE);
+ // value is given in litre/second, hence multiply by 60
+ return new QuantityType<>(value * 60, SmartHomeUnits.LITRE_PER_MINUTE);
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13.java
new file mode 100644
index 0000000000000..23486842fedd5
--- /dev/null
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2010-2020 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.enocean.internal.eep.A5_13;
+
+import org.openhab.binding.enocean.internal.eep.Base._4BSMessage;
+import org.openhab.binding.enocean.internal.messages.ERP1Message;
+
+/**
+ * Base class for A5-13 EEP message handling
+ *
+ * @author Daniel Weber - Initial contribution
+ */
+public abstract class A5_13 extends _4BSMessage {
+ public A5_13(ERP1Message packet) {
+ super(packet);
+ }
+
+ protected final int PARTONE = 0x10;
+ protected final int PARTTWO = 0x20;
+
+ protected int getMessageIdentifier() {
+ return getDB_0Value() & 0xF0;
+ }
+
+ protected boolean isPartOne() {
+ return getMessageIdentifier() == PARTONE;
+ }
+
+ protected boolean isPartTwo() {
+ return getMessageIdentifier() == PARTTWO;
+ }
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13_01.java
new file mode 100644
index 0000000000000..71bc7a6d1df30
--- /dev/null
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_13/A5_13_01.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2010-2020 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.enocean.internal.eep.A5_13;
+
+import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
+
+import java.util.function.Function;
+
+import org.eclipse.smarthome.config.core.Configuration;
+import org.eclipse.smarthome.core.library.types.OnOffType;
+import org.eclipse.smarthome.core.library.types.QuantityType;
+import org.eclipse.smarthome.core.library.unit.SIUnits;
+import org.eclipse.smarthome.core.library.unit.SmartHomeUnits;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.openhab.binding.enocean.internal.messages.ERP1Message;
+
+/**
+ * Convertes EEP A5-13 messages of type 0x01 into Temperature, Illumination, Wind Speed and Temperature states
+ *
+ * @author Daniel Weber - Initial contribution
+ */
+public class A5_13_01 extends A5_13 {
+
+ public A5_13_01(ERP1Message packet) {
+ super(packet);
+ }
+
+ protected State getIllumination() {
+ return new QuantityType<>(((getDB_3Value() * 1000.0) / 255.0), SmartHomeUnits.LUX);
+ }
+
+ protected State getIllumination(double value) {
+ return new QuantityType<>(((value * 1000.0 * 150.0) / 255.0), SmartHomeUnits.LUX);
+ }
+
+ protected State getIlluminationWest() {
+ return getIllumination(getDB_3Value());
+ }
+
+ protected State getIlluminationSouthNorth() {
+ return getIllumination(getDB_2Value());
+ }
+
+ protected State getIlluminationEast() {
+ return getIllumination(getDB_1Value());
+ }
+
+ protected State getTemperature() {
+ return new QuantityType<>(-40.0 + ((getDB_2Value() * 120.0) / 255.0), SIUnits.CELSIUS);
+ }
+
+ protected State getWindSpeed() {
+ return new QuantityType<>(((getDB_1Value() * 70.0) / 255.0), SmartHomeUnits.METRE_PER_SECOND);
+ }
+
+ protected State getRainStatus() {
+ return getBit(getDB_0Value(), 1) ? OnOffType.ON : OnOffType.OFF;
+ }
+
+ @Override
+ protected State convertToStateImpl(String channelId, String channelTypeId, Function getCurrentStateFunc,
+ Configuration config) {
+
+ if (isPartOne()) {
+ switch (channelId) {
+ case CHANNEL_ILLUMINATION:
+ return getIllumination();
+ case CHANNEL_TEMPERATURE:
+ return getTemperature();
+ case CHANNEL_WINDSPEED:
+ return getWindSpeed();
+ case CHANNEL_RAINSTATUS:
+ return getRainStatus();
+ }
+ }
+
+ if (isPartTwo()) {
+ switch (channelId) {
+ case CHANNEL_ILLUMINATIONWEST:
+ return getIlluminationWest();
+ case CHANNEL_ILLUMINATIONSOUTHNORTH:
+ return getIlluminationSouthNorth();
+ case CHANNEL_ILLUMINATIONEAST:
+ return getIlluminationEast();
+ }
+ }
+
+ return UnDefType.UNDEF;
+ }
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14.java
index 805b2575535b9..a21144fb02cb2 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01.java
index 8b82e5aaf9ff1..e3fb22d561667 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01_ELTAKO.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01_ELTAKO.java
index a427e5acd6d8b..e8549ed5eafd7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01_ELTAKO.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_01_ELTAKO.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_09.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_09.java
index 759cad06c42a8..7cca9da6fd565 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_09.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_09.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_0A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_0A.java
index 10cfcddb7d2c7..9c11511680e34 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_0A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_14/A5_14_0A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20.java
index 4e5b7f17c1f13..e5898dea4fbaa 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20_04.java
index a1e53ffe788c0..a75231457db17 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_20/A5_20_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Blinds.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Blinds.java
index 8a2075e97903b..d24920c3293da 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Blinds.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Blinds.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java
index 683987dce7bd9..fbd6e1702492c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Switching.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Switching.java
index 1298e73caa950..85c0bdfb2ba9f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Switching.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Switching.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_EltakoFSB.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_EltakoFSB.java
index 0da5eb17c2132..91e18f121da3a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_EltakoFSB.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_EltakoFSB.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_Universal.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_Universal.java
index 5830965786bf4..4b7f84022cebf 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_Universal.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_Universal.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/PTM200Message.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/PTM200Message.java
index 09821adc3a30b..9062748d67014 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/PTM200Message.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/PTM200Message.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/UTEResponse.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/UTEResponse.java
index 593fdbda6358a..3c0549c4141c2 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/UTEResponse.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/UTEResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_1BSMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_1BSMessage.java
index a400f2d3937eb..c8f7b9aa1c473 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_1BSMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_1BSMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSMessage.java
index 938a67d954f5b..7490817602e80 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSTeachInVariation3Response.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSTeachInVariation3Response.java
index 51d7c7b6c0f10..5d949b30cd7b4 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSTeachInVariation3Response.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_4BSTeachInVariation3Response.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_RPSMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_RPSMessage.java
index e0c4688c7cdc2..b89c0e56e6ae9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_RPSMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_RPSMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_VLDMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_VLDMessage.java
index 94719494b74d9..1d6cbfa90ee2e 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_VLDMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Base/_VLDMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java
index 8a796a69e0e3e..aa15520e203f7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_00.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_00.java
index 39a48a6178b61..8fc9e113a04c3 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_00.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_00.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_01.java
index 4babcaeee4b27..64ed22a2a75c8 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_02.java
index 0f02ae757222d..82306de24d914 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_03.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_03.java
index 200f759a51d09..0cd96f699488f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_03.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_03.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_04.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_04.java
index 6676dd5c19656..05acb9b7f68d1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_04.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_04.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_05.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_05.java
index c51d24a3c99b9..254aee2169934 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_05.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_05.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_06.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_06.java
index ae5e8e9c50728..9145f8f7540dd 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_06.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_06.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_07.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_07.java
index 4043baedb8e43..1a7e345670db5 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_07.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_07.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_08.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_08.java
index bac8bf9bb6801..48b746cd60d74 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_08.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_08.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09.java
index 98c862c6f5ea2..e89f0878175ad 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09_Permundo.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09_Permundo.java
index 344445f761f7a..f9dcd6a8f54bf 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09_Permundo.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_09_Permundo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0A.java
index d54e013870779..cac7af5f12f7a 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0A.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0A.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0B.java
index 6857ddcbc342f..c67752898c918 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0B.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0B.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0C.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0C.java
index 7a31d337f7920..6a486bb51247d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0C.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0C.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0D.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0D.java
index f3166ca94ab49..cd664fbb12a59 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0D.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0D.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0E.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0E.java
index 399a67a6a5c59..428a7f7d610b9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0E.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0E.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F.java
index cb0489f8374a1..4f3b495b0f54d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F_NodON.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F_NodON.java
index 220704395148f..b3596fdefdaa5 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F_NodON.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_0F_NodON.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_11.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_11.java
index 3f59b2bc44db0..f9ff8462a3d1c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_11.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_11.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12.java
index 6f6efbada0490..a6db08fea8319 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12_NodON.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12_NodON.java
index fb4c2220d9528..afc0b069f14cc 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12_NodON.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01_12_NodON.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_03/D2_03_0A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_03/D2_03_0A.java
new file mode 100644
index 0000000000000..8e94d6c3c9e81
--- /dev/null
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_03/D2_03_0A.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2010-2020 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.enocean.internal.eep.D2_03;
+
+import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
+
+import java.util.function.Function;
+
+import org.eclipse.smarthome.config.core.Configuration;
+import org.eclipse.smarthome.core.library.types.PercentType;
+import org.eclipse.smarthome.core.library.types.QuantityType;
+import org.eclipse.smarthome.core.library.unit.SmartHomeUnits;
+import org.eclipse.smarthome.core.thing.CommonTriggerEvents;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.openhab.binding.enocean.internal.eep.Base._VLDMessage;
+import org.openhab.binding.enocean.internal.messages.ERP1Message;
+
+/**
+ *
+ * @author Daniel Weber - Initial contribution
+ */
+public class D2_03_0A extends _VLDMessage {
+
+ protected final byte ShortPress = 0x01;
+ protected final byte DoublePress = 0x02;
+ protected final byte LongPress = 0x03;
+ protected final byte LongRelease = 0x04;
+
+ public D2_03_0A() {
+ super();
+ }
+
+ public D2_03_0A(ERP1Message packet) {
+ super(packet);
+ }
+
+ @Override
+ protected String convertToEventImpl(String channelId, String channelTypeId, String lastEvent, Configuration config) {
+ switch (channelId) {
+ case CHANNEL_PUSHBUTTON:
+ return (bytes[1] == ShortPress) ? CommonTriggerEvents.PRESSED : null;
+ case CHANNEL_DOUBLEPRESS:
+ return (bytes[1] == DoublePress) ? CommonTriggerEvents.PRESSED : null;
+ case CHANNEL_LONGPRESS:
+ return (bytes[1] == LongPress) ? CommonTriggerEvents.PRESSED
+ : ((bytes[1] == LongRelease) ? CommonTriggerEvents.RELEASED : null);
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public State convertToStateImpl(String channelId, String channelTypeId, Function getCurrentStateFunc, Configuration config) {
+ if (CHANNEL_BATTERY_LEVEL.equals(channelId)) {
+ return new QuantityType<>(bytes[0] & 0xFF, SmartHomeUnits.PERCENT);
+ }
+
+ return UnDefType.UNDEF;
+ }
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_05/D2_05_00.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_05/D2_05_00.java
index 13bd98bda6634..2bd25630a76af 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_05/D2_05_00.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_05/D2_05_00.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D5_00/D5_00_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D5_00/D5_00_01.java
index 186046e5a3598..055c5d5bbcd38 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D5_00/D5_00_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D5_00/D5_00_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEP.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEP.java
index 937c8d802a0df..b74d8fbdaa345 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEP.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEP.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPFactory.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPFactory.java
index 1b23d4998f96b..ec59cdba10f7c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPFactory.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPHelper.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPHelper.java
index d8b45aa45be8a..6fde01c6312bd 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPHelper.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java
index 883a87149d9f8..3580154f35d5c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -101,6 +101,7 @@
import org.openhab.binding.enocean.internal.eep.A5_12.A5_12_01;
import org.openhab.binding.enocean.internal.eep.A5_12.A5_12_02;
import org.openhab.binding.enocean.internal.eep.A5_12.A5_12_03;
+import org.openhab.binding.enocean.internal.eep.A5_13.A5_13_01;
import org.openhab.binding.enocean.internal.eep.A5_14.A5_14_01;
import org.openhab.binding.enocean.internal.eep.A5_14.A5_14_01_ELTAKO;
import org.openhab.binding.enocean.internal.eep.A5_14.A5_14_09;
@@ -134,6 +135,7 @@
import org.openhab.binding.enocean.internal.eep.D2_01.D2_01_11;
import org.openhab.binding.enocean.internal.eep.D2_01.D2_01_12;
import org.openhab.binding.enocean.internal.eep.D2_01.D2_01_12_NodON;
+import org.openhab.binding.enocean.internal.eep.D2_03.D2_03_0A;
import org.openhab.binding.enocean.internal.eep.D2_05.D2_05_00;
import org.openhab.binding.enocean.internal.eep.D5_00.D5_00_01;
import org.openhab.binding.enocean.internal.eep.F6_01.F6_01_01;
@@ -171,6 +173,8 @@ public enum EEPType {
CHANNEL_CONTACT),
PushButton(RORG.RPS, 0x01, 0x01, false, F6_01_01.class, THING_TYPE_PUSHBUTTON, CHANNEL_PUSHBUTTON),
+ PushButtonTriState(RORG.VLD, 0x03, 0x0A, false, D2_03_0A.class, THING_TYPE_PUSHBUTTON, CHANNEL_PUSHBUTTON,
+ CHANNEL_DOUBLEPRESS, CHANNEL_LONGPRESS, CHANNEL_BATTERY_LEVEL),
RockerSwitch2RockerStyle1(RORG.RPS, 0x02, 0x01, false, F6_02_01.class, THING_TYPE_ROCKERSWITCH,
CHANNEL_ROCKERSWITCH_CHANNELA, CHANNEL_ROCKERSWITCH_CHANNELB, CHANNEL_VIRTUALSWITCHA,
@@ -353,9 +357,13 @@ public enum EEPType {
AutomatedMeterReading_01(RORG._4BS, 0x12, 0x01, false, A5_12_01.class, THING_TYPE_AUTOMATEDMETERSENSOR,
CHANNEL_TOTALUSAGE, CHANNEL_INSTANTPOWER),
AutomatedMeterReading_02(RORG._4BS, 0x12, 0x02, false, A5_12_02.class, THING_TYPE_AUTOMATEDMETERSENSOR,
- CHANNEL_TOTALCUBICMETRE, CHANNEL_INSTANTLITRE),
+ CHANNEL_CUMULATIVEVALUE, CHANNEL_CURRENTFLOW),
AutomatedMeterReading_03(RORG._4BS, 0x12, 0x03, false, A5_12_03.class, THING_TYPE_AUTOMATEDMETERSENSOR,
- CHANNEL_TOTALCUBICMETRE, CHANNEL_INSTANTLITRE),
+ CHANNEL_CUMULATIVEVALUE, CHANNEL_CURRENTFLOW),
+
+ EnvironmentalSensor_01(RORG._4BS, 0x13, 0x01, false, A5_13_01.class, THING_TYPE_ENVIRONMENTALSENSOR,
+ CHANNEL_ILLUMINATION, CHANNEL_TEMPERATURE, CHANNEL_WINDSPEED, CHANNEL_RAINSTATUS, CHANNEL_ILLUMINATIONWEST,
+ CHANNEL_ILLUMINATIONSOUTHNORTH, CHANNEL_ILLUMINATIONEAST),
Rollershutter_A5(RORG._4BS, 0x11, 0x03, false, A5_11_03.class, THING_TYPE_ROLLERSHUTTER, CHANNEL_ROLLERSHUTTER,
CHANNEL_ANGLE),
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_01/F6_01_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_01/F6_01_01.java
index 2fd0477d26e1b..b4db001c6f8c1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_01/F6_01_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_01/F6_01_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_01.java
index 666ebd88e9341..37c425a92ff6d 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_02.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_02.java
index ba9bd9d47fb1b..e9a3b11d9e187 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_02.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_02/F6_02_02.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00.java
index 2374a364fc4b5..1f74d1c942744 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00_EltakoFPE.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00_EltakoFPE.java
index 6c401bf60b473..2cbce8c10538f 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00_EltakoFPE.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_00_EltakoFPE.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_01.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_01.java
index 8ea9e335cec8f..2ef74fba04eb1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_01.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/F6_10/F6_10_01.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/Generic4BS.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/Generic4BS.java
index 6f4e00b0c309e..07ea095169fd7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/Generic4BS.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/Generic4BS.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericEEP.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericEEP.java
index ebe95863865d6..293cda34c8cf9 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericEEP.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericEEP.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericRPS.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericRPS.java
index 898ae2e9c8952..274823326c0c7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericRPS.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericRPS.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericVLD.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericVLD.java
index 4a8e57a5d04fe..254a3d34a97a0 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericVLD.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/Generic/GenericVLD.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseActuatorHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseActuatorHandler.java
index 9de587241b7ff..f594a06f3a4e2 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseActuatorHandler.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseActuatorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -15,10 +15,14 @@
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.eclipse.smarthome.config.core.Configuration;
import org.eclipse.smarthome.core.thing.Channel;
@@ -90,14 +94,41 @@ protected EnOceanActuatorConfig getConfiguration() {
return (EnOceanActuatorConfig) config;
}
+ @Override
+ Collection getEEPTypes() {
+ Collection r = super.getEEPTypes();
+ if (sendingEEPType == null) {
+ return r;
+ }
+
+ return Collections.unmodifiableCollection(Stream.concat(r.stream(), Collections.singletonList(sendingEEPType).stream()).collect(Collectors.toList()));
+ }
+
@Override
boolean validateConfig() {
- if (super.validateConfig()) {
+
+ EnOceanActuatorConfig config = getConfiguration();
+ if(config == null) {
+ configurationErrorDescription = "Configuration is not valid";
+ return false;
+ }
+
+ if(config.sendingEEPId == null || config.sendingEEPId.isEmpty()) {
+ configurationErrorDescription = "Sending EEP must be provided";
+ return false;
+ }
- try {
- sendingEEPType = EEPType.getType(getConfiguration().sendingEEPId);
- updateChannels(sendingEEPType, false);
+ try {
+ sendingEEPType = EEPType.getType(getConfiguration().sendingEEPId);
+ } catch (IllegalArgumentException e) {
+ configurationErrorDescription = "Sending EEP is not supported";
+ return false;
+ }
+
+ if (super.validateConfig()) {
+ try {
+
if (sendingEEPType.getSupportsRefresh()) {
if (getConfiguration().pollingInterval > 0) {
refreshJob = scheduler.scheduleWithFixedDelay(() -> {
@@ -117,7 +148,7 @@ boolean validateConfig() {
}
} catch (Exception e) {
- configurationErrorDescription = "Sending EEP is not supported";
+ configurationErrorDescription = "Configuration is not valid";
return false;
}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java
index 542dd1780a6b1..8ebd36466f763 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,9 +12,12 @@
*/
package org.openhab.binding.enocean.internal.handler;
+import static java.util.Collections.unmodifiableCollection;
import static org.openhab.binding.enocean.internal.EnOceanBindingConstants.*;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
@@ -53,7 +56,7 @@ public class EnOceanBaseSensorHandler extends EnOceanBaseThingHandler implements
Arrays.asList(THING_TYPE_ROOMOPERATINGPANEL, THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT,
THING_TYPE_TEMPERATURESENSOR, THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_ROCKERSWITCH,
THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR, THING_TYPE_LIGHTSENSOR,
- THING_TYPE_PUSHBUTTON, THING_TYPE_AUTOMATEDMETERSENSOR));
+ THING_TYPE_PUSHBUTTON, THING_TYPE_AUTOMATEDMETERSENSOR, THING_TYPE_ENVIRONMENTALSENSOR));
protected Hashtable receivingEEPTypes = null;
@@ -66,13 +69,21 @@ void initializeConfig() {
config = getConfigAs(EnOceanBaseConfig.class);
}
+ @Override
+ Collection getEEPTypes() {
+ if (receivingEEPTypes == null) {
+ return Collections.emptyList();
+ }
+
+ return unmodifiableCollection(receivingEEPTypes.values());
+ }
+
@Override
boolean validateConfig() {
receivingEEPTypes = null;
try {
if (config.receivingEEPId != null && !config.receivingEEPId.isEmpty()) {
- boolean first = true;
receivingEEPTypes = new Hashtable<>();
for (String receivingEEP : config.receivingEEPId) {
@@ -87,8 +98,6 @@ boolean validateConfig() {
}
receivingEEPTypes.put(receivingEEPType.getRORG(), receivingEEPType);
- updateChannels(receivingEEPType, first);
- first = false;
}
} else {
receivingEEPTypes = null;
@@ -98,6 +107,8 @@ boolean validateConfig() {
return false;
}
+ updateChannels();
+
if (receivingEEPTypes != null) {
if (!validateEnoceanId(config.enoceanId)) {
configurationErrorDescription = "EnOceanId is not a valid EnOceanId";
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseThingHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseThingHandler.java
index 4cd68cc67a368..f14a49ede0b51 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseThingHandler.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBaseThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -16,7 +16,8 @@
import java.util.Hashtable;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
+import java.util.AbstractMap.SimpleEntry;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
@@ -35,7 +36,6 @@
import org.eclipse.smarthome.core.thing.binding.builder.ThingBuilder;
import org.eclipse.smarthome.core.thing.link.ItemChannelLinkRegistry;
import org.eclipse.smarthome.core.thing.type.ChannelKind;
-import org.eclipse.smarthome.core.thing.type.ChannelTypeUID;
import org.eclipse.smarthome.core.types.State;
import org.eclipse.smarthome.core.types.UnDefType;
import org.openhab.binding.enocean.internal.EnOceanChannelDescription;
@@ -123,50 +123,50 @@ protected boolean validateEnoceanId(String id) {
abstract boolean validateConfig();
- protected void updateChannels(EEPType eep, boolean removeUnsupportedChannels) {
+ abstract Collection getEEPTypes();
+
+ protected void updateChannels() {
@NonNull
List<@NonNull Channel> channelList = new LinkedList<>(this.getThing().getChannels());
- boolean channelListChanged = false;
-
- if (removeUnsupportedChannels) {
- channelListChanged = channelList.removeIf(channel -> !eep.isChannelSupported(channel));
+ Collection eeps = getEEPTypes();
+ if (eeps == null) {
+ return;
}
+
+ // First remove channels which are no longer supported by current selected eeps of thing
+ AtomicBoolean channelListChanged = new AtomicBoolean(channelList.removeIf(channel -> !eeps.stream().anyMatch(eep -> eep.isChannelSupported(channel))));
- for (Map.Entry entry : eep.GetSupportedChannels().entrySet()) {
-
+ // Next create supported channels of each selected eep
+ eeps.stream().flatMap(eep -> eep.GetSupportedChannels().keySet().stream().map(id -> new SimpleEntry(id, eep))).forEach(entry -> {
String channelId = entry.getKey();
- EnOceanChannelDescription cd = entry.getValue();
+ EnOceanChannelDescription cd = entry.getValue().GetSupportedChannels().get(channelId);
// if we do not need to auto create channel => skip
if (!cd.autoCreate) {
- continue;
+ return;
}
- // if we already created a channel with the same type => skip
- if (channelList.stream().anyMatch(channel -> {
- ChannelTypeUID channelTypeUID = channel.getChannelTypeUID();
- String id = channelTypeUID == null ? "" : channelTypeUID.getId();
-
- return cd.channelTypeUID.getId().equals(id);
- })) {
- continue;
+ // if we already created a channel with the same type and id => skip
+ if (channelList.stream().anyMatch(channel -> cd.channelTypeUID.equals(channel.getChannelTypeUID()) && channelId.equals(channel.getUID().getId()))){
+ return;
}
+ // create channel and add it to the channelList
Channel channel = ChannelBuilder
.create(new ChannelUID(this.getThing().getUID(), channelId), cd.acceptedItemType)
- .withConfiguration(eep.getChannelConfig(channelId)).withType(cd.channelTypeUID)
+ .withConfiguration(entry.getValue().getChannelConfig(channelId)).withType(cd.channelTypeUID)
.withKind(cd.isStateChannel ? ChannelKind.STATE : ChannelKind.TRIGGER).withLabel(cd.label).build();
channelList.add(channel);
- channelListChanged = true;
+ channelListChanged.set(true);
if (!cd.isStateChannel) {
lastEvents.putIfAbsent(channelId, "");
}
- }
+ });
- if (channelListChanged) {
+ if (channelListChanged.get()) {
ThingBuilder thingBuilder = editThing();
thingBuilder.withChannels(channelList);
updateThing(thingBuilder.build());
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBridgeHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBridgeHandler.java
index 3e3f553bbdaf1..e16ad208f770c 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBridgeHandler.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanClassicDeviceHandler.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanClassicDeviceHandler.java
index 801d2a2a8c5a6..2e0b0ac7727d0 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanClassicDeviceHandler.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/handler/EnOceanClassicDeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/BaseResponse.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/BaseResponse.java
index bce6c75dc5c51..d6d63e3158218 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/BaseResponse.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/BaseResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/CCMessage.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/CCMessage.java
index d4885a5fb25cf..6981d244f05fa 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/CCMessage.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/CCMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ERP1Message.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ERP1Message.java
index afe4ac7fd1bbe..76f4c60dc1fdc 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ERP1Message.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ERP1Message.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3Packet.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3Packet.java
index 1b18136c14661..2fc62951b1bc7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3Packet.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3Packet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3PacketFactory.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3PacketFactory.java
index 9461cf9c1b554..91937695ae785 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3PacketFactory.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/ESP3PacketFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDBaseIdResponse.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDBaseIdResponse.java
index 5958d6dba3086..0113aeb7d2a85 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDBaseIdResponse.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDBaseIdResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDRepeaterResponse.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDRepeaterResponse.java
index 92f9da961565a..756ca141475c7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDRepeaterResponse.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDRepeaterResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDVersionResponse.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDVersionResponse.java
index 3336934d6d0b5..53d74b7f69c66 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDVersionResponse.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/RDVersionResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/Response.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/Response.java
index f0bc1643e2117..6c1003da69359 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/Response.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/messages/Response.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ESP3PacketListener.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ESP3PacketListener.java
index d9be0e28d9b74..a1de287479e87 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ESP3PacketListener.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ESP3PacketListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanSerialTransceiver.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanSerialTransceiver.java
index 03b15b9bf5b73..b1ed07bf76283 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanSerialTransceiver.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanSerialTransceiver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanTransceiver.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanTransceiver.java
index d0ec4b9e70e50..7d469f0a3ecf2 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanTransceiver.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/EnOceanTransceiver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -117,7 +117,7 @@ private synchronized void send() throws IOException {
sendNext();
}
} catch (EnOceanException e) {
- logger.error("exception while sending data {}", e);
+ logger.error("exception while sending data", e);
}
}
}
@@ -309,8 +309,12 @@ private void processMessage(byte firstByte) {
logger.debug("{} with RORG {} for {} payload {} received",
packet.getPacketType().name(), msg.getRORG().name(),
HexUtils.bytesToHex(msg.getSenderId()), HexUtils.bytesToHex(d));
-
- informListeners(msg);
+
+ if(msg.getRORG() != RORG.Unknown) {
+ informListeners(msg);
+ } else {
+ logger.debug("Received unknown RORG, payload {}", HexUtils.bytesToHex(d));
+ }
}
break;
case RADIO_ERP2:
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/Helper.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/Helper.java
index fcc51a71d1d59..c48df4ef44aca 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/Helper.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/Helper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListener.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListener.java
index edc7e9d9d8e3e..775a76d5afa64 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListener.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -42,4 +42,4 @@ public void handleResponse(Response response) throws EnOceanException {
throw new EnOceanException(e.getMessage());
}
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListenerIgnoringTimeouts.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListenerIgnoringTimeouts.java
index 5cadffc2afd28..ad0dddd280001 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListenerIgnoringTimeouts.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/ResponseListenerIgnoringTimeouts.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/TransceiverErrorListener.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/TransceiverErrorListener.java
index 85657b02f9369..b967d5f425df1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/TransceiverErrorListener.java
+++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/transceiver/TransceiverErrorListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/config/config.xml
index e960e6fe868a3..199039a8eafb1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/config/config.xml
@@ -32,7 +32,7 @@
channelA
-
+
@@ -43,12 +43,12 @@
-
-
+
+
250
-
+
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/i18n/ocean.properties b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/i18n/ocean.properties
index e586784609f5f..4eb2ebd249fdf 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/i18n/ocean.properties
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/i18n/ocean.properties
@@ -1,3 +1,3 @@
config-status.error.missing-port-configuration=No serial port for the enocean bridge has been provided.
config-status.error.missing-senderId-configuration=No sender Id has been provided.
-config-status.error.malformed-senderId-configuration=Sender Id is malformed, must be specified in hex form.
\ No newline at end of file
+config-status.error.malformed-senderId-configuration=Sender Id is malformed, must be specified in hex form.
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/CentralCommand.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/CentralCommand.xml
index bb104931be091..d5bf8c1bd8dca 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/CentralCommand.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/CentralCommand.xml
@@ -23,7 +23,7 @@
Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
-
+
@@ -32,11 +32,11 @@
true
-
+
true
-
+
@@ -46,7 +46,7 @@
true
-
+
false
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/ClassicDevice.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/ClassicDevice.xml
index ba014ef3a95de..40fd2703f1134 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/ClassicDevice.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/ClassicDevice.xml
@@ -25,7 +25,7 @@
Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
-
+
EEP which is used to control the device
@@ -36,7 +36,7 @@
true
-
+
EEP which is used by rocker switch listener(s)
@@ -47,7 +47,7 @@
true
-
+
false
@@ -76,7 +76,7 @@
The virtual rocker switch channel allows to send rocker msg with channel B.
-
+
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/EnvironmentalSensor.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/EnvironmentalSensor.xml
new file mode 100644
index 0000000000000..d89a4fdee22eb
--- /dev/null
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/EnvironmentalSensor.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+ Sensor for different environmental sensors like a weather station (EEP: A5-13)
+
+
+
+
+ EnOceanId of device this thing belongs to
+ true
+
+
+
+ EEP which is used by sensor
+
+
+
+ true
+ true
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/GenericThing.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/GenericThing.xml
index dbf64a32eeec3..89c3809b2f917 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/GenericThing.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/GenericThing.xml
@@ -23,7 +23,7 @@
Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
-
+
@@ -33,7 +33,7 @@
true
-
+
@@ -43,11 +43,11 @@
true
-
+
true
-
+
false
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/MeasurementSwitch.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/MeasurementSwitch.xml
index df06bdb5c4cb7..75be6d46a88e7 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/MeasurementSwitch.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/MeasurementSwitch.xml
@@ -24,12 +24,12 @@
true
-
+
Time in seconds after a refresh is triggerd, 0 to disable300
-
+
@@ -57,11 +57,11 @@
true
-
+
false
-
+
@@ -91,7 +91,7 @@
true
-
+
false
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/PushButton.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/PushButton.xml
index 81efd31dba0a0..1dbe16399da83 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/PushButton.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/PushButton.xml
@@ -11,7 +11,7 @@
- Represents a physical push button (EEP: F6-01)
+ Represents a physical Push Button (EEP: F6-01, D2-03)
@@ -24,6 +24,7 @@
EEP which is used by push button
+
trueF6_01_01
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Rollershutter.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Rollershutter.xml
index 89aae59187e69..fc822c8111fe1 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Rollershutter.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Rollershutter.xml
@@ -23,12 +23,12 @@
Id is used to generate the EnOcean Id (Int between [1-127]). If not specified the next free Id will be determined by bridge
-
+
Time in seconds after a refresh is triggered, 0 to disable300
-
+
@@ -39,11 +39,11 @@
true
-
+
true
-
+
@@ -55,7 +55,7 @@
true
-
+
false
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Thermostat.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Thermostat.xml
index 6b34267ae21c8..3750ca16f5ada 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Thermostat.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/Thermostat.xml
@@ -2,7 +2,7 @@
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
@@ -34,7 +34,7 @@
true
-
+
@@ -43,11 +43,11 @@
true
-
+
false
-
+
false
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/bridge.xml
index 532d465805976..8bbe041a334f3 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/bridge.xml
@@ -22,12 +22,12 @@
true
-
+
falsetrue
-
+
Defines the next device Id, if empty, the next device id is automatically determined
diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/channels.xml
index 2f699c8ad51bd..8eb948cc844e2 100644
--- a/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.enocean/src/main/resources/ESH-INF/thing/channels.xml
@@ -56,7 +56,7 @@
Blinds
-
+
Time (in seconds) to completely close the rollershutter
@@ -70,7 +70,7 @@
DimmableLight
-
+
A5-38-08: Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100%; D2-01-01: 0 = switch, 1-3 = timer 1-3, 4 = stop
@@ -79,7 +79,7 @@
true
-
+
Store final valuefalse
@@ -104,7 +104,7 @@
Number
-
+
linear set point
@@ -171,7 +171,7 @@
-
+
Filter out increases more than 10.0 kWh and decreases less than 1.0 kWhfalse
@@ -207,7 +207,7 @@
Id is used for 4BS teach in with EEP
-
+
Use this message if teach in type and/or manufacturer id are unknown
@@ -234,14 +234,6 @@
-
- Switch
-
- Motion detection sensor state.
- Switch
-
-
-
Switch
@@ -257,6 +249,27 @@
+
+ Number:Illuminance
+
+ Illumination in lux
+
+
+
+
+ Number:Illuminance
+
+ Illumination in lux
+
+
+
+
+ Number:Illuminance
+
+ Illumination in lux
+
+
+
Number:Duration
@@ -301,22 +314,20 @@
Number:Angle
- Blind angle
+ Blind AngleBlinds
-
-
- Number:Litre
-
+
+ Number:VolumetricFlowRate
+
-
-
- Number:Litre
-
+
+ Number:Volume
+
@@ -334,9 +345,17 @@
+
+ Switch
+
+ Rain indicator
+ Switch
+
+
+
Number
-
+
Indicates the actual percent position of the valve.thermostat
@@ -344,21 +363,21 @@
Switch
-
+
Enables or disables buttons on the device.thermostatSwitch
-
+
Enables or disables temperature measurement on the device.thermostatNumber
-
+
Orientation of the display.thermostat
@@ -373,21 +392,21 @@
Number:Temperature
-
+
Desired temperatureNumber:Temperature
-
+
Water temperature in the radiator inputNumber
-
+
Failure codethermostat
@@ -395,7 +414,7 @@
Number
-
+
Defines the cyclic wake-up time. The time corresponding to the number has to be looked up.thermostat
@@ -403,7 +422,7 @@
Number
-
+
Command to be sent to actuatorthermostat
@@ -425,7 +444,7 @@
Switch
-
+
You can send telegrams to the device by switching this channel onthermostat
diff --git a/bundles/org.openhab.binding.toon/.classpath b/bundles/org.openhab.binding.enturno/.classpath
similarity index 100%
rename from bundles/org.openhab.binding.toon/.classpath
rename to bundles/org.openhab.binding.enturno/.classpath
diff --git a/bundles/org.openhab.binding.enturno/.project b/bundles/org.openhab.binding.enturno/.project
new file mode 100644
index 0000000000000..50f911788ee92
--- /dev/null
+++ b/bundles/org.openhab.binding.enturno/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.binding.enturno
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.binding.enturno/CONTRIBUTE.md b/bundles/org.openhab.binding.enturno/CONTRIBUTE.md
index ecee9ce289613..7dc198a3fa9ee 100644
--- a/bundles/org.openhab.binding.enturno/CONTRIBUTE.md
+++ b/bundles/org.openhab.binding.enturno/CONTRIBUTE.md
@@ -45,4 +45,4 @@ There are several possibilities to get and process data from endpoints that entu
}
}
}
-```
\ No newline at end of file
+```
diff --git a/bundles/org.openhab.binding.enturno/NOTICE b/bundles/org.openhab.binding.enturno/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.enturno/NOTICE
+++ b/bundles/org.openhab.binding.enturno/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.enturno/README.md b/bundles/org.openhab.binding.enturno/README.md
index 5baaa4eb4509c..11665aeeb69b6 100644
--- a/bundles/org.openhab.binding.enturno/README.md
+++ b/bundles/org.openhab.binding.enturno/README.md
@@ -1,17 +1,17 @@
# EnturNo Binding
-This binding gets Norwegian public transport real-time (estimated) data from the [Entur.no API](https://developer.entur.org/content/journey-planner-0).
+This binding gets Norwegian public transport real-time (estimated) data from the [Entur.org API](https://developer.entur.org/pages-intro-overview).
## Supported Things
As for now, binding supports only one thing `linestop`.
-It can change in the future as entur.no exposes API for access of different type public transport data, for example: journey planing, stop information etc.
+It can change in the future as [entur.org](https://developer.entur.org) exposes API for access of different type public transport data, for example: journey planing, stop information etc.
### Entur Timetable
Entur timetable provides information about departures for chosen line/service of public transport in Norway and chosen stop place.
It contains informationabout stop place (id, name, transport mode) and real-time departures from that place.
-**It is worth noting that binding is thought to be primarily used for busdepartures (can work for other supported by entur.no transport types).
+**It is worth noting that binding is thought to be primarily used for busdepartures (can work for other supported by [entur.org](https://developer.entur.org/pages-intro-overview) transport types).
Two Direction channel groups are consequence of that assumption.
That will say that usually for stop place of a given name there are two bus stops for same line going in opposite directions.**
Each **Direction** channel group contains information about direction,line code, 5 coming departures, and whether given departure time is real-time (estimated) or not.
@@ -55,7 +55,7 @@ Since thing needs to be explicitly configured for stop id and line, no auto disc
demo.things
```java
-Thing enturno:linestop:1 "Småstrandgaten line nr 2" [stopPlaceId="NSR:StopPlace:30848", lineCode="2"]
+Thing enturno:linestop:7e693fff "Småstrandgaten line nr 2" [stopPlaceId="NSR:StopPlace:30848", lineCode="2"]
```
### Items
@@ -64,34 +64,34 @@ demo.items
```java
// Stop place
-String StopId "StopId" {channel="enturno:linestop:1:stopPlace#id"}
-String StopPlaceName "Stop Place [%s]" {channel="enturno:linestop:1:stopPlace#name"}
-String LineCode "Line [%s]" {channel="enturno:linestop:1:Direction01#lineCode"}
-String TransportMode "TransportMode [%s]" {channel="enturno:linestop:1:stopPlace#transportMode"}
+String StopId "StopId" {channel="enturno:linestop:7e693fff:stopPlace#id"}
+String StopPlaceName "Stop Place [%s]" {channel="enturno:linestop:7e693fff:stopPlace#name"}
+String LineCode "Line [%s]" {channel="enturno:linestop:7e693fff:Direction01#lineCode"}
+String TransportMode "TransportMode [%s]" {channel="enturno:linestop:7e693fff:stopPlace#transportMode"}
// Direction01
-String Direction01_FrontDisplay "Direction01 front display [%s]" {channel="enturno:linestop:1:Direction01#frontDisplayText"}
-DateTime RealTime_Departure01_Time1 "Departure01 time" {channel="enturno:linestop:1:Direction01#departure01"}
-DateTime RealTime_Departure02_Time2 "Departure02 time" {channel="enturno:linestop:1:Direction01#departure02"}
-DateTime RealTime_Departure03_Time3 "Departure03 time" {channel="enturno:linestop:1:Direction01#departure03"}
-DateTime RealTime_Departure04_Time4 "Departure04 time" {channel="enturno:linestop:1:Direction01#departure04"}
-DateTime RealTime_Departure05_Time5 "Departure05 time" {channel="enturno:linestop:1:Direction01#departure05"}
-String RealTime_Departure01_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:1:Direction01#estimatedFlag01"}
-String RealTime_Departure02_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:1:Direction01#estimatedFlag02"}
-String RealTime_Departure03_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:1:Direction01#estimatedFlag03"}
-String RealTime_Departure04_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:1:Direction01#estimatedFlag04"}
-String RealTime_Departure05_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:1:Direction01#estimatedFlag05"}
+String Direction01_FrontDisplay "Direction01 front display [%s]" {channel="enturno:linestop:7e693fff:Direction01#frontDisplayText"}
+DateTime RealTime_Direction01_Time1 "Departure01 time" {channel="enturno:linestop:7e693fff:Direction01#departure01"}
+DateTime RealTime_Direction01_Time2 "Departure02 time" {channel="enturno:linestop:7e693fff:Direction01#departure02"}
+DateTime RealTime_Direction01_Time3 "Departure03 time" {channel="enturno:linestop:7e693fff:Direction01#departure03"}
+DateTime RealTime_Direction01_Time4 "Departure04 time" {channel="enturno:linestop:7e693fff:Direction01#departure04"}
+DateTime RealTime_Direction01_Time5 "Departure05 time" {channel="enturno:linestop:7e693fff:Direction01#departure05"}
+String RealTime_Direction01_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag01"}
+String RealTime_Direction01_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag02"}
+String RealTime_Direction01_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag03"}
+String RealTime_Direction01_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag04"}
+String RealTime_Direction01_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:7e693fff:Direction01#estimatedFlag05"}
//Direction02
-String Direction02_FrontDisplay "Direction02 front display [%s]" {channel="enturno:linestop:1:Direction02#frontDisplayText"}
-DateTime RealTime_Departure01_Time1 "Departure01 time" {channel="enturno:linestop:1:Direction02#departure01"}
-DateTime RealTime_Departure02_Time2 "Departure02 time" {channel="enturno:linestop:1:Direction02#departure02"}
-DateTime RealTime_Departure03_Time3 "Departure03 time" {channel="enturno:linestop:1:Direction02#departure03"}
-DateTime RealTime_Departure04_Time4 "Departure04 time" {channel="enturno:linestop:1:Direction02#departure04"}
-DateTime RealTime_Departure05_Time5 "Departure05 time" {channel="enturno:linestop:1:Direction02#departure05"}
-String RealTime_Departure01_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:1:Direction02#estimatedFlag01"}
-String RealTime_Departure02_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:1:Direction02#estimatedFlag02"}
-String RealTime_Departure03_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:1:Direction02#estimatedFlag03"}
-String RealTime_Departure04_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:1:Direction02#estimatedFlag04"}
-String RealTime_Departure05_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:1:Direction02#estimatedFlag05"}
+String Direction02_FrontDisplay "Direction02 front display [%s]" {channel="enturno:linestop:7e693fff:Direction02#frontDisplayText"}
+DateTime RealTime_Direction02_Time1 "Departure01 time" {channel="enturno:linestop:7e693fff:Direction02#departure01"}
+DateTime RealTime_Direction02_Time2 "Departure02 time" {channel="enturno:linestop:7e693fff:Direction02#departure02"}
+DateTime RealTime_Direction02_Time3 "Departure03 time" {channel="enturno:linestop:7e693fff:Direction02#departure03"}
+DateTime RealTime_Direction02_Time4 "Departure04 time" {channel="enturno:linestop:7e693fff:Direction02#departure04"}
+DateTime RealTime_Direction02_Time5 "Departure05 time" {channel="enturno:linestop:7e693fff:Direction02#departure05"}
+String RealTime_Direction02_IsReal1 "Departure01 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag01"}
+String RealTime_Direction02_IsReal2 "Departure02 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag02"}
+String RealTime_Direction02_IsReal3 "Departure03 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag03"}
+String RealTime_Direction02_IsReal4 "Departure04 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag04"}
+String RealTime_Direction02_IsReal5 "Departure05 is real-time" {channel="enturno:linestop:7e693fff:Direction02#estimatedFlag05"}
```
diff --git a/bundles/org.openhab.binding.enturno/pom.xml b/bundles/org.openhab.binding.enturno/pom.xml
index a45564f7fb51c..4a044f5d7bf80 100644
--- a/bundles/org.openhab.binding.enturno/pom.xml
+++ b/bundles/org.openhab.binding.enturno/pom.xml
@@ -1,13 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.enturno
diff --git a/bundles/org.openhab.binding.enturno/src/main/feature/feature.xml b/bundles/org.openhab.binding.enturno/src/main/feature/feature.xml
index 3c18f9e4d7fad..e96c75b636c35 100644
--- a/bundles/org.openhab.binding.enturno/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.enturno/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoBindingConstants.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoBindingConstants.java
index 2e718e537456c..a00cc3e0bcef6 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoBindingConstants.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoConfiguration.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoConfiguration.java
index cf531a102afb3..538be659431f7 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoConfiguration.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java
index a4fc36bbee890..54978d7f583e0 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandlerFactory.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandlerFactory.java
index 5baa0a50f323d..fca5dbbb470aa 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandlerFactory.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/EnturNoHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturCommunicationException.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturCommunicationException.java
old mode 100755
new mode 100644
index bdda61507e418..816ba8c2102b3
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturCommunicationException.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturCommunicationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturConfigurationException.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturConfigurationException.java
old mode 100755
new mode 100644
index 8bfef2e19e49f..73773064d9701
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturConfigurationException.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturConfigurationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java
index 79bf50829d4e1..e760367040cb2 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/connection/EnturNoConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/Data.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/Data.java
index 7c8c869094fb0..ac64f10637a5e 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/Data.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/Data.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturData.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturData.java
index 6297133c90017..d3dab2feefd5d 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturData.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturJsonData.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturJsonData.java
index 497cbacb0c716..136ba692d2505 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturJsonData.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/EnturJsonData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/DestinationDisplay.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/DestinationDisplay.java
index d42d7a0c8e876..39d800a05bf59 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/DestinationDisplay.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/DestinationDisplay.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/EstimatedCalls.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/EstimatedCalls.java
index 35e7da7b0da78..914a45a064f69 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/EstimatedCalls.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/EstimatedCalls.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/JourneyPattern.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/JourneyPattern.java
index 69554b6804c0f..cb1bf8caa0a6b 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/JourneyPattern.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/JourneyPattern.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Line.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Line.java
index 6bfbf411be1bd..641d094e38dd6 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Line.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Line.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Quay.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Quay.java
index 46ab17d14cf26..e09dee729995e 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Quay.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/Quay.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/ServiceJourney.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/ServiceJourney.java
index 11486e7146d9e..0771c83d29b00 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/ServiceJourney.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/estimated/ServiceJourney.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/simplified/DisplayData.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/simplified/DisplayData.java
index 112703e301007..30fd053a157b7 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/simplified/DisplayData.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/simplified/DisplayData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/stopplace/StopPlace.java b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/stopplace/StopPlace.java
index 8910082edcb93..bb08144aaf4cd 100644
--- a/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/stopplace/StopPlace.java
+++ b/bundles/org.openhab.binding.enturno/src/main/java/org/openhab/binding/enturno/internal/model/stopplace/StopPlace.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.enturno/src/main/resources/ESH-INF/i18n/enturtimetable.properties b/bundles/org.openhab.binding.enturno/src/main/resources/ESH-INF/i18n/enturtimetable.properties
old mode 100755
new mode 100644
diff --git a/bundles/org.openhab.binding.evohome/NOTICE b/bundles/org.openhab.binding.evohome/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.evohome/NOTICE
+++ b/bundles/org.openhab.binding.evohome/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.evohome/pom.xml b/bundles/org.openhab.binding.evohome/pom.xml
index b228d308babe6..71a6616bc9c7b 100644
--- a/bundles/org.openhab.binding.evohome/pom.xml
+++ b/bundles/org.openhab.binding.evohome/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.evohome
diff --git a/bundles/org.openhab.binding.evohome/src/main/feature/feature.xml b/bundles/org.openhab.binding.evohome/src/main/feature/feature.xml
index f2d24af8415ba..2f4ac3e249090 100644
--- a/bundles/org.openhab.binding.evohome/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.evohome/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeBindingConstants.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeBindingConstants.java
index 5fcd22f965748..276dc3ca2e167 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeBindingConstants.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeHandlerFactory.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeHandlerFactory.java
index 5f28ef9b1468e..edef30d8c7dfe 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeHandlerFactory.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/EvohomeHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -106,4 +106,4 @@ protected void unsetHttpClientFactory(HttpClientFactory httpClientFactory) {
this.httpClient = null;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/RunnableWithTimeout.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/RunnableWithTimeout.java
index d0a3676f20499..fb1309e1eae31 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/RunnableWithTimeout.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/RunnableWithTimeout.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/ApiAccess.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/ApiAccess.java
index 1ab9d73f3c136..c28a9063f82c4 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/ApiAccess.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/ApiAccess.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClient.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClient.java
index 6138ede8e9077..98ea2a22efd1b 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClient.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClientException.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClientException.java
index 024edd56659dc..a699dc3a5d038 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClientException.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiClientException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiConstants.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiConstants.java
index 0eeff41d99d84..f43dcffaeffd3 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiConstants.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/EvohomeApiConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPoint.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPoint.java
index e21f1ff389e00..f43f3ea56a802 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPoint.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPointBuilder.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPointBuilder.java
index 0d1d387f3799e..09da0c6c5d952 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPointBuilder.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/HeatSetPointBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/Mode.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/Mode.java
index b9febfdbdb6fb..f03fc85565fe5 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/Mode.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/Mode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/ModeBuilder.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/ModeBuilder.java
index 137eeac630163..af99fa388de45 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/ModeBuilder.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/ModeBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/RequestBuilder.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/RequestBuilder.java
index 3f9ef711c04ec..077be44198997 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/RequestBuilder.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/RequestBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/TimedRequestBuilder.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/TimedRequestBuilder.java
index 212d9a49c87b9..7e1ef8dac3435 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/TimedRequestBuilder.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/request/TimedRequestBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ActiveFault.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ActiveFault.java
index 18b25dc27e765..861091078836a 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ActiveFault.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ActiveFault.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Authentication.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Authentication.java
index dd0366f9593d8..868649038fa86 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Authentication.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Authentication.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Gateway.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Gateway.java
index f283c337835c8..bdc9a5a05d9a7 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Gateway.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Gateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayInfo.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayInfo.java
index f2b01ee9720e2..e35fc048f9301 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayInfo.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayStatus.java
index 6a23f7c0bd56f..955f6fae5079d 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/GatewayStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointCapabilities.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointCapabilities.java
index d58eb0e0132a7..9bf7e024b1a1f 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointCapabilities.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointCapabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointStatus.java
index a05887c54b16c..f5877f1a5aef7 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/HeatSetpointStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Location.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Location.java
index f7832b6b6072b..5239e7e27defc 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Location.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Location.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationInfo.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationInfo.java
index 48cd31a607e57..396a28f05d940 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationInfo.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationOwner.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationOwner.java
index b01916648333c..52d41d64836c9 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationOwner.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationOwner.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationStatus.java
index 274948ab730e1..c17340831e509 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Locations.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Locations.java
index be69ac1ef8393..8dd9cea344bbe 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Locations.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Locations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationsStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationsStatus.java
index 10de0fd37be7d..0d81c7e2f87fa 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationsStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/LocationsStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Mode.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Mode.java
index 683833c42b653..a00cedbea49ca 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Mode.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Mode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ScheduleCapabilities.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ScheduleCapabilities.java
index 6b6ace59ee803..b6b9af7989042 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ScheduleCapabilities.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ScheduleCapabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/SystemModeStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/SystemModeStatus.java
index 5309c8268d1b3..8a27d62df482b 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/SystemModeStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/SystemModeStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystem.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystem.java
index 0e3f1789711f6..89f6ba049baa4 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystem.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystemStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystemStatus.java
index 560376692f434..6baffbc00072f 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystemStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureControlSystemStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureStatus.java
index e7c2dae59d9bb..5ecc7d23f995a 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TemperatureStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TimeZone.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TimeZone.java
index c97767ad75240..376e4f91c98ad 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TimeZone.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/TimeZone.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/UserAccount.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/UserAccount.java
index 503c1a0178732..b4f3828e725af 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/UserAccount.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/UserAccount.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Zone.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Zone.java
index 8e3d0afefc9f7..2f08f3dd7923a 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Zone.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/Zone.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ZoneStatus.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ZoneStatus.java
index e251c9535a62c..f37708d072e38 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ZoneStatus.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/api/models/v2/response/ZoneStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeAccountConfiguration.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeAccountConfiguration.java
index 17dc4d039f4eb..48faccec6928a 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeAccountConfiguration.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeAccountConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeTemperatureControlSystemConfiguration.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeTemperatureControlSystemConfiguration.java
index eac20ec5569fa..3c066c9e8194c 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeTemperatureControlSystemConfiguration.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeTemperatureControlSystemConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeThingConfiguration.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeThingConfiguration.java
index 997a85cc69e29..4ea063998fec4 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeThingConfiguration.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/configuration/EvohomeThingConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/discovery/EvohomeDiscoveryService.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/discovery/EvohomeDiscoveryService.java
index 86708c1709bdc..0325f53a2efb6 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/discovery/EvohomeDiscoveryService.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/discovery/EvohomeDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/AccountStatusListener.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/AccountStatusListener.java
index 3e0413ecd452e..7d27203e76f13 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/AccountStatusListener.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/AccountStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java
index 9b792d11e9fc5..6f70227dc7938 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/BaseEvohomeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java
index 4983ce3ed0442..888bb23edc87e 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeAccountBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeHeatingZoneHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeHeatingZoneHandler.java
index cc300980db998..81e964e9d4f49 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeHeatingZoneHandler.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeHeatingZoneHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeTemperatureControlSystemHandler.java b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeTemperatureControlSystemHandler.java
index 1ad1197e943f9..6cc6a393feea6 100644
--- a/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeTemperatureControlSystemHandler.java
+++ b/bundles/org.openhab.binding.evohome/src/main/java/org/openhab/binding/evohome/internal/handler/EvohomeTemperatureControlSystemHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.evohome/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.evohome/src/main/resources/ESH-INF/thing/thing-types.xml
index 8e7393f63b509..50cd2ce9c156b 100644
--- a/bundles/org.openhab.binding.evohome/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.evohome/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -25,7 +25,7 @@
- This represents the Evohome Heating Zone.
+ This represents the evohome Heating Zone.
diff --git a/bundles/org.openhab.binding.exec/NOTICE b/bundles/org.openhab.binding.exec/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.exec/NOTICE
+++ b/bundles/org.openhab.binding.exec/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.exec/README.md b/bundles/org.openhab.binding.exec/README.md
index f9091973d2769..a02d60a7c0ce7 100644
--- a/bundles/org.openhab.binding.exec/README.md
+++ b/bundles/org.openhab.binding.exec/README.md
@@ -40,7 +40,7 @@ Thing exec:command:uniquename [command="/command/to/execute here", interval=15,
```
-The `command` itself can be enhanced using the well known syntax of the [Java formatter class syntax](http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax).
+The `command` itself can be enhanced using the well known syntax of the [Java formatter class syntax](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax).
The following parameters are automatically added:
- the current date (as java.util.Date, example: `%1$tY-%1$tm-%1$td`)
diff --git a/bundles/org.openhab.binding.exec/pom.xml b/bundles/org.openhab.binding.exec/pom.xml
index 1c016bcd102c9..a2657587b8446 100644
--- a/bundles/org.openhab.binding.exec/pom.xml
+++ b/bundles/org.openhab.binding.exec/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.exec
diff --git a/bundles/org.openhab.binding.exec/src/main/feature/feature.xml b/bundles/org.openhab.binding.exec/src/main/feature/feature.xml
index c0dc799b372ee..3c8ea91807234 100644
--- a/bundles/org.openhab.binding.exec/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.exec/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecBindingConstants.java b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecBindingConstants.java
index a7b1893f902fe..f58b177c8736f 100644
--- a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecBindingConstants.java
+++ b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecHandlerFactory.java b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecHandlerFactory.java
index cc906cb9ffe90..a98a0c1112d67 100644
--- a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecHandlerFactory.java
+++ b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/ExecHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java
index dc60555be27e5..22c4cf48f8580 100644
--- a/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java
+++ b/bundles/org.openhab.binding.exec/src/main/java/org/openhab/binding/exec/internal/handler/ExecHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -42,6 +42,8 @@
import org.eclipse.smarthome.core.transform.TransformationService;
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,6 +58,8 @@ public class ExecHandler extends BaseThingHandler {
private Logger logger = LoggerFactory.getLogger(ExecHandler.class);
+ private final BundleContext bundleContext;
+
// List of Configurations constants
public static final String INTERVAL = "interval";
public static final String TIME_OUT = "timeout";
@@ -73,6 +77,7 @@ public class ExecHandler extends BaseThingHandler {
public ExecHandler(Thing thing) {
super(thing);
+ this.bundleContext = FrameworkUtil.getBundle(ExecHandler.class).getBundleContext();
}
@Override
diff --git a/bundles/org.openhab.binding.feed/NOTICE b/bundles/org.openhab.binding.feed/NOTICE
index 4c20ef446c1e4..b94757ece35b7 100644
--- a/bundles/org.openhab.binding.feed/NOTICE
+++ b/bundles/org.openhab.binding.feed/NOTICE
@@ -10,4 +10,18 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
+
+== Third-party Content
+
+JDOM Version: 2.0.6
+* License: JDOM License (modified Apache)
+* Project: http://www.jdom.org
+* Source: https://github.com/hunterhacker/jdom
+
+Rome Version 1.12.0
+* License: Apache 2.0 License
+* Project: https://rometools.github.io/rome/
+* Source: https://github.com/rometools/rome
+
+
diff --git a/bundles/org.openhab.binding.feed/README.md b/bundles/org.openhab.binding.feed/README.md
index fb528f2e76842..982d52d0eb09b 100644
--- a/bundles/org.openhab.binding.feed/README.md
+++ b/bundles/org.openhab.binding.feed/README.md
@@ -4,7 +4,7 @@ This binding allows you to integrate feeds in the openHAB environment.
The Feed binding downloads the content, tracks for changes, and displays information like feed author, feed title and description, number of entries, last update date.
It can be used in combination with openHAB rules to trigger events on feed change.
-It uses the [ROME library](http://rometools.github.io/rome/index.html) for parsing
+It uses the [ROME library](https://rometools.github.io/rome/index.html) for parsing
and supports a wide range of popular feed formats - RSS 2.00, RSS 1.00, RSS 0.94, RSS 0.93, RSS 0.92, RSS 0.91 UserLand,
RSS 0.91 Netscape, RSS 0.90, Atom 1.0, Atom 0.3.
diff --git a/bundles/org.openhab.binding.feed/pom.xml b/bundles/org.openhab.binding.feed/pom.xml
index db55ee8875654..32c73c9554e41 100644
--- a/bundles/org.openhab.binding.feed/pom.xml
+++ b/bundles/org.openhab.binding.feed/pom.xml
@@ -1,30 +1,27 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.feedopenHAB Add-ons :: Bundles :: Feed Binding
+
+ org.jaxen.*;resolution:=optional
+
+
com.rometoolsrome1.12.0
- provided
-
-
- org.apache.servicemix.bundles
- org.apache.servicemix.bundles.jdom
- 2.0.6_1
- provided
+ compileorg.slf4j
@@ -32,6 +29,18 @@
+
+ com.rometools
+ rome-utils
+ 1.12.0
+ compile
+
+
+ org.jdom
+ jdom2
+ 2.0.6
+ compile
+
diff --git a/bundles/org.openhab.binding.feed/src/main/feature/feature.xml b/bundles/org.openhab.binding.feed/src/main/feature/feature.xml
index 27b1d93745232..31fbe3547cfc0 100644
--- a/bundles/org.openhab.binding.feed/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.feed/src/main/feature/feature.xml
@@ -1,11 +1,9 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:com.rometools/rome/1.12.0
- mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/2.0.6_1mvn:org.openhab.addons.bundles/org.openhab.binding.feed/${project.version}
diff --git a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedBindingConstants.java b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedBindingConstants.java
index b08d18eb0a694..45e0d1356eee8 100644
--- a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedBindingConstants.java
+++ b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedHandlerFactory.java b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedHandlerFactory.java
index 715b60bbb7cca..be22004e89c93 100644
--- a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedHandlerFactory.java
+++ b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/FeedHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/handler/FeedHandler.java b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/handler/FeedHandler.java
index 65217d662f896..3e6c559d189b8 100644
--- a/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/handler/FeedHandler.java
+++ b/bundles/org.openhab.binding.feed/src/main/java/org/openhab/binding/feed/internal/handler/FeedHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feed/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.feed/src/main/resources/ESH-INF/thing/thing-types.xml
index e10f7007934f8..6abaf258c0a84 100644
--- a/bundles/org.openhab.binding.feed/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.feed/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -34,7 +34,7 @@
up to date, updates the feed content stored in the channel -->
-
+
Refresh time interval in minutes.20
@@ -44,21 +44,21 @@
String
-
+
Contains the title of the last feed entry.String
-
+
Contains the description of last feed entry.DateTime
-
+
Contains the published date of the last feed entry.
@@ -86,14 +86,14 @@
DateTime
-
+
The last update date of the feedNumber
-
+
Number of entries in the feed
diff --git a/bundles/org.openhab.binding.feican/NOTICE b/bundles/org.openhab.binding.feican/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.feican/NOTICE
+++ b/bundles/org.openhab.binding.feican/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.feican/README.md b/bundles/org.openhab.binding.feican/README.md
index fba74bdea1d38..a46ae237c1893 100644
--- a/bundles/org.openhab.binding.feican/README.md
+++ b/bundles/org.openhab.binding.feican/README.md
@@ -1,32 +1,33 @@
# Feican Binding
-This binding adds support for the Feican Wi-Fi version of the smart light led Bulb, the WiFi RGBW Bulb.
+This binding adds support for the Feican Wi-Fi version of the smart light LED Bulb, the WiFi RGBW Bulb.
With this binding the light bulb can be switched on or off, set the color or set color based on color temperature.
Set the brightness. And it contains a set of preset programs, where for some the program speed can be set.
## Supported Things
-This binding supports the Feican smart smart light led Bulb, WiFi RGBW Bulb. This bulb supports color, color temperature,
-brightness. It also has a number of preset programs, with static color, jumping color(s), gradient color(s) and flashing
-color(s). With the program_speed the speed of some of the programs can be set.
+This binding supports the Feican smart smart light LED Bulb, WiFi RGBW Bulb.
+This bulb supports color, color temperature, brightness.
+It also has a number of preset programs, with static color, jumping color(s), gradient color(s) and flashing color(s).
+With the program_speed the speed of some of the programs can be set.
-It might be the Feican ledstrips also work as it seems they can be controlled with the same app. But this has not been tested.
+Although it has not been tested, the Feican LED strips may also be supported as it seems they can be controlled using the same app.
### Limitations
-It's not possible to get the state of the bulb from the bulb itself. Therefore the state visible to the user only reflects
-what was set in openHAB and may not correspond with the actual state.
+It is not possible to get the state of the bulb from the bulb itself.
+Therefore the state visible to the user only reflects what was set in openHAB and may not correspond with the actual state.
## Prerequisites
-Before using the Feican bulb with openHab the devices must be connected to the Wi-Fi network. This can be done using the
-Feican Android or iPhone DreamColor app.
+Before using the Feican bulb with openHAB the devices must be connected to the Wi-Fi network.
+This can be done using the Feican Android or iPhone DreamColor app.
## Discovery
-Devices can be auto discovered within the local network. It's possible to connect to devices in a different network,
-but these must be added manually.
+Devices can be auto discovered within the local network.
+It is possible to connect to devices in a different network, but these must be added manually.
## Thing Configuration
diff --git a/bundles/org.openhab.binding.feican/pom.xml b/bundles/org.openhab.binding.feican/pom.xml
index 68404e9145c43..21f1969c52e48 100644
--- a/bundles/org.openhab.binding.feican/pom.xml
+++ b/bundles/org.openhab.binding.feican/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.feican
diff --git a/bundles/org.openhab.binding.feican/src/main/feature/feature.xml b/bundles/org.openhab.binding.feican/src/main/feature/feature.xml
index ffed8616ea20a..6b3a8d4d7c71e 100644
--- a/bundles/org.openhab.binding.feican/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.feican/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Commands.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Commands.java
index 9b98ece1cf184..49264e9c46f31 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Commands.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Commands.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Connection.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Connection.java
index af37bfae8c917..c792aeea6a5c9 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Connection.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/Connection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanBindingConstants.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanBindingConstants.java
index c8f6bd9ea1120..5f76bd99a356b 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanBindingConstants.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanConfiguration.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanConfiguration.java
index 201c5711826e3..49c5ea0580d38 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanConfiguration.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanDiscoveryService.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanDiscoveryService.java
index c225478b219c5..2c6abb1b2e3ed 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanDiscoveryService.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanHandlerFactory.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanHandlerFactory.java
index b11464c86f781..1a2e01cfcf83b 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanHandlerFactory.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/FeicanHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/handler/FeicanHandler.java b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/handler/FeicanHandler.java
index 7114182dc61b8..624f2537ad3da 100644
--- a/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/handler/FeicanHandler.java
+++ b/bundles/org.openhab.binding.feican/src/main/java/org/openhab/binding/feican/internal/handler/FeicanHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.feican/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.feican/src/main/resources/ESH-INF/thing/channels.xml
index 6899415dad8b1..460550821e5d5 100644
--- a/bundles/org.openhab.binding.feican/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.feican/src/main/resources/ESH-INF/thing/channels.xml
@@ -63,7 +63,7 @@
Dimmer
-
+
Speed of flash and gradient programs from 0 (slow) to 100 (fast).
diff --git a/bundles/org.openhab.binding.folding/NOTICE b/bundles/org.openhab.binding.folding/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.folding/NOTICE
+++ b/bundles/org.openhab.binding.folding/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.folding/pom.xml b/bundles/org.openhab.binding.folding/pom.xml
index a068dd3c6f903..d050c41354637 100644
--- a/bundles/org.openhab.binding.folding/pom.xml
+++ b/bundles/org.openhab.binding.folding/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.folding
diff --git a/bundles/org.openhab.binding.folding/src/main/feature/feature.xml b/bundles/org.openhab.binding.folding/src/main/feature/feature.xml
index 9c5c052d2d4e4..54b659f02ebfb 100644
--- a/bundles/org.openhab.binding.folding/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.folding/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingBindingConstants.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingBindingConstants.java
index 5162b5a94ae54..e68e30d7df871 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingBindingConstants.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingHandlerFactory.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingHandlerFactory.java
index fc953bc545e24..d375084fef1fe 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingHandlerFactory.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/FoldingHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingDiscoveryProxy.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingDiscoveryProxy.java
index 2b905dbc63142..1a8b75469110b 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingDiscoveryProxy.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingDiscoveryProxy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingSlotDiscoveryService.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingSlotDiscoveryService.java
index 840db2f5270ce..2e664b6712be5 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingSlotDiscoveryService.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/discovery/FoldingSlotDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/FoldingClientHandler.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/FoldingClientHandler.java
index bee90084670d1..e205207895721 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/FoldingClientHandler.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/FoldingClientHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotHandler.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotHandler.java
index 9b240b3490f44..1505c3726113c 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotHandler.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotInfo.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotInfo.java
index 4a146d76cba83..658545aec2d99 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotInfo.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotUpdateListener.java b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotUpdateListener.java
index 20b776879d0ca..4e41b2bf51464 100644
--- a/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotUpdateListener.java
+++ b/bundles/org.openhab.binding.folding/src/main/java/org/openhab/binding/folding/internal/handler/SlotUpdateListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.folding/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.folding/src/main/resources/ESH-INF/thing/thing-types.xml
index fe8156f8deef4..35b2c35406f9e 100644
--- a/bundles/org.openhab.binding.folding/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.folding/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -29,8 +29,8 @@
Authentication password (leave empty for no p/w).password
-
-
+
+
Polling interval in seconds (0=polling disabled).120
diff --git a/bundles/org.openhab.binding.foobot/.classpath b/bundles/org.openhab.binding.foobot/.classpath
new file mode 100644
index 0000000000000..1a0c5608f3440
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/.classpath
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.toon/.project b/bundles/org.openhab.binding.foobot/.project
similarity index 92%
rename from bundles/org.openhab.binding.toon/.project
rename to bundles/org.openhab.binding.foobot/.project
index 873dfb273cc6a..d3cea9741acc9 100644
--- a/bundles/org.openhab.binding.toon/.project
+++ b/bundles/org.openhab.binding.foobot/.project
@@ -1,6 +1,6 @@
- org.openhab.binding.toon
+ org.openhab.binding.foobot
diff --git a/bundles/org.openhab.binding.foobot/NOTICE b/bundles/org.openhab.binding.foobot/NOTICE
new file mode 100644
index 0000000000000..38d625e349232
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/NOTICE
@@ -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
diff --git a/bundles/org.openhab.binding.foobot/README.md b/bundles/org.openhab.binding.foobot/README.md
new file mode 100644
index 0000000000000..853a981e71ee0
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/README.md
@@ -0,0 +1,71 @@
+# Foobot Binding
+
+This binding fetches the Indoor Air Quality data of each of your Foobot devices from the Foobot cloud service.
+
+To use this binding, you first need to [register and get your API key](https://api.foobot.io/apidoc/index.html).
+The api is rate limited to 200 calls per day. If you need a higher rate limit please contact Foobot.
+
+## Supported Things
+
+The binding supports the following things:
+
+| Thing type | Name
+|-------------|------------------------------------------
+| account | The bridge with connection configuration
+| device | The sensor thing
+
+## Discovery
+
+The binding requires you to have a Foobot account and an API key.
+The discovery process is able to automatically discover all devices associated with your Foobot account.
+
+## Bridge Configuration
+
+Bridge has the following configuration parameters:
+
+| Parameter | Description | Required
+|------------------|-------------------------------------------------------|----------
+| apikey | API Key from https://api.foobot.io/apidoc/index.html | Mandatory
+| username | The e-mail address used to log into the Foobot App | Mandatory
+| refreshInterval | Refresh interval in minutes, minimal 5 minutes | Optional, the default value is 8 minutes.
+
+The minimal refresh rate is 5 minutes because the device only sends data every 5 minutes.
+The default is 8 minutes. This will get you through the day with the default rate limit of 200 calls per day.
+
+## Channels
+
+The bridge has one channel:
+
+| Channel ID | Item Type | Description
+|----------------------|-----------|-----------------------------------------------
+| apiKeyLimitRemaining | Number | The remaining number of API requests for today
+
+
+The AirQuality sensors information that is retrieved is available as these channels:
+
+| Channel ID | Item Type | Description
+|-------------------|----------------------|---------------------------------------------
+| time | DateTime | Last time the sensor data was send to Foobot
+| pm | Number:Density | Particulate Matter level (ug/m3)
+| temperature | Number:Temperature | Temperature in Celsius or Fahrenheit
+| humidity | Number:Dimensionless | Humidity level (%)
+| co2 | Number:Dimensionless | Carbon diOxide level (ppm)
+| voc | Number:Dimensionless | Volatile Organic Compounds level (ppb)
+| gpi | Number:Dimensionless | Global Pollution index (%)
+
+## Full Example
+
+demo.things:
+
+```
+// Bridge configuration:
+Bridge foobot:account:myfoobotaccount "Foobot Account" [apiKey="XXXXXX", username="XXXXXX", refreshInterval=8] {
+ Things:
+ device myfoobot "Foobot sensor" [uuid="XXXXXXXXXXXXXXXX"]
+```
+
+demo.items:
+
+```
+Number:Temperature Temperature "Temperature" { channel="foobot:myfoobotaccount:device:myfoobot:temperature" }
+```
diff --git a/bundles/org.openhab.binding.foobot/pom.xml b/bundles/org.openhab.binding.foobot/pom.xml
new file mode 100644
index 0000000000000..49d2d525a1ea7
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+
+ org.openhab.addons.bundles
+ org.openhab.addons.reactor.bundles
+ 2.5.2-SNAPSHOT
+
+
+ org.openhab.binding.foobot
+
+ openHAB Add-ons :: Bundles :: Foobot Binding
+
+
diff --git a/bundles/org.openhab.binding.foobot/src/main/feature/feature.xml b/bundles/org.openhab.binding.foobot/src/main/feature/feature.xml
new file mode 100644
index 0000000000000..c28c56fe50eef
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/feature/feature.xml
@@ -0,0 +1,9 @@
+
+
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
+
+
+ openhab-runtime-base
+ mvn:org.openhab.addons.bundles/org.openhab.binding.foobot/${project.version}
+
+
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java
new file mode 100644
index 0000000000000..4f089fdf4862f
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiConnector.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal;
+
+import static org.openhab.binding.foobot.internal.FoobotBindingConstants.*;
+
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Type;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.http.HttpField;
+import org.eclipse.jetty.http.HttpHeader;
+import org.eclipse.jetty.http.HttpStatus;
+import org.openhab.binding.foobot.internal.json.FoobotDevice;
+import org.openhab.binding.foobot.internal.json.FoobotJsonData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonParseException;
+import com.google.gson.reflect.TypeToken;
+
+/**
+ * Connector class communicating with Foobot api and parsing returned json.
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+@NonNullByDefault
+public class FoobotApiConnector {
+
+ public static final String API_RATE_LIMIT_EXCEEDED_MESSAGE = "Api rate limit exceeded";
+ public static final int API_RATE_LIMIT_EXCEEDED = -2;
+
+ private static final int UNKNOWN_REMAINING = -1;
+ private static final String HEADER_X_API_KEY_TOKEN = "X-API-KEY-TOKEN";
+ private static final String HEADER_X_API_KEY_LIMIT_REMAINING = "x-api-key-limit-remaining";
+ private static final int REQUEST_TIMEOUT_SECONDS = 3;
+ private static final Gson GSON = new Gson();
+ private static final Type FOOTBOT_DEVICE_LIST_TYPE = new TypeToken>() {
+ }.getType();
+
+ private final Logger logger = LoggerFactory.getLogger(FoobotApiConnector.class);
+
+ private @Nullable HttpClient httpClient;
+ private String apiKey = "";
+ private int apiKeyLimitRemaining = UNKNOWN_REMAINING;
+
+ public void setHttpClient(@Nullable HttpClient httpClient) {
+ this.httpClient = httpClient;
+ }
+
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
+
+ /**
+ * @return Returns the last known api remaining limit or -1 if not known.
+ */
+ public int getApiKeyLimitRemaining() {
+ return apiKeyLimitRemaining;
+ }
+
+ /**
+ * Retrieves the list of associated devices with the given username from the foobot api.
+ *
+ * @param username to get the associated devices for
+ * @return List of devices
+ * @throws FoobotApiException in case there was a problem communicating or parsing the response
+ */
+ public synchronized List getAssociatedDevices(String username) throws FoobotApiException {
+ try {
+ final String url = URL_TO_FETCH_DEVICES.replace("%username%",
+ URLEncoder.encode(username, StandardCharsets.UTF_8.toString()));
+ logger.debug("URL = {}", url);
+
+ return GSON.fromJson(request(url, apiKey), FOOTBOT_DEVICE_LIST_TYPE);
+ } catch (JsonParseException | UnsupportedEncodingException e) {
+ throw new FoobotApiException(0, e.getMessage());
+ }
+ }
+
+ /**
+ * Retrieves the sensor data for the device with the given uuid from the foobot api.
+ *
+ * @param uuid of the device to get the sensor data for
+ * @return sensor data of the device
+ * @throws FoobotApiException in case there was a problem communicating or parsing the response
+ */
+ public synchronized @Nullable FoobotJsonData getSensorData(String uuid) throws FoobotApiException {
+ try {
+ final String url = URL_TO_FETCH_SENSOR_DATA.replace("%uuid%",
+ URLEncoder.encode(uuid, StandardCharsets.UTF_8.toString()));
+ logger.debug("URL = {}", url);
+
+ return GSON.fromJson(request(url, apiKey), FoobotJsonData.class);
+ } catch (JsonParseException | UnsupportedEncodingException e) {
+ throw new FoobotApiException(0, e.getMessage());
+ }
+ }
+
+ protected String request(String url, String apiKey) throws FoobotApiException {
+ apiKeyLimitRemaining = UNKNOWN_REMAINING;
+ if (httpClient == null) {
+ logger.debug("No http connection possible: httpClient == null");
+ throw new FoobotApiException(0, "No http connection possible");
+ }
+ final Request request = httpClient.newRequest(url).timeout(REQUEST_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+
+ request.header(HttpHeader.ACCEPT, "application/json");
+ request.header(HttpHeader.ACCEPT_ENCODING, StandardCharsets.UTF_8.name());
+ request.header(HEADER_X_API_KEY_TOKEN, apiKey);
+ final ContentResponse response;
+
+ try {
+ response = request.send();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new FoobotApiException(0, e.getMessage());
+ } catch (TimeoutException | ExecutionException e) {
+ throw new FoobotApiException(0, e.getMessage());
+ }
+ final String content = response.getContentAsString();
+
+ logger.trace("Foobot content = {}", content);
+ logger.debug("Foobot response = {}", response);
+ setApiKeyLimitRemaining(response);
+ switch (response.getStatus()) {
+ case HttpStatus.FORBIDDEN_403:
+ throw new FoobotApiException(response.getStatus(),
+ "Access denied. Did you set the correct api-key and/or username?");
+ case HttpStatus.TOO_MANY_REQUESTS_429:
+ apiKeyLimitRemaining = API_RATE_LIMIT_EXCEEDED;
+ throw new FoobotApiException(response.getStatus(), API_RATE_LIMIT_EXCEEDED_MESSAGE);
+ case HttpStatus.OK_200:
+ if (StringUtils.trimToNull(content) == null) {
+ throw new FoobotApiException(0, "No data returned");
+ }
+ return content;
+ default:
+ logger.trace("Foobot returned status '{}', reason: {}, content = {}", response.getStatus(),
+ response.getReason(), content);
+ throw new FoobotApiException(response.getStatus(), response.getReason());
+ }
+ }
+
+ private void setApiKeyLimitRemaining(ContentResponse response) {
+ final HttpField field = response.getHeaders().getField(HEADER_X_API_KEY_LIMIT_REMAINING);
+
+ if (field != null) {
+ apiKeyLimitRemaining = field.getIntValue();
+ }
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiException.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiException.java
new file mode 100644
index 0000000000000..999d669ad04cc
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotApiException.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+/**
+ * Exception thrown when problems occur with obtaining data for the foobot api.
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+@NonNullByDefault
+public class FoobotApiException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public FoobotApiException(final int status, final String message) {
+ super(String.format("%s (code: %s)", message, status));
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotBindingConstants.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotBindingConstants.java
new file mode 100644
index 0000000000000..148d270f39d79
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotBindingConstants.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+
+/**
+ * The {@link FoobotBinding} class defines common constants, which are
+ * used across the whole binding.
+ *
+ * @author Divya Chauhan - Initial contribution
+ */
+@NonNullByDefault
+public class FoobotBindingConstants {
+
+ // List Foobot URLs
+ private static final String URL_FOOBOT_API_V2 = "https://api.foobot.io/v2/";
+ public static final String URL_TO_FETCH_DEVICES = URL_FOOBOT_API_V2 + "owner/%username%/device/";
+ public static final String URL_TO_FETCH_SENSOR_DATA = URL_FOOBOT_API_V2 + "device/%uuid%/datapoint/0/last/0/";
+
+ private static final String BINDING_ID = "foobot";
+
+ // List of all Thing Type UIDs
+ public static final ThingTypeUID BRIDGE_TYPE_FOOBOTACCOUNT = new ThingTypeUID(BINDING_ID, "account");
+ public static final ThingTypeUID THING_TYPE_FOOBOT = new ThingTypeUID(BINDING_ID, "device");
+
+ // Bridge channel
+ public static final String CHANNEL_APIKEY_LIMIT_REMAINING = "apiKeyLimitRemaining";
+
+ // List Foobot configuration attributes
+ public static final String CONFIG_APIKEY = "apiKey";
+ public static final String CONFIG_UUID = "uuid";
+ public static final String CONFIG_MAC = "mac";
+
+ public static final String PROPERTY_NAME = "name";
+
+ public static final int MINIMUM_REFRESH_PERIOD_MINUTES = 5;
+ public static final int DEFAULT_REFRESH_PERIOD_MINUTES = 8;
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotHandlerFactory.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotHandlerFactory.java
new file mode 100644
index 0000000000000..50ecb760426dc
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/FoobotHandlerFactory.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal;
+
+import static org.openhab.binding.foobot.internal.FoobotBindingConstants.*;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.smarthome.core.thing.Bridge;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
+import org.eclipse.smarthome.io.net.http.HttpClientFactory;
+import org.openhab.binding.foobot.internal.handler.FoobotAccountHandler;
+import org.openhab.binding.foobot.internal.handler.FoobotDeviceHandler;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link FoobotHandlerFactory} is responsible for creating things and thing handlers.
+ *
+ * @author Divya Chauhan - Initial contribution
+ * @author George Katsis - Add Bridge thing type
+ * @author Hilbrand Bouwkamp - Completed implementation
+ */
+@Component(service = ThingHandlerFactory.class, configurationPid = "binding.foobot")
+@NonNullByDefault
+public class FoobotHandlerFactory extends BaseThingHandlerFactory {
+
+ public static final Set SUPPORTED_THING_TYPE_UIDS = Collections
+ .unmodifiableSet(Stream.of(BRIDGE_TYPE_FOOBOTACCOUNT, THING_TYPE_FOOBOT).collect(Collectors.toSet()));
+
+ public static final Set DISCOVERABLE_THING_TYPE_UIDS = Collections.singleton(THING_TYPE_FOOBOT);
+
+ private final FoobotApiConnector connector = new FoobotApiConnector();
+
+ private @NonNullByDefault({}) HttpClient httpClient;
+
+ @Override
+ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
+ return SUPPORTED_THING_TYPE_UIDS.contains(thingTypeUID);
+ }
+
+ @Override
+ protected @Nullable ThingHandler createHandler(Thing thing) {
+ final ThingTypeUID thingTypeUID = thing.getThingTypeUID();
+
+ if (thingTypeUID.equals(THING_TYPE_FOOBOT)) {
+ return new FoobotDeviceHandler(thing, connector);
+ } else if (thingTypeUID.equals(BRIDGE_TYPE_FOOBOTACCOUNT)) {
+ return new FoobotAccountHandler((Bridge) thing, connector);
+ }
+ return null;
+ }
+
+ @Reference
+ protected void setHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = httpClientFactory.getCommonHttpClient();
+ connector.setHttpClient(httpClient);
+ }
+
+ protected void unsetHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = null;
+ connector.setHttpClient(null);
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/config/FoobotAccountConfiguration.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/config/FoobotAccountConfiguration.java
new file mode 100644
index 0000000000000..e06b97f734343
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/config/FoobotAccountConfiguration.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.config;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+/**
+ * The {@link FoobotAccountConfiguration} class contains fields mapping bridge configuration parameters.
+ *
+ * @author George Katsis - Initial contribution
+ */
+@NonNullByDefault
+public class FoobotAccountConfiguration {
+
+ public String apiKey = "";
+ public String username = "";
+ public int refreshInterval;
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/discovery/FoobotAccountDiscoveryService.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/discovery/FoobotAccountDiscoveryService.java
new file mode 100644
index 0000000000000..a777363b17ac6
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/discovery/FoobotAccountDiscoveryService.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.discovery;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
+import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
+import org.eclipse.smarthome.config.discovery.DiscoveryService;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingUID;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
+import org.openhab.binding.foobot.internal.FoobotApiException;
+import org.openhab.binding.foobot.internal.FoobotBindingConstants;
+import org.openhab.binding.foobot.internal.FoobotHandlerFactory;
+import org.openhab.binding.foobot.internal.handler.FoobotAccountHandler;
+import org.openhab.binding.foobot.internal.handler.FoobotDeviceHandler;
+import org.openhab.binding.foobot.internal.json.FoobotDevice;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link FoobotAccountDiscoveryService} is responsible for starting the discovery procedure
+ * that retrieves Foobot account and imports all registered Foobot devices.
+ *
+ * @author George Katsis - Initial contribution
+ * @author Hilbrand Bouwkamp - Completed implementation
+ */
+@NonNullByDefault
+public class FoobotAccountDiscoveryService extends AbstractDiscoveryService
+ implements DiscoveryService, ThingHandlerService {
+
+ private static final int TIMEOUT_SECONDS = 5;
+
+ private final Logger logger = LoggerFactory.getLogger(FoobotAccountDiscoveryService.class);
+
+ private @Nullable FoobotAccountHandler handler;
+ private @NonNullByDefault({}) ThingUID bridgeUID;
+
+ public FoobotAccountDiscoveryService() {
+ super(FoobotHandlerFactory.DISCOVERABLE_THING_TYPE_UIDS, TIMEOUT_SECONDS, false);
+ }
+
+ @Override
+ protected void startScan() {
+ scheduler.execute(this::retrieveFoobots);
+ }
+
+ private void retrieveFoobots() {
+ if (handler == null) {
+ return;
+ }
+ try {
+ final List footbotHandlers = handler.getFootbotHandlers();
+
+ handler.getDeviceList().stream()
+ .filter(d -> !footbotHandlers.stream().anyMatch(h -> h.getUuid().equals(d.getUuid())))
+ .forEach(this::addThing);
+ } catch (final FoobotApiException e) {
+ logger.debug("Footbot Api connection failed: {}", e.getMessage(), e);
+ logger.warn("Discovering new footbot devices failed: {}", e.getMessage());
+ }
+ }
+
+ @Override
+ public void deactivate() {
+ super.deactivate();
+ }
+
+ private void addThing(final FoobotDevice foobot) {
+ logger.debug("Adding new Foobot '{}' with uuid: {}", foobot.getName(), foobot.getUuid());
+
+ final ThingUID thingUID = new ThingUID(FoobotBindingConstants.THING_TYPE_FOOBOT, foobot.getUuid());
+ final Map properties = new HashMap<>();
+ properties.put(Thing.PROPERTY_SERIAL_NUMBER, foobot.getUuid());
+ properties.put(FoobotBindingConstants.CONFIG_UUID, foobot.getUuid());
+ properties.put(Thing.PROPERTY_MAC_ADDRESS, foobot.getMac());
+ properties.put(FoobotBindingConstants.PROPERTY_NAME, foobot.getName());
+
+ thingDiscovered(DiscoveryResultBuilder.create(thingUID).withBridge(bridgeUID).withProperties(properties)
+ .withLabel(foobot.getName()).withRepresentationProperty(foobot.getUuid()).build());
+ }
+
+ @Override
+ public void setThingHandler(@Nullable final ThingHandler handler) {
+ if (handler instanceof FoobotAccountHandler) {
+ this.handler = (FoobotAccountHandler) handler;
+ }
+ }
+
+ @Override
+ public @Nullable ThingHandler getThingHandler() {
+ return handler;
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java
new file mode 100644
index 0000000000000..283469a195b90
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandler.java
@@ -0,0 +1,241 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.handler;
+
+import static org.openhab.binding.foobot.internal.FoobotBindingConstants.*;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.cache.ExpiringCache;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.thing.Bridge;
+import org.eclipse.smarthome.core.thing.ChannelUID;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingStatus;
+import org.eclipse.smarthome.core.thing.ThingStatusDetail;
+import org.eclipse.smarthome.core.thing.binding.BaseBridgeHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
+import org.eclipse.smarthome.core.types.Command;
+import org.eclipse.smarthome.core.types.RefreshType;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.openhab.binding.foobot.internal.FoobotApiConnector;
+import org.openhab.binding.foobot.internal.FoobotApiException;
+import org.openhab.binding.foobot.internal.FoobotBindingConstants;
+import org.openhab.binding.foobot.internal.config.FoobotAccountConfiguration;
+import org.openhab.binding.foobot.internal.discovery.FoobotAccountDiscoveryService;
+import org.openhab.binding.foobot.internal.json.FoobotDevice;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Bridge handler to manage Foobot Account
+ *
+ * @author George Katsis - Initial contribution
+ * @author Hilbrand Bouwkamp - Completed implementation
+ */
+@NonNullByDefault
+public class FoobotAccountHandler extends BaseBridgeHandler {
+
+ /*
+ * Set the exact interval a little lower to compensate for the time it takes to get the new data.
+ */
+ private static final long DEVICES_INTERVAL_MINUTES = Duration.ofDays(1).minus(Duration.ofMinutes(1)).toMinutes();
+ private static final Duration SENSOR_INTERVAL_OFFSET_SECONDS = Duration.ofSeconds(15);
+
+ private final Logger logger = LoggerFactory.getLogger(FoobotAccountHandler.class);
+
+ private final FoobotApiConnector connector;
+
+ private String username = "";
+ private int refreshInterval;
+ private @Nullable ScheduledFuture> refreshDeviceListJob;
+ private @Nullable ScheduledFuture> refreshSensorsJob;
+ private @NonNullByDefault({}) ExpiringCache> dataCache;
+
+ public FoobotAccountHandler(Bridge bridge, FoobotApiConnector connector) {
+ super(bridge);
+ this.connector = connector;
+ }
+
+ @Override
+ public Collection> getServices() {
+ return Collections.singleton(FoobotAccountDiscoveryService.class);
+ }
+
+ public List getDeviceList() throws FoobotApiException {
+ return connector.getAssociatedDevices(username);
+ }
+
+ public int getRefreshInterval() {
+ return refreshInterval;
+ }
+
+ @Override
+ public void initialize() {
+ final FoobotAccountConfiguration accountConfig = getConfigAs(FoobotAccountConfiguration.class);
+ final List missingParams = new ArrayList<>();
+
+ if (StringUtils.trimToNull(accountConfig.apiKey) == null) {
+ missingParams.add("'apikey'");
+ }
+ if (StringUtils.trimToNull(accountConfig.username) == null) {
+ missingParams.add("'username'");
+ }
+
+ if (!missingParams.isEmpty()) {
+ final boolean oneParam = missingParams.size() == 1;
+ final String errorMsg = String.format(
+ "Parameter%s [%s] %s mandatory and must be configured and not be empty", oneParam ? "" : "s",
+ StringUtils.join(missingParams, ", "), oneParam ? "is" : "are");
+
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, errorMsg);
+ return;
+ }
+ username = accountConfig.username;
+ connector.setApiKey(accountConfig.apiKey);
+ refreshInterval = accountConfig.refreshInterval;
+ if (this.refreshInterval < MINIMUM_REFRESH_PERIOD_MINUTES) {
+ logger.warn(
+ "Refresh interval time [{}] is not valid. Refresh interval time must be at least {} minutes. Setting to {} minutes",
+ accountConfig.refreshInterval, MINIMUM_REFRESH_PERIOD_MINUTES, DEFAULT_REFRESH_PERIOD_MINUTES);
+ refreshInterval = DEFAULT_REFRESH_PERIOD_MINUTES;
+ }
+ logger.debug("Foobot Account bridge starting... user: {}, refreshInterval: {}", accountConfig.username,
+ refreshInterval);
+
+ updateStatus(ThingStatus.UNKNOWN, ThingStatusDetail.NONE, "Wait to get associated devices");
+
+ dataCache = new ExpiringCache<>(Duration.ofMinutes(refreshInterval), this::retrieveDeviceList);
+ this.refreshDeviceListJob = scheduler.scheduleWithFixedDelay(this::refreshDeviceList, 0,
+ DEVICES_INTERVAL_MINUTES, TimeUnit.MINUTES);
+ this.refreshSensorsJob = scheduler.scheduleWithFixedDelay(this::refreshSensors, 0,
+ Duration.ofMinutes(refreshInterval).minus(SENSOR_INTERVAL_OFFSET_SECONDS).getSeconds(),
+ TimeUnit.SECONDS);
+
+ logger.debug("Foobot account bridge handler started.");
+ }
+
+ @Override
+ public void handleCommand(ChannelUID channelUID, Command command) {
+ logger.trace("Command '{}' received for channel '{}'", command, channelUID);
+ if (command instanceof RefreshType) {
+ refreshDeviceList();
+ }
+ }
+
+ @Override
+ public void dispose() {
+ logger.debug("Dispose {}", getThing().getUID());
+
+ final ScheduledFuture> refreshDeviceListJob = this.refreshDeviceListJob;
+ if (refreshDeviceListJob != null) {
+ refreshDeviceListJob.cancel(true);
+ this.refreshDeviceListJob = null;
+ }
+ final ScheduledFuture> refreshSensorsJob = this.refreshSensorsJob;
+ if (refreshSensorsJob != null) {
+ refreshSensorsJob.cancel(true);
+ this.refreshSensorsJob = null;
+ }
+ }
+
+ /**
+ * Retrieves the list of devices and updates the properties of the devices. This method is called by the cache to
+ * update the cache data.
+ *
+ * @return List of retrieved devices
+ */
+ private List retrieveDeviceList() {
+ logger.debug("Refreshing sensors for {}", getThing().getUID());
+ final List footbotHandlers = getFootbotHandlers();
+
+ try {
+ getDeviceList().stream().forEach(d -> {
+ footbotHandlers.stream().filter(h -> h.getUuid().equals(d.getUuid())).findAny()
+ .ifPresent(fh -> fh.handleUpdateProperties(d));
+ });
+ } catch (FoobotApiException e) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ }
+ return footbotHandlers;
+ }
+
+ /**
+ * Refreshes the devices list
+ */
+ private void refreshDeviceList() {
+ // This getValue() return value not used here. But if the cache is expired it refreshes the cache.
+ dataCache.getValue();
+ updateRemainingLimitStatus();
+ }
+
+ @Override
+ public void childHandlerInitialized(ThingHandler childHandler, Thing childThing) {
+ if (childHandler instanceof FoobotDeviceHandler) {
+ final String uuid = ((FoobotDeviceHandler) childHandler).getUuid();
+
+ try {
+ getDeviceList().stream().filter(d -> d.getUuid().equals(uuid)).findAny()
+ .ifPresent(fd -> ((FoobotDeviceHandler) childHandler).handleUpdateProperties(fd));
+ } catch (FoobotApiException e) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * @return Returns the list of associated footbot devices with this bridge.
+ */
+ public List getFootbotHandlers() {
+ return getThing().getThings().stream().map(Thing::getHandler).filter(FoobotDeviceHandler.class::isInstance)
+ .map(FoobotDeviceHandler.class::cast).collect(Collectors.toList());
+ }
+
+ private void refreshSensors() {
+ logger.debug("Refreshing sensors for {}", getThing().getUID());
+ logger.debug("handlers: {}", getFootbotHandlers().size());
+ try {
+ for (FoobotDeviceHandler handler : getFootbotHandlers()) {
+ logger.debug("handler: {}", handler.getUuid());
+ handler.refreshSensors();
+ }
+ if (connector.getApiKeyLimitRemaining() == FoobotApiConnector.API_RATE_LIMIT_EXCEEDED) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE,
+ FoobotApiConnector.API_RATE_LIMIT_EXCEEDED_MESSAGE);
+ } else if (getThing().getStatus() != ThingStatus.ONLINE) {
+ updateStatus(ThingStatus.ONLINE);
+ }
+ } catch (RuntimeException e) {
+ logger.debug("Error updating sensor data ", e);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, e.getMessage());
+ }
+ }
+
+ public void updateRemainingLimitStatus() {
+ final int remaining = connector.getApiKeyLimitRemaining();
+
+ updateState(FoobotBindingConstants.CHANNEL_APIKEY_LIMIT_REMAINING,
+ remaining < 0 ? UnDefType.UNDEF : new DecimalType(remaining));
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java
new file mode 100644
index 0000000000000..a5966ed563f6c
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandler.java
@@ -0,0 +1,222 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.handler;
+
+import java.math.BigDecimal;
+import java.time.Duration;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Map;
+
+import javax.measure.Unit;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.cache.ExpiringCache;
+import org.eclipse.smarthome.core.library.types.DateTimeType;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.library.types.QuantityType;
+import org.eclipse.smarthome.core.thing.Channel;
+import org.eclipse.smarthome.core.thing.ChannelUID;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingStatus;
+import org.eclipse.smarthome.core.thing.ThingStatusDetail;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandler;
+import org.eclipse.smarthome.core.types.Command;
+import org.eclipse.smarthome.core.types.RefreshType;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.openhab.binding.foobot.internal.FoobotApiConnector;
+import org.openhab.binding.foobot.internal.FoobotApiException;
+import org.openhab.binding.foobot.internal.FoobotBindingConstants;
+import org.openhab.binding.foobot.internal.json.FoobotDevice;
+import org.openhab.binding.foobot.internal.json.FoobotJsonData;
+import org.openhab.binding.foobot.internal.json.FoobotSensor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link FoobotDeviceHandler} is responsible for handling commands, which are sent to one of the channels.
+ *
+ * @author Divya Chauhan - Initial contribution
+ * @author George Katsis - Add Bridge thing type
+ *
+ */
+@NonNullByDefault
+public class FoobotDeviceHandler extends BaseThingHandler {
+
+ private final Logger logger = LoggerFactory.getLogger(FoobotDeviceHandler.class);
+ private final FoobotApiConnector connector;
+
+ private @NonNullByDefault({}) ExpiringCache dataCache;
+ private String uuid = "";
+
+ public FoobotDeviceHandler(final Thing thing, final FoobotApiConnector connector) {
+ super(thing);
+ this.connector = connector;
+ }
+
+ @Override
+ public void handleCommand(final ChannelUID channelUID, final Command command) {
+ if (command instanceof RefreshType) {
+ final FoobotJsonData sensorData = dataCache.getValue();
+
+ if (sensorData != null) {
+ updateState(channelUID, sensorDataToState(channelUID.getId(), sensorData));
+ }
+ } else {
+ logger.debug("The Foobot binding is read-only and can not handle command {}", command);
+ }
+ }
+
+ /**
+ * @return Returns the uuid associated with this device.
+ */
+ public String getUuid() {
+ return uuid;
+ }
+
+ @Override
+ public void initialize() {
+ logger.debug("Initializing Foobot handler.");
+ uuid = (String) getConfig().get(FoobotBindingConstants.CONFIG_UUID);
+
+ if (StringUtils.trimToNull(uuid) == null) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "Parameter 'uuid' is mandatory and must be configured");
+ return;
+ }
+ final FoobotAccountHandler bridgeHandler = getBridgeHandler();
+ final int refreshInterval = bridgeHandler == null ? FoobotBindingConstants.DEFAULT_REFRESH_PERIOD_MINUTES
+ : bridgeHandler.getRefreshInterval();
+
+ dataCache = new ExpiringCache(Duration.ofMinutes(refreshInterval), this::retrieveSensorData);
+ scheduler.execute(this::refreshSensors);
+ }
+
+ /**
+ * Updates the thing properties as retrieved by the bridge.
+ *
+ * @param foobot device parameters.
+ */
+ public void handleUpdateProperties(final FoobotDevice foobot) {
+ final Map properties = editProperties();
+
+ properties.put(Thing.PROPERTY_MAC_ADDRESS, foobot.getMac());
+ properties.put(FoobotBindingConstants.PROPERTY_NAME, foobot.getName());
+ updateProperties(properties);
+ }
+
+ /**
+ * Calls the footbot api to retrieve the sensor data. Sets thing offline in case of errors.
+ *
+ * @return returns the retrieved sensor data or null if no data or an error occurred.
+ */
+ private @Nullable FoobotJsonData retrieveSensorData() {
+ logger.debug("Refresh sensor data for: {}", uuid);
+ FoobotJsonData sensorData = null;
+
+ try {
+ sensorData = connector.getSensorData(uuid);
+ if (sensorData == null) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "No sensor data received");
+ return sensorData;
+ }
+ } catch (FoobotApiException e) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ return null;
+ } catch (RuntimeException e) {
+ logger.debug("Error requesting sensor data: ", e);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, e.getMessage());
+ return null;
+ }
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ updateStatus(ThingStatus.ONLINE);
+ }
+ final FoobotAccountHandler bridgeHandler = getBridgeHandler();
+
+ if (bridgeHandler != null) {
+ bridgeHandler.updateRemainingLimitStatus();
+ }
+ return sensorData;
+ }
+
+ /**
+ * Refreshes the device channels.
+ */
+ public void refreshSensors() {
+ final FoobotJsonData sensorData = dataCache.getValue();
+
+ if (sensorData != null) {
+ for (final Channel channel : getThing().getChannels()) {
+ final ChannelUID channelUid = channel.getUID();
+
+ updateState(channelUid, sensorDataToState(channelUid.getId(), sensorData));
+ }
+ updateTime(sensorData);
+ }
+ }
+
+ private void updateTime(final FoobotJsonData sensorData) {
+ final State lastTime = sensorDataToState(FoobotSensor.TIME.getChannelId(), sensorData);
+
+ if (lastTime instanceof DecimalType) {
+ ((DecimalType) lastTime).intValue();
+ }
+
+ }
+
+ @Override
+ public void dispose() {
+ logger.debug("Disposing the Foobot handler.");
+ }
+
+ protected State sensorDataToState(final String channelId, final FoobotJsonData data) {
+ final FoobotSensor sensor = FoobotSensor.findSensorByChannelId(channelId);
+
+ if (sensor == null || data.getSensors() == null || data.getDatapoints() == null
+ || data.getDatapoints().isEmpty()) {
+ return UnDefType.UNDEF;
+ }
+ final int sensorIndex = data.getSensors().indexOf(sensor.getDataKey());
+
+ if (sensorIndex == -1) {
+ return UnDefType.UNDEF;
+ }
+ final String value = data.getDatapoints().get(0).get(sensorIndex);
+ final String unit = data.getUnits().get(sensorIndex);
+
+ if (value == null) {
+ return UnDefType.UNDEF;
+ } else {
+ final Unit> stateUnit = sensor.getUnit(unit);
+ if (sensor == FoobotSensor.TIME) {
+ return new DateTimeType(
+ ZonedDateTime.ofInstant(Instant.ofEpochSecond(Long.parseLong(value)), ZoneId.systemDefault()));
+ } else if (stateUnit == null) {
+ return new DecimalType(value);
+ } else {
+ return new QuantityType(new BigDecimal(value), stateUnit);
+ }
+ }
+ }
+
+ private @Nullable FoobotAccountHandler getBridgeHandler() {
+ return getBridge() != null && getBridge().getHandler() instanceof FoobotAccountHandler
+ ? (FoobotAccountHandler) getBridge().getHandler()
+ : null;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotDevice.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotDevice.java
new file mode 100644
index 0000000000000..96187a8990093
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotDevice.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.json;
+
+/**
+ * The {@link FoobotDevice} is the Java class used to map the JSON response to the foobot.io request.
+ *
+ * @author Divya Chauhan - Initial contribution
+ * @author George Katsis - Code refactor
+ */
+public class FoobotDevice {
+
+ private String uuid;
+ private String mac;
+ private String name;
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public String getMac() {
+ return mac;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotJsonData.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotJsonData.java
new file mode 100644
index 0000000000000..4ce17404c1e7b
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotJsonData.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.json;
+
+import java.util.List;
+
+/**
+ * The {@link FoobotJsonData} is responsible for storing the "datapoints" from the foobot.io JSON response
+ *
+ * @author Divya Chauhan - Initial contribution
+ */
+public class FoobotJsonData {
+
+ private String uuid;
+ private long start;
+ private long end;
+ private List sensors;
+ private List units;
+ private List> datapoints;
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public long getStart() {
+ return start;
+ }
+
+ public long getEnd() {
+ return end;
+ }
+
+ public List getSensors() {
+ return sensors;
+ }
+
+ public List getUnits() {
+ return units;
+ }
+
+ public List> getDatapoints() {
+ return datapoints;
+ }
+
+ public void setDatapoints(List> datapoints) {
+ this.datapoints = datapoints;
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotSensor.java b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotSensor.java
new file mode 100644
index 0000000000000..e659c75fae82d
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/java/org/openhab/binding/foobot/internal/json/FoobotSensor.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.json;
+
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import javax.measure.Unit;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.library.unit.ImperialUnits;
+import org.eclipse.smarthome.core.library.unit.SIUnits;
+import org.eclipse.smarthome.core.library.unit.SmartHomeUnits;
+
+/**
+ * Enum for all specific sensor data returned by the Foobot device.
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+@NonNullByDefault
+public enum FoobotSensor {
+ TIME("time", "time", null),
+ PM("pm", "pm", SmartHomeUnits.MICROGRAM_PER_CUBICMETRE),
+ TEMPERATURE("temperature", "tmp", "C", SIUnits.CELSIUS, ImperialUnits.FAHRENHEIT),
+ HUMIDITY("humidity", "hum", null),
+ CO2("co2", "co2", SmartHomeUnits.PARTS_PER_MILLION),
+ VOC("voc", "voc", null),
+ GPI("gpi", "allpollu", null);
+
+ private final String channelId;
+ private final String dataKey;
+ private final @Nullable String matchUnit;
+ private final @Nullable Unit> unit;
+ private final @Nullable Unit> alternativeUnit;
+
+ private static final Map CHANNEL_ID_MAP = Stream.of(values())
+ .collect(Collectors.toMap(FoobotSensor::getChannelId, Function.identity()));
+
+ /**
+ * Constructor.
+ *
+ * @param channelId Id of the thing channel
+ * @param dataKey key of the sensor data in the foobot sensor json data
+ * @param unit Unit of the sensor data or null if no unit specified
+ */
+ private FoobotSensor(String channelId, String dataKey, @Nullable Unit> unit) {
+ this(channelId, dataKey, null, unit, null);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param channelId Id of the thing channel
+ * @param dataKey key of the sensor data in the foobot sensor json data
+ * @param matchUnit unit string to be matched with the foobot returned unit
+ * @param unit Unit of the sensor data or null if no unit specified
+ * @param alternativeUnit if foobot api unit doesn't match this unit is returned
+ */
+ private FoobotSensor(String channelId, String dataKey, @Nullable String matchUnit, @Nullable Unit> unit,
+ @Nullable Unit> alternativeUnit) {
+ this.channelId = channelId;
+ this.dataKey = dataKey;
+ this.matchUnit = matchUnit;
+ this.unit = unit;
+ this.alternativeUnit = alternativeUnit;
+ }
+
+ public static @Nullable FoobotSensor findSensorByChannelId(String channelId) {
+ return CHANNEL_ID_MAP.get(channelId);
+ }
+
+ public String getChannelId() {
+ return channelId;
+ }
+
+ /**
+ * @return Returns the key of the sensor type as returned by the foobot api
+ */
+ public String getDataKey() {
+ return dataKey;
+ }
+
+ /**
+ * Returns the Unit of this sensor data type or null if no unit specified.
+ *
+ * @param unitToMath match the returned unit by the foobot api with the Unit to be returned
+ * @return Unit or null if no unit available for the sensor
+ */
+ public @Nullable Unit> getUnit(String unitToMath) {
+ return matchUnit == null ? unit : (matchUnit.equals(unitToMath) ? unit : alternativeUnit);
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/binding/binding.xml
new file mode 100644
index 0000000000000..6e75bf30e17fa
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/binding/binding.xml
@@ -0,0 +1,9 @@
+
+
+
+ Foobot
+ Foobot binding allow users to connect to their foobots in home or office and get real-time updates on the Air Quality.
+ Divya Chauhan and George Katsis
+
diff --git a/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/thing/thing-types.xml
new file mode 100644
index 0000000000000..052aa4e76714b
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ Your Foobot account.
+
+
+
+
+
+
+
+ password
+
+ You can request your API Key from https://api.foobot.io/apidoc/index.html
+
+
+
+
+ The e-mail address you use to login to your Foobot account
+
+
+
+
+ Specifies the refresh interval in minutes.
+ 8
+
+
+
+
+
+
+
+
+
+
+
+ A Foobot device.
+
+
+
+
+
+
+
+
+
+
+
+ uuid
+
+
+
+
+ The device UUID
+
+
+
+
+
+ DateTime
+
+ The last time the sensor data was uploaded to Foobot
+
+
+
+ Number:Density
+
+ Particulate Matter Level
+
+
+
+ Number:Temperature
+
+ Temperature
+ Temperature
+
+
+
+ Number:Dimensionless
+
+ Humidity Level
+ Humidity
+
+
+
+ Number:Dimensionless
+
+ Carbon dioxide Level
+ CarbonDioxide
+
+
+
+ Number:Dimensionless
+
+ Volatile Organic Compounds Level
+
+
+
+ Number:Dimensionless
+
+ Global Pollution Index Level
+
+
+
+ Number
+
+ The remaining number of calls that can be made to the api today
+
+
+
+
diff --git a/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandlerTest.java b/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandlerTest.java
new file mode 100644
index 0000000000000..e6d8545894b7d
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotAccountHandlerTest.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.handler;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.eclipse.smarthome.core.thing.Bridge;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.openhab.binding.foobot.internal.FoobotApiConnector;
+import org.openhab.binding.foobot.internal.FoobotApiException;
+import org.openhab.binding.foobot.internal.json.FoobotDevice;
+
+/**
+ * Unit test for {@link FoobotAccountHandler}.
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+public class FoobotAccountHandlerTest {
+
+ private @Mock Bridge bridge;
+ private final FoobotApiConnector connector = new FoobotApiConnector() {
+ @Override
+ protected String request(String url, String apiKey) throws FoobotApiException {
+ try (InputStream stream = getClass().getResourceAsStream("../devices.json")) {
+ return IOUtils.toString(stream);
+ } catch (IOException e) {
+ throw new AssertionError(e.getMessage());
+ }
+ };
+ };
+ private final FoobotAccountHandler handler = new FoobotAccountHandler(bridge, connector);
+
+ @Test
+ public void testSensorDataToState() throws IOException, FoobotApiException {
+ final List deviceList = handler.getDeviceList();
+
+ assertFalse("Device list should not return empty", deviceList.isEmpty());
+ assertEquals("1234567890ABCDEF", deviceList.get(0).getUuid());
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandlerTest.java b/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandlerTest.java
new file mode 100644
index 0000000000000..2cd1a72027bf2
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/test/java/org/openhab/binding/foobot/internal/handler/FoobotDeviceHandlerTest.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2010-2020 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.foobot.internal.handler;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.commons.io.IOUtils;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.library.types.QuantityType;
+import org.eclipse.smarthome.core.library.unit.SIUnits;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.openhab.binding.foobot.internal.FoobotApiConnector;
+import org.openhab.binding.foobot.internal.FoobotApiException;
+import org.openhab.binding.foobot.internal.json.FoobotJsonData;
+
+/**
+ * Unit test for {@link FoobotDeviceHandler}.
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+public class FoobotDeviceHandlerTest {
+
+ private @Mock Thing thing;
+ private final FoobotApiConnector connector = new FoobotApiConnector() {
+ @Override
+ protected String request(String url, String apiKey) throws FoobotApiException {
+ try (InputStream stream = getClass().getResourceAsStream("../sensors.json")) {
+ return IOUtils.toString(stream);
+ } catch (IOException e) {
+ throw new AssertionError(e.getMessage());
+ }
+ };
+ };
+ private final FoobotDeviceHandler handler = new FoobotDeviceHandler(thing, connector);
+
+ @Test
+ public void testSensorDataToState() throws IOException, FoobotApiException {
+ final FoobotJsonData sensorData = connector.getSensorData("1234");
+
+ assertNotNull("No sensor data read", sensorData);
+ assertEquals(handler.sensorDataToState("temperature", sensorData), new QuantityType(12.345, SIUnits.CELSIUS));
+ assertEquals(handler.sensorDataToState("gpi", sensorData), new DecimalType(5.6789012));
+ }
+}
diff --git a/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/devices.json b/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/devices.json
new file mode 100644
index 0000000000000..4095ae5dfb785
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/devices.json
@@ -0,0 +1,8 @@
+[
+ {
+ "uuid": "1234567890ABCDEF",
+ "userId": 12345,
+ "mac": "AABBCCDDEEFF",
+ "name": "Foobot 1"
+ }
+]
diff --git a/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/sensors.json b/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/sensors.json
new file mode 100644
index 0000000000000..8650b9fce9d92
--- /dev/null
+++ b/bundles/org.openhab.binding.foobot/src/test/resources/org/openhab/binding/foobot/internal/sensors.json
@@ -0,0 +1,34 @@
+{
+ "uuid": "0123456789ABCDEF",
+ "start": 1234567890,
+ "end": 1234567890,
+ "sensors": [
+ "time",
+ "pm",
+ "tmp",
+ "hum",
+ "co2",
+ "voc",
+ "allpollu"
+ ],
+ "units": [
+ "s",
+ "ugm3",
+ "C",
+ "pc",
+ "ppm",
+ "ppb",
+ "%"
+ ],
+ "datapoints": [
+ [
+ 1234567890,
+ 1.2345678,
+ 12.345,
+ 23.456,
+ 345,
+ 456,
+ 5.6789012
+ ]
+ ]
+}
diff --git a/bundles/org.openhab.binding.freebox/NOTICE b/bundles/org.openhab.binding.freebox/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.freebox/NOTICE
+++ b/bundles/org.openhab.binding.freebox/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.freebox/README.md b/bundles/org.openhab.binding.freebox/README.md
index e1f6242420c51..fb15667908ad4 100644
--- a/bundles/org.openhab.binding.freebox/README.md
+++ b/bundles/org.openhab.binding.freebox/README.md
@@ -1,6 +1,6 @@
# Freebox Binding
-This binding integrates the [Freebox Revolution](http://www.free.fr/adsl/freebox-revolution.html) to your openHab installation.
+This binding integrates the [Freebox Revolution](https://www.free.fr/freebox/freebox-revolution/) to your openHAB installation.
## Supported Things
@@ -85,7 +85,7 @@ The *airplay* thing requires the following configuration parameters:
## Authentication
-You'll have to authorize openHAB to connect to your Freebox. Here is the process described :
+You will have to authorize openHAB to connect to your Freebox. Here is the process described :
**Step 1** At binding startup, if no token is recorded in the Freebox Server (bridge) configuration, the following message will be displayed in the OSGi console :
@@ -101,7 +101,7 @@ You'll have to authorize openHAB to connect to your Freebox. Here is the process
**Step 3** Record the apptoken in the Freebox Server (bridge) configuration
-**Optionally** you can log in your Freebox admin console to allocate needed rights to openhab
+**Optionally** you can log in your Freebox admin console to allocate needed rights to openHAB
Once initialized, the thing will generate all available channels.
diff --git a/bundles/org.openhab.binding.freebox/pom.xml b/bundles/org.openhab.binding.freebox/pom.xml
index dcb1148af0e28..181fc16f84bef 100644
--- a/bundles/org.openhab.binding.freebox/pom.xml
+++ b/bundles/org.openhab.binding.freebox/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.freebox
diff --git a/bundles/org.openhab.binding.freebox/src/main/feature/feature.xml b/bundles/org.openhab.binding.freebox/src/main/feature/feature.xml
index 6201fb6b88110..7e6834d806c5c 100644
--- a/bundles/org.openhab.binding.freebox/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.freebox/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxAirPlayAudioSink.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxAirPlayAudioSink.java
index 747eb7050c7ee..d3398a6391f89 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxAirPlayAudioSink.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxAirPlayAudioSink.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -19,6 +19,8 @@
import java.util.Locale;
import java.util.Set;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.core.audio.AudioFormat;
import org.eclipse.smarthome.core.audio.AudioHTTPServer;
import org.eclipse.smarthome.core.audio.AudioSink;
@@ -42,6 +44,7 @@
*
* @author Laurent Garnier - Initial contribution for AudioSink and notifications
*/
+@NonNullByDefault
public class FreeboxAirPlayAudioSink implements AudioSink {
private final Logger logger = LoggerFactory.getLogger(FreeboxAirPlayAudioSink.class);
@@ -59,13 +62,14 @@ public class FreeboxAirPlayAudioSink implements AudioSink {
private static final HashSet> SUPPORTED_STREAMS = new HashSet<>();
private AudioHTTPServer audioHTTPServer;
private FreeboxThingHandler handler;
- private String callbackUrl;
+ private @Nullable String callbackUrl;
static {
SUPPORTED_STREAMS.add(AudioStream.class);
}
- public FreeboxAirPlayAudioSink(FreeboxThingHandler handler, AudioHTTPServer audioHTTPServer, String callbackUrl) {
+ public FreeboxAirPlayAudioSink(FreeboxThingHandler handler, AudioHTTPServer audioHTTPServer,
+ @Nullable String callbackUrl) {
this.handler = handler;
this.audioHTTPServer = audioHTTPServer;
this.callbackUrl = callbackUrl;
@@ -94,12 +98,12 @@ public String getId() {
}
@Override
- public String getLabel(Locale locale) {
+ public @Nullable String getLabel(@Nullable Locale locale) {
return handler.getThing().getLabel();
}
@Override
- public void process(AudioStream audioStream)
+ public void process(@Nullable AudioStream audioStream)
throws UnsupportedAudioFormatException, UnsupportedAudioStreamException {
if (!ThingHandlerHelper.isHandlerInitialized(handler)
|| ((handler.getThing().getStatus() == ThingStatus.OFFLINE)
@@ -109,6 +113,15 @@ public void process(AudioStream audioStream)
return;
}
+ if (audioStream == null) {
+ try {
+ handler.stopMedia();
+ } catch (FreeboxException e) {
+ logger.warn("Exception while stopping audio stream playback: {}", e.getMessage());
+ }
+ return;
+ }
+
String url = null;
if (audioStream instanceof URLAudioStream) {
// it is an external URL, we can access it directly
@@ -128,11 +141,10 @@ public void process(AudioStream audioStream)
logger.warn("We do not have any callback url, so AirPlay device cannot play the audio stream!");
}
}
- if (audioStream != null) {
- try {
- audioStream.close();
- } catch (IOException e) {
- }
+ try {
+ audioStream.close();
+ } catch (IOException e) {
+ logger.debug("Exception while closing audioStream", e);
}
try {
logger.debug("AirPlay audio sink: process url {}", url);
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxBindingConstants.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxBindingConstants.java
index dc33fc5cd135c..9cc6ed4593b8b 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxBindingConstants.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxDataListener.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxDataListener.java
index b336acd8f28e8..41831bd4d8be9 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxDataListener.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxDataListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxHandlerFactory.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxHandlerFactory.java
index c5cb08466c8ba..f8b12a5919aad 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxHandlerFactory.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/FreeboxHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -21,6 +21,7 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.core.Configuration;
import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.audio.AudioHTTPServer;
@@ -64,7 +65,7 @@ public class FreeboxHandlerFactory extends BaseThingHandlerFactory {
private Map> audioSinkRegistrations = new ConcurrentHashMap<>();
// url (scheme+server+port) to use for playing notification sounds
- private String callbackUrl;
+ private @Nullable String callbackUrl;
private static final Set SUPPORTED_THING_TYPES_UIDS = Stream
.concat(FreeboxBindingConstants.SUPPORTED_BRIDGE_TYPES_UIDS.stream(),
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxApiManager.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxApiManager.java
index 727d1e773871d..71d8bc40ce0db 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxApiManager.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxApiManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxException.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxException.java
index a715af49e3d98..8d1e997f64026 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxException.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxTlsCertificateProvider.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxTlsCertificateProvider.java
index 389334ed30382..1cc6661505b8b 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxTlsCertificateProvider.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/FreeboxTlsCertificateProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfig.java
index 16d1fbf0b316c..81b4b68330084 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfigResponse.java
index 03c194de8af76..f47e19cab0c5e 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiver.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiver.java
index 9c371bed1846a..cd40f0241e941 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiver.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverCapabilities.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverCapabilities.java
index 46215e381de4f..ac9809a0f6d82 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverCapabilities.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverCapabilities.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverRequest.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverRequest.java
index 14404cb421165..2b054a8561eaa 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverRequest.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiverRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiversResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiversResponse.java
index df724cc167724..e614b9f53af53 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiversResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAirMediaReceiversResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatus.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatus.java
index 5b8288d8fe8a9..9c0514d752be8 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatus.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatusResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatusResponse.java
index 1924e7c1841d7..3384f56f7f4ca 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatusResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizationStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeRequest.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeRequest.java
index 548520c1be422..baa7acce9e3c2 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeRequest.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResponse.java
index d31f840d2f6a2..5faaf49a85d88 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResult.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResult.java
index e3b765a1e59ce..892999527827e 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResult.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxAuthorizeResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntry.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntry.java
index 1494a5858d952..1585add4dc8a9 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntry.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntry.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntryResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntryResponse.java
index a3095fad5992a..830cb9bf855ee 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntryResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxCallEntryResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatus.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatus.java
index bb5b848943033..50a578982267d 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatus.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatusResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatusResponse.java
index 50a06dab7c41d..ae1c0db0c7690 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatusResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxConnectionStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxDiscoveryResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxDiscoveryResponse.java
index 3031984defb86..0999e67f6884b 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxDiscoveryResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxDiscoveryResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxEmptyResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxEmptyResponse.java
index 98248991c9845..c6502c40a70f0 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxEmptyResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxEmptyResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfig.java
index 8bee42390b0d3..60f475a66e8c3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfigResponse.java
index b5eb939dbd290..d439b5290ddf4 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxFtpConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfig.java
index 16ee894b0a265..d13a13b25b148 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfigResponse.java
index 54fe71e5c87a5..bb21e1d10f5d8 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHost.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHost.java
index 798b3aa158220..3951414b8f0d7 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHost.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHost.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL2Ident.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL2Ident.java
index f5a8523a9643a..331a3bd56edd3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL2Ident.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL2Ident.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL3Connectivity.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL3Connectivity.java
index 726da325fbe62..7c935f7141075 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL3Connectivity.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostL3Connectivity.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostName.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostName.java
index 27f85a530fe49..fbf508843ff39 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostName.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostName.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostsResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostsResponse.java
index 73419adad2735..c726600811820 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostsResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanHostsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterface.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterface.java
index c1c7750c65eef..249f2bd15875c 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterface.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterfacesResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterfacesResponse.java
index b6b65b8df6c8b..2b9464711cbb3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterfacesResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLanInterfacesResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfig.java
index ed4d3d0a58315..2c0a32c5959d3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfigResponse.java
index 343da0b886ae9..e683fe7728826 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLcdConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResponse.java
index abdaed23ffcf9..1c34cf8a040bf 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResult.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResult.java
index fbb48d9f0df53..5f2f4549f5395 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResult.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxLoginResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionRequest.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionRequest.java
index f6c59f4e76281..e2668510e7436 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionRequest.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResponse.java
index e437f7446c5fa..ed31cf640af58 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResult.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResult.java
index 69addbb3ee9e6..ec62f3cf2630b 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResult.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxOpenSessionResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPermissions.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPermissions.java
index f6f88e6ec5e91..a1f58f1730baf 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPermissions.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPermissions.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatus.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatus.java
index a052cd29ad951..096595e03ba4e 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatus.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatusResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatusResponse.java
index 860f6019784a3..74d7345e9d6a0 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatusResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxPhoneStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxResponse.java
index f2ebb9d4043c3..bb3521bc9274c 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfig.java
index 0a95c0bf16c4d..6481e730bba64 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfigResponse.java
index d3eb039ae1433..be2689c4bb7a6 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSambaConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSensor.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSensor.java
new file mode 100644
index 0000000000000..994a13a4b4408
--- /dev/null
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSensor.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2010-2020 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.freebox.internal.api.model;
+
+/**
+ * The {@link FreeboxSensor} is the Java class used to map the fans and sensors part of the "SystemConfig"
+ * structure used by the system API
+ *
+ * @author Laurent Garnier - Initial contribution
+ */
+public class FreeboxSensor {
+ private String id;
+ private String name;
+ private int value;
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getValue() {
+ return value;
+ }
+}
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfig.java
index 391bf55425e8a..0603768b631a3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,6 +12,8 @@
*/
package org.openhab.binding.freebox.internal.api.model;
+import java.util.List;
+
/**
* The {@link FreeboxSystemConfig} is the Java class used to map the "SystemConfig"
* structure used by the system API
@@ -34,6 +36,8 @@ public class FreeboxSystemConfig {
private String diskStatus;
private String boxFlavor;
private String userMainStorage;
+ private List fans;
+ private List sensors;
public String getFirmwareVersion() {
return firmwareVersion;
@@ -60,18 +64,46 @@ public String getBoardName() {
}
public int getTempCpum() {
+ if (sensors != null) {
+ for (FreeboxSensor sensor : sensors) {
+ if ("temp_cpum".equals(sensor.getId())) {
+ return sensor.getValue();
+ }
+ }
+ }
return tempCpum;
}
public int getTempSw() {
+ if (sensors != null) {
+ for (FreeboxSensor sensor : sensors) {
+ if ("temp_sw".equals(sensor.getId())) {
+ return sensor.getValue();
+ }
+ }
+ }
return tempSw;
}
public int getTempCpub() {
+ if (sensors != null) {
+ for (FreeboxSensor sensor : sensors) {
+ if ("temp_cpub".equals(sensor.getId())) {
+ return sensor.getValue();
+ }
+ }
+ }
return tempCpub;
}
public int getFanRpm() {
+ if (fans != null) {
+ for (FreeboxSensor fan : fans) {
+ if ("fan0_speed".equals(fan.getId())) {
+ return fan.getValue();
+ }
+ }
+ }
return fanRpm;
}
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfigResponse.java
index 357c3217cb99a..494346b07cfb5 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxSystemConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfig.java
index 8f16cf8a1ff57..e554f8144b59d 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfigResponse.java
index 114d837a46d6d..c75c99724438c 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxUPnPAVConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfig.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfig.java
index 45d67c99e3c1f..92acafe048432 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfig.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfigResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfigResponse.java
index 3cb7175faee06..1d66c3bfe395f 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfigResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxWifiGlobalConfigResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatus.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatus.java
index 1aa462a125659..450ba2c7714a3 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatus.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatusResponse.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatusResponse.java
index d6ddad14ba415..63ee697913fea 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatusResponse.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/api/model/FreeboxXdslStatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxAirPlayDeviceConfiguration.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxAirPlayDeviceConfiguration.java
index 88dc2f4236af1..ab2284eb42610 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxAirPlayDeviceConfiguration.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxAirPlayDeviceConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetDeviceConfiguration.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetDeviceConfiguration.java
index c69be62b7c121..b6e603c21207f 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetDeviceConfiguration.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetDeviceConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetInterfaceConfiguration.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetInterfaceConfiguration.java
index cebeaf1cdcf44..d6e0338fae1f1 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetInterfaceConfiguration.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxNetInterfaceConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxPhoneConfiguration.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxPhoneConfiguration.java
index 7720024e875fb..33a22d21709a7 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxPhoneConfiguration.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxPhoneConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxServerConfiguration.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxServerConfiguration.java
index 805d333e2991e..0e7171ccbe09d 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxServerConfiguration.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/config/FreeboxServerConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxDiscoveryService.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxDiscoveryService.java
index 480d8b63938ed..787a6487a855a 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxDiscoveryService.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxServerDiscoveryParticipant.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxServerDiscoveryParticipant.java
index 007c1d46032d8..63cdf5ce14eb4 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxServerDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/discovery/FreeboxServerDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxHandler.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxHandler.java
index 67b2ace7d9be2..9a3e6741732e6 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxHandler.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxThingHandler.java b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxThingHandler.java
index 3525a12a1c126..0246b722cad75 100644
--- a/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxThingHandler.java
+++ b/bundles/org.openhab.binding.freebox/src/main/java/org/openhab/binding/freebox/internal/handler/FreeboxThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -346,7 +346,7 @@ public void updateAirPlayDevice(List receivers) {
public void playMedia(String url) throws FreeboxException {
if (bridgeHandler != null && url != null) {
- bridgeHandler.getApiManager().stopMedia(airPlayName, airPlayPassword);
+ stopMedia();
bridgeHandler.getApiManager().playMedia(url, airPlayName, airPlayPassword);
}
}
@@ -364,10 +364,16 @@ private void playMedia(ChannelUID channelUID, Command command) {
}
}
+ public void stopMedia() throws FreeboxException {
+ if (bridgeHandler != null) {
+ bridgeHandler.getApiManager().stopMedia(airPlayName, airPlayPassword);
+ }
+ }
+
private void stopMedia(ChannelUID channelUID, Command command) {
if (command instanceof OnOffType) {
try {
- bridgeHandler.getApiManager().stopMedia(airPlayName, airPlayPassword);
+ stopMedia();
} catch (FreeboxException e) {
bridgeHandler.logCommandException(e, channelUID, command);
}
diff --git a/bundles/org.openhab.binding.freebox/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.freebox/src/main/resources/ESH-INF/thing/thing-types.xml
index b51eda8a5fe3c..5891357a6e1f5 100644
--- a/bundles/org.openhab.binding.freebox/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.freebox/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -49,7 +49,7 @@
-
+
Token generated by the Freebox serverfalse
@@ -62,7 +62,7 @@
-
+
Use HTTP API even if HTTPS is availablefalsefalse
@@ -211,7 +211,7 @@
false
-
+
Accept any bitrate for MP3 audio or only bitrates greater than 64 kbpstruefalse
@@ -242,7 +242,7 @@
-
+
The last accepted phone call
@@ -253,7 +253,7 @@
-
+
The last missed phone call
@@ -264,7 +264,7 @@
-
+
The last outgoing phone call
@@ -283,14 +283,14 @@
Number
-
+
Time since last reboot of the Freebox ServerSwitch
-
+
Has the Freebox server have restarted during the last poll periodAlarm
@@ -520,21 +520,21 @@
String
-
+
Called name for outgoing calls. Caller name for incoming callsString
-
+
Called nameString
-
+
Caller name
@@ -549,13 +549,13 @@
String
-
+
Play an audio or video media from the given URLSwitch
-
+
Stop the media playback
diff --git a/bundles/org.openhab.binding.fronius/NOTICE b/bundles/org.openhab.binding.fronius/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.fronius/NOTICE
+++ b/bundles/org.openhab.binding.fronius/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.fronius/README.md b/bundles/org.openhab.binding.fronius/README.md
index a46128bedaab4..d53a8fd97e3ff 100644
--- a/bundles/org.openhab.binding.fronius/README.md
+++ b/bundles/org.openhab.binding.fronius/README.md
@@ -1,6 +1,6 @@
# Fronius Binding
-This binding uses the [Fronius Solar API V1](http://www.fronius.com/en/photovoltaics/products/all-products/system-monitoring/open-interfaces/fronius-solar-api-json-) to obtain data from a Fronius devices.
+This binding uses the [Fronius Solar API V1](https://www.fronius.com/en/photovoltaics/products/all-products/system-monitoring/open-interfaces/fronius-solar-api-json-) to obtain data from a Fronius devices.
## Supported Things
diff --git a/bundles/org.openhab.binding.fronius/pom.xml b/bundles/org.openhab.binding.fronius/pom.xml
index 3a7406f4cdeb6..c352cb77e775a 100644
--- a/bundles/org.openhab.binding.fronius/pom.xml
+++ b/bundles/org.openhab.binding.fronius/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.fronius
diff --git a/bundles/org.openhab.binding.fronius/src/main/feature/feature.xml b/bundles/org.openhab.binding.fronius/src/main/feature/feature.xml
index d229c4324e4bf..c9781cd4a4632 100644
--- a/bundles/org.openhab.binding.fronius/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.fronius/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBaseDeviceConfiguration.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBaseDeviceConfiguration.java
index 37a95252602f4..a89fc54d6ab0b 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBaseDeviceConfiguration.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBaseDeviceConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBindingConstants.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBindingConstants.java
index 1d25ed031a9f5..634cae2ed9dd4 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBindingConstants.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBridgeConfiguration.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBridgeConfiguration.java
index c0975ff58faf3..0498438ad1c1e 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBridgeConfiguration.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusBridgeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusHandlerFactory.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusHandlerFactory.java
index eaa0897d99cf6..eca79bd64fa36 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusHandlerFactory.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/FroniusHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/BaseFroniusResponse.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/BaseFroniusResponse.java
index ed030a52554e3..145bd8ba7066c 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/BaseFroniusResponse.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/BaseFroniusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/DeviceStatus.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/DeviceStatus.java
index bb797c4666e7b..0bc296f3e09e6 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/DeviceStatus.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/DeviceStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/Head.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/Head.java
index 7eb1e39d53f9c..ece9903d6a43a 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/Head.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/Head.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadRequestArguments.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadRequestArguments.java
index c3f29f1450c63..9c41e60b42814 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadRequestArguments.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadRequestArguments.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadStatus.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadStatus.java
index 16eba75c48639..3566c63c709ff 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadStatus.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/HeadStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBody.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBody.java
index c5342680ab4e4..f663ac9034282 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBody.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBody.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBodyData.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBodyData.java
index fc96b774c22a9..52090e54f045b 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBodyData.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeBodyData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeResponse.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeResponse.java
index 0c37cecec0bf5..0ad4aa2bd94b4 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeResponse.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/InverterRealtimeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBody.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBody.java
index ca662bedd2cb1..63fbba46ac6b6 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBody.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBody.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBodyData.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBodyData.java
index adddc882641c1..495f671ede401 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBodyData.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeBodyData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeInverter.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeInverter.java
index ddbf5ba45091c..f518b8610567c 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeInverter.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeInverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeResponse.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeResponse.java
index 1392a7aa630a6..d55dda5eeaa89 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeResponse.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeSite.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeSite.java
index d8b299475f987..3d99d700cc51d 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeSite.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/PowerFlowRealtimeSite.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/ValueUnit.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/ValueUnit.java
index 4a9e5c3bc5dd8..7f0de200c9dcd 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/ValueUnit.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/api/ValueUnit.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBaseThingHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBaseThingHandler.java
index 2cc14283270b5..5e3229b3ee24c 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBaseThingHandler.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBaseThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java
index 6a1f27067943a..aa3733107c8b7 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java
index 7899f075d5957..5c0f727d5cc13 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/handler/FroniusSymoInverterHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/KilowattConverter.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/KilowattConverter.java
index a58ae87b63dd2..3ed87f206c9da 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/KilowattConverter.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/KilowattConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/SiPrefixFactors.java b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/SiPrefixFactors.java
index 66a0a63e0a46f..9f847a0baca57 100644
--- a/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/SiPrefixFactors.java
+++ b/bundles/org.openhab.binding.fronius/src/main/java/org/openhab/binding/fronius/internal/math/SiPrefixFactors.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/bridge.xml
index 1b93f32380e38..48c8eead643ee 100644
--- a/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/bridge.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
A bridge to connect Fronius devices
@@ -13,7 +13,7 @@
The hostname or IP address of the Fronius gateway/device
-
+
Specifies the refresh interval in seconds.10
diff --git a/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/thing-types.xml
index 26dd3dcbf4f99..b3b7e97c824f1 100644
--- a/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.fronius/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -43,7 +43,7 @@
Number
-
+
AC power
@@ -62,33 +62,33 @@
Number
-
+
AC frequencyNumber
-
+
AC currentNumber
-
+
DC currentNumber
-
+
AC voltageNumber
-
+
DC voltage
diff --git a/bundles/org.openhab.binding.fsinternetradio/NOTICE b/bundles/org.openhab.binding.fsinternetradio/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.fsinternetradio/NOTICE
+++ b/bundles/org.openhab.binding.fsinternetradio/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.fsinternetradio/README.md b/bundles/org.openhab.binding.fsinternetradio/README.md
index 9eb5f64f64490..851f219f28a2f 100644
--- a/bundles/org.openhab.binding.fsinternetradio/README.md
+++ b/bundles/org.openhab.binding.fsinternetradio/README.md
@@ -1,6 +1,6 @@
# FS Internet Radio Binding
-This binding integrates internet radios based on the [Frontier Silicon chipset](http://www.frontier-silicon.com/).
+This binding integrates internet radios based on the [Frontier Silicon chipset](https://www.frontier-silicon.com/).
## Supported Things
@@ -8,17 +8,17 @@ Successfully tested are internet radios:
* [Hama IR100](https://de.hama.com/00054823/hama-internetradio-ir110)
* [Medion MD87180, MD86988, MD86955, MD87528](http://internetradio.medion.com/)
- * [Silvercrest SMRS18A1, SMRS30A1, SMRS35A1, SIRD 14 C2](http://www.silvercrest-multiroom.de/en/products/stereo-internet-radio/)
+ * [Silvercrest SMRS18A1, SMRS30A1, SMRS35A1, SIRD 14 C2, SIRD 14 D1](https://www.silvercrest-multiroom.de/en/products/stereo-internet-radio/)
* [Roberts Stream 83i and 93i](https://www.robertsradio.com/uk/products/radio/smart-radio/)
* [Auna Connect 150, Auna KR200](https://www.auna.de/Radios/Internetradios/)
* [TechniSat DIGITRADIO 350 IR and 850](https://www.technisat.com/en_XX/DAB+-Radios-with-Internetradio/352-10996/)
- * [TTMicro AS Pinell Supersound](http://www.ttmicro.no/radio)
+ * [TTMicro AS Pinell Supersound](https://www.ttmicro.no/radio)
* [Revo SuperConnect](https://revo.co.uk/products/)
* [Sangean WFR-28C](http://sg.sangean.com.tw/products/product_category.asp?cid=2)
* [Roku SoundBridge M1001](https://soundbridge.roku.com/soundbridge/index.php)
* [Dual IR 3a](https://www.dual.de/produkte/digitalradio/radio-station-ir-3a/)
-But in principle, all internet radios based on the [Frontier Silicon chipset](http://www.frontier-silicon.com/) should be supported because they share the same API.
+But in principle, all internet radios based on the [Frontier Silicon chipset](https://www.frontier-silicon.com/) should be supported because they share the same API.
So It is very likely that other internet radio models of the same manufacturers do also work.
## Community
@@ -33,7 +33,7 @@ If your radio is not discovered, please try to access its API via: `http://
If you get a result like `FS_OK 1902014387`, your radio is supported.
-If this is the case, please [add your model to this documentation](https://github.com/eclipse/smarthome/edit/master/extensions/binding/org.openhab.binding.fsinternetradio/README.md) and/or provide discovery information in [this thread](https://community.openhab.org/t/internet-radio-i-need-your-help/2131).
+If this is the case, please [add your model to this documentation](https://github.com/openhab/openhab-addons/edit/master/bundles/org.openhab.binding.fsinternetradio/README.md) and/or provide discovery information in [this thread](https://community.openhab.org/t/internet-radio-i-need-your-help/2131).
## Binding Configuration
diff --git a/bundles/org.openhab.binding.fsinternetradio/pom.xml b/bundles/org.openhab.binding.fsinternetradio/pom.xml
index 3571132d09c50..bb869436a54d8 100644
--- a/bundles/org.openhab.binding.fsinternetradio/pom.xml
+++ b/bundles/org.openhab.binding.fsinternetradio/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.fsinternetradio
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/feature/feature.xml b/bundles/org.openhab.binding.fsinternetradio/src/main/feature/feature.xml
index f9405d3aa8ea9..63adff40a183b 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioBindingConstants.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioBindingConstants.java
index c4d348dc77882..50981f2887ea9 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioBindingConstants.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioDiscoveryParticipant.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioDiscoveryParticipant.java
index 6290d485483a8..b0dce0f12bfb9 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioHandlerFactory.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioHandlerFactory.java
index 080a63ed5088a..1a78738cd830b 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioHandlerFactory.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/FSInternetRadioHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java
index fa6863761d777..225f8deafa1ef 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/handler/FSInternetRadioHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadio.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadio.java
index 52812028c69ab..788990a9981bc 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadio.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadio.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioApiResult.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioApiResult.java
index cbbd71d797859..687b23565e9e8 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioApiResult.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioApiResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConnection.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConnection.java
index 573485ef9b503..0828aa023b2bf 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConnection.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConstants.java b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConstants.java
index ad3ad37c3da81..f47bc35ade78e 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConstants.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/java/org/openhab/binding/fsinternetradio/internal/radio/FrontierSiliconRadioConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.fsinternetradio/src/main/resources/ESH-INF/thing/thing-types.xml
index bea9d15f21499..239a1bfb10144 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.fsinternetradio/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -3,7 +3,6 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
An internet radio device based on the Frontier Silicon chipset.
@@ -41,7 +40,7 @@
1234
-
+
Specifies the refresh interval in seconds.60
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/internal/handler/HandlerUtils.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/internal/handler/HandlerUtils.java
index 781220708ea1b..85dba74a3ac7e 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/internal/handler/HandlerUtils.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/internal/handler/HandlerUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioDiscoveryParticipantJavaTest.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioDiscoveryParticipantJavaTest.java
index b341c6829320f..12a473e5c2f82 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioDiscoveryParticipantJavaTest.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioDiscoveryParticipantJavaTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java
index ea906bc430474..75d26fb22d325 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/FSInternetRadioHandlerJavaTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/MockedRadioHandler.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/MockedRadioHandler.java
index 3a26060d44b61..6f6df8267e1ac 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/MockedRadioHandler.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/MockedRadioHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/RadioServiceDummy.java b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/RadioServiceDummy.java
index 884ff24062ef5..8daeb3020a122 100644
--- a/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/RadioServiceDummy.java
+++ b/bundles/org.openhab.binding.fsinternetradio/src/test/java/org/openhab/binding/fsinternetradio/test/RadioServiceDummy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/NOTICE b/bundles/org.openhab.binding.ftpupload/NOTICE
index 9f523a6762066..6914a1d625ce7 100644
--- a/bundles/org.openhab.binding.ftpupload/NOTICE
+++ b/bundles/org.openhab.binding.ftpupload/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.ftpupload/README.md b/bundles/org.openhab.binding.ftpupload/README.md
index 9df77d9ad8388..5d102e0588818 100644
--- a/bundles/org.openhab.binding.ftpupload/README.md
+++ b/bundles/org.openhab.binding.ftpupload/README.md
@@ -2,11 +2,11 @@
This binding can be used to receive image files from FTP clients.
The binding acts as a FTP server.
-Images stored on the FTP server are not saved to the file system, therefore the binding shouldn't cause any problems on flash based openHAB installations.
+Images stored on the FTP server are not saved to the file system, therefore the binding shouldn't cause any problems on flash based openHAB installations if files are uploaded to FTP server continuously (e.g. network camera images).
## Supported Things
-This binding supports Things of type ```ftpupload```.
+This binding supports Things of type `ftpupload`.
Every Thing is identified by FTP user name.
Therefore, every thing should use unique user name to login FTP server.
@@ -23,14 +23,25 @@ The binding has the following configuration options:
| port | TCP Port | TCP port of the FTP server | no | 2121 |
| idleTimeout | Idle timeout | The number of seconds before an inactive client is disconnected. If this value is set to 0, the idle time is disabled. | no | 60 |
+## Thing Configuration
+
+The `ftpupload` Thing has the following configuration parameters:
+
+| Parameter | Description | Required | Default value |
+|-----------------------------|---------------------------------------------------------------------------------------------------------------------|----------|---------------|
+| userName | User name to login to the FTP server. User name is used to identify the Thing, so it should be unique per Thing. | yes | |
+| password | Password to login to the FTP server. | yes | |
+
+
## Channels
This binding currently supports the following channels:
-| Channel Type ID | Item Type | Description |
-|-----------------|--------------|----------------------------------------------------------------------------------------|
-| image | Image | Image file received via FTP. |
+| Channel | Channel Type Id | Item Type | Description |
+|-----------------|-----------------|--------------|----------------------------------------------------------------------------------------|
+| image | image-channel | Image | Image file received via FTP. |
+Additionally user can introduce custom image-channel's to Thing (see examples).
When an image file is uploaded to FTP server, the binding tries to find the channel whose filename matches the uploaded image filename.
If no match is found, no channel is updated.
The filename parameter supports regular expression patterns.
@@ -156,7 +167,7 @@ Frame label="Garage network camera" icon="camera" {
## Logging and Problem Solving
-For problem solving, if binding logging is not enough, Apache FTP server logging can also be enabled by the following command in the karaf console:
+For problem solving, if binding logging is not enough, Apache FTP server logging can also be enabled by the following command in the Karaf console:
```
log:set DEBUG org.apache.ftpserver
@@ -170,5 +181,3 @@ log:set DEFAULT org.apache.ftpserver
If you meet any problems to receive images from the network cameras, you could test connection to binding with any FTP client.
You can send image files via FTP client and thing channels should be updated accordingly.
-
-
\ No newline at end of file
diff --git a/bundles/org.openhab.binding.ftpupload/pom.xml b/bundles/org.openhab.binding.ftpupload/pom.xml
index da7d442d60048..5efe20890f29c 100644
--- a/bundles/org.openhab.binding.ftpupload/pom.xml
+++ b/bundles/org.openhab.binding.ftpupload/pom.xml
@@ -1,36 +1,39 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.ftpuploadopenHAB Add-ons :: Bundles :: FTP Upload Binding
+
+ org.springframework.*;resolution:="optional"
+
+
org.apache.ftpserverftplet-api1.1.0
- provided
+ compileorg.apache.ftpserverftpserver-core1.1.0
- provided
+ compileorg.apache.minamina-core
- 2.0.16
- provided
+ 2.0.21
+ compile
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/feature/feature.xml b/bundles/org.openhab.binding.ftpupload/src/main/feature/feature.xml
index 4426048eef0a5..a15509a16a36e 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.ftpupload/src/main/feature/feature.xml
@@ -1,12 +1,9 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:org.apache.ftpserver/ftplet-api/1.1.0
- mvn:org.apache.ftpserver/ftpserver-core/1.1.0
- mvn:org.apache.mina/mina-core/2.0.16mvn:org.openhab.addons.bundles/org.openhab.binding.ftpupload/${project.version}
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadBindingConstants.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadBindingConstants.java
index 3b52b56975e5d..8f3fe324c78b1 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadBindingConstants.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java
index 11e54ade91b75..c6ebb1a8aa24a 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/FtpUploadHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -118,7 +118,7 @@ protected synchronized void modified(ComponentContext componentContext) {
}
try {
- logger.info("Starting FTP server, port={}, idleTimeout={}", port, idleTimeout);
+ logger.debug("Starting FTP server, port={}, idleTimeout={}", port, idleTimeout);
ftpServer.startServer(port, idleTimeout);
} catch (FtpException | FtpServerConfigurationException e) {
logger.warn("FTP server starting failed, reason: {}", e.getMessage());
@@ -126,7 +126,7 @@ protected synchronized void modified(ComponentContext componentContext) {
}
private void stopFtpServer() {
- logger.info("Stopping FTP server");
+ logger.debug("Stopping FTP server");
ftpServer.stopServer();
}
}
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/config/FtpUploadConfig.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/config/FtpUploadConfig.java
index 2c1bf81a6a485..ea81c8264c5ed 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/config/FtpUploadConfig.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/config/FtpUploadConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUser.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUser.java
index 8e5f6544d3a7b..8dd0f27cef73b 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUser.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUserManager.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUserManager.java
index f505f5143d8e8..f8796d9ab56f4 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUserManager.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FTPUserManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServer.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServer.java
index bc4a7e8862338..c4c2df3575b3f 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServer.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServerEventListener.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServerEventListener.java
index 8eab1478902b7..1682ea8a8c47f 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServerEventListener.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/FtpServerEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFileSystemView.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFileSystemView.java
index ce372417e2435..fa4467d073b01 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFileSystemView.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFileSystemView.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFtpFile.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFtpFile.java
index 36a1b5ebf7e5c..6f981bd008667 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFtpFile.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/SimpleFtpFile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/UsernamePassword.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/UsernamePassword.java
index 79a35d907d4ee..b6c297b2bb05d 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/UsernamePassword.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/ftp/UsernamePassword.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/handler/FtpUploadHandler.java b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/handler/FtpUploadHandler.java
index ec5886de4029a..938d2ea1fe545 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/handler/FtpUploadHandler.java
+++ b/bundles/org.openhab.binding.ftpupload/src/main/java/org/openhab/binding/ftpupload/internal/handler/FtpUploadHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/binding/binding.xml
index ba39c11e6fc61..628757333b6ae 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/binding/binding.xml
@@ -8,13 +8,13 @@
Pauli Anttila
-
+ TCP port of the FTP server2121
-
-
+
+
The number of seconds before an inactive client is disconnected. If this value is set to 0, the idle time is disabled.60
diff --git a/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/thing/thing-types.xml
index e0a27ee789b6a..fec284b614b69 100644
--- a/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.ftpupload/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -41,7 +41,7 @@
trigger
-
+
diff --git a/bundles/org.openhab.binding.gardena/NOTICE b/bundles/org.openhab.binding.gardena/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.gardena/NOTICE
+++ b/bundles/org.openhab.binding.gardena/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.gardena/README.md b/bundles/org.openhab.binding.gardena/README.md
index 3398720e6b395..82bc8f2d50627 100644
--- a/bundles/org.openhab.binding.gardena/README.md
+++ b/bundles/org.openhab.binding.gardena/README.md
@@ -1,6 +1,6 @@
# Gardena Binding
-This is the binding for [Gardena Smart Home](http://www.gardena.com/de/rasenpflege/smartsystem/).
+This is the binding for [Gardena Smart Home](https://www.gardena.com/de/rasenpflege/smartsystem/).
This binding allows you to integrate, view and control Gardena Smart Home devices in the openHAB environment.
## Supported Things
@@ -154,4 +154,4 @@ This is not a binding issue, it must be fixed by Gardena.
When the binding sends a command to a device, it communicates only with the Gardena online service.
It has not control over, whether the command is sent from the online service via your gateway to the device.
-It's the same as if you send the command in the Gardena App.
+It is the same as if you send the command in the Gardena App.
diff --git a/bundles/org.openhab.binding.gardena/pom.xml b/bundles/org.openhab.binding.gardena/pom.xml
index 9bf0462c47220..239c40ed2d15a 100644
--- a/bundles/org.openhab.binding.gardena/pom.xml
+++ b/bundles/org.openhab.binding.gardena/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.gardena
diff --git a/bundles/org.openhab.binding.gardena/src/main/feature/feature.xml b/bundles/org.openhab.binding.gardena/src/main/feature/feature.xml
index 32fb312a8cd53..0f2f9bf9d3b24 100644
--- a/bundles/org.openhab.binding.gardena/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.gardena/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaBindingConstants.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaBindingConstants.java
index b452946d62b07..da6b61593ce76 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaBindingConstants.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmart.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmart.java
index cc194a272590f..9bc6288665282 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmart.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmart.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartCommandName.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartCommandName.java
index 8793a2de13fdf..810ab3596081a 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartCommandName.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartCommandName.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartEventListener.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartEventListener.java
index e7b60a38ef124..65d89daf8cebc 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartEventListener.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartImpl.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartImpl.java
index 61ff1947aeee1..53b7ebce7efa3 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartImpl.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/GardenaSmartImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -22,8 +22,8 @@
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jetty.client.HttpClient;
@@ -515,7 +515,7 @@ private class RefreshDevicesThread implements Runnable {
public void run() {
try {
logger.debug("Refreshing gardena device data");
- Map newDevicesById = new HashMap<>();
+ final Map newDevicesById = new HashMap<>();
for (Location location : allLocations) {
Devices devices = loadDevices(location);
@@ -535,22 +535,18 @@ public void run() {
}
// determine deleted devices
- @SuppressWarnings("unchecked")
- Collection deletedDevices = CollectionUtils.subtract(allDevicesById.values(),
- newDevicesById.values());
+ Collection deletedDevices = allDevicesById.values().stream()
+ .filter(d -> !newDevicesById.values().contains(d)).collect(Collectors.toSet());
// determine new devices
- @SuppressWarnings("unchecked")
- Collection newDevices = CollectionUtils.subtract(newDevicesById.values(),
- allDevicesById.values());
+ Collection newDevices = newDevicesById.values().stream()
+ .filter(d -> !allDevicesById.values().contains(d)).collect(Collectors.toSet());
// determine updated devices
- @SuppressWarnings("unchecked")
- Collection updatedDevices = CollectionUtils.intersection(allDevicesById.values(),
- newDevicesById.values());
+ Collection updatedDevices = allDevicesById.values().stream().distinct()
+ .filter(newDevicesById.values()::contains).collect(Collectors.toSet());
allDevicesById = newDevicesById;
- newDevicesById = null;
for (Device deletedDevice : deletedDevices) {
eventListener.onDeviceDeleted(deletedDevice);
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfig.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfig.java
index 0056c7957d2ec..ba6697cedb795 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfig.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigDataWrapper.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigDataWrapper.java
index b558d12008eac..513f97741c815 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigDataWrapper.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigDataWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigWrapper.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigWrapper.java
index 91fb793e6daeb..cdede76ef35ad 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigWrapper.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/config/GardenaConfigWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/discovery/GardenaDeviceDiscoveryService.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/discovery/GardenaDeviceDiscoveryService.java
index 7ccd484e8ccab..a01dd62a91ec0 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/discovery/GardenaDeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/discovery/GardenaDeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -20,12 +20,17 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
import org.eclipse.smarthome.config.discovery.DiscoveryResult;
import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
+import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.ThingUID;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.openhab.binding.gardena.internal.GardenaSmart;
import org.openhab.binding.gardena.internal.exception.GardenaException;
import org.openhab.binding.gardena.internal.handler.GardenaAccountHandler;
@@ -40,23 +45,37 @@
*
* @author Gerhard Riegler - Initial contribution
*/
-public class GardenaDeviceDiscoveryService extends AbstractDiscoveryService {
+public class GardenaDeviceDiscoveryService extends AbstractDiscoveryService
+ implements DiscoveryService, ThingHandlerService {
private final Logger logger = LoggerFactory.getLogger(GardenaDeviceDiscoveryService.class);
private static final int DISCOVER_TIMEOUT_SECONDS = 30;
- private GardenaAccountHandler accountHandler;
+ private @NonNullByDefault({}) GardenaAccountHandler accountHandler;
private Future> scanFuture;
- public GardenaDeviceDiscoveryService(GardenaAccountHandler accountHandler) {
+ public GardenaDeviceDiscoveryService() {
super(Collections.unmodifiableSet(Stream.of(new ThingTypeUID(BINDING_ID, "-")).collect(Collectors.toSet())),
DISCOVER_TIMEOUT_SECONDS, false);
- this.accountHandler = accountHandler;
+ }
+
+ @Override
+ public void setThingHandler(@Nullable ThingHandler handler) {
+ if (handler instanceof GardenaAccountHandler) {
+ this.accountHandler = (GardenaAccountHandler) handler;
+ this.accountHandler.setDiscoveryService(this);
+ }
+ }
+
+ @Override
+ public @Nullable ThingHandler getThingHandler() {
+ return accountHandler;
}
/**
* Called on component activation.
*/
+ @Override
public void activate() {
super.activate(null);
}
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaDeviceNotFoundException.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaDeviceNotFoundException.java
index 22b72f3fa10d9..2f8f269cf3951 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaDeviceNotFoundException.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaDeviceNotFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaException.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaException.java
index 2c520b0c8ff99..cadb6b2d44b9f 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaException.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaUnauthorizedException.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaUnauthorizedException.java
index 7166b79dd3012..eefa7797f1ab7 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaUnauthorizedException.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/exception/GardenaUnauthorizedException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/AccountHandlerNotAvailableException.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/AccountHandlerNotAvailableException.java
index 4eb97ba48157a..4a6ac681a7705 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/AccountHandlerNotAvailableException.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/AccountHandlerNotAvailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaAccountHandler.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaAccountHandler.java
index 2fd53b6d657ba..9b0d73e151da3 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaAccountHandler.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaAccountHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,10 +12,10 @@
*/
package org.openhab.binding.gardena.internal.handler;
-import java.util.Hashtable;
+import java.util.Collection;
+import java.util.Collections;
import java.util.concurrent.TimeUnit;
-import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Channel;
import org.eclipse.smarthome.core.thing.ChannelUID;
@@ -24,6 +24,7 @@
import org.eclipse.smarthome.core.thing.ThingStatusDetail;
import org.eclipse.smarthome.core.thing.ThingUID;
import org.eclipse.smarthome.core.thing.binding.BaseBridgeHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
import org.openhab.binding.gardena.internal.GardenaSmart;
@@ -34,7 +35,6 @@
import org.openhab.binding.gardena.internal.exception.GardenaException;
import org.openhab.binding.gardena.internal.model.Device;
import org.openhab.binding.gardena.internal.util.UidUtils;
-import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,7 +49,6 @@ public class GardenaAccountHandler extends BaseBridgeHandler implements GardenaS
private static final long REINITIALIZE_DELAY_SECONDS = 10;
private GardenaDeviceDiscoveryService discoveryService;
- private ServiceRegistration> discoveryServiceRegistration;
private GardenaSmart gardenaSmart = new GardenaSmartImpl();
private GardenaConfig gardenaConfig;
@@ -68,6 +67,10 @@ public void initialize() {
initializeGardena();
}
+ public void setDiscoveryService(GardenaDeviceDiscoveryService discoveryService) {
+ this.discoveryService = discoveryService;
+ }
+
/**
* Initializes the GardenaSmart account.
*/
@@ -77,7 +80,6 @@ private void initializeGardena() {
try {
String id = getThing().getUID().getId();
gardenaSmart.init(id, gardenaConfig, instance, scheduler);
- registerDeviceDiscoveryService();
discoveryService.startScan(null);
discoveryService.waitForScanFinishing();
updateStatus(ThingStatus.ONLINE);
@@ -111,40 +113,11 @@ public void dispose() {
private void disposeGardena() {
logger.debug("Disposing Gardena account '{}'", getThing().getUID().getId());
- if (discoveryService != null) {
- discoveryService.stopScan();
- unregisterDeviceDiscoveryService();
- }
+ discoveryService.stopScan();
gardenaSmart.dispose();
}
- /**
- * Registers the Gardena DeviceDiscoveryService.
- */
- private void registerDeviceDiscoveryService() {
- discoveryService = new GardenaDeviceDiscoveryService(this);
- discoveryServiceRegistration = bundleContext.registerService(DiscoveryService.class.getName(), discoveryService,
- new Hashtable<>());
- discoveryService.activate();
- }
-
- /**
- * Unregisters the Gardena DeviceDisoveryService.
- */
- private void unregisterDeviceDiscoveryService() {
- if (discoveryServiceRegistration != null) {
- if (bundleContext != null) {
- GardenaDeviceDiscoveryService service = (GardenaDeviceDiscoveryService) bundleContext
- .getService(discoveryServiceRegistration.getReference());
- service.deactivate();
- }
- discoveryServiceRegistration.unregister();
- discoveryServiceRegistration = null;
- discoveryService = null;
- }
- }
-
/**
* Returns the Gardena Smart Home implementation.
*/
@@ -152,6 +125,11 @@ public GardenaSmart getGardenaSmart() {
return gardenaSmart;
}
+ @Override
+ public Collection> getServices() {
+ return Collections.singleton(GardenaDeviceDiscoveryService.class);
+ }
+
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
if (RefreshType.REFRESH == command) {
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaDeviceConfig.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaDeviceConfig.java
index 3bcc0cd7f65a6..b6bcbaafbb170 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaDeviceConfig.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaDeviceConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaHandlerFactory.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaHandlerFactory.java
index e76c22bb61160..4a16a3930f0e1 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaHandlerFactory.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaThingHandler.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaThingHandler.java
index e9c3dd1ff6b89..b9418c3cbbb59 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaThingHandler.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/handler/GardenaThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Ability.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Ability.java
index f3197fdfcccfd..d3f942ef7c3d3 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Ability.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Ability.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Device.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Device.java
index 683f425099880..7da08bc8135a3 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Device.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Device.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Devices.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Devices.java
index f738ec578119d..7cc7e076cf369 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Devices.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Devices.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Error.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Error.java
index 1ddc963a11042..515ff56833a99 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Error.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Error.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Errors.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Errors.java
index e46b32a8dffca..d7b1c8276ab1e 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Errors.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Errors.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Location.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Location.java
index d5e086bf5ccb4..5b22575fe08d2 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Location.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Location.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Locations.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Locations.java
index 44547e791278a..445c9359267d4 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Locations.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Locations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/NoResult.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/NoResult.java
index 09a0bf0c69389..25204b0643802 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/NoResult.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/NoResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Property.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Property.java
index fe5ad6f76c8cc..24f78d20a3896 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Property.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Property.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/PropertyValue.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/PropertyValue.java
index cee27dfe10e2b..d32007cdbc83e 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/PropertyValue.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/PropertyValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Recurrence.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Recurrence.java
index 4c87566d13eb0..0cf6fea986b2e 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Recurrence.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Recurrence.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/ScheduledEvent.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/ScheduledEvent.java
index 7b242ebbcbed3..01badf5d3c387 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/ScheduledEvent.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/ScheduledEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Session.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Session.java
index a3f9b6e15150c..5f4e41017118b 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Session.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Session.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionAttributes.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionAttributes.java
index f524faaa80c52..e4a039c543498 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionAttributes.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionAttributes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -53,4 +53,4 @@ public String getProvider() {
public void setProvider(String provider) {
this.provider = provider;
}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionWrapper.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionWrapper.java
index 06f1d78a8f36a..31ea53c06cbec 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionWrapper.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/SessionWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Setting.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Setting.java
index dde0d9fed2d4e..ea4e23191460e 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Setting.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/Setting.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/Command.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/Command.java
index 41f0ee0c0960f..14ea5cfb8f1a8 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/Command.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/Command.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilFurtherNoticeCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilFurtherNoticeCommand.java
index c665654489fe0..c770aa54f2485 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilFurtherNoticeCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilFurtherNoticeCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilNextTimerCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilNextTimerCommand.java
index 781105b31f4cb..2126f9e2b9e5a 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilNextTimerCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerParkUntilNextTimerCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartOverrideTimerCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartOverrideTimerCommand.java
index a33495611e196..c0ae40697f434 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartOverrideTimerCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartOverrideTimerCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartResumeScheduleCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartResumeScheduleCommand.java
index a8c89bb17a2e7..adb989eda532f 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartResumeScheduleCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/MowerStartResumeScheduleCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureAmbientTemperatureCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureAmbientTemperatureCommand.java
index 62ca569eb8726..0fb44315eeb5e 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureAmbientTemperatureCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureAmbientTemperatureCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureLightCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureLightCommand.java
index ebf7fc1305f0e..41baf23eb9ccf 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureLightCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureLightCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilHumidityCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilHumidityCommand.java
index a1ed863484f5c..13173843e1f9b 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilHumidityCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilHumidityCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilTemperatureCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilTemperatureCommand.java
index 83b559e868767..075980bdedeb6 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilTemperatureCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SensorMeasureSoilTemperatureCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommand.java
index c126aa1e9afb4..12746eafc2ea1 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommandWrapper.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommandWrapper.java
index 80b5c6f4f0099..89ac8cec41a21 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommandWrapper.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/SettingCommandWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringCancelOverrideCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringCancelOverrideCommand.java
index b3be03756a505..a41cced2673f3 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringCancelOverrideCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringCancelOverrideCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringManualOverrideCommand.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringManualOverrideCommand.java
index d475d18aa3f1b..94542b7327d70 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringManualOverrideCommand.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/command/WateringManualOverrideCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/DateDeserializer.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/DateDeserializer.java
index 3965bb2e95339..61cd9db246215 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/DateDeserializer.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/DateDeserializer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/PropertyValueDeserializer.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/PropertyValueDeserializer.java
index 724a2f0313909..4c33f24b7f6d0 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/PropertyValueDeserializer.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/deser/PropertyValueDeserializer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/BaseProperty.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/BaseProperty.java
index 56817e44e585c..7f0165e38fb2c 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/BaseProperty.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/BaseProperty.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/IrrigationControlWateringProperty.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/IrrigationControlWateringProperty.java
index 795baf545ae9a..ffacb248b2108 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/IrrigationControlWateringProperty.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/IrrigationControlWateringProperty.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/PropertyWrapper.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/PropertyWrapper.java
index 2ac8667d0c680..9e341d142d3ee 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/PropertyWrapper.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/PropertyWrapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/StringProperty.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/StringProperty.java
index 71d8d1e33c67a..73300c6fd2024 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/StringProperty.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/model/property/StringProperty.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/DateUtils.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/DateUtils.java
index 447f15b3444dc..07329adb3048b 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/DateUtils.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/DateUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/UidUtils.java b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/UidUtils.java
index 6a38ffbb7970f..5c3469f87c857 100644
--- a/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/UidUtils.java
+++ b/bundles/org.openhab.binding.gardena/src/main/java/org/openhab/binding/gardena/internal/util/UidUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gardena/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.gardena/src/main/resources/ESH-INF/thing/thing-types.xml
index bb69825e30d4d..fba475b154284 100644
--- a/bundles/org.openhab.binding.gardena/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.gardena/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -10,7 +10,7 @@
-
+
A Gardena Smart Sileno mower
@@ -78,14 +78,14 @@
Number
-
+
Mowing time in minutesSwitch
-
+
Park and pause all timers
@@ -250,7 +250,7 @@
String
-
+
The source for the next start
@@ -305,14 +305,14 @@
Number
-
+
Firmware upload in progressString
-
+
Available firmware version
@@ -586,7 +586,7 @@
-
+
@@ -703,7 +703,7 @@
Number
-
+
Turn on pressure
diff --git a/bundles/org.openhab.binding.globalcache/NOTICE b/bundles/org.openhab.binding.globalcache/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.globalcache/NOTICE
+++ b/bundles/org.openhab.binding.globalcache/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.globalcache/README.md b/bundles/org.openhab.binding.globalcache/README.md
index 4004bc3e05228..742831088e7a3 100644
--- a/bundles/org.openhab.binding.globalcache/README.md
+++ b/bundles/org.openhab.binding.globalcache/README.md
@@ -1,74 +1,140 @@
# GlobalCache Binding
-The [GlobalCache](http://www.globalcache.com) binding is used to enable communication
-between openHAB and GlobalCache [GC-100](http://www.globalcache.com/products/gc-100/) and [iTach](http://www.globalcache.com/products/itach/) family of devices.
-Global Cache devices enable the control and automation of infrared, serial, and contact closure devices through an IP network (wired or wireless).
+The [GlobalCache](https://www.globalcache.com) binding enables communication
+between openHAB and GlobalCache [GC-100](https://www.globalcache.com/products/gc-100/) and [iTach](https://www.globalcache.com/products/itach/) family of devices.
+GlobalCache devices enable the control and automation of infrared, serial, and contact closure devices over a wired or wireless IP network.
## Overview
The GlobalCache binding discovers GC-100 and iTach devices on the network, and creates an inbox entry for each discovered device.
-Once added as a thing, the user can complete the configuration of the device, such as selecting a MAP file for IR and serial codes.
+Once added as a thing, the user can complete the configuration of the device, such as adding the name of the MAP file that contains IR and/or serial codes.
## Devices Supported
Devices are discovered dynamically.
-There is a single thing created for each physical GC-100 or iTach device connected to the network.
+There is a single thing created for each physical GC-100 or iTach device discovered on the network.
Each thing has channels that correspond to the physical connectors on the device.
Currently supported devices include:
-- iTach WF2IR and IP2IR
-- iTach WF2CC and IP2CC
-- iTach WF2SL and IP2SL
-- iTach Flex Ethernet
-- iTach Flex Ethernet PoE
-- iTach Flex WiFi
-- GC-100-6
-- GC-100-12
-- ZMOTE Wi-Fi Universal Remote
+| Device | Thing ID |
+|-----------------------------------|-----------|
+| iTach WF2IR and IP2IR | itachIR |
+| iTach WF2SL and IP2SL | itachSL |
+| iTach WF2CC and IP2CC | itachCC |
+| iTach Flex Ethernet and Flex WiFi | itachFlex |
+| GC-100-6 | gc100_06 |
+| GC-100-12 | gc100_12 |
+| ZMOTE WiFi Universal Remote | zmote |
-## Device Discovery
+## Thing Configuration
-GlobalCache GC-100, iTach, and Zmote devices emit an **announcement beacon** every 10-20 seconds on multicast address 239.255.250.250:9131.
-The GlobalCache binding will automatically detect those devices, then add them to the inbox.
+The binding uses the MAP transformation service to convert commands into IR and/or serial codes.
+If not already installed, the MAP transformation service is installed automatically when the binding is installed.
-Background discovery is **enabled** by default.
-To disable background discovery, add the following line to the *conf/services/runtime.cfg* file:
+In the event that the device's IP address is changed, the thing configuration must be updated manually, as the device cannot auto-discover the change.
-```text
-discovery.globalcache:background=false
-```
+### iTach IR and ZMOTE
-Note that automatic device discovery **will not work** with GC-100's running firmware earlier than v3.0 as those versions do not emit announcement beacons on the multicast address.
-GC-100's running firmware earlier than v3.0 must be configured manually, either through *Paper UI* or using a *.things* file.
-See below.
+The iTach IR (Infrared) and ZMOTE devices have the following configuration parameters.
-## Thing Configuration
+| Parameter | Parameter ID | Required/Optional | Description |
+|--------------|--------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
+| MAP Filename | mapFilename | Required | The MAP file that contains mappings of commands to the IR codes. |
-The iTach IR, iTach SL, GC-100, and Zmote devices require a MAP file in order to transform the openHAB command to an IR command or to a serial command.
-In the thing configuration, enter the name of the MAP file containing the IR and/or serial codes ().
-The MAP file should be placed in the *conf/transform* directory.
-See example below.
+### iTach SL
+
+The iTach SL (Serial) device has the following configuration parameters.
+Note that you must use the iTach SL's web application to set the serial port
+parameters for **baud rate**, **flow control**, and **parity** to match the configuration of the end device to which the iTach is connected.
+
+| Parameter | Parameter ID | Required/Optional | Description |
+|----------------|---------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
+| MAP Filename | mapFilename | Required | The MAP file that contains mappings of commands to the serial codes. |
+| Enable Two Way | enableTwoWay1 | Optional | Enable two-way communication with the device. By default, the binding only sends commands to the device. |
+| EOM Delimiter | eomDelimiter1 | Optional | The End-of-Message delimiter used to identify the end of a message that the binding received from the device. |
+
+### iTach CC
+
+The iTach CC (Contact Closure) device has the following configuration parameters.
-For iTach SL and GC-100 devices that support serial connections, you must use the GlobalCache device web application to set the serial port parameters for **baud rate**, **flow control**, and **parity**.
-These settings must match the serial port settings of the AV device being controlled.
+| Parameter | Parameter ID | Required/Optional | Description |
+|--------------|--------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
-For iTach Flex devices, you must set the Active Cable configuration parameter to match how the Flex is configured.
+### iTach Flex
+
+The iTach Flex device has the following configuration parameters.
+Note that you must set the Active Cable configuration parameter to match how the Flex is configured.
Available options are Infrared, Serial, and Relay/Sensor.
The default is Infrared.
-The device's IP address is set at time of discovery.
-However, in the event that the device's IP address is changed, the device IP address must be changed in the thing's configuration.
+When the iTach Fles is configured for serial operation, you must use the iTach Flex's web application to set the serial port
+parameters for **baud rate**, **flow control**, and **parity** to match the configuration of the end device to which the iTach Flex is connected.
+
+| Parameter | Parameter ID | Required/Optional | Description |
+|----------------|---------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
+| MAP Filename | mapFilename | Required | The MAP file that contains mappings of commands to the IR and/or serial codes. |
+| Active Cable | activeCable | Required | Available options are Infrared (FLEX_INFRARED), Serial (FLEX_SERIAL) or Relay/Sensor (FLEX_RELAY). |
+| Enable Two Way | enableTwoWay1 | Optional | Enable two-way communication with the device. By default, the binding only sends commands to the device. |
+| EOM Delimiter | eomDelimiter1 | Optional | The End-of-Message delimiter used to identify the end of a message that the binding received from the device. |
+
+### GC-100-6
+
+The GC-100-6 device has the following configuration parameters.
+Note that you must use the GC-100-6's web application to set the serial port
+parameters for **baud rate**, **flow control**, and **parity** to match the configuration of the end device to which the GC-100-6 is connected.
+
+| Parameter | Parameter ID | Required/Optional | Description |
+|----------------|---------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
+| MAP Filename | mapFilename | Required | The MAP file that contains mappings of commands to the IR and serial codes. |
+| Enable Two Way | enableTwoWay1 | Optional | Enable two-way communication with the device. By default, the binding only sends commands to the device. |
+| EOM Delimiter | eomDelimiter1 | Optional | The End-of-Message delimiter used to identify the end of a message that the binding received from the device. |
+
+### GC-100-12
+
+The GC-100-12 device has the following configuration parameters.
+Note that you must use the GC-100-12's web application to set the serial port
+parameters for **baud rate**, **flow control**, and **parity** to match the configuration of the end device to which the GC-100-12 is connected.
+
+| Parameter | Parameter ID | Required/Optional | Description |
+|------------------|---------------|-------------------|-------------|
+| IP Address | ipAddress | Required | The device's IP address. |
+| MAP Filename | mapFilename | Required | The MAP file that contains mappings of commands to the IR and/or serial codes. |
+| Enable Two Way 1 | enableTwoWay1 | Optional | Enable two-way communication between the binding and the device on serial port #1. By default, the binding only sends commands to the device. |
+| EOM Delimiter 1 | eomDelimiter1 | Optional | The End-of-Message delimiter used to identify the end of a message that the binding received from the device on serial port #1. |
+| Enable Two Way 2 | enableTwoWay2 | Optional | Enable two-way communication between the binding and the device on serial port #2. By default, the binding only sends commands to the device. |
+| EOM Delimiter 2 | eomDelimiter2 | Optional | The End-of-Message delimiter used to identify the end of a message that the binding received from the device on serial port #2. |
### Manual Thing Creation
-Devices can be manually created in the *PaperUI* or *HABmin*, or by placing a *.things* file in the *conf/things* directory.
+Devices can be created in the *Paper UI* or *HABmin*, or by placing a *.things* file in the *conf/things* directory.
See example below.
### Binding Dependencies
The GlobalCache binding uses the **transform** binding to map commands to IR and serial codes. See example below.
+## Device Discovery
+
+GlobalCache GC-100, iTach, and Zmote devices emit an **announcement beacon** every 10-20 seconds on multicast address 239.255.250.250:9131.
+The GlobalCache binding will automatically detect those devices, then add them to the inbox.
+
+Background discovery is **enabled** by default.
+To disable background discovery, add the following line to the *conf/services/runtime.cfg* file:
+
+```text
+discovery.globalcache:background=false
+```
+
+Note that automatic device discovery **will not work** with GC-100's running firmware earlier than v3.0 as those versions do not emit announcement beacons on the multicast address.
+GC-100's running firmware earlier than v3.0 must be configured manually, either through *Paper UI* or using a *.things* file.
+See below.
+
## Channels and Channel Types
There are four *channel types* used across the GC-100 and iTach family of devices.
@@ -119,7 +185,7 @@ Here's an example of the hex code format:
0000 006E 0000 0024 0154 00AA 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003F 0015 0015 0015 0015 0015 0015 0015 0015 0015 003F 0015 003F 0015 003F 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003F 0015 003F 0015 003F 0015 003F 0015 003F 0015 003F 0015 003F 0015 003F 0015 0015 0015 0015 0015 069B 0154 0055 0015 0EA9
```
-The [Global Cache iConvert utility](http://www.globalcache.com/files/docs/gc_iconvert_relnotes.txt) can be used to convert between the two formats, if desired.
+The [Global Cache iConvert utility](https://www.globalcache.com/files/docs/gc_iconvert_relnotes.txt) can be used to convert between the two formats, if desired.
The iConvert utility is available on the Windows platform only.
Global Cache also maintains an online [IR Control Tower database](https://irdb.globalcache.com/) of IR codes.
There are numerous other sources of IR codes, such as iRule and RemoteCentral.
diff --git a/bundles/org.openhab.binding.globalcache/pom.xml b/bundles/org.openhab.binding.globalcache/pom.xml
index b6dc34a8736b9..c9f3021cddc93 100644
--- a/bundles/org.openhab.binding.globalcache/pom.xml
+++ b/bundles/org.openhab.binding.globalcache/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.globalcache
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheBindingConstants.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheBindingConstants.java
index 35a7599c871b9..8c09165d396f0 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheBindingConstants.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheHandlerFactory.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheHandlerFactory.java
index 26a043db1185e..abec1634f637d 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheHandlerFactory.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/GlobalCacheHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/AbstractCommand.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/AbstractCommand.java
index 151efc431c56b..08cbee2760595 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/AbstractCommand.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/AbstractCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetdevices.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetdevices.java
index c75827f914993..b2378938f9a4b 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetdevices.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetdevices.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetserial.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetserial.java
index ce44ce4039d70..bb386507227db 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetserial.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetserial.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetstate.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetstate.java
index e5a301c63815b..31a5465ffd82c 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetstate.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetstate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetversion.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetversion.java
index 49c0750f917f8..c280876da6037 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetversion.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandGetversion.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandInterface.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandInterface.java
index 0a549881e306b..5c66ed0a3b662 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandInterface.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandInterface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendir.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendir.java
index c86f01d03384c..b82fd72dd9dee 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendir.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendir.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendserial.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendserial.java
index 0a99f11e397db..4c5975de9ff2b 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendserial.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSendserial.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetserial.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetserial.java
index 5a868f1f38c91..a47ac45cad043 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetserial.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetserial.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetstate.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetstate.java
index 58aef0bbe1191..9d2c6abbc2882 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetstate.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/CommandSetstate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/RequestMessage.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/RequestMessage.java
index b63be35436ee9..535571f2d944a 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/RequestMessage.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/RequestMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/ResponseMessage.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/ResponseMessage.java
index eb9a241ce9754..9bdb773a9cf3c 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/ResponseMessage.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/command/ResponseMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/GlobalCacheDiscoveryService.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/GlobalCacheDiscoveryService.java
index d8e61beaafd1e..ea575c7596fae 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/GlobalCacheDiscoveryService.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/GlobalCacheDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/MulticastListener.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/MulticastListener.java
index bfc1df497d522..96ec00b0ebc13 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/MulticastListener.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/discovery/MulticastListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java
index 14e8456678823..e9fafe1b0ad90 100644
--- a/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java
+++ b/bundles/org.openhab.binding.globalcache/src/main/java/org/openhab/binding/globalcache/internal/handler/GlobalCacheHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -61,6 +61,8 @@
import org.openhab.binding.globalcache.internal.command.CommandSetstate;
import org.openhab.binding.globalcache.internal.command.RequestMessage;
import org.openhab.binding.globalcache.internal.command.ResponseMessage;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,6 +75,8 @@
public class GlobalCacheHandler extends BaseThingHandler {
private Logger logger = LoggerFactory.getLogger(GlobalCacheHandler.class);
+ private final BundleContext bundleContext;
+
private static final String GLOBALCACHE_THREAD_POOL = "globalCacheHandler";
private InetAddress ifAddress;
@@ -97,6 +101,7 @@ public GlobalCacheHandler(@NonNull Thing gcDevice, String ipv4Address) {
commandProcessor = new CommandProcessor();
scheduledFuture = null;
this.ipv4Address = ipv4Address;
+ this.bundleContext = FrameworkUtil.getBundle(GlobalCacheHandler.class).getBundleContext();
}
@Override
diff --git a/bundles/org.openhab.binding.gpstracker/.project b/bundles/org.openhab.binding.gpstracker/.project
index ac5b04dafc52f..2f0cad55df7fb 100644
--- a/bundles/org.openhab.binding.gpstracker/.project
+++ b/bundles/org.openhab.binding.gpstracker/.project
@@ -20,4 +20,4 @@
org.eclipse.jdt.core.javanatureorg.eclipse.m2e.core.maven2Nature
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.gpstracker/NOTICE b/bundles/org.openhab.binding.gpstracker/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.gpstracker/NOTICE
+++ b/bundles/org.openhab.binding.gpstracker/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.gpstracker/README.md b/bundles/org.openhab.binding.gpstracker/README.md
index 458ee5ae1e38e..10ca81db52ad3 100644
--- a/bundles/org.openhab.binding.gpstracker/README.md
+++ b/bundles/org.openhab.binding.gpstracker/README.md
@@ -1,13 +1,15 @@
# GPSTracker Binding
-This binding allows you to connect mobile GPS tracker applications to openHAB and process GPS location reports. Currently two applications are supported:
+This binding allows you to connect mobile GPS tracker applications to openHAB and process GPS location reports.
+
+Currently two applications are supported:
* [OwnTracks](https://owntracks.org/booklet/) - iOS, Android
* [GPSLogger](https://gpslogger.app/) - Android
GPS location reports are sent to openHAB using HTTP.
Please be aware that this communication uses the public network so make sure your openHAB installation is [secured](https://www.openhab.org/docs/installation/security.html#encrypted-communication) (but accessible from public internet through myopenhab.org or using a reverse proxy) and you configured HTTP**S** access in tracking applications.
-The easiest way to achieve this is to use the [openHAB Cloud Connector](https://www.openhab.org/addons/integrations/openhabcloud/) in conjunction with [myopenHAB.org](http://www.myopenhab.org/).
+The easiest way to achieve this is to use the [openHAB Cloud Connector](https://www.openhab.org/addons/integrations/openhabcloud/) in conjunction with [myopenHAB.org](https://www.myopenhab.org/).
The binding can process two message types received from trackers:
diff --git a/bundles/org.openhab.binding.gpstracker/pom.xml b/bundles/org.openhab.binding.gpstracker/pom.xml
index 325464d23811a..592029988255b 100644
--- a/bundles/org.openhab.binding.gpstracker/pom.xml
+++ b/bundles/org.openhab.binding.gpstracker/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.gpstracker
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/feature/feature.xml b/bundles/org.openhab.binding.gpstracker/src/main/feature/feature.xml
index f82016ea20f6e..a36535e11f1f7 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.gpstracker/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerBindingConstants.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerBindingConstants.java
index aa3132737e3b1..3c8e2cfc3d027 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerBindingConstants.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerHandlerFactory.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerHandlerFactory.java
index 6b2c998a1a1a0..c95054e7c618e 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerHandlerFactory.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/GPSTrackerHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/config/ConfigHelper.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/config/ConfigHelper.java
index f43d652c96c39..7aac7e187f5ff 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/config/ConfigHelper.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/config/ConfigHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/discovery/TrackerDiscoveryService.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/discovery/TrackerDiscoveryService.java
index 7127a59938caa..6753c511d85fb 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/discovery/TrackerDiscoveryService.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/discovery/TrackerDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/handler/TrackerHandler.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/handler/TrackerHandler.java
index a916ae691e195..58ffe7b603a42 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/handler/TrackerHandler.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/handler/TrackerHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/LocationMessage.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/LocationMessage.java
index cdddb96127cf4..663b9288e5fe9 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/LocationMessage.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/LocationMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/MessageUtil.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/MessageUtil.java
index bdd64f144fb56..22c3b9c1df4e0 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/MessageUtil.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/MessageUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationBroker.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationBroker.java
index 10d8dc735ee6f..9b952c981eb7d 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationBroker.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationBroker.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationHandler.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationHandler.java
index 480e10a7b1370..c6b969f806e98 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationHandler.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/NotificationHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/TransitionMessage.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/TransitionMessage.java
index 760351d7b5430..bbcded91c203e 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/TransitionMessage.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/TransitionMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerProfileFactory.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerProfileFactory.java
index 506e1466ae580..c95cc1d95b7a5 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerProfileFactory.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerProfileFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerTriggerSwitchProfile.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerTriggerSwitchProfile.java
index f294d7a2152c0..1c996f7812dc6 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerTriggerSwitchProfile.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/profile/GPSTrackerTriggerSwitchProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/AbstractCallbackServlet.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/AbstractCallbackServlet.java
index f1979441f67c8..e7dae2a8a4153 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/AbstractCallbackServlet.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/AbstractCallbackServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/TrackerRegistry.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/TrackerRegistry.java
index cd445beecf8e4..5f425b84a5edc 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/TrackerRegistry.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/TrackerRegistry.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/gpslogger/GPSLoggerCallbackServlet.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/gpslogger/GPSLoggerCallbackServlet.java
index 6dbff7925f042..f9d81464829d8 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/gpslogger/GPSLoggerCallbackServlet.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/gpslogger/GPSLoggerCallbackServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/owntracks/OwnTracksCallbackServlet.java b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/owntracks/OwnTracksCallbackServlet.java
index 2a42856f4f18b..2a2286c500523 100644
--- a/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/owntracks/OwnTracksCallbackServlet.java
+++ b/bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/provider/owntracks/OwnTracksCallbackServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/.project b/bundles/org.openhab.binding.groheondus/.project
index bb051e9edf265..bbd21afdce10d 100644
--- a/bundles/org.openhab.binding.groheondus/.project
+++ b/bundles/org.openhab.binding.groheondus/.project
@@ -20,4 +20,4 @@
org.eclipse.jdt.core.javanatureorg.eclipse.m2e.core.maven2Nature
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.groheondus/NOTICE b/bundles/org.openhab.binding.groheondus/NOTICE
index 57a8082382933..cb9af6b0ee993 100644
--- a/bundles/org.openhab.binding.groheondus/NOTICE
+++ b/bundles/org.openhab.binding.groheondus/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.groheondus/README.md b/bundles/org.openhab.binding.groheondus/README.md
index e4e3798f695a8..f8a886cbd127a 100644
--- a/bundles/org.openhab.binding.groheondus/README.md
+++ b/bundles/org.openhab.binding.groheondus/README.md
@@ -24,7 +24,7 @@ This binding does not require any configuration outside of things.
## Thing Configuration
-There's only one thing and one bridge that needs to be configured together to get this binding to work, see the full example section for a self-explaining example.
+There is only one thing and one bridge that needs to be configured together to get this binding to work, see the full example section for a self-explaining example.
### Account Bridge
@@ -103,7 +103,7 @@ Number Humidity_Sense "Humidity [%.1f %unit%]" {channel="groheondus:sense:groheo
Actually obtaining a `refresh token` from the GROHE ONDUS Api requires some manual steps.
In order to more deeply understand what is happening during the process, you can read more information about the OAuth2/OIDC (OpenID Connect) login flow by searching for these terms in your favorite search engine.
-Here's a short step-by-step guide on how to obtain a refresh token:
+Here is a short step-by-step guide on how to obtain a refresh token:
1. Open a new tab in your Internet browser
2. Open the developer console of your browser (mostly possible by pressing F12)
diff --git a/bundles/org.openhab.binding.groheondus/pom.xml b/bundles/org.openhab.binding.groheondus/pom.xml
index 502d432ae1647..52a02e2a824d1 100644
--- a/bundles/org.openhab.binding.groheondus/pom.xml
+++ b/bundles/org.openhab.binding.groheondus/pom.xml
@@ -1,23 +1,39 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.groheondusopenHAB Add-ons :: Bundles :: GROHE ONDUS Binding
+
+ commons-text,commons-lang3
+
+
org.groheondus-api0.0.11
+ compile
+
+
+ org.apache.commons
+ commons-text
+ 1.6
+ compile
+
+
+ org.apache.commons
+ commons-lang3
+ 3.8.1
+ compile
diff --git a/bundles/org.openhab.binding.groheondus/src/main/feature/feature.xml b/bundles/org.openhab.binding.groheondus/src/main/feature/feature.xml
index 1aafe234ecacd..81aa944f71a05 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.groheondus/src/main/feature/feature.xml
@@ -1,13 +1,12 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab.tp-jacksonmvn:org.apache.commons/commons-text/1.6mvn:org.apache.commons/commons-lang3/3.8.1
- mvn:org.grohe/ondus-api/0.0.11mvn:org.openhab.addons.bundles/org.openhab.binding.groheondus/${project.version}
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountServlet.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountServlet.java
index 4e37a32b2e34a..58676e016da69 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountServlet.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -51,7 +51,7 @@ public AccountServlet(HttpService httpService, String bridgeId, GroheOndusAccoun
try {
httpService.registerServlet(servletUrl(), this, null, httpService.createDefaultHttpContext());
} catch (Exception e) {
- logger.warn("Register servlet fails {}", e);
+ logger.warn("Register servlet fails", e);
}
}
@@ -133,7 +133,7 @@ public void dispose() {
try {
httpService.unregister(servletUrl());
} catch (UnsupportedEncodingException e) {
- logger.warn("Unregistration of servlet failed wth {}", e);
+ logger.warn("Unregistration of servlet failed", e);
}
}
}
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountsServlet.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountsServlet.java
index 0f45ab2e4dbf6..56a2a65c4016a 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountsServlet.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/AccountsServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -55,7 +55,7 @@ public AccountsServlet(@Reference HttpService httpService) {
try {
httpService.registerServlet(SERVLET_URL, this, null, httpService.createDefaultHttpContext());
} catch (ServletException | NamespaceException e) {
- logger.warn("Register servlet fails {}", e);
+ logger.warn("Register servlet fails", e);
}
}
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusAccountConfiguration.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusAccountConfiguration.java
index ebbb1ee573c09..f91e110537310 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusAccountConfiguration.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusAccountConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusApplianceConfiguration.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusApplianceConfiguration.java
index 770d446bb4a8d..0aa554fe5a00a 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusApplianceConfiguration.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusApplianceConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusBindingConstants.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusBindingConstants.java
index 2ea7d33321116..3505c4dc78c84 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusBindingConstants.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/GroheOndusBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/discovery/GroheOndusDiscoveryService.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/discovery/GroheOndusDiscoveryService.java
index 8a30210209da6..6915e8c0317d8 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/discovery/GroheOndusDiscoveryService.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/discovery/GroheOndusDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusAccountHandler.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusAccountHandler.java
index 8de7fb1ce4594..7225ceb6f196b 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusAccountHandler.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusAccountHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -93,7 +93,7 @@ private void scheduleTokenRefresh() {
try {
setRefreshToken(ondusService.refreshAuthorization());
} catch (Exception e) {
- logger.warn("Could not refresh authorization for GROHE ONDUS account, error {}", e);
+ logger.warn("Could not refresh authorization for GROHE ONDUS account", e);
}
}, between.getSeconds(), TimeUnit.SECONDS);
}
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusBaseHandler.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusBaseHandler.java
index 1203dc406c5e9..1db3ee535912d 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusBaseHandler.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusBaseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusHandlerFactory.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusHandlerFactory.java
index 35d995791b87a..cb98b63f458b3 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusHandlerFactory.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseGuardHandler.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseGuardHandler.java
index 0f1f017d52bfe..451aa921f96ea 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseGuardHandler.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseGuardHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseHandler.java b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseHandler.java
index f4a70a02c7ddd..498ac93aa7272 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseHandler.java
+++ b/bundles/org.openhab.binding.groheondus/src/main/java/org/openhab/binding/groheondus/internal/handler/GroheOndusSenseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.groheondus/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.groheondus/src/main/resources/ESH-INF/thing/thing-types.xml
index 062dc6efffc40..53173105d8cda 100644
--- a/bundles/org.openhab.binding.groheondus/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.groheondus/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -100,7 +100,7 @@
String
-
+
The name of the appliance
@@ -116,7 +116,7 @@
Switch
-
+
Valve switch
@@ -133,13 +133,14 @@
Number
-
+
The amount of water consumed in the given time period.The timeframe in days to get the water consumption of
+ 1
diff --git a/bundles/org.openhab.binding.harmonyhub/.classpath b/bundles/org.openhab.binding.harmonyhub/.classpath
index a20af92700b49..336929d7931ac 100644
--- a/bundles/org.openhab.binding.harmonyhub/.classpath
+++ b/bundles/org.openhab.binding.harmonyhub/.classpath
@@ -28,5 +28,16 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.harmonyhub/NOTICE b/bundles/org.openhab.binding.harmonyhub/NOTICE
index e374be948c848..f26b23eaf999b 100644
--- a/bundles/org.openhab.binding.harmonyhub/NOTICE
+++ b/bundles/org.openhab.binding.harmonyhub/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.harmonyhub/README.md b/bundles/org.openhab.binding.harmonyhub/README.md
index 9089883698c88..d70d6fe6a09fc 100644
--- a/bundles/org.openhab.binding.harmonyhub/README.md
+++ b/bundles/org.openhab.binding.harmonyhub/README.md
@@ -1,11 +1,11 @@
# Logitech Harmony Hub Binding
-The Harmony Hub binding is used to enable communication between openHAB2 and multiple Logitech Harmony Hub devices.
+The Harmony Hub binding is used to enable communication between openHAB and multiple Logitech Harmony Hub devices.
The API exposed by the Harmony Hub is relatively limited, but it does allow for reading the current activity as well as setting the activity and sending device commands.
## Overview
-The Harmony binding represents a "Hub" as a bridge thing type and "Devices" as things connected to the bridge.
+The Harmony binding represents a "Hub" as a bridge thing type and "Devices" as things connected to the bridge.
### Hub
@@ -72,8 +72,8 @@ String HarmonyGreatRoomActivity "Current Activity [%s]" (gMain) {
Hubs can also send a button press to a device associated with the current activity.
A String item can be used to send any button name/label or a Player item can be used to send Play/Pause/FastForward/Rewind/SkipForward/SkipBackward.
-This mimics the physical remote where buttons are mapped differently depending on which activity is running.
-For example the play button may be sent to a DVD player when running a "Watch DVD" activity, or it may be sent to a AppleTV when running a "Watch Movie" activity.
+This mimics the physical remote where buttons are mapped differently depending on which activity is running.
+For example the play button may be sent to a DVD player when running a "Watch DVD" activity, or it may be sent to an Apple TV when running a "Watch Movie" activity.
```java
diff --git a/bundles/org.openhab.binding.harmonyhub/pom.xml b/bundles/org.openhab.binding.harmonyhub/pom.xml
index 211c2b9cf8934..eeec72535cf3c 100644
--- a/bundles/org.openhab.binding.harmonyhub/pom.xml
+++ b/bundles/org.openhab.binding.harmonyhub/pom.xml
@@ -1,24 +1,27 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.harmonyhubopenHAB Add-ons :: Bundles :: HarmonyHub Binding
+
+ !com.martiansoftware.jsap.*,!org.kohsuke.*
+
+
com.github.digitaldanharmony-client
- 1.1.4
- provided
+ 1.1.5
+ compile
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/feature/feature.xml b/bundles/org.openhab.binding.harmonyhub/src/main/feature/feature.xml
index d0770d2beb655..010ee8b9b2bf1 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/feature/feature.xml
@@ -1,10 +1,9 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:com.github.digitaldan/harmony-client/1.1.4mvn:org.openhab.addons.bundles/org.openhab.binding.harmonyhub/${project.version}
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubBindingConstants.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubBindingConstants.java
index 369d262d99237..8f3183385a0b1 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubBindingConstants.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubHandlerFactory.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubHandlerFactory.java
index 216e7421fb4e8..4419fea862828 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubHandlerFactory.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/HarmonyHubHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -26,6 +26,7 @@
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Thing;
@@ -35,15 +36,18 @@
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
import org.eclipse.smarthome.core.thing.type.ChannelGroupType;
+import org.eclipse.smarthome.core.thing.type.ChannelGroupTypeProvider;
import org.eclipse.smarthome.core.thing.type.ChannelGroupTypeUID;
import org.eclipse.smarthome.core.thing.type.ChannelType;
import org.eclipse.smarthome.core.thing.type.ChannelTypeProvider;
import org.eclipse.smarthome.core.thing.type.ChannelTypeUID;
+import org.eclipse.smarthome.io.net.http.HttpClientFactory;
import org.openhab.binding.harmonyhub.internal.discovery.HarmonyDeviceDiscoveryService;
import org.openhab.binding.harmonyhub.internal.handler.HarmonyDeviceHandler;
import org.openhab.binding.harmonyhub.internal.handler.HarmonyHubHandler;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* The {@link HarmonyHubHandlerFactory} is responsible for creating things and thing
@@ -53,9 +57,10 @@
* @author Wouter Born - Add null annotations
*/
@NonNullByDefault
-@Component(service = { ThingHandlerFactory.class,
- ChannelTypeProvider.class }, configurationPid = "binding.harmonyhub")
-public class HarmonyHubHandlerFactory extends BaseThingHandlerFactory implements ChannelTypeProvider {
+@Component(service = { ThingHandlerFactory.class, ChannelTypeProvider.class,
+ ChannelGroupTypeProvider.class }, configurationPid = "binding.harmonyhub")
+public class HarmonyHubHandlerFactory extends BaseThingHandlerFactory
+ implements ChannelTypeProvider, ChannelGroupTypeProvider {
private static final Set SUPPORTED_THING_TYPES_UIDS = Stream
.concat(HarmonyHubHandler.SUPPORTED_THING_TYPES_UIDS.stream(),
@@ -63,6 +68,7 @@ public class HarmonyHubHandlerFactory extends BaseThingHandlerFactory implements
.collect(Collectors.toSet());
private final Map> discoveryServiceRegs = new HashMap<>();
+ private @NonNullByDefault({}) HttpClient httpClient;
private final List channelTypes = new CopyOnWriteArrayList<>();
private final List channelGroupTypes = new CopyOnWriteArrayList<>();
@@ -111,7 +117,7 @@ private synchronized void registerHarmonyDeviceDiscoveryService(HarmonyHubHandle
}
@Override
- public @Nullable Collection getChannelTypes(@Nullable Locale locale) {
+ public Collection getChannelTypes(@Nullable Locale locale) {
return channelTypes;
}
@@ -137,10 +143,23 @@ private synchronized void registerHarmonyDeviceDiscoveryService(HarmonyHubHandle
}
@Override
- public @Nullable Collection getChannelGroupTypes(@Nullable Locale locale) {
+ public Collection getChannelGroupTypes(@Nullable Locale locale) {
return channelGroupTypes;
}
+ @Reference
+ protected void setHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = httpClientFactory.getCommonHttpClient();
+ }
+
+ protected void unsetHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = null;
+ }
+
+ public HttpClient getHttpClient() {
+ return this.httpClient;
+ }
+
public void addChannelType(ChannelType type) {
channelTypes.add(type);
}
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyDeviceConfig.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyDeviceConfig.java
index a7def38b6b01a..b09ee3cb2ee41 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyDeviceConfig.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyDeviceConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyHubConfig.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyHubConfig.java
index a44679656f17e..8a5010d91ceb7 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyHubConfig.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/config/HarmonyHubConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyDeviceDiscoveryService.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyDeviceDiscoveryService.java
index 75ce0ade2db91..891cddce141d5 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyDeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyDeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyHubDiscoveryService.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyHubDiscoveryService.java
index 7e32c28c95efd..f9170f42c43d5 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyHubDiscoveryService.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/discovery/HarmonyHubDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,7 +18,6 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.io.StringReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
@@ -29,11 +28,14 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
-import java.util.Properties;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
@@ -245,39 +247,30 @@ private void run() {
break;
}
logger.trace("READ {}", input);
- Properties properties = readProperties(input);
-
- String friendlyName = properties.getProperty("friendlyName");
- if (!responses.contains(friendlyName)) {
- responses.add(friendlyName);
- hubDiscovered(properties);
+ // response format is key1:value1;key2:value2;key3:value3;
+ Map properties = Stream.of(input.split(";")).map(line -> line.split(":", 2))
+ .collect(Collectors.toMap(entry -> entry[0], entry -> entry[1]));
+ String friendlyName = properties.get("friendlyName");
+ String hostName = properties.get("host_name");
+ String ip = properties.get("ip");
+ if (StringUtils.isNotBlank(friendlyName) && StringUtils.isNotBlank(hostName)
+ && StringUtils.isNotBlank(ip) && !responses.contains(hostName)) {
+ responses.add(hostName);
+ hubDiscovered(ip, friendlyName, hostName);
}
}
- } catch (IOException e) {
+ } catch (IOException | IndexOutOfBoundsException e) {
if (running) {
logger.debug("Error connecting with found hub", e);
}
}
}
}
-
- private Properties readProperties(String input) throws IOException {
- String propsString = input.replaceAll(";", "\n");
- propsString = propsString.replaceAll(":", "=");
- Properties properties = new Properties();
- properties.load(new StringReader(propsString));
- return properties;
- }
-
}
- private void hubDiscovered(Properties properties) {
- String ip = properties.getProperty("ip");
- String friendlyName = properties.getProperty("friendlyName");
- String thingId = properties.getProperty("host_name").replaceAll("[^A-Za-z0-9\\-_]", "");
-
+ private void hubDiscovered(String ip, String friendlyName, String hostName) {
+ String thingId = hostName.replaceAll("[^A-Za-z0-9\\-_]", "");
logger.trace("Adding HarmonyHub {} ({}) at host {}", friendlyName, thingId, ip);
-
ThingUID uid = new ThingUID(HARMONY_HUB_THING_TYPE, thingId);
// @formatter:off
thingDiscovered(DiscoveryResultBuilder.create(uid)
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyDeviceHandler.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyDeviceHandler.java
index 72ae185042a3c..913453fd26e62 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyDeviceHandler.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyDeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -85,14 +85,13 @@ public HarmonyDeviceHandler(Thing thing, HarmonyHubHandlerFactory factory) {
public void handleCommand(ChannelUID channelUID, Command command) {
logger.trace("Handling command '{}' for {}", command, channelUID);
- Channel channel = getThing().getChannel(channelUID.getId());
- if (channel == null) {
- logger.warn("No such channel: {}", channelUID);
+ if (command instanceof RefreshType) {
+ // nothing to refresh
return;
}
- if (command instanceof RefreshType) {
- // nothing to refresh
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ logger.debug("Hub is offline, ignoring command {} for channel {}", command, channelUID);
return;
}
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java
index 07938589fbc1a..df3088d537f52 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HarmonyHubHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -95,7 +95,7 @@ public class HarmonyHubHandler extends BaseBridgeHandler implements HarmonyClien
public HarmonyHubHandler(Bridge bridge, HarmonyHubHandlerFactory factory) {
super(bridge);
this.factory = factory;
- client = new HarmonyClient();
+ client = new HarmonyClient(factory.getHttpClient());
client.addListener(this);
}
@@ -103,8 +103,8 @@ public HarmonyHubHandler(Bridge bridge, HarmonyHubHandlerFactory factory) {
public void handleCommand(ChannelUID channelUID, Command command) {
logger.trace("Handling command '{}' for {}", command, channelUID);
- if (!client.isConnected()) {
- logger.warn("Cannot send command '{}' on {} because HarmonyClient is not connected", command, channelUID);
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ logger.debug("Hub is offline, ignoring command {} for channel {}", command, channelUID);
return;
}
diff --git a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HubStatusListener.java b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HubStatusListener.java
index d26c0b6de3b00..80dee05c6987a 100644
--- a/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HubStatusListener.java
+++ b/bundles/org.openhab.binding.harmonyhub/src/main/java/org/openhab/binding/harmonyhub/internal/handler/HubStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdanywhere/NOTICE b/bundles/org.openhab.binding.hdanywhere/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.hdanywhere/NOTICE
+++ b/bundles/org.openhab.binding.hdanywhere/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.hdanywhere/README.md b/bundles/org.openhab.binding.hdanywhere/README.md
index 55b937286f022..8c425eeac55a0 100644
--- a/bundles/org.openhab.binding.hdanywhere/README.md
+++ b/bundles/org.openhab.binding.hdanywhere/README.md
@@ -1,6 +1,6 @@
# HDanywhere Binding
-This binding integrates with [HDanywhere](http://www.hdanywhere.co.uk) HDMI matrices.
+This binding integrates with [HDanywhere](https://www.hdanywhere.co.uk) HDMI matrices.
HDanywhere is a manufacturer of multiroom/distributed audio/video equipment.
This binding supports their V3 of the Multiroom+ HDMI matrix running firmware V1.2(20131222), as well as the newer MHUB series of matrices.
diff --git a/bundles/org.openhab.binding.hdanywhere/pom.xml b/bundles/org.openhab.binding.hdanywhere/pom.xml
index ce32ecb58a407..89599767f7ccb 100644
--- a/bundles/org.openhab.binding.hdanywhere/pom.xml
+++ b/bundles/org.openhab.binding.hdanywhere/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.hdanywhere
diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/feature/feature.xml b/bundles/org.openhab.binding.hdanywhere/src/main/feature/feature.xml
index 18b0795a126cb..80c7125a05746 100644
--- a/bundles/org.openhab.binding.hdanywhere/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.hdanywhere/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereBindingConstants.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereBindingConstants.java
index 0977209b62b3d..5a3b84b0b20b1 100644
--- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereBindingConstants.java
+++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereHandlerFactory.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereHandlerFactory.java
index 3668fcd4cbf9e..ef3ef9978e67c 100644
--- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereHandlerFactory.java
+++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/HDanywhereHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java
index 5ae963fc6a304..b0b3ab66a0f96 100644
--- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java
+++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/Mhub4K431Handler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -158,7 +158,7 @@ public void handleCommand(ChannelUID channelUID, Command command) {
String response = HttpUtil.executeUrl(httpMethod, url, httpHeaders, stream,
"application/x-www-form-urlencoded; charset=UTF-8", timeout);
} catch (IOException e) {
- logger.debug("Communication with device failed: {}", e);
+ logger.debug("Communication with device failed", e);
updateStatus(ThingStatus.OFFLINE);
}
}
diff --git a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java
index 45337275492b6..d15e0ce78846f 100644
--- a/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java
+++ b/bundles/org.openhab.binding.hdanywhere/src/main/java/org/openhab/binding/hdanywhere/internal/handler/MultiroomPlusHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -127,7 +127,7 @@ public void handleCommand(ChannelUID channelUID, Command command) {
try {
HttpUtil.executeUrl(httpMethod, url, null, null, null, timeout);
} catch (IOException e) {
- logger.error("Communication with device failed: {}", e);
+ logger.error("Communication with device failed", e);
}
}
}
diff --git a/bundles/org.openhab.binding.hdpowerview/NOTICE b/bundles/org.openhab.binding.hdpowerview/NOTICE
index aca8eebc15b0f..4839ea0985207 100644
--- a/bundles/org.openhab.binding.hdpowerview/NOTICE
+++ b/bundles/org.openhab.binding.hdpowerview/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.hdpowerview/README.md b/bundles/org.openhab.binding.hdpowerview/README.md
index 9fa4f012d25c0..3d337b08d2451 100644
--- a/bundles/org.openhab.binding.hdpowerview/README.md
+++ b/bundles/org.openhab.binding.hdpowerview/README.md
@@ -1,6 +1,6 @@
# Hunter Douglas PowerView Binding
-This is an openHAB binding for the [Hunter Douglas PowerView Motorized Shades](http://www.hunterdouglas.com/operating-systems/powerview-motorization/support) via the PowerView Hub.
+This is an openHAB binding for the [Hunter Douglas PowerView Motorized Shades](https://www.hunterdouglas.com/operating-systems/motorized/powerview-motorization/overview) via the PowerView Hub.
PowerView shades have motorization control for their vertical position, as well as vane controls on the shade's slats.
Make sure your Shades are visible in the dedicated PowerView app before attempting discovery.
@@ -17,7 +17,7 @@ By using a Scene to control multiple shades at once, the shades will all begin m
## Discovery
-The PowerView Hub is discovered via a NetBios query.
+The PowerView Hub is discovered via a NetBIOS query.
This is the same method used by the dedicated PowerView app.
After the Hub is added, Shades and Scenes will be discovered by querying the Hub.
diff --git a/bundles/org.openhab.binding.hdpowerview/noEmbedDependencies.profile b/bundles/org.openhab.binding.hdpowerview/noEmbedDependencies.profile
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/bundles/org.openhab.binding.hdpowerview/pom.xml b/bundles/org.openhab.binding.hdpowerview/pom.xml
index 09a795405c83c..3b529813b02e7 100644
--- a/bundles/org.openhab.binding.hdpowerview/pom.xml
+++ b/bundles/org.openhab.binding.hdpowerview/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.hdpowerview
@@ -18,7 +17,7 @@
org.samba.jcifsjcifs1.3.17
- provided
+ compile
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/feature/feature.xml b/bundles/org.openhab.binding.hdpowerview/src/main/feature/feature.xml
index 67468084c2bfa..39c632c82735f 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/feature/feature.xml
@@ -1,10 +1,10 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:org.samba.jcifs/jcifs/1.3.17
+ mvn:org.samba.jcifs/jcifs/1.3.17mvn:org.openhab.addons.bundles/org.openhab.binding.hdpowerview/${project.version}
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewBindingConstants.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewBindingConstants.java
index a50354908b23a..c6129af9acf85 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewBindingConstants.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewHandlerFactory.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewHandlerFactory.java
index 8d0fe1988e40a..364ce3ac558a0 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewHandlerFactory.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewWebTargets.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewWebTargets.java
index 08a549c20f873..3bdd8556fb4f5 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewWebTargets.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/HDPowerViewWebTargets.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,6 +14,7 @@
import java.io.IOException;
+import javax.ws.rs.ProcessingException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
@@ -55,7 +56,7 @@ public HDPowerViewWebTargets(Client client, String ipAddress) {
gson = new Gson();
}
- public Shades getShades() throws IOException {
+ public Shades getShades() throws JsonParseException, IOException {
Response response = invoke(shades.request().buildGet(), shades);
if (response != null) {
String result = response.readEntity(String.class);
@@ -88,18 +89,23 @@ public void activateScene(int sceneId) {
invoke(target.request().buildGet(), sceneActivate);
}
- private Response invoke(Invocation invocation, WebTarget target) {
+ private Response invoke(Invocation invocation, WebTarget target) throws ProcessingException {
Response response;
synchronized (this) {
response = invocation.invoke();
}
- if (response.getStatus() != 200) {
- logger.error("Bridge returned {} while invoking {} : {}", response.getStatus(), target.getUri(),
+ if (response.getStatus() == 423) {
+ // the hub seems to return a 423 error (resource locked) once per day around midnight
+ // this is probably some kind of regular re-initialization process, so suppress the error log
+ logger.debug("Bridge returned '423' while invoking {}", target.getUri());
+ return null;
+ } else if (response.getStatus() != 200) {
+ logger.warn("Bridge returned '{}' while invoking {} : {}", response.getStatus(), target.getUri(),
response.readEntity(String.class));
return null;
} else if (!response.hasEntity()) {
- logger.error("Bridge returned null response while invoking {}", target.getUri());
+ logger.warn("Bridge returned null response while invoking {}", target.getUri());
return null;
}
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePosition.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePosition.java
index 8bbea22c9783d..fe24659dfb761 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePosition.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePosition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePositionKind.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePositionKind.java
index de735f5ae9d40..bb8c320822d2f 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePositionKind.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/ShadePositionKind.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeIdPosition.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeIdPosition.java
index 01acaf9c66b0e..8f5f9f0cd8c5f 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeIdPosition.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeIdPosition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeMove.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeMove.java
index 7da487030fa77..f53671edd2480 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeMove.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/requests/ShadeMove.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Scenes.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Scenes.java
index 3566a92553eb9..a1275fdaa5873 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Scenes.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Scenes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Shades.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Shades.java
index 48b4f4ab50c63..ee81b646d72fc 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Shades.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/api/responses/Shades.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewHubConfiguration.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewHubConfiguration.java
index eb4f36d6609e7..b5ce9c06609d5 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewHubConfiguration.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewHubConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewSceneConfiguration.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewSceneConfiguration.java
index 84b3b78c19cc2..d3415b2ee6c9d 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewSceneConfiguration.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewSceneConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewShadeConfiguration.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewShadeConfiguration.java
index 7537b58c031aa..5f1819a5ae66c 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewShadeConfiguration.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/config/HDPowerViewShadeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewHubDiscoveryService.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewHubDiscoveryService.java
index ff1950e837ecd..c3153dacd5edb 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewHubDiscoveryService.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewHubDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewShadeDiscoveryService.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewShadeDiscoveryService.java
index 86d899a5646a2..10fd399001fa2 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewShadeDiscoveryService.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/discovery/HDPowerViewShadeDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -78,7 +78,7 @@ private Runnable createScanner() {
try {
shades = targets.getShades();
} catch (IOException e) {
- logger.error("{}", e.getMessage(), e);
+ logger.warn("Unexpected error: {}", e.getMessage());
stopScan();
return;
}
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/AbstractHubbedThingHandler.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/AbstractHubbedThingHandler.java
index 9f9b584ed50b9..4991bd1cd6e8d 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/AbstractHubbedThingHandler.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/AbstractHubbedThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewHubHandler.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewHubHandler.java
index 714fa3ed592a1..fd5c0d0f918a5 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewHubHandler.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewHubHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -20,6 +20,7 @@
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import javax.ws.rs.ProcessingException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
@@ -135,16 +136,15 @@ private synchronized void poll() {
logger.debug("Polling for state");
pollShades();
pollScenes();
- } catch (IOException e) {
- logger.debug("Could not connect to bridge", e);
+ } catch (JsonParseException e) {
+ logger.warn("Bridge returned a bad JSON response: {}", e.getMessage());
+ } catch (ProcessingException | IOException e) {
+ logger.warn("Error connecting to bridge: {}", e.getMessage());
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE, e.getMessage());
- } catch (Exception e) {
- logger.warn("Unexpected error connecting to bridge", e);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
}
}
- private void pollShades() throws IOException {
+ private void pollShades() throws JsonParseException, ProcessingException, IOException {
Shades shades = webTargets.getShades();
updateStatus(ThingStatus.ONLINE);
if (shades != null) {
@@ -169,7 +169,7 @@ private void pollShades() throws IOException {
}
}
- private void pollScenes() throws JsonParseException, IOException {
+ private void pollScenes() throws JsonParseException, ProcessingException, IOException {
Scenes scenes = webTargets.getScenes();
if (scenes != null) {
logger.debug("Received {} scenes", scenes.sceneIds.size());
diff --git a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewShadeHandler.java b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewShadeHandler.java
index d02a9e5d816e0..13789dc465212 100644
--- a/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewShadeHandler.java
+++ b/bundles/org.openhab.binding.hdpowerview/src/main/java/org/openhab/binding/hdpowerview/internal/handler/HDPowerViewShadeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -51,7 +51,6 @@ public HDPowerViewShadeHandler(Thing thing) {
@Override
public void initialize() {
updateStatus(ThingStatus.ONLINE);
- getBridgeHandler().pollNow();
}
@Override
@@ -117,7 +116,7 @@ private void setPosition(ShadePosition position) {
try {
response = bridge.getWebTargets().moveShade(shadeId, position);
} catch (IOException e) {
- logger.error("{}", e.getMessage(), e);
+ logger.warn("Unexpected error: {}", e.getMessage());
return;
}
if (response != null) {
diff --git a/bundles/org.openhab.binding.helios/NOTICE b/bundles/org.openhab.binding.helios/NOTICE
index eb6b2effdd63c..2d8cb69d0626c 100644
--- a/bundles/org.openhab.binding.helios/NOTICE
+++ b/bundles/org.openhab.binding.helios/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.helios/README.md b/bundles/org.openhab.binding.helios/README.md
index a51e1456fdc55..d5213d1b586b6 100644
--- a/bundles/org.openhab.binding.helios/README.md
+++ b/bundles/org.openhab.binding.helios/README.md
@@ -1,6 +1,6 @@
# Helios Binding
-This binding integrates the Heliop door/videophone system (http://www.2n.cz).
+This binding integrates the Heliop door/videophone system (https://www.2n.cz).
## Supported Things
@@ -42,12 +42,13 @@ In addition, devices running the v2.13 firmware support the following channels a
| Channel Type ID | Item Type | Description |
|-----------------|-----------|-------------------------------------------------------------------------------|
-| audiolooptest | Switch | Initiate a audio loop test |
+| audiolooptest | Switch | Initiate an audio loop test |
| motion | Switch | Indicates if motion was detected by the videophone |
| noise | Switch | Indicates if noise was detected by the videophone |
| switchstate | Switch | Indicates the state of an internal switch in the videophone |
-For most of the channels a "stamp" channel (of Type DateTime) (e.g. "keypressedstamp") is available and will be updated with the time stamp the relevant event happened on the device. For switchstate, there are as well the switchstateswitch and switchstateoriginator channels indicating the number of the switch that changed state (1 to 4, depending on the hardware configuration) and the source of the switch state change (keypad, DTMF signal,...)
+For most of the channels a "stamp" channel (of Type DateTime) (e.g. "keypressedstamp") is available and will be updated with the time stamp the relevant event happened on the device.
+For switchstate, there are as well the switchstateswitch and switchstateoriginator channels indicating the number of the switch that changed state (1 to 4, depending on the hardware configuration) and the source of the switch state change (keypad, DTMF signal,...)
## Full Example
@@ -77,6 +78,6 @@ when
Channel "helios:ipvario221:gate:keypressed" triggered
then
var actionName = receivedEvent.getEvent()
- logInfo("org.openhab","Rule trigger " + actionName)
+ logInfo("org.openhab","Rule trigger " + actionName)
end
```
diff --git a/bundles/org.openhab.binding.helios/noEmbedDependencies.profile b/bundles/org.openhab.binding.helios/noEmbedDependencies.profile
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/bundles/org.openhab.binding.helios/pom.xml b/bundles/org.openhab.binding.helios/pom.xml
index d024f7b8c30e2..da5dc25d09050 100644
--- a/bundles/org.openhab.binding.helios/pom.xml
+++ b/bundles/org.openhab.binding.helios/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.helios
@@ -18,28 +17,31 @@
org.apache.servicemix.specsorg.apache.servicemix.specs.jaxws-api-2.22.9.0
+ compileorg.apache.geronimo.specsgeronimo-ws-metadata_2.0_spec1.1.3
+ compileorg.apache.ws.xmlschemaxmlschema-core2.2.4
+ compileorg.apache.cxfcxf-core
- 3.1.9
- provided
+ 3.1.14
+ compileorg.apache.cxf.services.wsncxf-services-wsn-api
- 3.1.9
- provided
+ 3.1.14
+ compile
diff --git a/bundles/org.openhab.binding.helios/src/main/feature/feature.xml b/bundles/org.openhab.binding.helios/src/main/feature/feature.xml
index 9bb892d5f7db8..a5fc54d21faaa 100644
--- a/bundles/org.openhab.binding.helios/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.helios/src/main/feature/feature.xml
@@ -1,14 +1,14 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-basemvn:org.apache.ws.xmlschema/xmlschema-core/2.2.4mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/2.9.0
- mvn:org.apache.cxf/cxf-core/3.1.9
- mvn:org.apache.cxf.services.wsn/cxf-services-wsn-api/3.1.9
+ mvn:org.apache.cxf/cxf-core/3.1.14
+ mvn:org.apache.cxf.services.wsn/cxf-services-wsn-api/3.1.14mvn:org.apache.felix/org.apache.felix.framework/6.0.2mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.3mvn:org.openhab.addons.bundles/org.openhab.binding.helios/${project.version}
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosBindingConstants.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosBindingConstants.java
index 05ce801f817c9..de2382477fe49 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosBindingConstants.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosHandlerFactory.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosHandlerFactory.java
index ee24f3005eda6..26b180a13eedb 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosHandlerFactory.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/HeliosHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler221.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler221.java
index a0ecb0b351ad2..df8460b936f59 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler221.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler221.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler27.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler27.java
index 66820cc55b5c8..8e48eafc5ecb8 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler27.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/handler/HeliosHandler27.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTError.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTError.java
index c9ccdf5cb7ad0..b59dd97aec8f5 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTError.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTError.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTEvent.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTEvent.java
index 8db84f4aca681..3da48ec59ab28 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTEvent.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTPort.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTPort.java
index d0f8ce6b5024b..2aa412210880e 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTPort.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTPort.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSubscribeResponse.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSubscribeResponse.java
index a14a15d2d8059..b7007de537756 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSubscribeResponse.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSubscribeResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSwitch.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSwitch.java
index addadb824fc1f..7d0b6693168ee 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSwitch.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSwitch.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSystemInfo.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSystemInfo.java
index 463119da90d53..316b699f415bd 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSystemInfo.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/rest/RESTSystemInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPActionHandler.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPActionHandler.java
index e9ba43d9f5a66..7416629d0e906 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPActionHandler.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPActionHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCallStateChanged.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCallStateChanged.java
index 13b94b2d0dead..02484053f7d61 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCallStateChanged.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCallStateChanged.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCardEntered.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCardEntered.java
index ab4c95e9cfd4e..9d3543d6a0048 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCardEntered.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCardEntered.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCodeEntered.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCodeEntered.java
index d49a4c2ead2ac..eaf572cf63f4b 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCodeEntered.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPCodeEntered.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataField.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataField.java
index 9a96a34e927bf..d588b9be9721e 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataField.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataField.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataFieldAdapter.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataFieldAdapter.java
index decee1150d402..169b4179a11d9 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataFieldAdapter.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDataFieldAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDeviceState.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDeviceState.java
index 468ceaaf44f40..4199e9296a776 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDeviceState.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPDeviceState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPEvent.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPEvent.java
index 1c9e7924aea8a..6273ec14a7859 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPEvent.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPKeyPressed.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPKeyPressed.java
index 67e6ccbd02f94..72b11ddd68e42 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPKeyPressed.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPKeyPressed.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPObjectFactory.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPObjectFactory.java
index 2e9cc5098f1f4..84977eaf4cfdc 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPObjectFactory.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPObjectFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPSubscriptionActionHandler.java b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPSubscriptionActionHandler.java
index c982258151698..392d1b3aa57ea 100644
--- a/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPSubscriptionActionHandler.java
+++ b/bundles/org.openhab.binding.helios/src/main/java/org/openhab/binding/helios/internal/ws/soap/SOAPSubscriptionActionHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.helios/src/main/resources/ESH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.helios/src/main/resources/ESH-INF/thing/channel-types.xml
index eccf1cd814dab..41fcd8356151d 100644
--- a/bundles/org.openhab.binding.helios/src/main/resources/ESH-INF/thing/channel-types.xml
+++ b/bundles/org.openhab.binding.helios/src/main/resources/ESH-INF/thing/channel-types.xml
@@ -7,13 +7,13 @@
Switch
-
+
Audio loop test resultDateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -42,7 +42,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -59,7 +59,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -76,7 +76,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -92,18 +92,18 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss formattrigger
-
+
The key pressed, 0, 1, …, 9, *, # for keypad buttons and %1..%54 for call buttonsDateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -114,7 +114,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -126,7 +126,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -138,7 +138,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
@@ -167,7 +167,7 @@
DateTime
-
+
Event date and time in CCYY-MM-DDThh:mm:ss format
diff --git a/bundles/org.openhab.binding.heos/.classpath b/bundles/org.openhab.binding.heos/.classpath
index 39abf1c5e9102..a5d95095ccaaf 100644
--- a/bundles/org.openhab.binding.heos/.classpath
+++ b/bundles/org.openhab.binding.heos/.classpath
@@ -28,22 +28,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/bundles/org.openhab.binding.heos/NOTICE b/bundles/org.openhab.binding.heos/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.heos/NOTICE
+++ b/bundles/org.openhab.binding.heos/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.heos/pom.xml b/bundles/org.openhab.binding.heos/pom.xml
index b5e8a2b858990..d4d51aa1343e4 100644
--- a/bundles/org.openhab.binding.heos/pom.xml
+++ b/bundles/org.openhab.binding.heos/pom.xml
@@ -1,25 +1,15 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.heosopenHAB Add-ons :: Bundles :: Heos Binding
-
-
- commons-net
- commons-net
- 3.6
- provided
-
-
-
diff --git a/bundles/org.openhab.binding.heos/src/main/feature/feature.xml b/bundles/org.openhab.binding.heos/src/main/feature/feature.xml
index 36f3dbea5269e..aa85ee085b7ce 100644
--- a/bundles/org.openhab.binding.heos/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.heos/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/HeosBindingConstants.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/HeosBindingConstants.java
index 52aeb5d2b7106..1d12f48c483fe 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/HeosBindingConstants.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/HeosBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosBridgeHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosBridgeHandler.java
index d05351896b0c3..f931c547f34cd 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosBridgeHandler.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -13,7 +13,7 @@
package org.openhab.binding.heos.handler;
import static org.openhab.binding.heos.HeosBindingConstants.*;
-//import static org.openhab.binding.heos.internal.resources.HeosConstants.*;
+import static org.openhab.binding.heos.internal.resources.HeosConstants.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -124,7 +124,8 @@ private void scheduledStartUp() {
updateStatus(ThingStatus.ONLINE);
} else {
logger.debug("Can't log in. Username or password not set.");
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Can't log in. Username or password not set.");
+ updateStatus(ThingStatus.ONLINE, ThingStatusDetail.CONFIGURATION_PENDING,
+ " Username or password not set or incorrect. Please Log-In to enable all HEOS features");
}
}, 5, TimeUnit.SECONDS);
}
@@ -301,14 +302,12 @@ public void bridgeChangeEvent(String event, String result, String command) {
if (SUCCESS.equals(result)) {
if (!loggedIn) {
loggedIn = true;
- addFavorites();
addPlaylists();
}
}
} else if (USER_CHANGED.equals(command)) {
if (!loggedIn) {
loggedIn = true;
- addFavorites();
addPlaylists();
}
}
@@ -322,13 +321,6 @@ public void addPlaylists() {
}
}
- public void addFavorites() {
- if (loggedIn) {
- logger.debug("Adding HEOS Favorite Channels");
- updateThingChannels(channelManager.addFavoriteChannels(heos.getFavorites()));
- }
- }
-
/**
* Create a channel for the childThing. Depending if it is a HEOS Group
* or a player an identification prefix is added
@@ -434,4 +426,8 @@ private void triggerPlayerDiscovery() {
public boolean isLoggedin() {
return loggedIn;
}
+
+ public boolean isBridgeConnected() {
+ return bridgeIsConnected;
+ }
}
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosGroupHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosGroupHandler.java
index ed435420e3109..e3d1ab30ae099 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosGroupHandler.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosGroupHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosPlayerHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosPlayerHandler.java
index fc1406d08731a..ba702bbae14fa 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosPlayerHandler.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosPlayerHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosThingBaseHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosThingBaseHandler.java
index 5fd233d2f22ff..b6d67caf9d2d3 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosThingBaseHandler.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/handler/HeosThingBaseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelHandlerFactory.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelHandlerFactory.java
index c7da00e4a392d..bbca4678fed31 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelHandlerFactory.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelManager.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelManager.java
index e0ec865790c75..7865af22af211 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelManager.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosChannelManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosHandlerFactory.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosHandlerFactory.java
index b7691ad7513bd..8dd0df736e1cb 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosHandlerFactory.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/HeosHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosAudioSink.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosAudioSink.java
index 1991e99402d0b..68f7f9c3f32b7 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosAudioSink.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosAudioSink.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosEventController.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosEventController.java
index 55dae2a29ba58..b96af8f1cb69b 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosEventController.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosEventController.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosFacade.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosFacade.java
index 88d0c97d3a324..a1f851718a80c 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosFacade.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosFacade.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosSystem.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosSystem.java
index 1de03127d311f..eccff3b48ac83 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosSystem.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/api/HeosSystem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java
index a48836074ec9c..2aa79027b0a59 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscovery.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscovery.java
index 30112037d1d6e..adac78967d6f1 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscovery.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -63,6 +63,10 @@ public Set getSupportedThingTypes() {
@Override
protected void startScan() {
+ if (!bridge.isBridgeConnected()) {
+ logger.debug("Scan for Players not possible. HEOS Bridge is not connected");
+ return;
+ }
logger.debug("Start scan for HEOS Player");
Map playerMap = new HashMap<>();
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscoveryListener.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscoveryListener.java
index d004abeccc4c9..096dcdabfb7f9 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscoveryListener.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/discovery/HeosPlayerDiscoveryListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandler.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandler.java
index 1fb4fe91dd103..1eeaa4028c496 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandler.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerAlbum.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerAlbum.java
index cdff80d1c2f90..f588f6b94d5f4 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerAlbum.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerAlbum.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerArtist.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerArtist.java
index 95df027201218..4ba79984ab8ba 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerArtist.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerArtist.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerBuildGroup.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerBuildGroup.java
index b6c826efd842d..b061c144f27e3 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerBuildGroup.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerBuildGroup.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerControl.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerControl.java
index b37c466305b85..96e9bb1996270 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerControl.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerControl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCover.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCover.java
index 6c05d650ac270..1bd771c1f5ccd 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCover.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCover.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCurrentPosition.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCurrentPosition.java
index d7c6909423d55..71fd942f8e07a 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCurrentPosition.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerCurrentPosition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerDuration.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerDuration.java
index bb75f0b7c62e5..6bd33b9f67fcc 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerDuration.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerDuration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerFavoriteSelect.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerFavoriteSelect.java
index 1609fe08f411a..4258290787d08 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerFavoriteSelect.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerFavoriteSelect.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerGrouping.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerGrouping.java
index ce4cb2a7a46a6..2cae780c32e00 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerGrouping.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerGrouping.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerInputs.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerInputs.java
index 52f404c3cccd0..2438029ae6ab6 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerInputs.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerInputs.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerMute.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerMute.java
index 63433f2289830..e16894d8a1ad0 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerMute.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerMute.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayURL.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayURL.java
index 8425685930cfc..9a983ede9fc9a 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayURL.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayURL.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayerSelect.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayerSelect.java
index e8a8184a4c04d..7adef1740759f 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayerSelect.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlayerSelect.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlaylist.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlaylist.java
index 1e1bfe9b6c5bb..83e647c7d632c 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlaylist.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerPlaylist.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRawCommand.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRawCommand.java
index 22009e8f0181f..199801ab774ad 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRawCommand.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRawCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerReboot.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerReboot.java
index 5e80bf732f96b..664b84dd65c28 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerReboot.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerReboot.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRepeatMode.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRepeatMode.java
index 2fdb5ca8ce7e5..9aafa5e0c65fe 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRepeatMode.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerRepeatMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerShuffleMode.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerShuffleMode.java
index 6aef033b70f09..2bbf8c2717331 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerShuffleMode.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerShuffleMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerStation.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerStation.java
index b1e344bf969f1..622c85eb2e308 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerStation.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerStation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerTitle.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerTitle.java
index 877eba53084dd..cfcd92df6c60f 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerTitle.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerTitle.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerType.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerType.java
index 2c2da0de1241a..b3b11c7dbeac7 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerType.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerVolume.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerVolume.java
index fb4b05c704e95..2387acf2ec6b9 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerVolume.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/handler/HeosChannelHandlerVolume.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosCommands.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosCommands.java
index 380100a43803b..40cf2bb1ae053 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosCommands.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosCommands.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosConstants.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosConstants.java
index 9f640b1a01982..14a508ab7b8ff 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosConstants.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerEvent.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerEvent.java
index f2cd86cc9dcee..c50db9df2f9ec 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerEvent.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerPayload.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerPayload.java
index 25cebeeeda2e1..e311c3608a5ef 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerPayload.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosDeserializerPayload.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosEventListener.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosEventListener.java
index 7a068315e30d9..aaade980bf9e0 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosEventListener.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosGroup.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosGroup.java
index 56e050cd96a81..5edec9465e8cd 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosGroup.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosGroup.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosJsonParser.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosJsonParser.java
index 985c1da57a3bf..be60dcfd33978 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosJsonParser.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosJsonParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosMediaObject.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosMediaObject.java
index 9a211fe80ce81..6d3809eab99f4 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosMediaObject.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosMediaObject.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosPlayer.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosPlayer.java
index a2cdcaa66b3b8..9cb8f3b37fad2 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosPlayer.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosPlayer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponse.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponse.java
index 17d1086ce0c49..235e49dc998d2 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponse.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseDecoder.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseDecoder.java
index 50dbf72dc4c12..61176c1ad3f74 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseDecoder.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseDecoder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseEvent.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseEvent.java
index 4d525d3a60578..5cd37fcbdbe68 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseEvent.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponseEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponsePayload.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponsePayload.java
index 5515b64ace7f3..83ec518224748 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponsePayload.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosResponsePayload.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSendCommand.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSendCommand.java
index 8b07c81cef941..5693ed10968cb 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSendCommand.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSendCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosStringPropertyChangeListener.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosStringPropertyChangeListener.java
index 99968ea52e6e4..66d184267744f 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosStringPropertyChangeListener.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosStringPropertyChangeListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSystemEventListener.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSystemEventListener.java
index 471065b6d68a3..5c5b63c626ecd 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSystemEventListener.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/HeosSystemEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/Telnet.java b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/Telnet.java
index 50b5ca9c6d0b5..0ac8ed803861f 100644
--- a/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/Telnet.java
+++ b/bundles/org.openhab.binding.heos/src/main/java/org/openhab/binding/heos/internal/resources/Telnet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/Channels.xml b/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/Channels.xml
index a5bdf2133e30e..a69173e84101c 100644
--- a/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/Channels.xml
+++ b/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/Channels.xml
@@ -36,14 +36,14 @@
Number:Time
-
+
The current track positionTimeNumber:Time
-
+
The overall duration of the trackTime
diff --git a/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/HeosGroup.xml b/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/HeosGroup.xml
index c146b8a25d041..fbceb78309009 100644
--- a/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/HeosGroup.xml
+++ b/bundles/org.openhab.binding.heos/src/main/resources/ESH-INF/thing/HeosGroup.xml
@@ -31,7 +31,7 @@
-
+
Shows the single player IDs of the members of this grouptrue
diff --git a/bundles/org.openhab.binding.homematic/NOTICE b/bundles/org.openhab.binding.homematic/NOTICE
index 8bb2b3be3f1c3..4205fa3237046 100644
--- a/bundles/org.openhab.binding.homematic/NOTICE
+++ b/bundles/org.openhab.binding.homematic/NOTICE
@@ -10,5 +10,5 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.homematic/README.md b/bundles/org.openhab.binding.homematic/README.md
index c87cfae59dc14..3fb26bb086ef6 100644
--- a/bundles/org.openhab.binding.homematic/README.md
+++ b/bundles/org.openhab.binding.homematic/README.md
@@ -1,6 +1,6 @@
# Homematic Binding
-This is the binding for the [eQ-3 Homematic Solution](http://www.eq-3.de/).
+This is the binding for the [eQ-3 Homematic Solution](https://eq-3.de/).
This binding allows you to integrate, view, control and configure all Homematic devices in openHAB.
## Configuration of the CCU
@@ -10,19 +10,19 @@ The CCU has to be configured to have "XML-RPC" set to "Full Access" or "Restrict
Also the "Remote Homematic-Script API" has to be set to "Full Access" or "Restricted access".
When the option "Restricted access" is used, some ports have to be added to the "Port opening" list.
-´´´
+```
2000;
2001;
2010;
8701;
9292;
-´´´
+```
Also the IP of the device running openHAB has to be set to the list of "IP addresses for restricted access".
Also under `Home page > Settings > Control panel` with the menu `Security` the option `Authentication` has to be disabled as the binding does not support the configuration of `username` and `password`for the XML-RPC API.
-If this is not done the binding won't be able to connect to the CCU and the CCU Thing will stay uninitialized and sets a timeout exception:
+If this is not done the binding will not be able to connect to the CCU and the CCU Thing will stay uninitialized and sets a timeout exception:
```
xxx-xx-xx xx:xx:xx.xxx [hingStatusInfoChangedEvent] - - 'homematic:bridge:xxx' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): java.net.SocketTimeoutException: Connect Timeout
@@ -34,15 +34,16 @@ All gateways which provides the Homematic BIN- or XML-RPC API:
- CCU 1, 2 and 3
- [RaspberryMatic](https://github.com/jens-maus/RaspberryMatic)
-- [Homegear](https://www.homegear.eu) (>= 0.8.0-1988)
+- [Homegear](https://homegear.eu) (>= 0.8.0-1988)
- [piVCCU](https://github.com/alexreinert/piVCCU)
- [YAHM](https://github.com/leonsio/YAHM)
-- [Windows BidCos service](http://www.eq-3.de/downloads.html?kat=download&id=125)
+- [Windows BidCos service](https://eq-3.de/service/downloads.html?kat=download&id=125) (included in "LAN Usersoftware" download)
- [OCCU](https://github.com/eq-3/occu)
The Homematic IP Access Point **does not support** this API and and can't be used with this binding.
Homematic IP support:
+
- CCU2 with at least firmware 2.17.15
- [RaspberryMatic](https://github.com/jens-maus/RaspberryMatic) with the [HM-MOD-RPI-PCB](https://www.elv.de/homematic-funkmodul-fuer-raspberry-pi-bausatz.html) or [RPI-RF-MOD](https://www.elv.de/homematic-funk-modulplatine-fuer-raspberry-pi-3-rpi-rf-mod-komplettbausatz.html) RF module
- [piVCCU](https://github.com/alexreinert/piVCCU)
@@ -63,6 +64,7 @@ And **FROM** the gateway to the binding:
- BIN-RPC: 9126
CCU Autodiscovery:
+
* UDP 43439
**Note:** The binding tries to identify the gateway with XML-RPC and uses henceforth:
@@ -89,6 +91,7 @@ With Homegear or a CCU, variables and scripts are supported too.
## Discovery
Gateway discovery is available:
+
* CCU
* RaspberryMatic >= 2.29.23.20171022
* Homegear >= 0.6.x
@@ -104,11 +107,15 @@ The difference is, that variables, scripts and device names are not supported, e
### Automatic install mode during discovery
-Besides discovering devices that are already known by the gateway, it may be desired to connect new devices to your system - which requires your gateway to be in install mode. Starting the binding's DiscoveryService will automatically put your gateway(s) in install mode for a specified period of time (see installModeDuration).
+Besides discovering devices that are already known by the gateway, it may be desired to connect new devices to your system - which requires your gateway to be in install mode.
+Starting the binding's DiscoveryService will automatically put your gateway(s) in install mode for a specified period of time (see installModeDuration).
-**Note:** Enabling / disabling of install mode is also available via GATEWAY_EXTRAS. You may use this if you prefer.
+**Note:** Enabling / disabling of install mode is also available via GATEWAY-EXTRAS.
+You may use this if you prefer.
-**Exception:** If a gateway is not ONLINE, the install mode will not be set automatically. _For instance during initialization of the binding its DiscoveryService is started and will discover devices that are already connected. However, the install mode is not automatically enabled in this situation because the gateway is in the status INITIALIZING._
+**Exception:** If a gateway is not ONLINE, the install mode will not be set automatically.
+For instance during initialization of the binding its DiscoveryService is started and will discover devices that are already connected.
+However, the install mode is not automatically enabled in this situation because the gateway is in the status INITIALIZING.
## Bridge Configuration
@@ -118,15 +125,15 @@ There are several settings for a bridge:
Network address of the Homematic gateway
- **gatewayType**
-Hint for the binding to identify the gateway type (auto|ccu|noccu) (default = auto).
+Hint for the binding to identify the gateway type (auto|ccu|noccu) (default = "auto").
- **callbackHost**
Callback network address of the system runtime, default is auto-discovery
- **bindAddress**
-The address the XML-/BINRPC server binds to, default is callbackHost
+The address the XML-/BINRPC server binds to, default is value of "callbackHost"
-- **callbackPort DEPRECATED, use binCallbackPort and xmlCallbackPort**
+- **callbackPort** (DEPRECATED, use "binCallbackPort" resp. "xmlCallbackPort")
Callback port of the binding's server, default is 9125 and counts up for each additional bridge
- **xmlCallbackPort**
@@ -135,13 +142,13 @@ Callback port of the binding's XML-RPC server, default is 9125 and counts up for
- **binCallbackPort**
Callback port of the binding's BIN-RPC server, default is 9126 and counts up for each additional bridge
-- **aliveInterval DEPRECATED, not necessary anymore**
+- **aliveInterval** (DEPRECATED, not necessary anymore)
The interval in seconds to check if the communication with the Homematic gateway is still alive. If no message receives from the Homematic gateway, the RPC server restarts (default = 300)
-- **reconnectInterval DEPRECATED, not necessary anymore**
-The interval in seconds to force a reconnect to the Homematic gateway, disables aliveInterval! (0 = disabled, default = disabled).
-If you have no sensors which sends messages in regular intervals and/or you have low communication, the aliveInterval may restart the connection to the Homematic gateway to often.
-The reconnectInterval disables the aliveInterval and reconnects after a fixed period of time.
+- **reconnectInterval** (DEPRECATED, not necessary anymore)
+The interval in seconds to force a reconnect to the Homematic gateway, disables "aliveInterval"! (0 = disabled, default = disabled).
+If you have no sensors which sends messages in regular intervals and/or you have low communication, the "aliveInterval" may restart the connection to the Homematic gateway to often.
+The "reconnectInterval" disables the "aliveInterval" and reconnects after a fixed period of time.
Think in hours when configuring (one hour = 3600)
- **timeout**
@@ -188,19 +195,19 @@ homematic:bridge:NAME
### Example
-- minimum configuration
+**Minimum configuration**
```java
Bridge homematic:bridge:ccu [ gatewayAddress="..."]
```
-- with callback settings
+**With callback settings**
```java
Bridge homematic:bridge:ccu [ gatewayAddress="...", callbackHost="...", callbackPort=... ]
```
-- multiple bridges
+**Multiple bridges**
```java
Bridge homematic:bridge:lxccu [ gatewayAddress="..."]
@@ -221,8 +228,8 @@ Bridge homematic:bridge:ccu [ gatewayAddress="..." ]
```
The first parameter after Thing is the device type, the second the serial number.
-If you are using Homegear, you have to add the prefix ```HG-``` for each type.
-The ```HG-``` prefix is only needed for Things, not for Items or channel configs.
+If you are using Homegear, you have to add the prefix `HG-` for each type.
+The `HG-` prefix is only needed for Things, not for Items or channel configs.
This is necessary, because the Homegear devices supports more datapoints than Homematic devices.
```java
@@ -230,7 +237,7 @@ This is necessary, because the Homegear devices supports more datapoints than Ho
```
As additional parameters you can define a name and a location for each thing.
-The Name will be used to identify the Thing in the Paper UI lists, the Location will be used in the Control section of PaperUI to sort the things.
+The `Name` will be used to identify the thing in the Paper UI lists, the `Location` will be used in the Control section of PaperUI to sort the things.
```java
Thing HG-HM-LC-Dim1T-Pl-2 JEQ0999999 "Name" @ "Location"
@@ -241,9 +248,9 @@ All channels have two configs:
- **delay**: delays transmission of a command **to** the Homematic gateway, duplicate commands are filtered out
- **receiveDelay**: delays a received event **from** the Homematic gateway, duplicate events are filtered out (OH 2.2)
-The receiveDelay is handy for dimmers and rollershutters for example.
+The `receiveDelay` is handy for dimmers and rollershutters for example.
If you have a slider in a UI and you move this slider to a new position, it jumps around because the gateway sends multiple events with different positions until the final has been reached.
-If you set the ```receiveDelay``` to some seconds, these events are filtered out and only the last position is distributed to the binding.
+If you set the `receiveDelay` to some seconds, these events are filtered out and only the last position is distributed to the binding.
The disadvantage is of course, that all events for this channel are delayed.
```java
@@ -256,11 +263,13 @@ The disadvantage is of course, that all events for this channel are delayed.
}
```
-The Type is the device type, channel number and lowercase channel name separated with a underscore.
-Note that, for Homegear devices, in contrast to the specification of the Thing above no ```HG-``` prefix is needed for the specification of the Type of the Channel.
+The `Type` is the device type, channel number and lowercase channel name separated with an underscore.
+Note that, for Homegear devices, in contrast to the specification of the Rhing above no `HG-` prefix is needed for the specification of the Type of the Channel.
The channel configs are optional.
+
Example without channel configs
+
```java
Thing HM-LC-Dim1T-Pl-2 JEQ0999999 "Name" @ "Location" {
Channels:
@@ -288,7 +297,7 @@ Switch RC_1 "Remote Control Button 1" { channel="homematic:HM-RC-19-B:ccu:KEQ0
Dimmer Light "Light [%d %%]" { channel="homematic:HM-LC-Dim1T-Pl-2:ccu:JEQ0555555:1#LEVEL" }
```
-**Note:** don't forget to add the ```HG-``` type prefix for Homegear devices
+**Note:** don't forget to add the `HG-` type prefix for Homegear devices
## Virtual device and datapoints
@@ -300,7 +309,8 @@ Virtual datapoints are generated by the binding and provides special functionali
The GATEWAY-EXTRAS is a virtual device which contains a switch to reload all values from all devices and also a switch to put the gateway in the install mode to add new devices.
If the gateway supports variables and scripts, you can handle them with this device too.
The type is generated: GATEWAY-EXTRAS-[BRIDGE_ID].
-Example: bridgeId=ccu, type=GATEWAY-EXTRAS-CCU
+
+**Example:** bridgeId=ccu, type=GATEWAY-EXTRAS-CCU
Address: fixed GWE00000000
### RELOAD_ALL_FROM_GATEWAY
@@ -309,7 +319,7 @@ A virtual datapoint (Switch) to reload all values for all devices, available in
### RELOAD_RSSI
-A virtual datapoint (Switch) to reload all rssi values for all devices, available in channel 0 in GATEWAY-EXTRAS
+A virtual datapoint (Switch) to reload all RSSI values for all devices, available in channel 0 in GATEWAY-EXTRAS
### RSSI
@@ -341,7 +351,7 @@ A virtual datapoint (Enum) to configure the device deletion with DELETE_MODE, av
### ON_TIME_AUTOMATIC
A virtual datapoint (Number) to automatically set the ON_TIME datapoint before the STATE or LEVEL datapoint is sent to the gateway, available for all devices which supports the ON_TIME datapoint.
-This is usefull to automatically turn off the datapoint after the specified time.
+This is useful to automatically turn off the datapoint after the specified time.
### DISPLAY_OPTIONS
@@ -367,25 +377,25 @@ Assumed you mapped the virtual datapoint to a String item called Display_Options
String Display_Options "Display_Options" { channel="homematic:HM-RC-19-B:ccu:KEQ0099999:18#DISPLAY_OPTIONS" }
```
-show message TEST:
+show message "TEST":
```shell
smarthome send Display_Options "TEST"
```
-show message TEXT, beep once and turn backlight on:
+show message "TEXT", beep once and turn backlight on:
```shell
smarthome send Display_Options "TEXT, TONE1, BACKLIGHT_ON"
```
-show message 15, beep once, turn backlight on and shows the celsius unit:
+show message "15", beep once, turn backlight on and shows the celsius unit:
```shell
smarthome send Display_Options "15, TONE1, BACKLIGHT_ON, CELSIUS"
```
-show message ALARM, beep three times, let the backlight blink fast and shows a bell symbol:
+show message "ALARM", beep three times, let the backlight blink fast and shows a bell symbol:
```shell
smarthome send Display_Options "ALARM, TONE3, BLINK_FAST, BELL"
@@ -403,9 +413,11 @@ Adds multiple virtual datapoints to the HM-Dis-WM55 and HM-Dis-EP-WM55 devices t
**Note:** The HM-Dis-EP-WM55 has only a black and white display and therefore does not support datapoints for colored lines. In addition, only lines 1-3 can be set.
-Example: Display text at line 1,3 and 5 when the bottom button on the display is pressed
+#### Example ####
+
+Display text at line 1,3 and 5 when the bottom button on the display is pressed
-- Items
+**Items**
```java
String Display_line_1 "Line 1" { channel="homematic:HM-Dis-WM55:ccu:NEQ0123456:1#DISPLAY_LINE_1" }
@@ -424,7 +436,7 @@ Switch Button_bottom "Button" { channel="homematic:HM-Dis-WM55:ccu:NEQ0123
Switch Display_submit "Submit" { channel="homematic:HM-Dis-WM55:ccu:NEQ0123456:1#DISPLAY_SUBMIT" }
```
-- Rule
+**Rule**
```javascript
rule "Display Test"
@@ -450,12 +462,14 @@ end
### BUTTON
A virtual datapoint (String) to simulate a key press, available on all channels that contains PRESS_ datapoints.
+
Available values:
+
* `SHORT_PRESS`: triggered on a short key press
* `LONG_PRESS`: triggered on a key press longer than `LONG_PRESS_TIME` (variable configuration per key, default is 0.4 s)
* `DOUBLE_PRESS`: triggered on a short key press but only if the latest `SHORT_PRESS` or `DOUBLE_PRESS` event is not older than 2.0 s (not related to `DBL_PRESS_TIME` configuration, which is more like a key lock because if it is other than `0.0` single presses are not notified anymore)
-Example: to capture a short key press on the 19 button remote control in a rule
+**Example:** to capture a short key press on the 19 button remote control in a rule
```javascript
rule "example trigger rule"
@@ -466,7 +480,6 @@ then
end
```
-
## Troubleshooting
**SHORT & LONG_PRESS events of push buttons do not occur on the event bus**
@@ -486,10 +499,12 @@ If you can't disable security try to use key INSTALL_TEST which gets updated to
**-1 Failure**
A device may return this failure while fetching the datapoint values.
-I've tested pretty much but i did not found the reason. The HM-ES-TX-WM device for example always returns this failure, it's impossible with the current CCU2 firmware (2.17.15) to fetch the values.
-I've implemented two workarounds, if a device returns the failure, workaround one is executed, if the device still returns the failure, workaround two is executed.
-This always works in my tests, but you may see a OFFLINE, ONLINE cycle for the device.
-Fetching values is only done at startup or if you trigger a REFRESH. I hope this will be fixed in one of the next CCU firmwares.
+I have tested pretty much but I did not find the reason.
+The HM-ES-TX-WM device for example always returns this failure, it is impossible with the current CCU2 firmware (2.17.15) to fetch the values.
+I have implemented two workarounds, if a device returns the failure, workaround one is executed, if the device still returns the failure, workaround two is executed.
+This always works in my tests, but you may see an OFFLINE, ONLINE cycle for the device.
+Fetching values is only done at startup or if you trigger a REFRESH.
+I hope this will be fixed in one of the next CCU firmwares.
With [Homegear](https://www.homegear.eu) everything works as expected.
**No variables and scripts in GATEWAY-EXTRAS**
@@ -499,10 +514,10 @@ Use the ```gatewayType=ccu``` config to force the binding to use the CCU impleme
**Variables out of sync**
-The CCU only sends a event if a datapoint of a device has changed.
-There is (currently) no way to receive a event automatically when a variable has changed.
+The CCU only sends an event if a datapoint of a device has changed.
+There is (currently) no way to receive an event automatically when a variable has changed.
To reload all variable values, send a REFRESH command to any variable.
-e.g you have a item linked to a variable with the name Var_1
+e.g you have an item linked to a variable with the name Var_1
In the console:
```shell
@@ -517,7 +532,8 @@ import org.eclipse.smarthome.core.types.RefreshType
Var_1.sendCommand(RefreshType.REFRESH)
```
-**Note:** adding new and removing deleted variables from the GATEWAY-EXTRAS Thing is currently not supported. You have to delete the Thing, start a scan and add it again.
+**Note:** adding new and removing deleted variables from the GATEWAY-EXTRAS Thing is currently not supported.
+You have to delete the Thing, start a scan and add it again.
### Debugging and Tracing
@@ -539,7 +555,7 @@ Set the logging back to normal
log:set INFO org.openhab.binding.homematic
```
-To identify problems, i need a full startup TRACE log
+To identify problems, a full startup TRACE log will be needed:
```shell
stop org.openhab.binding.homematic
diff --git a/bundles/org.openhab.binding.homematic/pom.xml b/bundles/org.openhab.binding.homematic/pom.xml
index db1c77a41309a..5593e6760328a 100644
--- a/bundles/org.openhab.binding.homematic/pom.xml
+++ b/bundles/org.openhab.binding.homematic/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.homematic
diff --git a/bundles/org.openhab.binding.homematic/src/main/feature/feature.xml b/bundles/org.openhab.binding.homematic/src/main/feature/feature.xml
index 1f1d68b7294b1..3ad5dd134c26e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.homematic/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-transport-upnp
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/HomematicBindingConstants.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/HomematicBindingConstants.java
index 8f863e0082228..870bec74486aa 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/HomematicBindingConstants.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/HomematicBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/common/HomematicConfig.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/common/HomematicConfig.java
index dd36bcb07f043..10fb572ca5e58 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/common/HomematicConfig.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/common/HomematicConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/AbstractHomematicGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/AbstractHomematicGateway.java
index dcde5649c8c77..b52e87a82a2ba 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/AbstractHomematicGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/AbstractHomematicGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/CcuGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/CcuGateway.java
index c1dfd5785eb2b..f5068d8ae13ea 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/CcuGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/CcuGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/DefaultGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/DefaultGateway.java
index adcbe1ad653a8..cf1ae7dc20752 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/DefaultGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/DefaultGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomegearGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomegearGateway.java
index 25a549e6e2d9f..a31c78d56e423 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomegearGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomegearGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGateway.java
index fff74c3a2f0c3..48934a45c5df3 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,7 +14,6 @@
import java.io.IOException;
-import org.openhab.binding.homematic.internal.HomematicBindingConstants;
import org.openhab.binding.homematic.internal.misc.HomematicClientException;
import org.openhab.binding.homematic.internal.model.HmChannel;
import org.openhab.binding.homematic.internal.model.HmDatapoint;
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayAdapter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayAdapter.java
index 73313640d6f15..1fcf4e13c8556 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayAdapter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayFactory.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayFactory.java
index 638f6eb9adc06..afb4f6be8dc18 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayFactory.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/HomematicGatewayFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/BinRpcClient.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/BinRpcClient.java
index 866d107d2579b..474ddc45143f0 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/BinRpcClient.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/BinRpcClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/RpcClient.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/RpcClient.java
index 4e7d6aa304996..8a5deeaad214d 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/RpcClient.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/RpcClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -176,7 +176,6 @@ public void addChannelDatapoints(HmChannel channel, HmParamsetType paramsetType)
// The configuration channel only has a MASTER Paramset, so there is nothing to load
return;
}
-
RpcRequest request = createRpcRequest("getParamsetDescription");
request.addArg(getRpcAddress(channel.getDevice().getAddress()) + getChannelSuffix(channel));
request.addArg(paramsetType.toString());
@@ -327,7 +326,7 @@ public void setDatapointValue(HmDatapoint dp, Object value, String rxMode) throw
request = createRpcRequest("putParamset");
request.addArg(getRpcAddress(dp.getChannel().getDevice().getAddress()) + getChannelSuffix(dp.getChannel()));
request.addArg(HmParamsetType.MASTER.toString());
- Map paramSet = new HashMap();
+ Map paramSet = new HashMap<>();
paramSet.put(dp.getName(), value);
request.addArg(paramSet);
configureRxMode(request, rxMode);
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketHandler.java
index 54e682b61f3a2..ca71cdd876d7c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketInfo.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketInfo.java
index 90f3c5f316e06..58228060217a7 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketInfo.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/SocketInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/TransferMode.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/TransferMode.java
index 295bd1a677da1..2716dd3b29f2a 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/TransferMode.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/TransferMode.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownParameterSetException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownParameterSetException.java
index 5c505a903364e..f34b7488861eb 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownParameterSetException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownParameterSetException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownRpcFailureException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownRpcFailureException.java
index 3179771fece50..1e6a850dd880d 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownRpcFailureException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/UnknownRpcFailureException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/XmlRpcClient.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/XmlRpcClient.java
index d288ee4e10e13..4a4ec3b659e6a 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/XmlRpcClient.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/client/XmlRpcClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/BinRpcMessage.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/BinRpcMessage.java
index 01d79122f4a3a..be99a87716bfb 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/BinRpcMessage.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/BinRpcMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -93,9 +93,8 @@ public BinRpcMessage(InputStream is, boolean methodHeader, String encoding) thro
offset += currentLength;
}
if (offset != datasize) {
- throw new EOFException(
- "Only " + offset + " bytes received while reading message payload, expected " + datasize
- + " bytes");
+ throw new EOFException("Only " + offset + " bytes received while reading message payload, expected "
+ + datasize + " bytes");
}
byte[] message = ArrayUtils.addAll(sig, payload);
decodeMessage(message, methodHeader);
@@ -137,7 +136,7 @@ public void setType(TYPE type) {
private void generateResponseData() throws IOException {
offset = 8 + (methodName != null ? methodName.length() + 8 : 0);
- List values = new ArrayList();
+ List values = new ArrayList<>();
while (offset < binRpcData.length) {
values.add(readRpcValue());
}
@@ -230,7 +229,7 @@ private Object readRpcValue() throws IOException {
case 0x100:
// Array
int numElements = readInt();
- Collection array = new ArrayList();
+ Collection array = new ArrayList<>();
while (numElements-- > 0) {
array.add(readRpcValue());
}
@@ -238,7 +237,7 @@ private Object readRpcValue() throws IOException {
case 0x101:
// Struct
numElements = readInt();
- Map struct = new TreeMap();
+ Map struct = new TreeMap<>();
while (numElements-- > 0) {
String name = readString();
struct.put(name, readRpcValue());
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcRequest.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcRequest.java
index 25899aacac8a3..cb1bdfcb8db77 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcRequest.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcResponse.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcResponse.java
index 8843ea681b410..0e5d17e924372 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcResponse.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcUtils.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcUtils.java
index 227abf284553a..3d9f6928e97fa 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcUtils.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/RpcUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcRequest.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcRequest.java
index 6f51194ddddda..665e442a29d67 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcRequest.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcResponse.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcResponse.java
index f0d8a925f6257..b08c5f199542b 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcResponse.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/message/XmlRpcResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -73,14 +73,14 @@ public String toString() {
* @author Gerhard Riegler
*/
private class XmlRpcHandler extends DefaultHandler {
- private List result = new ArrayList();
- private LinkedList> currentDataObject = new LinkedList>();
+ private List result = new ArrayList<>();
+ private LinkedList> currentDataObject = new LinkedList<>();
private StringBuilder tagValue;
private boolean isValueTag;
@Override
public void startDocument() throws SAXException {
- currentDataObject.addLast(new ArrayList());
+ currentDataObject.addLast(new ArrayList<>());
}
@Override
@@ -94,7 +94,7 @@ public void startElement(String uri, String localName, String qName, Attributes
throws SAXException {
String tag = qName.toLowerCase();
if (tag.equals("array") || tag.equals("struct")) {
- currentDataObject.addLast(new ArrayList());
+ currentDataObject.addLast(new ArrayList<>());
}
isValueTag = tag.equals("value");
tagValue = new StringBuilder();
@@ -133,7 +133,7 @@ public void endElement(String uri, String localName, String qName) throws SAXExc
break;
case "struct":
List mapData = currentDataObject.removeLast();
- Map resultMap = new HashMap();
+ Map resultMap = new HashMap<>();
for (int i = 0; i < mapData.size(); i += 2) {
resultMap.put(mapData.get(i), mapData.get(i + 1));
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuLoadDeviceNamesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuLoadDeviceNamesParser.java
index 645b9f5882cf2..3d44a642c1b50 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuLoadDeviceNamesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuLoadDeviceNamesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuParamsetDescriptionParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuParamsetDescriptionParser.java
index 49a067e715300..aa1bebd943698 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuParamsetDescriptionParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuParamsetDescriptionParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuValueParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuValueParser.java
index b3ad6587274d5..0b511a2b90751 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuValueParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuValueParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuVariablesAndScriptsParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuVariablesAndScriptsParser.java
index b00f2195d87f0..5cdb93d81b6e9 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuVariablesAndScriptsParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CcuVariablesAndScriptsParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CommonRpcParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CommonRpcParser.java
index bc69c1a7a4162..7ab247af7de3c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CommonRpcParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/CommonRpcParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DeleteDevicesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DeleteDevicesParser.java
index cac110e37804a..71bffbdcc8de1 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DeleteDevicesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DeleteDevicesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DisplayOptionsParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DisplayOptionsParser.java
index c62abb4c03b29..e5e80b55c6356 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DisplayOptionsParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/DisplayOptionsParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/EventParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/EventParser.java
index 23a58fc6a7106..ca2dca82bf07e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/EventParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/EventParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllScriptsParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllScriptsParser.java
index eae2591e23bb3..108c2a17950bc 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllScriptsParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllScriptsParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllSystemVariablesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllSystemVariablesParser.java
index 3410d35725bb7..366a25af3960b 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllSystemVariablesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetAllSystemVariablesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetDeviceDescriptionParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetDeviceDescriptionParser.java
index 9f384f6a3a26e..e37ccd26606d1 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetDeviceDescriptionParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetDeviceDescriptionParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetDescriptionParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetDescriptionParser.java
index 857912f3ebec5..7e84f7651e8d3 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetDescriptionParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetDescriptionParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetParser.java
index 1e69a94b211ff..03810ea2fea68 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetParamsetParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetValueParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetValueParser.java
index e5a803e1875a4..1cecb50b655ef 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetValueParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/GetValueParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/HomegearLoadDeviceNamesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/HomegearLoadDeviceNamesParser.java
index 9bde9f026e9c2..598d9e1c2df6e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/HomegearLoadDeviceNamesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/HomegearLoadDeviceNamesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListBidcosInterfacesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListBidcosInterfacesParser.java
index 036b98a3154a0..bcd0c411e80fa 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListBidcosInterfacesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListBidcosInterfacesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListDevicesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListDevicesParser.java
index 0095f9cfba3a7..b08aa44c0b512 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListDevicesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/ListDevicesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/NewDevicesParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/NewDevicesParser.java
index b694d42e3268b..d6a964542c70c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/NewDevicesParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/NewDevicesParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcParser.java
index ba3d5d446abee..cd04e66fcb959 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcResponseParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcResponseParser.java
index 11ff5b1188b3f..0d202f56450f6 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcResponseParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RpcResponseParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RssiInfoParser.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RssiInfoParser.java
index 7d8e94ac81f55..5571f186d3117 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RssiInfoParser.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/parser/RssiInfoParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcNetworkService.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcNetworkService.java
index bf9335168f707..34d88ac18701c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcNetworkService.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcNetworkService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcResponseHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcResponseHandler.java
index 6fd0ba4c529e7..79d7e0c28b5b5 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcResponseHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcResponseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcServer.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcServer.java
index 9d99a26f77c6c..e88d492834f4b 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcServer.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/BinRpcServer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcEventListener.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcEventListener.java
index e03c6ab09bee6..724828e7db70e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcEventListener.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcResponseHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcResponseHandler.java
index 21bd65487a05e..ba4dac17c7bb8 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcResponseHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcResponseHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcServer.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcServer.java
index 8f71898694287..e54dc019a4d32 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcServer.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/RpcServer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/XmlRpcServer.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/XmlRpcServer.java
index 79d693e036da0..1b2ebee4ec5d1 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/XmlRpcServer.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/server/XmlRpcServer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/AbstractVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/AbstractVirtualDatapointHandler.java
index e43a1c0fa0528..98de6118bd5a7 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/AbstractVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/AbstractVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/BatteryTypeVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/BatteryTypeVirtualDatapointHandler.java
index df7ec42d50a86..a11eb02fc4f70 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/BatteryTypeVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/BatteryTypeVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonVirtualDatapointHandler.java
index 9991945657643..b20308c48d025 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -16,7 +16,6 @@
import org.apache.commons.lang.StringUtils;
import org.eclipse.smarthome.core.thing.CommonTriggerEvents;
-import org.eclipse.smarthome.core.thing.DefaultSystemChannelTypeProvider;
import org.openhab.binding.homematic.internal.misc.MiscUtils;
import org.openhab.binding.homematic.internal.model.HmChannel;
import org.openhab.binding.homematic.internal.model.HmDatapoint;
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceModeVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceModeVirtualDatapointHandler.java
index 9fa2d50e2df28..57022326c6645 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceModeVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceModeVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceVirtualDatapointHandler.java
index 24e2ae3c78a7f..5c06d8f573dc9 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DeleteDeviceVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayOptionsVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayOptionsVirtualDatapointHandler.java
index 5a10e1e79da2e..347f8eb4ca3e5 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayOptionsVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayOptionsVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayTextVirtualDatapoint.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayTextVirtualDatapoint.java
index b1e55f6117ea7..3e5d2b7546218 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayTextVirtualDatapoint.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/DisplayTextVirtualDatapoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/FirmwareVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/FirmwareVirtualDatapointHandler.java
index 82fa5371b9f7c..6ee0aa06ab6e3 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/FirmwareVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/FirmwareVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/HmwIoModuleVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/HmwIoModuleVirtualDatapointHandler.java
index 45d2aeeb1144f..c2edfd4763d6a 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/HmwIoModuleVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/HmwIoModuleVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeDurationVirtualDatapoint.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeDurationVirtualDatapoint.java
index f6065f97ce6cd..5d34150fece00 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeDurationVirtualDatapoint.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeDurationVirtualDatapoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeVirtualDatapoint.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeVirtualDatapoint.java
index 13c10c855608f..9a1177f5838f0 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeVirtualDatapoint.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/InstallModeVirtualDatapoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/OnTimeAutomaticVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/OnTimeAutomaticVirtualDatapointHandler.java
index 001ffe41b24ca..3dbee9142b654 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/OnTimeAutomaticVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/OnTimeAutomaticVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadAllFromGatewayVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadAllFromGatewayVirtualDatapointHandler.java
index 5733429755e09..9e2312d46624e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadAllFromGatewayVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadAllFromGatewayVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadFromGatewayVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadFromGatewayVirtualDatapointHandler.java
index 6dfd7e42b343c..8e83bd2cc0e68 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadFromGatewayVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadFromGatewayVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadRssiVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadRssiVirtualDatapointHandler.java
index eccc035ac0b3c..abaee59bc7492 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadRssiVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/ReloadRssiVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/RssiVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/RssiVirtualDatapointHandler.java
index 23642abb5970f..199823a2dab4d 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/RssiVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/RssiVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/SignalStrengthVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/SignalStrengthVirtualDatapointHandler.java
index 12e32d349c76a..a5794be6b1bdf 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/SignalStrengthVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/SignalStrengthVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/StateContactVirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/StateContactVirtualDatapointHandler.java
index 56468859da69a..1ed0e9febcfc3 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/StateContactVirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/StateContactVirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualDatapointHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualDatapointHandler.java
index c3db3a07d2117..75c6b5c78958e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualDatapointHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualDatapointHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualGateway.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualGateway.java
index b81396b11382e..7e0c65e103076 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualGateway.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/communicator/virtual/VirtualGateway.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterException.java
index 55cb64e0870c3..106f10ba35815 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterFactory.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterFactory.java
index 58a6e15a0f506..97c93429a8e64 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterFactory.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -67,7 +67,7 @@ public static TypeConverter> createConverter(String itemType) throws Converter
converter = converterCache.get(converterClass.getName());
if (converter == null) {
try {
- converter = converterClass.newInstance();
+ converter = converterClass.getConstructor().newInstance();
converterCache.put(converterClass.getName(), converter);
} catch (Exception e) {
// ignore
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterTypeException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterTypeException.java
index 9134462296a7c..d8160049ab523 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterTypeException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/ConverterTypeException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/StateInvertInfo.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/StateInvertInfo.java
index cba15a7228779..6bc11c4334cad 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/StateInvertInfo.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/StateInvertInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/TypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/TypeConverter.java
index 983895fd8f152..75107b1ffba47 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/TypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/TypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/AbstractTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/AbstractTypeConverter.java
index cea2c61e88976..69f2cba199882 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/AbstractTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/AbstractTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/DecimalTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/DecimalTypeConverter.java
index debb4b33be793..b76625df4c0ba 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/DecimalTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/DecimalTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OnOffTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OnOffTypeConverter.java
index d30dddb142097..d762db79dd928 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OnOffTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OnOffTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OpenClosedTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OpenClosedTypeConverter.java
index 4e999d4d24992..fb7951f8a3e9b 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OpenClosedTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OpenClosedTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java
index 9d8bccdc8c231..6330fa289a0bb 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/QuantityTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/QuantityTypeConverter.java
index 8b56586916611..716a57fae80ca 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/QuantityTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/QuantityTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -28,7 +28,6 @@
import javax.measure.quantity.Temperature;
import javax.measure.quantity.Volume;
-import org.eclipse.smarthome.core.library.types.DecimalType;
import org.eclipse.smarthome.core.library.types.QuantityType;
import org.eclipse.smarthome.core.library.unit.MetricPrefix;
import org.eclipse.smarthome.core.library.unit.SIUnits;
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/StringTypeConverter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/StringTypeConverter.java
index 2d72caeaad54f..761dcef2b0cbe 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/StringTypeConverter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/StringTypeConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/CcuDiscoveryService.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/CcuDiscoveryService.java
index 2e0ba1705cad3..4ecba6aee2e8c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/CcuDiscoveryService.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/CcuDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomegearDiscoveryParticipant.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomegearDiscoveryParticipant.java
index 06ebecc08d0a0..2f62d9ff4b343 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomegearDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomegearDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryService.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryService.java
index 84d1660d3d205..f7c7f3de7595b 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,13 +18,18 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
import org.eclipse.smarthome.config.discovery.DiscoveryResult;
import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
+import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingStatus;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.ThingUID;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.openhab.binding.homematic.internal.common.HomematicConfig;
import org.openhab.binding.homematic.internal.communicator.HomematicGateway;
import org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler;
@@ -38,24 +43,38 @@
*
* @author Gerhard Riegler - Initial contribution
*/
-public class HomematicDeviceDiscoveryService extends AbstractDiscoveryService {
+public class HomematicDeviceDiscoveryService extends AbstractDiscoveryService
+ implements DiscoveryService, ThingHandlerService {
private final Logger logger = LoggerFactory.getLogger(HomematicDeviceDiscoveryService.class);
private static final int DISCOVER_TIMEOUT_SECONDS = 300;
- private final HomematicBridgeHandler bridgeHandler;
+ private @NonNullByDefault({}) HomematicBridgeHandler bridgeHandler;
private Future> loadDevicesFuture;
private volatile boolean isInInstallMode = false;
private volatile Object installModeSync = new Object();
private volatile int installModeDuration = HomematicConfig.DEFAULT_INSTALL_MODE_DURATION;
- public HomematicDeviceDiscoveryService(HomematicBridgeHandler bridgeHandler) {
+ public HomematicDeviceDiscoveryService() {
super(Collections.singleton(new ThingTypeUID(BINDING_ID, "-")), DISCOVER_TIMEOUT_SECONDS, false);
- this.bridgeHandler = bridgeHandler;
+ }
+
+ @Override
+ public void setThingHandler(@Nullable ThingHandler handler) {
+ if (handler instanceof HomematicBridgeHandler) {
+ this.bridgeHandler = (HomematicBridgeHandler) handler;
+ this.bridgeHandler.setDiscoveryService(this);
+ }
+ }
+
+ @Override
+ public @Nullable ThingHandler getThingHandler() {
+ return bridgeHandler;
}
/**
* Called on component activation.
*/
+ @Override
public void activate() {
super.activate(null);
}
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpRequest.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpRequest.java
index f6831192e11b2..de930904eea01 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpRequest.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpResponse.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpResponse.java
index 3b6ccbd1c1e30..03fea63cddedf 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpResponse.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/discovery/eq3udp/Eq3UdpResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/GatewayNotAvailableException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/GatewayNotAvailableException.java
index 214fb22a82625..87d2c121f2668 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/GatewayNotAvailableException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/GatewayNotAvailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicBridgeHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicBridgeHandler.java
index ba6bc3f60e01f..02a2f99be72c5 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicBridgeHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -16,14 +16,14 @@
import static org.openhab.binding.homematic.internal.HomematicBindingConstants.CHANNEL_TYPE_DUTY_CYCLE_RATIO;
import java.io.IOException;
-import java.util.Hashtable;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jetty.client.HttpClient;
-import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.library.types.DecimalType;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Channel;
@@ -33,6 +33,7 @@
import org.eclipse.smarthome.core.thing.ThingStatusDetail;
import org.eclipse.smarthome.core.thing.binding.BaseBridgeHandler;
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
import org.openhab.binding.homematic.internal.common.HomematicConfig;
@@ -47,7 +48,6 @@
import org.openhab.binding.homematic.internal.model.HmGatewayInfo;
import org.openhab.binding.homematic.internal.type.HomematicTypeGenerator;
import org.openhab.binding.homematic.internal.type.UidUtils;
-import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +74,6 @@ public class HomematicBridgeHandler extends BaseBridgeHandler implements Homemat
private final HttpClient httpClient;
private HomematicDeviceDiscoveryService discoveryService;
- private ServiceRegistration> discoveryServiceRegistration;
private final String ipv4Address;
private boolean isInDutyCycle = false;
@@ -96,10 +95,13 @@ public void initialize() {
}
}
+ public void setDiscoveryService(HomematicDeviceDiscoveryService discoveryService) {
+ this.discoveryService = discoveryService;
+ }
+
private void initializeInternal() {
synchronized (initDisposeLock) {
config = createHomematicConfig();
- registerDeviceDiscoveryService();
try {
String id = getThing().getUID().getId();
@@ -177,7 +179,6 @@ private void disposeInternal() {
logger.debug("Disposing bridge '{}'", getThing().getUID().getId());
if (discoveryService != null) {
discoveryService.stopScan();
- unregisterDeviceDiscoveryService();
}
if (gateway != null) {
gateway.dispose();
@@ -188,36 +189,6 @@ private void disposeInternal() {
}
}
- /**
- * Registers the DeviceDiscoveryService.
- */
- private void registerDeviceDiscoveryService() {
- if (bundleContext != null) {
- logger.trace("Registering HomematicDeviceDiscoveryService for bridge '{}'", getThing().getUID().getId());
- discoveryService = new HomematicDeviceDiscoveryService(this);
- discoveryServiceRegistration = bundleContext.registerService(DiscoveryService.class.getName(),
- discoveryService, new Hashtable());
- discoveryService.activate();
- }
- }
-
- /**
- * Unregisters the DeviceDisoveryService.
- */
- private void unregisterDeviceDiscoveryService() {
- if (discoveryServiceRegistration != null && bundleContext != null) {
- HomematicDeviceDiscoveryService service = (HomematicDeviceDiscoveryService) bundleContext
- .getService(discoveryServiceRegistration.getReference());
- if (service != null) {
- service.deactivate();
- }
-
- discoveryServiceRegistration.unregister();
- discoveryServiceRegistration = null;
- discoveryService = null;
- }
- }
-
/**
* Sets the OFFLINE status for all things of this bridge that has been removed from the gateway.
*/
@@ -259,6 +230,11 @@ private HomematicConfig createHomematicConfig() {
return homematicConfig;
}
+ @Override
+ public Collection> getServices() {
+ return Collections.singleton(HomematicDeviceDiscoveryService.class);
+ }
+
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
if (RefreshType.REFRESH == command) {
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandler.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandler.java
index 36f5e58a80c3c..8fbd02fcb2613 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandler.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -44,7 +44,6 @@
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
import org.eclipse.smarthome.core.types.State;
-import org.openhab.binding.homematic.internal.HomematicBindingConstants;
import org.openhab.binding.homematic.internal.common.HomematicConfig;
import org.openhab.binding.homematic.internal.communicator.HomematicGateway;
import org.openhab.binding.homematic.internal.converter.ConverterException;
@@ -419,7 +418,7 @@ private void updateStatus(HmDevice device) throws GatewayNotAvailableException,
ThingStatus newStatus = ThingStatus.ONLINE;
ThingStatusDetail newDetail = ThingStatusDetail.NONE;
- if (getBridge().getStatus() == ThingStatus.OFFLINE) {
+ if ((getBridge() != null) && (getBridge().getStatus() == ThingStatus.OFFLINE)) {
newStatus = ThingStatus.OFFLINE;
newDetail = ThingStatusDetail.BRIDGE_OFFLINE;
} else if (device.isFirmwareUpdating()) {
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandlerFactory.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandlerFactory.java
index cfbc9a7f3e536..383c0c029157c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandlerFactory.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -34,6 +34,7 @@
*/
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.homematic")
public class HomematicThingHandlerFactory extends BaseThingHandlerFactory {
+
private HomematicTypeGenerator typeGenerator;
private NetworkAddressService networkAddressService;
private HttpClient httpClient;
@@ -79,5 +80,4 @@ protected ThingHandler createHandler(Thing thing) {
return new HomematicThingHandler(thing);
}
}
-
}
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/SimplePortPool.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/SimplePortPool.java
index b9561ba49d2e1..410c31afd006c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/SimplePortPool.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/SimplePortPool.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/DelayedExecuter.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/DelayedExecuter.java
index eaf3ff3b39f9a..6ba6a58807154 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/DelayedExecuter.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/DelayedExecuter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicClientException.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicClientException.java
index b5b7154cdd4c2..0f208d0bed596 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicClientException.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicClientException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicConstants.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicConstants.java
index 00d562a158897..25f18ead58880 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicConstants.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/HomematicConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/MiscUtils.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/MiscUtils.java
index 164c0d00a3a66..ccc91f76cc130 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/MiscUtils.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/MiscUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmChannel.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmChannel.java
index 5955e7cc33cc2..9dd6955104245 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmChannel.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmChannel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapoint.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapoint.java
index ea6f5b1097b91..e39dbde088cfb 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapoint.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointConfig.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointConfig.java
index dd9461762f05b..100b22eacd8a8 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointConfig.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointInfo.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointInfo.java
index 2f15ef655246c..d2f971b479d7d 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointInfo.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapointInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDevice.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDevice.java
index 29844fc610bd7..e12b0dbf10f98 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDevice.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmGatewayInfo.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmGatewayInfo.java
index b410010cc0ac8..780762e52ab00 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmGatewayInfo.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmGatewayInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmInterface.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmInterface.java
index cb36f9c2afbc2..0f110504cc475 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmInterface.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmInterface.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmParamsetType.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmParamsetType.java
index 351416615d1eb..d66479e84871f 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmParamsetType.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmParamsetType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmResult.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmResult.java
index bf01387c3ced9..e2448ee81de34 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmResult.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmRssiInfo.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmRssiInfo.java
index 959ec11a4c3a2..2df0935f75fd0 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmRssiInfo.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmRssiInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmValueType.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmValueType.java
index a178c3122049d..8033442617a09 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmValueType.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmValueType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScript.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScript.java
index e6ecd6aded6cd..01c37743a618c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScript.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScript.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataEntry.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataEntry.java
index b0a1a117b6afa..cf9f22aa270e5 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataEntry.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataEntry.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataList.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataList.java
index 494382f8b683e..eef4ccd7ce0d6 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataList.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptDataList.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptList.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptList.java
index de9030d965ae4..c88b6a1b29f4e 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptList.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/TclScriptList.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProvider.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProvider.java
index 4a3851d816bfe..7369abf843852 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProvider.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,12 +12,9 @@
*/
package org.openhab.binding.homematic.internal.type;
-import java.util.Locale;
-
import org.eclipse.smarthome.core.thing.type.ChannelGroupType;
import org.eclipse.smarthome.core.thing.type.ChannelGroupTypeProvider;
import org.eclipse.smarthome.core.thing.type.ChannelGroupTypeUID;
-import org.openhab.binding.homematic.type.HomematicThingTypeExcluder;
/**
* Extends the ChannelGroupTypeProvider to manually add a ChannelGroupType.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProviderImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProviderImpl.java
index c9a262f6b6492..68d968805a4f0 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProviderImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelGroupTypeProviderImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProvider.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProvider.java
index b797e4ca86d6b..d7c57e78daca5 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProvider.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,12 +12,9 @@
*/
package org.openhab.binding.homematic.internal.type;
-import java.util.Locale;
-
import org.eclipse.smarthome.core.thing.type.ChannelType;
import org.eclipse.smarthome.core.thing.type.ChannelTypeProvider;
import org.eclipse.smarthome.core.thing.type.ChannelTypeUID;
-import org.openhab.binding.homematic.type.HomematicThingTypeExcluder;
/**
* Extends the ChannelTypeProvider to manually add a ChannelType.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProviderImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProviderImpl.java
index c1a9b7fdaefaa..9351662264aff 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProviderImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicChannelTypeProviderImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProvider.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProvider.java
index 88cd2d86c23cc..9bd53bb063f2c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProvider.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,7 +18,6 @@
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.core.ConfigDescription;
import org.eclipse.smarthome.config.core.ConfigDescriptionProvider;
-import org.openhab.binding.homematic.type.HomematicThingTypeExcluder;
/**
* Extends the ConfigDescriptionProvider to manually add a ConfigDescription.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProviderImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProviderImpl.java
index 46d15c7d2260e..d1e265ea3bca2 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProviderImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicConfigDescriptionProviderImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProvider.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProvider.java
index 809624fe569a7..0034c6ba3dc67 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProvider.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,12 +12,9 @@
*/
package org.openhab.binding.homematic.internal.type;
-import java.util.Locale;
-
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.binding.ThingTypeProvider;
import org.eclipse.smarthome.core.thing.type.ThingType;
-import org.openhab.binding.homematic.type.HomematicThingTypeExcluder;
/**
* Extends the ThingTypeProvider to manually add a ThingType.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProviderImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProviderImpl.java
index 1e8675995ac1b..d892849297b03 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProviderImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicThingTypeProviderImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGenerator.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGenerator.java
index 09baa89f409a0..d8c5c980207c1 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGenerator.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGenerator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java
index fbcc94248965e..4c8b38d998c76 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/HomematicTypeGeneratorImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -76,10 +76,7 @@ public class HomematicTypeGeneratorImpl implements HomematicTypeGenerator {
private HomematicChannelTypeProvider channelTypeProvider;
private HomematicChannelGroupTypeProvider channelGroupTypeProvider;
private HomematicConfigDescriptionProvider configDescriptionProvider;
- private final Map> firmwaresByType = new HashMap>();
-
- private static final String[] STATUS_DATAPOINT_NAMES = new String[] { DATAPOINT_NAME_UNREACH,
- DATAPOINT_NAME_CONFIG_PENDING, DATAPOINT_NAME_DEVICE_IN_BOOTLOADER, DATAPOINT_NAME_UPDATE_PENDING };
+ private final Map> firmwaresByType = new HashMap<>();
private static final String[] IGNORE_DATAPOINT_NAMES = new String[] { DATAPOINT_NAME_AES_KEY,
VIRTUAL_DATAPOINT_NAME_RELOAD_FROM_GATEWAY };
@@ -145,9 +142,9 @@ public void generate(HmDevice device) {
logger.debug("Generating ThingType for device '{}' with {} datapoints", device.getType(),
device.getDatapointCount());
- List groupTypes = new ArrayList();
+ List groupTypes = new ArrayList<>();
for (HmChannel channel : device.getChannels()) {
- List channelDefinitions = new ArrayList();
+ List channelDefinitions = new ArrayList<>();
// Omit thing channel definitions for reconfigurable channels;
// those will be populated dynamically during thing initialization
if (!channel.isReconfigurable()) {
@@ -210,7 +207,7 @@ private void addFirmware(HmDevice device) {
&& !DEVICE_TYPE_VIRTUAL_WIRED.equals(device.getType())) {
Set firmwares = firmwaresByType.get(device.getType());
if (firmwares == null) {
- firmwares = new HashSet();
+ firmwares = new HashSet<>();
firmwaresByType.put(device.getType(), firmwares);
}
firmwares.add(device.getFirmware());
@@ -224,11 +221,11 @@ private ThingType createThingType(HmDevice device, List groupT
String label = MetadataUtils.getDeviceName(device);
String description = String.format("%s (%s)", label, device.getType());
- List supportedBridgeTypeUids = new ArrayList();
+ List supportedBridgeTypeUids = new ArrayList<>();
supportedBridgeTypeUids.add(THING_TYPE_BRIDGE.toString());
ThingTypeUID thingTypeUID = UidUtils.generateThingTypeUID(device);
- Map properties = new HashMap();
+ Map properties = new HashMap<>();
properties.put(Thing.PROPERTY_VENDOR, PROPERTY_VENDOR_NAME);
properties.put(Thing.PROPERTY_MODEL_ID, device.getType());
@@ -237,7 +234,7 @@ private ThingType createThingType(HmDevice device, List groupT
generateConfigDescription(device, configDescriptionURI);
}
- List groupDefinitions = new ArrayList();
+ List groupDefinitions = new ArrayList<>();
for (ChannelGroupType groupType : groupTypes) {
String id = StringUtils.substringAfterLast(groupType.getUID().getId(), "_");
groupDefinitions.add(new ChannelGroupDefinition(id, groupType.getUID()));
@@ -283,7 +280,7 @@ public StateOption createOption(String value, String description) {
BigDecimal step = MetadataUtils.createBigDecimal(dp.getStep());
if (step == null) {
- step = MetadataUtils.createBigDecimal(dp.isFloatType() ? new Float(0.1) : 1L);
+ step = MetadataUtils.createBigDecimal(dp.isFloatType() ? new Float(0.1) : new Long(1L));
}
state = new StateDescription(min, max, step, MetadataUtils.getStatePattern(dp), dp.isReadOnly(),
options);
@@ -314,8 +311,8 @@ public EventOption createOption(String value, String description) {
}
private void generateConfigDescription(HmDevice device, URI configDescriptionURI) {
- List parms = new ArrayList();
- List groups = new ArrayList();
+ List parms = new ArrayList<>();
+ List groups = new ArrayList<>();
for (HmChannel channel : device.getChannels()) {
String groupName = "HMG_" + channel.getNumber();
@@ -346,7 +343,8 @@ public ParameterOption createOption(String value, String description) {
if (dp.isNumberType()) {
builder.withMinimum(MetadataUtils.createBigDecimal(dp.getMinValue()));
builder.withMaximum(MetadataUtils.createBigDecimal(dp.getMaxValue()));
- builder.withStepSize(MetadataUtils.createBigDecimal(dp.isFloatType() ? new Float(0.1) : 1L));
+ builder.withStepSize(
+ MetadataUtils.createBigDecimal(dp.isFloatType() ? new Float(0.1) : new Long(1L)));
builder.withUnitLabel(MetadataUtils.getUnit(dp));
}
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java
index 45940748db527..69f5517be755c 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -62,7 +62,7 @@ protected static void initialize() {
private static void loadBundle(String filename) {
descriptionsBundle = ResourceBundle.getBundle(filename, Locale.getDefault());
for (String key : descriptionsBundle.keySet()) {
- descriptions.put(key, descriptionsBundle.getString(key));
+ descriptions.put(key.toUpperCase(), descriptionsBundle.getString(key));
}
ResourceBundle.clearCache();
descriptionsBundle = null;
@@ -200,7 +200,7 @@ public static String getDescription(String... keys) {
if (key.endsWith("|")) {
key = key.substring(0, key.length() - 1);
}
- String description = descriptions.get(key);
+ String description = descriptions.get(key.toUpperCase());
if (description != null) {
return description;
}
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/UidUtils.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/UidUtils.java
index a7989fcedd616..865608f09eeab 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/UidUtils.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/UidUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/generator/CcuMetadataExtractor.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/generator/CcuMetadataExtractor.java
index bb436760bcdc9..4ac8afef4aec4 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/generator/CcuMetadataExtractor.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/generator/CcuMetadataExtractor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/type/HomematicThingTypeExcluder.java b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/type/HomematicThingTypeExcluder.java
index daa0b2af15d93..66613e9c202b2 100644
--- a/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/type/HomematicThingTypeExcluder.java
+++ b/bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/type/HomematicThingTypeExcluder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.homematic/src/main/resources/ESH-INF/thing/bridge.xml
index 6dcd39229c325..7d86ee2afd455 100644
--- a/bundles/org.openhab.binding.homematic/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.homematic/src/main/resources/ESH-INF/thing/bridge.xml
@@ -57,60 +57,60 @@
15
-
+
The time to live for discovery results of a Homematic gateway in seconds. (default = -1 -> infinite)true-1
-
+
The maximum lifetime of a socket connection to and from a Homematic gateway in seconds (default = 900)true900
-
+
The port number of the RF daemontrue2001
-
+
The port number of the HS485 daemontrue2000
-
+
The port number of the Homematic IP daemontrue2010
-
+
The port number of the CUxD daemontrue8701
-
+
The port number of the Group daemontrue9292
-
+
Time in seconds that the controller will be in install mode when a device discovery is initiated60
-
+
If set to true, devices are unpaired from the gateway when their corresponding things are removed. The option "factoryResetOnDeletion" also unpairs a device, so in order to avoid unpairing on deletion, both options need to be set to false!truefalse
-
+
If set to true, devices are factory reset when their corresponding things are removed. Due to the factory reset, the device will also be unpaired from the gateway, even if "unpairOnDeletion" is set to false!truefalse
diff --git a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/batteries.properties b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/batteries.properties
index 715b58693c8f3..46961a0789404 100644
--- a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/batteries.properties
+++ b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/batteries.properties
@@ -102,6 +102,7 @@ HmIP-SWO-B=3x AA/Mignon/LR06
HmIP-WGC=2x AA/Mignon/LR06
# MAX!
+BC-RT-TRX-CyN=2x AA/Mignon/LR06
BC-RT-TRX-CyG=2x AA/Mignon/LR06
BC-RT-TRX-CyG-2=2x AA/Mignon/LR06
BC-RT-TRX-CyG-3=2x AA/Mignon/LR06
diff --git a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions.properties b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions.properties
index 1f63ea5e1bc5c..4e82249291dc2 100644
--- a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions.properties
+++ b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions.properties
@@ -6,6 +6,7 @@ HM-WDS30-OT2-SM-2=Wireless Differential Temperature Sensor
HM-Sen-MDIR-O-2=Wireless Motion Detector, outdoor
# MAX!
+BC-RT-TRX-CyN=MAX! Radiator thermostat basic
BC-RT-TRX-CyG=MAX! Radiator thermostat
BC-RT-TRX-CyG-2=MAX! Wall thermostat WT+
BC-RT-TRX-CyG-3=MAX! Radiator thermostat
@@ -17,14 +18,20 @@ BC-SC-Rd-WM-2=MAX! Windows sensor
# Homematic IP
HmIP-HAP=Homematic IP Access Point
+HmIP-RCV-50=Homematic IP virtual remote control
HmIP-SWDO=Homematic IP Door-/window contact, optical
HmIP-WTH=Homematic IP Wall thermostat with humidity sensor
+HmIP-STH=Homematic IP Wall temperature and humidity sensor
+HmIP-STHD=Homematic IP Wall temperature and humidity sensor with display
HMIP-WRC2=Homematic IP Wall mount remote control 2 button
HMIP-PS=Homematic IP Pluggable switch
HMIP-PSM=Homematic IP Pluggable switch and meter
HMIP-eTRV=Homematic IP Radiator thermostat
HMIP-eTRV-2=Homematic IP Radiator thermostat
+HMIP-eTRV-B=Homematic IP Radiator thermostat basic
+HMIP-eTRV-C=Homematic IP Radiator thermostat compact
HmIP-SMI=Homematic IP motion detector with brightness sensor
+HmIP-SMO=Homematic IP motion detector with brightness sensor - outdoor
HmIP-KRC4=Homematic IP Key Ring Remote Control - 4 buttons
HmIP-RC8=Homematic IP Remote Control - 8 buttons
HmIP-DRA=Homematic IP DIN-Rail Adapter for Multi IO Box
@@ -50,6 +57,7 @@ HmIP-PCBS-BAT=Circuit board for battery operation
HmIP-FROLL=Homematic IP Wireless Blind Actuator
HmIP-BROLL=Homematic IP Wireless Blind Actuator for brand switches
HmIP-BRC2=Homematic IP Wall-mount Remote Control for brand switches - 2 channels
+HmIP-MOD-TM=Homematic IP Garage Door Module
# virtual datapoints
DELETE_DEVICE_MODE=Deletemode
diff --git a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions_de.properties b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions_de.properties
index e29a037776884..0a30d90cd5b7a 100644
--- a/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions_de.properties
+++ b/bundles/org.openhab.binding.homematic/src/main/resources/homematic/extra-descriptions_de.properties
@@ -6,6 +6,7 @@ HM-WDS30-OT2-SM-2=Funk-Temperaturdifferenzsensor
HM-Sen-MDIR-O-2=Funk-Bewegungsmelder außen
# MAX!
+BC-RT-TRX-CyN=MAX! Heizkörperthermostat Basic
BC-RT-TRX-CyG=MAX! Elektronischer Heizkörperthermostat
BC-RT-TRX-CyG-2=MAX! Wandthermostat WT+
BC-RT-TRX-CyG-3=MAX! Heizkörperthermostat
@@ -17,14 +18,20 @@ BC-SC-Rd-WM-2=MAX! Fensterkontakt
# Homematic IP
HmIP-HAP=Homematic IP Access Point
+HmIP-RCV-50=Homematic IP virtuelle Fernbedienung
HmIP-SWDO=Homematic IP Fenster- und Türkontakt, optisch
HmIP-WTH=Homematic IP Wandthermostat mit Luftfeuchtigkeitssensor
+HmIP-STH=Homematic IP Temperatur- und Luftfeuchtigkeitssensor - innen
+HmIP-STHD=Homematic IP Temperatur- und Luftfeuchtigkeitssensor mit Display - innen
HMIP-WRC2=Homematic IP Wandtaster, 2-fach
HMIP-PS=Homematic IP Schaltsteckdose
HMIP-PSM=Homematic IP Schalt-Mess-Steckdose
HMIP-eTRV=Homematic IP Heizkörperthermostat
HMIP-eTRV-2=Homematic IP Heizkörperthermostat
+HMIP-eTRV-B=Homematic IP Heizkörperthermostat Basis
+HMIP-eTRV-C=Homematic IP Heizkörperthermostat kompakt
HmIP-SMI=Homematic IP Bewegungsmelder mit Dämmerungssensor
+HmIP-SMO=Homematic IP Bewegungsmelder mit Dämmerungssensor außen
HmIP-KRC4=Homematic IP Schlüsselbundfernbedienung - 4 Tasten
HmIP-RC8=Homematic IP Fernbedienung - 8 Tasten
HmIP-DRA=Homematic IP Hutschienenadapter für Multi IO Box
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/client/RpcClientTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/client/RpcClientTest.java
index 577f14d4c7c46..55a18270345df 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/client/RpcClientTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/client/RpcClientTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,9 +12,7 @@
*/
package org.openhab.binding.homematic.internal.communicator.client;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.openhab.binding.homematic.internal.HomematicBindingConstants.*;
import static org.openhab.binding.homematic.test.util.DimmerHelper.*;
@@ -31,6 +29,9 @@
import org.openhab.binding.homematic.internal.model.HmParamsetType;
import org.openhab.binding.homematic.test.util.RpcClientMockImpl;
+/**
+ * @author Florian Stolte - Initial contribution
+ */
public class RpcClientTest extends JavaTest {
private RpcClientMockImpl rpcClient;
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonDatapointTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonDatapointTest.java
index 845238751f499..55a144308f424 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonDatapointTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/communicator/virtual/ButtonDatapointTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/BaseConverterTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/BaseConverterTest.java
index 98389e94d848a..07cbbf7f9b262 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/BaseConverterTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/BaseConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -20,6 +20,9 @@
import org.openhab.binding.homematic.internal.model.HmParamsetType;
import org.openhab.binding.homematic.internal.model.HmValueType;
+/**
+ * @author Michael Reitler - Initial contribution
+ */
public class BaseConverterTest {
protected final HmDatapoint floatDp = new HmDatapoint("floatDp", "", HmValueType.FLOAT, null, false,
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertFromBindingTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertFromBindingTest.java
index 886867d09e9e9..2a9cead5fc0f5 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertFromBindingTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertFromBindingTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertToBindingTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertToBindingTest.java
index ceff882d19d52..6b85b34665f8a 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertToBindingTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConvertToBindingTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConverterFactoryTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConverterFactoryTest.java
index 211febc9b06b1..7bd75bf89a736 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConverterFactoryTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/converter/ConverterFactoryTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryServiceTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryServiceTest.java
index ce66c6ad28903..1fb25ef28024f 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryServiceTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/discovery/HomematicDeviceDiscoveryServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,12 +14,8 @@
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
import static org.openhab.binding.homematic.test.util.BridgeHelper.createHomematicBridge;
import static org.openhab.binding.homematic.test.util.DimmerHelper.createDimmerHmDevice;
@@ -34,7 +30,6 @@
import org.junit.Before;
import org.junit.Test;
import org.openhab.binding.homematic.internal.communicator.HomematicGateway;
-import org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService;
import org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler;
import org.openhab.binding.homematic.internal.model.HmDevice;
import org.openhab.binding.homematic.internal.type.HomematicTypeGenerator;
@@ -42,7 +37,7 @@
/**
* Tests for {@link HomematicDeviceDiscoveryServiceTest}.
- *
+ *
* @author Florian Stolte - Initial Contribution
*
*/
@@ -54,7 +49,8 @@ public class HomematicDeviceDiscoveryServiceTest extends JavaTest {
@Before
public void setup() throws IOException {
this.homematicBridgeHandler = mockHomematicBridgeHandler();
- this.homematicDeviceDiscoveryService = new HomematicDeviceDiscoveryService(homematicBridgeHandler);
+ this.homematicDeviceDiscoveryService = new HomematicDeviceDiscoveryService();
+ this.homematicDeviceDiscoveryService.setThingHandler(homematicBridgeHandler);
}
private HomematicBridgeHandler mockHomematicBridgeHandler() throws IOException {
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/handler/SimplePortPoolTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/handler/SimplePortPoolTest.java
index 68cd1d9561b06..1c336fd4f03e4 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/handler/SimplePortPoolTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/handler/SimplePortPoolTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/type/UidUtilsTest.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/type/UidUtilsTest.java
index cb18d4fb0df99..e6ddb1b54f038 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/type/UidUtilsTest.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/internal/type/UidUtilsTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/BridgeHelper.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/BridgeHelper.java
index c0f6d3558222c..e8b4619fa1a8b 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/BridgeHelper.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/BridgeHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/DimmerHelper.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/DimmerHelper.java
index 97653ce3a2436..a20dc637869fe 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/DimmerHelper.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/DimmerHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/RpcClientMockImpl.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/RpcClientMockImpl.java
index b5c63517737a4..7120c6ee56839 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/RpcClientMockImpl.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/RpcClientMockImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -21,6 +21,9 @@
import org.openhab.binding.homematic.internal.communicator.client.RpcClient;
import org.openhab.binding.homematic.internal.communicator.message.RpcRequest;
+/**
+ * @author Florian Stolte - Initial contribution
+ */
public class RpcClientMockImpl extends RpcClient {
public static final String GET_PARAMSET_DESCRIPTION_NAME = "getParamsetDescription";
diff --git a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/SimpleDiscoveryListener.java b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/SimpleDiscoveryListener.java
index 18a5121dd5a73..40989ad5de667 100644
--- a/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/SimpleDiscoveryListener.java
+++ b/bundles/org.openhab.binding.homematic/src/test/java/org/openhab/binding/homematic/test/util/SimpleDiscoveryListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/NOTICE b/bundles/org.openhab.binding.hpprinter/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.hpprinter/NOTICE
+++ b/bundles/org.openhab.binding.hpprinter/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.hpprinter/pom.xml b/bundles/org.openhab.binding.hpprinter/pom.xml
index 454e854c38cab..819d3984b107b 100644
--- a/bundles/org.openhab.binding.hpprinter/pom.xml
+++ b/bundles/org.openhab.binding.hpprinter/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.hpprinter
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/feature/feature.xml b/bundles/org.openhab.binding.hpprinter/src/main/feature/feature.xml
index 1d270cadf47ad..9b2483a3f3ca8 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.hpprinter/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterBindingConstants.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterBindingConstants.java
index 2499edbf12414..ed8be8655afcb 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterBindingConstants.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterConfiguration.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterConfiguration.java
index 49aed088d5a51..6638ddfcfaa85 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterConfiguration.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterDiscoveryParticipant.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterDiscoveryParticipant.java
index 5ad542a54ab31..5f611bec4f330 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/HPPrinterDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPServerResult.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPServerResult.java
index 1f5684985b1cd..891a474ba6917 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPServerResult.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPServerResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPStatus.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPStatus.java
index 737928d0aabe5..54fbe38ac38a5 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPStatus.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPStatus.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPType.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPType.java
index 5ed85d72e26b0..f43488a8ad311 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPType.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPUsage.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPUsage.java
index 1a71aa41a5dc1..e73ceae103b37 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPUsage.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPUsage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPWebServerClient.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPWebServerClient.java
index 39d0f653ad5a3..7b61aba0c6c01 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPWebServerClient.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPWebServerClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinder.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinder.java
index dffa005763a67..e8d2fd66021dc 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinder.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinderEvent.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinderEvent.java
index 5e9bf99693b37..356ca6ad96564 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinderEvent.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/binder/HPPrinterBinderEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandler.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandler.java
index bdf3a8e7f9053..ccbea597b5db1 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandler.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandlerFactory.java b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandlerFactory.java
index 99f35e3f2a062..3ca78bb11596f 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandlerFactory.java
+++ b/bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/handler/HPPrinterHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/config/config.xml
index 1842b34b13811..6e73abb62dd5b 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/config/config.xml
@@ -1,9 +1,9 @@
+ xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0
+ https://openhab.org/schemas/config-description-1.0.0.xsd">
@@ -25,4 +25,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-groups.xml b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-groups.xml
index ae97b511a0c6e..fa2d768da05d6 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-groups.xml
+++ b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-groups.xml
@@ -1,22 +1,26 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
+
+
-
+
+
+
@@ -27,4 +31,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-types.xml
index 3f8abe1d988de..897115cb5e726 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-types.xml
+++ b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/channel-types.xml
@@ -1,5 +1,5 @@
-
+Number:Dimensionless
@@ -34,4 +34,4 @@
Printer Status
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/thing-printer.xml b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/thing-printer.xml
index c72edef0bc042..fc414c14e0ce5 100644
--- a/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/thing-printer.xml
+++ b/bundles/org.openhab.binding.hpprinter/src/main/resources/ESH-INF/thing/thing-printer.xml
@@ -1,8 +1,8 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
@@ -19,4 +19,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.hue/NOTICE b/bundles/org.openhab.binding.hue/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.hue/NOTICE
+++ b/bundles/org.openhab.binding.hue/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.hue/README.md b/bundles/org.openhab.binding.hue/README.md
index eb16abeeecb1d..bc2c6ac88a9e4 100644
--- a/bundles/org.openhab.binding.hue/README.md
+++ b/bundles/org.openhab.binding.hue/README.md
@@ -1,6 +1,6 @@
# Philips Hue Binding
-This binding integrates the [Philips Hue Lighting system](http://www.meethue.com).
+This binding integrates the [Philips Hue Lighting system](https://www.meethue.com).
The integration happens through the Hue bridge, which acts as an IP gateway to the ZigBee devices.
![Philips Hue](doc/hue.jpg)
@@ -47,8 +47,9 @@ The following matrix lists the capabilities (channels) for each type:
| 0220 | X | X | | X |
Beside bulbs and luminaires the Hue binding supports some ZigBee sensors.
-Currently only Hue specific sensors are tested successfully (e.g. Hue Motion Sensor, Hue Dimmer Switch, Hue Tap).
+Currently only Hue specific sensors are tested successfully (e.g. Hue Motion Sensor, Hue Dimmer Switch, Hue Tap, CLIP Sensor).
The Hue Motion Sensor registers a `ZLLLightLevel` sensor (0106), a `ZLLPresence` sensor (0107) and a `ZLLTemperature` sensor (0302) in one device.
+The Hue CLIP Sensor saves scene states with status or flag for HUE rules.
They are presented by the following ZigBee Device ID and _Thing type_:
| Device type | ZigBee Device ID | Thing type |
@@ -58,9 +59,13 @@ They are presented by the following ZigBee Device ID and _Thing type_:
| Temperature Sensor | 0x0302 | 0302 |
| Non-Colour Controller | 0x0820 | 0820 |
| Non-Colour Scene Controller | 0x0830 | 0830 |
+| CLIP Generic Status Sensor | 0x0840 | 0840 |
+| CLIP Generic Flag Sensor | 0x0850 | 0850 |
The Hue Dimmer Switch has 4 buttons and registers as a Non-Colour Controller switch, while the Hue Tap (also 4 buttons) registers as a Non-Colour Scene Controller in accordance with the ZLL standard.
+Also, Hue bridge support CLIP Generic Status Sensor and CLIP Generic Flag Sensor. These sensors save state for rules and calculate what actions to do. CLIP Sensor set or get by json through IP.
+
The type of a specific device can be found in the configuration section for things in the PaperUI.
It is part of the unique thing id which could look like:
@@ -152,7 +157,9 @@ The devices support some of the following channels:
| daylight | Switch | This channel indicates whether the light level is below the daylight threshold or not. | 0106 |
| presence | Switch | This channel indicates whether a motion is detected by the sensor or not. | 0107 |
| temperature | Number:Temperature | This channel shows the current temperature measured by the sensor. | 0302 |
-| last_updated | DateTime | This channel the date and time when the sensor was last updated. | 0820, 0830, 0106, 0107, 0302 |
+| flag | Switch | This channel save flag state for a CLIP sensor. | 0850 |
+| status | Number | This channel save status state for a CLIP sensor. | 0840 |
+| last_updated | DateTime | This channel the date and time when the sensor was last updated. | 0820, 0830, 0840, 0850, 0106, 0107, 0302|
| battery_level | Number | This channel shows the battery level. | 0820, 0106, 0107, 0302 |
| battery_low | Switch | This channel indicates whether the battery is low or not. | 0820, 0106, 0107, 0302 |
diff --git a/bundles/org.openhab.binding.hue/pom.xml b/bundles/org.openhab.binding.hue/pom.xml
index a6de4e182525e..6677086bdf603 100644
--- a/bundles/org.openhab.binding.hue/pom.xml
+++ b/bundles/org.openhab.binding.hue/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.hue
diff --git a/bundles/org.openhab.binding.hue/src/main/feature/feature.xml b/bundles/org.openhab.binding.hue/src/main/feature/feature.xml
index 2a4cc29f37ff8..4fa260af97a0c 100644
--- a/bundles/org.openhab.binding.hue/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.hue/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersion.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersion.java
index 68ff14aaf9705..7efea2a71e6ac 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersion.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersion.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersionUtils.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersionUtils.java
index 4324be9c45fe3..d82e1b9c66642 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersionUtils.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ApiVersionUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/BridgeConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/BridgeConfigUpdate.java
index c0a758fad87d3..141f050c11e3d 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/BridgeConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/BridgeConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Command.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Command.java
index ac5f785c0e28a..a31f81731ff6c 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Command.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Command.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Config.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Config.java
index ec23b300aea72..8ecb909a756c7 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Config.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Config.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ConfigUpdate.java
index 189c8203136ea..8173789ecddee 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateScheduleRequest.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateScheduleRequest.java
index 4ed8dc48dfc64..03493d075656b 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateScheduleRequest.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateScheduleRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateUserRequest.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateUserRequest.java
index 560c2070f1916..8e640b64318d6 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateUserRequest.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/CreateUserRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ErrorResponse.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ErrorResponse.java
index 69be14e2f6a82..63dd34496c15d 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ErrorResponse.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ErrorResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullConfig.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullConfig.java
index fdccec18f00db..8d1fdfd439f3b 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullConfig.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullGroup.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullGroup.java
index 1782373e37f4e..222929e27fc7e 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullGroup.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullGroup.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullHueObject.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullHueObject.java
index d66019a51a50d..2f5e07711b7b1 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullHueObject.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullHueObject.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullLight.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullLight.java
index d80044c40281b..d0a48e63395a9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullLight.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullLight.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSchedule.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSchedule.java
index b4f6b8016e526..ee68241afe562 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSchedule.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSchedule.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSensor.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSensor.java
index b67c337d67c2c..800e47d451f7b 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSensor.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/FullSensor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -32,6 +32,8 @@ public class FullSensor extends FullHueObject {
public static final String STATE_LIGHT_LEVEL = "lightlevel";
public static final String STATE_DARK = "dark";
public static final String STATE_DAYLIGHT = "daylight";
+ public static final String STATE_STATUS = "status";
+ public static final String STATE_FLAG = "flag";
public static final String CONFIG_REACHABLE = "reachable";
public static final String CONFIG_BATTERY = "battery";
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Group.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Group.java
index 2e1a34a6f96b7..1e2103e5168f7 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Group.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Group.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HttpClient.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HttpClient.java
index bc68fdfeb4df8..a7f7569607a56 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HttpClient.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HttpClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBindingConstants.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBindingConstants.java
index 96a19aa37827a..7802c2e216b31 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBindingConstants.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -45,6 +45,8 @@ public class HueBindingConstants {
public static final ThingTypeUID THING_TYPE_DIMMER_SWITCH = new ThingTypeUID(BINDING_ID, "0820");
public static final ThingTypeUID THING_TYPE_TAP_SWITCH = new ThingTypeUID(BINDING_ID, "0830");
+ public static final ThingTypeUID THING_TYPE_CLIP_GENERIC_STATUS = new ThingTypeUID(BINDING_ID, "0840");
+ public static final ThingTypeUID THING_TYPE_CLIP_GENERIC_FLAG = new ThingTypeUID(BINDING_ID, "0850");
public static final ThingTypeUID THING_TYPE_PRESENCE_SENSOR = new ThingTypeUID(BINDING_ID, "0107");
public static final ThingTypeUID THING_TYPE_TEMPERATURE_SENSOR = new ThingTypeUID(BINDING_ID, "0302");
public static final ThingTypeUID THING_TYPE_LIGHT_LEVEL_SENSOR = new ThingTypeUID(BINDING_ID, "0106");
@@ -67,6 +69,8 @@ public class HueBindingConstants {
public static final String CHANNEL_LIGHT_LEVEL = "light_level";
public static final String CHANNEL_DARK = "dark";
public static final String CHANNEL_DAYLIGHT = "daylight";
+ public static final String CHANNEL_STATUS = "status";
+ public static final String CHANNEL_FLAG = "flag";
// List all triggers
public static final String EVENT_DIMMER_SWITCH = "dimmer_switch_event";
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBridge.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBridge.java
index e77622cae4916..048d9ca4cfbf9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBridge.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueBridge.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -363,6 +363,24 @@ public CompletableFuture setLightState(FullLight light, StateUpdate upda
scheduler);
}
+ /**
+ * Changes the state of a clip sensor.
+ *
+ * @param sensor sensor
+ * @param update changes to the state
+ * @throws UnauthorizedException thrown if the user no longer exists
+ * @throws EntityNotAvailableException thrown if the specified sensor no longer exists
+ * @throws DeviceOffException thrown if the specified sensor is turned off
+ * @throws IOException if the bridge cannot be reached
+ */
+ public CompletableFuture setSensorState(FullSensor sensor, StateUpdate update) {
+ requireAuthentication();
+
+ String body = update.toJson();
+ return http.putAsync(getRelativeURL("sensors/" + enc(sensor.getId()) + "/state"), body, update.getMessageDelay(),
+ scheduler);
+ }
+
/**
* Changes the config of a sensor.
*
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueConfigStatusMessage.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueConfigStatusMessage.java
index 6e46dea22a070..7ad0911e2f71e 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueConfigStatusMessage.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueConfigStatusMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueObject.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueObject.java
index d30ada399b5ae..7ae7aa494fc25 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueObject.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueObject.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueThingHandlerFactory.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueThingHandlerFactory.java
index ae4cd08acf682..ba78ea1e222a9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueThingHandlerFactory.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/HueThingHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -41,6 +41,7 @@
import org.openhab.binding.hue.internal.handler.sensors.PresenceHandler;
import org.openhab.binding.hue.internal.handler.sensors.TapSwitchHandler;
import org.openhab.binding.hue.internal.handler.sensors.TemperatureHandler;
+import org.openhab.binding.hue.internal.handler.sensors.ClipHandler;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.annotations.Component;
@@ -60,7 +61,7 @@ public class HueThingHandlerFactory extends BaseThingHandlerFactory {
Stream.of(HueBridgeHandler.SUPPORTED_THING_TYPES.stream(), HueLightHandler.SUPPORTED_THING_TYPES.stream(),
DimmerSwitchHandler.SUPPORTED_THING_TYPES.stream(), TapSwitchHandler.SUPPORTED_THING_TYPES.stream(),
PresenceHandler.SUPPORTED_THING_TYPES.stream(), TemperatureHandler.SUPPORTED_THING_TYPES.stream(),
- LightLevelHandler.SUPPORTED_THING_TYPES.stream()).flatMap(i -> i).collect(Collectors.toSet()));
+ LightLevelHandler.SUPPORTED_THING_TYPES.stream(), ClipHandler.SUPPORTED_THING_TYPES.stream()).flatMap(i -> i).collect(Collectors.toSet()));
private final Map> discoveryServiceRegs = new HashMap<>();
@@ -76,7 +77,8 @@ public class HueThingHandlerFactory extends BaseThingHandlerFactory {
|| TapSwitchHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)
|| PresenceHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)
|| TemperatureHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)
- || LightLevelHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)) {
+ || LightLevelHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)
+ || ClipHandler.SUPPORTED_THING_TYPES.contains(thingTypeUID)) {
ThingUID hueSensorUID = getSensorUID(thingTypeUID, thingUID, configuration, bridgeUID);
return super.createThing(thingTypeUID, configuration, hueSensorUID, bridgeUID);
}
@@ -133,6 +135,8 @@ private ThingUID getThingUID(ThingTypeUID thingTypeUID, String id, @Nullable Thi
return new TemperatureHandler(thing);
} else if (LightLevelHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
return new LightLevelHandler(thing);
+ } else if (ClipHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
+ return new ClipHandler(thing);
} else {
return null;
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/LightLevelConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/LightLevelConfigUpdate.java
index cc3ca74463839..a6fa4f3cf83de 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/LightLevelConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/LightLevelConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/NewLightsResponse.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/NewLightsResponse.java
index e49e1a56ff7bf..53e96f6fb1d03 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/NewLightsResponse.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/NewLightsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PortalDiscoveryResult.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PortalDiscoveryResult.java
index 21c168ef13762..7385c08815e21 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PortalDiscoveryResult.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PortalDiscoveryResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PresenceConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PresenceConfigUpdate.java
index 9a9dda1f013d3..7d76d104af4e9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PresenceConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/PresenceConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Schedule.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Schedule.java
index 0a8ce848d114b..1961521caa3bc 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Schedule.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Schedule.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleCommand.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleCommand.java
index 35fd3f5e26bc2..9c365091686e3 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleCommand.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleUpdate.java
index 951c62f9e2a65..f5bd818e24644 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/ScheduleUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SearchForLightsRequest.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SearchForLightsRequest.java
index 9bc285ef2b595..5449aeca9e0d9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SearchForLightsRequest.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SearchForLightsRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SensorConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SensorConfigUpdate.java
index 60c2427fc0b11..18d82d90ba9d4 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SensorConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SensorConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SetAttributesRequest.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SetAttributesRequest.java
index 19a411625e461..f1748b1b5bced 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SetAttributesRequest.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SetAttributesRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SoftwareUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SoftwareUpdate.java
index 802ff204f13cd..6087d770ed221 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SoftwareUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SoftwareUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/State.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/State.java
index 3180115c6d8d8..15282cbba34e9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/State.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/State.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/StateUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/StateUpdate.java
index cd659e43d9fc2..c8be2d4d2a479 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/StateUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/StateUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -196,4 +196,27 @@ public StateUpdate setTransitionTime(long timeMillis) {
return this;
}
+ /**
+ * Turn sensor flag on or off.
+ *
+ * @param flag on if true, off otherwise
+ * @return this object for chaining calls
+ */
+
+ public StateUpdate setFlag(boolean flag) {
+ commands.add(new Command("flag", flag));
+ return this;
+ }
+
+ /**
+ * Set status of sensor.
+ *
+ * @param status status
+ * @return this object for chaining calls
+ */
+ public StateUpdate setStatus(int status) {
+ commands.add(new Command("status", status));
+ return this;
+ }
+
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SuccessResponse.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SuccessResponse.java
index d055d1a51b30a..56926fbca0beb 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SuccessResponse.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/SuccessResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/TemperatureConfigUpdate.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/TemperatureConfigUpdate.java
index 4423d99be8b0d..93855b11da6df 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/TemperatureConfigUpdate.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/TemperatureConfigUpdate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/User.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/User.java
index bb19684b14aca..c6b476a7641bf 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/User.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/User.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Util.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Util.java
index 93f1c63d54139..4da60a8775e85 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Util.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/Util.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/action/LightActions.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/action/LightActions.java
index b871731870820..57fd8a12bbb0c 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/action/LightActions.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/action/LightActions.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/config/HueBridgeConfig.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/config/HueBridgeConfig.java
index dc5c0c2c62904..59182703c9cba 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/config/HueBridgeConfig.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/config/HueBridgeConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/BridgeJsonParameters.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/BridgeJsonParameters.java
index 4063dcad6d17f..f78ab8f1b92ac 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/BridgeJsonParameters.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/BridgeJsonParameters.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeDiscoveryParticipant.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeDiscoveryParticipant.java
index 227b4d4a169b9..8e1cbadaf365b 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeNupnpDiscovery.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeNupnpDiscovery.java
index d36f5f4f61759..dbaaeb25f531d 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeNupnpDiscovery.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueBridgeNupnpDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -56,7 +56,7 @@ public class HueBridgeNupnpDiscovery extends AbstractDiscoveryService {
protected static final String BRIDGE_INDICATOR = "fffe";
- private static final String DISCOVERY_URL = "https://www.meethue.com/api/nupnp";
+ private static final String DISCOVERY_URL = "https://discovery.meethue.com/";
protected static final String LABEL_PATTERN = "Philips hue (IP)";
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueLightDiscoveryService.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueLightDiscoveryService.java
index 1aadba714876a..b2edab9984c61 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueLightDiscoveryService.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/discovery/HueLightDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -45,6 +45,7 @@
import org.openhab.binding.hue.internal.handler.sensors.PresenceHandler;
import org.openhab.binding.hue.internal.handler.sensors.TapSwitchHandler;
import org.openhab.binding.hue.internal.handler.sensors.TemperatureHandler;
+import org.openhab.binding.hue.internal.handler.sensors.ClipHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,6 +60,7 @@
* @author Denis Dudnik - switched to internally integrated source of Jue library
* @author Samuel Leisering - Added support for sensor API
* @author Christoph Weitkamp - Added support for sensor API
+ * @author Meng Yiqi - Added support for CLIP sensor
*/
@NonNullByDefault
public class HueLightDiscoveryService extends AbstractDiscoveryService
@@ -66,7 +68,8 @@ public class HueLightDiscoveryService extends AbstractDiscoveryService
public static final Set SUPPORTED_THING_TYPES = Collections.unmodifiableSet(Stream
.of(HueLightHandler.SUPPORTED_THING_TYPES.stream(), DimmerSwitchHandler.SUPPORTED_THING_TYPES.stream(),
TapSwitchHandler.SUPPORTED_THING_TYPES.stream(), PresenceHandler.SUPPORTED_THING_TYPES.stream(),
- TemperatureHandler.SUPPORTED_THING_TYPES.stream(), LightLevelHandler.SUPPORTED_THING_TYPES.stream())
+ TemperatureHandler.SUPPORTED_THING_TYPES.stream(), LightLevelHandler.SUPPORTED_THING_TYPES.stream(),
+ ClipHandler.SUPPORTED_THING_TYPES.stream())
.flatMap(i -> i).collect(Collectors.toSet()));
private final Logger logger = LoggerFactory.getLogger(HueLightDiscoveryService.class);
@@ -84,6 +87,8 @@ public class HueLightDiscoveryService extends AbstractDiscoveryService
new SimpleEntry<>("color_temperature_light", "0220"),
new SimpleEntry<>("zllswitch", "0820"),
new SimpleEntry<>("zgpswitch", "0830"),
+ new SimpleEntry<>("clipgenericstatus", "0840"),
+ new SimpleEntry<>("clipgenericflag", "0850"),
new SimpleEntry<>("zllpresence", "0107"),
new SimpleEntry<>("zlltemperature", "0302"),
new SimpleEntry<>("zlllightlevel", "0106")
@@ -206,7 +211,6 @@ public void onLightStateChanged(@Nullable HueBridge bridge, FullLight light) {
private @Nullable ThingTypeUID getThingTypeUID(FullHueObject hueObject) {
String thingTypeId = TYPE_TO_ZIGBEE_ID_MAP
.get(hueObject.getType().replaceAll(NORMALIZE_ID_REGEX, "_").toLowerCase());
-
return thingTypeId != null ? new ThingTypeUID(BINDING_ID, thingTypeId) : null;
}
@@ -220,7 +224,6 @@ private void onSensorAddedInternal(FullSensor sensor) {
ThingTypeUID thingTypeUID = getThingTypeUID(sensor);
String modelId = sensor.getNormalizedModelID();
-
if (thingUID != null && thingTypeUID != null) {
ThingUID bridgeUID = hueBridgeHandler.getThing().getUID();
Map properties = new HashMap<>();
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/ApiException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/ApiException.java
index 608b7cc144174..fbb7c44a60f58 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/ApiException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/ApiException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/DeviceOffException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/DeviceOffException.java
index 62f434cf5b8f7..fc6fd73437c27 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/DeviceOffException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/DeviceOffException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/EntityNotAvailableException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/EntityNotAvailableException.java
index cd52ea5f77060..59de232750841 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/EntityNotAvailableException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/EntityNotAvailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/GroupTableFullException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/GroupTableFullException.java
index 8a4647180353e..42de5aa4a3caa 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/GroupTableFullException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/GroupTableFullException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/InvalidCommandException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/InvalidCommandException.java
index 88a85f3f3c216..3cb591dc9aa68 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/InvalidCommandException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/InvalidCommandException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/LinkButtonException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/LinkButtonException.java
index aca5c52d31f9f..cbc60740b30b1 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/LinkButtonException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/LinkButtonException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/UnauthorizedException.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/UnauthorizedException.java
index b3ecb41720b2b..440fd896513b0 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/UnauthorizedException.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/exceptions/UnauthorizedException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueBridgeHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueBridgeHandler.java
index e33c798a77dc9..655f2b8b6b7ed 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueBridgeHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -284,6 +284,24 @@ public void updateLightState(FullLight light, StateUpdate stateUpdate) {
}
}
+ @Override
+ public void updateSensorState(FullSensor sensor, StateUpdate stateUpdate) {
+ if (hueBridge != null) {
+ hueBridge.setSensorState(sensor, stateUpdate).thenAccept(result -> {
+ try {
+ hueBridge.handleErrors(result);
+ } catch (Exception e) {
+ handleStateUpdateException(sensor, stateUpdate, e);
+ }
+ }).exceptionally(e -> {
+ handleStateUpdateException(sensor, stateUpdate, e);
+ return null;
+ });
+ } else {
+ logger.warn("No bridge connected or selected. Cannot set sensor state.");
+ }
+ }
+
@Override
public void updateSensorConfig(FullSensor sensor, ConfigUpdate configUpdate) {
if (hueBridge != null) {
@@ -325,6 +343,20 @@ private void handleStateUpdateException(FullLight light, StateUpdate stateUpdate
}
}
+ private void handleStateUpdateException(FullSensor sensor, StateUpdate stateUpdate, Throwable e) {
+ if (e instanceof IOException) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ } else if (e instanceof EntityNotAvailableException) {
+ logger.debug("Error while accessing sensor: {}", e.getMessage(), e);
+ notifySensorStatusListeners(sensor, STATE_GONE);
+ } else if (e instanceof ApiException) {
+ // This should not happen - if it does, it is most likely some bug that should be reported.
+ logger.warn("Error while accessing sensor: {}", e.getMessage(), e);
+ } else if (e instanceof IllegalStateException) {
+ logger.trace("Error while accessing sensor: {}", e.getMessage());
+ }
+ }
+
private void handleConfigUpdateException(FullSensor sensor, ConfigUpdate configUpdate, Throwable e) {
if (e instanceof IOException) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
@@ -765,8 +797,4 @@ public Collection getConfigStatus() {
return configStatusMessages;
}
-
- public long getSensorPollingInterval() {
- return sensorPollingInterval;
- }
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueClient.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueClient.java
index 5e99717aeb8f8..6e2af114e41cb 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueClient.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -94,4 +94,12 @@ public interface HueClient {
* @param configUpdate the config update
*/
void updateSensorConfig(FullSensor sensor, ConfigUpdate configUpdate);
+
+ /**
+ * Updates the given sensor.
+ *
+ * @param sensor the sensor to be updated
+ * @param stateUpdate the state update
+ */
+ void updateSensorState(FullSensor sensor, StateUpdate stateUpdate);
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueLightHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueLightHandler.java
index 91220184f19ac..67251ed77e6da 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueLightHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueLightHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueSensorHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueSensorHandler.java
index 5ce8c259e5c2e..520db00152ecc 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueSensorHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/HueSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -42,6 +42,7 @@
import org.openhab.binding.hue.internal.FullSensor;
import org.openhab.binding.hue.internal.HueBridge;
import org.openhab.binding.hue.internal.SensorConfigUpdate;
+import org.openhab.binding.hue.internal.StateUpdate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,6 +59,7 @@ public abstract class HueSensorHandler extends BaseThingHandler implements Senso
private final Logger logger = LoggerFactory.getLogger(HueSensorHandler.class);
+ private boolean configInitializedSuccessfully;
private boolean propertiesInitializedSuccessfully;
private @Nullable HueClient hueClient;
@@ -148,7 +150,7 @@ public void dispose() {
return null;
}
ThingHandler handler = bridge.getHandler();
- if (handler instanceof HueClient) {
+ if (handler instanceof HueBridgeHandler) {
hueClient = (HueClient) handler;
hueClient.registerSensorStatusListener(this);
} else {
@@ -160,7 +162,40 @@ public void dispose() {
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
- // no commands
+ handleCommand(channelUID.getId(), command);
+ }
+
+ public void handleCommand(String channel, Command command) {
+ // updateSensorState
+ FullSensor sensor = getSensor();
+ if (sensor == null) {
+ logger.debug("hue sensor not known on bridge. Cannot handle command.");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.conf-error-wrong-sensor-id");
+ return;
+ }
+
+ HueClient hueBridge = getHueClient();
+ if (hueBridge == null) {
+ logger.warn("hue bridge handler not found. Cannot handle command without bridge.");
+ return;
+ }
+
+ StateUpdate sensorState = new StateUpdate();
+ switch (channel) {
+ case STATE_STATUS:
+ sensorState = sensorState.setStatus(((DecimalType) command).intValue());
+ break;
+ case STATE_FLAG:
+ sensorState = sensorState.setFlag(OnOffType.ON.equals(command));
+ break;
+ }
+
+ if (sensorState != null) {
+ hueBridge.updateSensorState(sensor, sensorState);
+ } else {
+ logger.warn("Command sent to an unknown channel id: {}:{}", getThing().getUID(), channel);
+ }
}
@Override
@@ -209,7 +244,7 @@ public void onSensorStateChanged(@Nullable HueBridge bridge, FullSensor sensor)
}
// update generic sensor config
- Configuration config = editConfiguration();
+ final Configuration config = !configInitializedSuccessfully ? editConfiguration() : getConfig();
if (sensor.getConfig().containsKey(CONFIG_ON)) {
config.put(CONFIG_ON, sensor.getConfig().get(CONFIG_ON));
}
@@ -229,6 +264,25 @@ public void onSensorStateChanged(@Nullable HueBridge bridge, FullSensor sensor)
}
}
+ Object status = sensor.getState().get(STATE_STATUS);
+ if (status != null) {
+ try {
+ DecimalType value = new DecimalType(String.valueOf(status));
+ updateState(STATE_STATUS, value);
+ } catch (DateTimeParseException e) {
+ // do nothing
+ }
+ }
+ Object flag = sensor.getState().get(STATE_FLAG);
+ if (flag != null) {
+ try {
+ boolean value = Boolean.parseBoolean(String.valueOf(flag));
+ updateState(CHANNEL_FLAG, value ? OnOffType.ON : OnOffType.OFF);
+ } catch (DateTimeParseException e) {
+ // do nothing
+ }
+ }
+
Object battery = sensor.getConfig().get(CONFIG_BATTERY);
if (battery != null) {
DecimalType batteryLevel = DecimalType.valueOf(String.valueOf(battery));
@@ -236,7 +290,10 @@ public void onSensorStateChanged(@Nullable HueBridge bridge, FullSensor sensor)
updateState(CHANNEL_BATTERY_LOW, batteryLevel.intValue() <= 10 ? OnOffType.ON : OnOffType.OFF);
}
- updateConfiguration(config);
+ if (!configInitializedSuccessfully) {
+ updateConfiguration(config);
+ configInitializedSuccessfully = true;
+ }
}
@Override
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStateConverter.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStateConverter.java
index b5d393cb7e3f8..9335088ecaaf9 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStateConverter.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStateConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStatusListener.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStatusListener.java
index de5353729c80f..d82aadb455625 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStatusListener.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/LightStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/SensorStatusListener.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/SensorStatusListener.java
index 85444c8514298..fdd9aa443bf60 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/SensorStatusListener.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/SensorStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/ClipHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/ClipHandler.java
new file mode 100644
index 0000000000000..3d383509e8acb
--- /dev/null
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/ClipHandler.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2010-2020 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.hue.internal.handler.sensors;
+
+import static org.openhab.binding.hue.internal.HueBindingConstants.*;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.config.core.Configuration;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+import org.openhab.binding.hue.internal.FullSensor;
+import org.openhab.binding.hue.internal.HueBridge;
+import org.openhab.binding.hue.internal.SensorConfigUpdate;
+import org.openhab.binding.hue.internal.handler.HueSensorHandler;
+
+/**
+ * CLIP Sensor
+ *
+ * @author Meng Yiqi - Initial contribution
+ */
+@NonNullByDefault
+public class ClipHandler extends HueSensorHandler {
+ public static final Set SUPPORTED_THING_TYPES = Stream.of(THING_TYPE_CLIP_GENERIC_STATUS, THING_TYPE_CLIP_GENERIC_FLAG).collect(Collectors.toSet());
+
+ public ClipHandler(Thing thing) {
+ super(thing);
+ }
+
+ @Override
+ protected SensorConfigUpdate doConfigurationUpdate(Map configurationParameters) {
+ return new SensorConfigUpdate();
+ }
+
+ protected void doSensorStateChanged(@Nullable HueBridge bridge, FullSensor sensor, Configuration config) {
+ }
+}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/DimmerSwitchHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/DimmerSwitchHandler.java
index 4afc3dac7a21e..260880fa71663 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/DimmerSwitchHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/DimmerSwitchHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,7 +12,6 @@
*/
package org.openhab.binding.hue.internal.handler.sensors;
-import static org.openhab.binding.hue.internal.FullSensor.STATE_LAST_UPDATED;
import static org.openhab.binding.hue.internal.HueBindingConstants.*;
import java.time.Instant;
@@ -25,20 +24,16 @@
import java.util.Collections;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.TimeUnit;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.core.Configuration;
import org.eclipse.smarthome.core.library.types.DecimalType;
-import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
-import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.openhab.binding.hue.internal.FullSensor;
import org.openhab.binding.hue.internal.HueBridge;
import org.openhab.binding.hue.internal.SensorConfigUpdate;
-import org.openhab.binding.hue.internal.handler.HueBridgeHandler;
import org.openhab.binding.hue.internal.handler.HueSensorHandler;
/**
@@ -49,27 +44,13 @@
*/
@NonNullByDefault
public class DimmerSwitchHandler extends HueSensorHandler {
- public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_DIMMER_SWITCH);
- private long refreshIntervalInNanos = TimeUnit.MILLISECONDS.toNanos(1000);
+ public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_DIMMER_SWITCH);
public DimmerSwitchHandler(Thing thing) {
super(thing);
}
- @Override
- public void initialize() {
- super.initialize();
- Bridge bridge = getBridge();
- if (bridge != null) {
- ThingHandler bridgeHandler = bridge.getHandler();
- if (bridgeHandler instanceof HueBridgeHandler) {
- refreshIntervalInNanos = TimeUnit.MILLISECONDS
- .toNanos(((HueBridgeHandler) bridgeHandler).getSensorPollingInterval() * 2);
- }
- }
- }
-
@Override
protected SensorConfigUpdate doConfigurationUpdate(Map configurationParameters) {
return new SensorConfigUpdate();
@@ -80,7 +61,7 @@ protected void doSensorStateChanged(@Nullable HueBridge bridge, FullSensor senso
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime now = ZonedDateTime.now(zoneId), timestamp = now;
- Object lastUpdated = sensor.getState().get(STATE_LAST_UPDATED);
+ Object lastUpdated = sensor.getState().get(FullSensor.STATE_LAST_UPDATED);
if (lastUpdated != null) {
try {
timestamp = ZonedDateTime.ofInstant(
@@ -95,8 +76,9 @@ protected void doSensorStateChanged(@Nullable HueBridge bridge, FullSensor senso
if (buttonState != null) {
String value = String.valueOf(buttonState);
updateState(CHANNEL_DIMMER_SWITCH, new DecimalType(value));
+ // Avoid dispatching events if "lastupdated" is older than now minus 3 seconds (e.g. during restart)
Instant then = timestamp.toInstant();
- Instant someSecondsEarlier = now.minusNanos(refreshIntervalInNanos).toInstant();
+ Instant someSecondsEarlier = now.minusSeconds(3).toInstant();
if (then.isAfter(someSecondsEarlier) && then.isBefore(now.toInstant())) {
triggerChannel(EVENT_DIMMER_SWITCH, value);
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/LightLevelHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/LightLevelHandler.java
index 9696b061419f3..e07a549ac4cec 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/LightLevelHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/LightLevelHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/PresenceHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/PresenceHandler.java
index 08421cb6f4337..f8bf7354e061a 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/PresenceHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/PresenceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TapSwitchHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TapSwitchHandler.java
index 680ad6a24b939..0df912e1cd5a8 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TapSwitchHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TapSwitchHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,7 +12,6 @@
*/
package org.openhab.binding.hue.internal.handler.sensors;
-import static org.openhab.binding.hue.internal.FullSensor.STATE_LAST_UPDATED;
import static org.openhab.binding.hue.internal.HueBindingConstants.*;
import java.time.Instant;
@@ -25,20 +24,16 @@
import java.util.Collections;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.TimeUnit;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.core.Configuration;
import org.eclipse.smarthome.core.library.types.DecimalType;
-import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
-import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.openhab.binding.hue.internal.FullSensor;
import org.openhab.binding.hue.internal.HueBridge;
import org.openhab.binding.hue.internal.SensorConfigUpdate;
-import org.openhab.binding.hue.internal.handler.HueBridgeHandler;
import org.openhab.binding.hue.internal.handler.HueSensorHandler;
/**
@@ -48,27 +43,13 @@
*/
@NonNullByDefault
public class TapSwitchHandler extends HueSensorHandler {
- public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_TAP_SWITCH);
- private long refreshIntervalInNanos = TimeUnit.MILLISECONDS.toNanos(1000);
+ public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_TAP_SWITCH);
public TapSwitchHandler(Thing thing) {
super(thing);
}
- @Override
- public void initialize() {
- super.initialize();
- Bridge bridge = getBridge();
- if (bridge != null) {
- ThingHandler bridgeHandler = bridge.getHandler();
- if (bridgeHandler instanceof HueBridgeHandler) {
- refreshIntervalInNanos = TimeUnit.MILLISECONDS
- .toNanos(((HueBridgeHandler) bridgeHandler).getSensorPollingInterval() * 2);
- }
- }
- }
-
@Override
protected SensorConfigUpdate doConfigurationUpdate(Map configurationParameters) {
return new SensorConfigUpdate();
@@ -79,7 +60,7 @@ protected void doSensorStateChanged(@Nullable HueBridge bridge, FullSensor senso
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime now = ZonedDateTime.now(zoneId), timestamp = now;
- Object lastUpdated = sensor.getState().get(STATE_LAST_UPDATED);
+ Object lastUpdated = sensor.getState().get(FullSensor.STATE_LAST_UPDATED);
if (lastUpdated != null) {
try {
timestamp = ZonedDateTime.ofInstant(
@@ -94,8 +75,9 @@ protected void doSensorStateChanged(@Nullable HueBridge bridge, FullSensor senso
if (buttonState != null) {
String value = String.valueOf(buttonState);
updateState(CHANNEL_TAP_SWITCH, new DecimalType(value));
+ // Avoid dispatching events if "lastupdated" is older than now minus 3 seconds (e.g. during restart)
Instant then = timestamp.toInstant();
- Instant someSecondsEarlier = now.minusNanos(refreshIntervalInNanos).toInstant();
+ Instant someSecondsEarlier = now.minusSeconds(3).toInstant();
if (then.isAfter(someSecondsEarlier) && then.isBefore(now.toInstant())) {
triggerChannel(EVENT_TAP_SWITCH, value);
}
diff --git a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TemperatureHandler.java b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TemperatureHandler.java
index 3700f0ce1e88a..7b73e153dcc80 100644
--- a/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TemperatureHandler.java
+++ b/bundles/org.openhab.binding.hue/src/main/java/org/openhab/binding/hue/internal/handler/sensors/TemperatureHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericFlagSensor.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericFlagSensor.xml
new file mode 100644
index 0000000000000..d16cc4ef435cb
--- /dev/null
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericFlagSensor.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+ A generic sensor object for IP sensor use.
+
+
+
+
+
+
+ uniqueId
+
+
+
+
+ The identifier that is used within the hue bridge.
+ true
+
+
+
+ Enables or disables the sensor.
+
+
+
+
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericStatusSensor.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericStatusSensor.xml
new file mode 100644
index 0000000000000..5d134b91e2bd4
--- /dev/null
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/CLIPGenericStatusSensor.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+ A generic sensor object for IP sensor use.
+
+
+
+
+
+
+ uniqueId
+
+
+
+
+ The identifier that is used within the hue bridge.
+ true
+
+
+
+ Enables or disables the sensor.
+
+
+
+
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorLight.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorLight.xml
index e88ea522c13f3..4e11fcb6b3137 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorLight.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorLight.xml
@@ -27,7 +27,7 @@
true
-
+
Fade time in ms for changing values400
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorTemperatureLight.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorTemperatureLight.xml
index 94cda88e1492e..625294b8daa0c 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorTemperatureLight.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ColorTemperatureLight.xml
@@ -28,7 +28,7 @@
true
-
+
Fade time in ms for changing values400
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmableLight.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmableLight.xml
index 32ea6def9fabe..9e06ea5256352 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmableLight.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmableLight.xml
@@ -26,7 +26,7 @@
true
-
+
Fade time in ms for changing values400
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmablePlug.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmablePlug.xml
index abefbbaaf59f0..1678e02a05f36 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmablePlug.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/DimmablePlug.xml
@@ -25,7 +25,7 @@
true
-
+
Fade time in ms for changing values400
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ExtendedColorLight.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ExtendedColorLight.xml
index ea9d5bdf1db93..943eb01508d42 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ExtendedColorLight.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/ExtendedColorLight.xml
@@ -28,7 +28,7 @@
true
-
+
Fade time in ms for changing values400
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/bridge.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/bridge.xml
index 8425eba42d0e3..a291b3676a9b4 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/bridge.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/bridge.xml
@@ -20,7 +20,7 @@
Network address of the Hue bridge.true
-
+ Port of the Hue bridge.
diff --git a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/channels.xml
index 94f0fb2adcd2d..c284b4364350c 100644
--- a/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.hue/src/main/resources/ESH-INF/thing/channels.xml
@@ -199,4 +199,18 @@
The effect channel allows putting the bulb in a color looping mode.ColorLight
+
+
+
+ Number
+
+ Status of CLIP sensor.
+
+
+
+ Switch
+
+ Flag of CLIP sensor.
+
+
diff --git a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/ApiVersionTest.java b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/ApiVersionTest.java
index 40c605238311a..416ff4734e945 100644
--- a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/ApiVersionTest.java
+++ b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/ApiVersionTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/LightStateConverterTest.java b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/LightStateConverterTest.java
index d1a1f5e9050a8..c594b753e13ab 100644
--- a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/LightStateConverterTest.java
+++ b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/LightStateConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightHandlerTest.java b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightHandlerTest.java
index f19dd95dfdcf3..93762e189f4ef 100644
--- a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightHandlerTest.java
+++ b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightHandlerTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightState.java b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightState.java
index 3effc1d936460..bea34cc26da18 100644
--- a/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightState.java
+++ b/bundles/org.openhab.binding.hue/src/test/java/org/openhab/binding/hue/internal/handler/HueLightState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.io.azureiothub/.classpath b/bundles/org.openhab.binding.hydrawise/.classpath
similarity index 100%
rename from bundles/org.openhab.io.azureiothub/.classpath
rename to bundles/org.openhab.binding.hydrawise/.classpath
diff --git a/bundles/org.openhab.binding.hydrawise/.project b/bundles/org.openhab.binding.hydrawise/.project
new file mode 100644
index 0000000000000..8ff109aed825d
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.binding.hydrawise
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.binding.hydrawise/NOTICE b/bundles/org.openhab.binding.hydrawise/NOTICE
new file mode 100644
index 0000000000000..38d625e349232
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/NOTICE
@@ -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
diff --git a/bundles/org.openhab.binding.hydrawise/README.md b/bundles/org.openhab.binding.hydrawise/README.md
new file mode 100644
index 0000000000000..dfa54679cf444
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/README.md
@@ -0,0 +1,171 @@
+# Hydrawise Binding
+
+![API Key](doc/logo.png)
+
+The Hydrawise binding allows monitoring and control of [Hunter Industries's](https://www.hunterindustries.com/) line of [Hydrawise](https://www.hydrawise.com) internet connected irrigation systems.
+
+## Supported Things
+
+### Cloud Thing
+
+The Cloud Thing type is the primary way most users will control and monitor their irrigation system.
+This allows full control over zones, sensors and weather forecasts.
+Changes made through this Thing type will be reflected in the Hydrawise mobile and web applications as well as in their reporting modules.
+
+#### Cloud Thing Supported Channel Groups
+
+| channel group ID |
+|---------------------------------------|
+| [Zones](#Zone-Channel-Group) |
+| [All Zones](#All-Zones-Channel-Group) |
+| [Sensor](#Sensor-Channel-Group) |
+| [Forecast](#Sensor-Channel-Group) |
+
+### Local Thing
+
+The Local Thing type uses an undocumented API that allows direct HTTP access to a irrigation controller on the user's network.
+This provides a subset of features compared to the Cloud Thing type limited to basic zone control.
+Controlling zones through the local API will not be reported back to the cloud service or the Hydrawise mobile/web applications, and reporting functionality will not reflect the locally controlled state.
+
+Use Cases
+
+* The Local thing can be useful when testing zones, as there is no delay when starting/stopping zones as compared to the cloud API which can take anywhere between 5-15 seconds.
+* This is also useful if you wish to not use the cloud scheduling at all and use openHAB as the irrigation scheduling system.
+
+#### Local Thing Supported Channel Groups
+
+| channel group ID |
+|---------------------------------------|
+| [Zones](#Zone-Channel-Group) |
+| [All Zones](#All-Zones-Channel-Group) |
+
+## Thing Configuration
+
+### Cloud Thing
+
+| Configuration Name | type | required | Comments |
+|--------------------|---------|----------|------------------------------------------------------------------------------------|
+| apiKey | String | True | |
+| refresh | Integer | True | Defaults to a 30 seconds polling rate |
+| controllerId | Integer | False | Optional id of the controller if you have more then one registered to your account |
+
+To obtain your API key, log into your [Hydrawsie Account](https://app.hydrawise.com/config/login) and click on your account icon, then account details:
+
+![Account](doc/settings.png)
+
+Then copy the API key shown here:
+
+![API Key](doc/apikey.png)
+
+### Local Thing
+
+| Configuration Name | type | required | Comments |
+|--------------------|---------|----------|-----------------------------------------------------------------------------------------------------------------|
+| host | String | True | IP or host name of the controller on your network |
+| username | String | True | User name (usually admin) set on the touch panel of the controller |
+| password | String | True | Password set on the touch panel of the controller. This can be found under the setting menu on the controller. |
+| refresh | Integer | True | Defaults to a 30 seconds polling rate |
+
+## Channels
+
+### Channel Groups
+
+#### Zone Channel Group
+
+Up to 36 total zones are supported per Local or Cloud thing
+
+| channel group ID | Description |
+|------------------|---------------------------|
+| zone1 | Zone 1 channel group |
+| zone2 | Zone 1 channel group |
+| ... | Zone 3 - 35 channel group |
+| zone36 | Zone 36 channel group |
+
+#### Sensor Channel Group
+
+Up to 4 total sensors are supported per Cloud Thing
+
+| channel group ID | Description |
+|------------------|------------------------|
+| sensor1 | Sensor 1 channel group |
+| sensor2 | Sensor 2 channel group |
+| sensor3 | Sensor 3 channel group |
+| sensor4 | Sensor 4 channel group |
+
+#### Forecast Channel Group
+
+Up to 4 total weather forecasts are supported per Cloud Thing
+
+| channel group ID | Description |
+|------------------|-----------------|
+| forecast1 | Todays Forecast |
+| forecast2 | Day 2 Forecast |
+| forecast3 | Day 3 Forecast |
+| forecast4 | Day 4 Forecast |
+
+#### All Zones Channel Group
+
+A single all zone group are supported per Cloud or Local Thing
+
+| channel group ID | Description |
+|------------------|------------------------|
+| allzones | commands for all zones |
+
+
+### Channels
+
+| channel ID | type | Groups | description | Read Write |
+|-----------------|--------------------|----------------|---------------------------------------------|------------|
+| name | String | zone, sensor | Descriptive name | R |
+| icon | String | zone | Icon URL | R |
+| time | Number | zone | Zone start time in seconds | R |
+| type | Number | zone | Zone type | R |
+| runcustom | Number | zone, allzones | Run zone for custom number of seconds | W |
+| run | Switch | zone, allzones | Run/Start zone | RW |
+| nextrun | DateTime | zone | Next date and time this zone will run | R |
+| timeleft | Number | zone | Amount of seconds left for the running zone | R |
+| input | Number | sensor | Sensor input type | R |
+| mode | Number | sensor | Sensor mode | R |
+| timer | Number | sensor | Sensor timer | R |
+| offtimer | Number | sensor | Sensor off time | R |
+| offlevel | Number | sensor | Sensor off level | R |
+| active | Switch | sensor | Is sensor active / triggered | R |
+| temperaturehigh | Number:Temperature | forecast | Daily high temperature | R |
+| temperaturelow | Number:Temperature | forecast | Daily low temperature | R |
+| conditions | String | forecast | Daily conditions description | R |
+| day | String | forecast | Day of week of forecast (Mon-Sun) | R |
+| humidity | Number | forecast | Daily humidity percentage | R |
+| wind | Number:Speed | forecast | Daily wind speed | R |
+
+## Full Example
+
+```
+Group SprinklerZones
+Group SprinklerZone1 "1 Front Office Yard" (SprinklerZones)
+String SprinklerZone1Name "1 Front Office Yard name" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#name"}
+Switch SprinklerZone1Run "1 Front Office Yard Run" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#run"}
+Switch SprinklerZone1RunLocal "1 Front Office Yard Run (local)" (SprinklerZone1) {channel="hydrawise:local:home:zone1#run"}
+Number SprinklerZone1RunCustom "1 Front Office Yard Run Custom" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#runcustom"}
+DateTime SprinklerZone1StartTime "1 Front Office Yard Start Time [%s]" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#nextruntime"}
+Number SprinklerZone1TimeLeft "1 Front Office Yard Time Left" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#timeleft"}
+String SprinklerZone1Icon "1 Front Office Yard Icon" (SprinklerZone1) {channel="hydrawise:cloud:home:zone1#icon"}
+
+Group SprinklerZone2 "2 Back Circle Lawn" (SprinklerZones)
+String SprinklerZone2Name "2 Back Circle Lawn name" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#name"}
+Switch SprinklerZone2Run "2 Back Circle Lawn Run" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#run"}
+Switch SprinklerZone2RunLocal "2 Back Circle Lawn Run (local)" (SprinklerZone2) {channel="hydrawise:local:home:zone2#run"}
+Number SprinklerZone2RunCustom "2 Back Circle Lawn Run Custom" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#runcustom"}
+DateTime SprinklerZone2StartTime "2 Back Circle Lawn Start Time" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#nextruntime"}
+Number SprinklerZone2TimeLeft "2 Back Circle Lawn Time Left" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#timeleft"}
+String SprinklerZone2Icon "2 Back Circle Lawn Icon" (SprinklerZone2) {channel="hydrawise:cloud:home:zone2#icon"}
+
+Group SprinklerZone3 "3 Left of Drive Lawn" (SprinklerZones)
+String SprinklerZone3Name "3 Left of Drive Lawn name" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#name"}
+Switch SprinklerZone3Run "3 Left of Drive Lawn Run" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#run"}
+Switch SprinklerZone3RunLocal "3 Left of Drive Lawn Run (local)" (SprinklerZone3) {channel="hydrawise:local:home:zone3#run"}
+Number SprinklerZone3RunCustom "3 Left of Drive Lawn Run Custom" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#runcustom"}
+DateTime SprinklerZone3StartTime "3 Left of Drive Lawn Start Time" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#nextruntime"}
+Number SprinklerZone3TimeLeft "3 Left of Drive Lawn Time Left" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#timeleft"}
+String SprinklerZone3Icon "3 Left of Drive Lawn Icon" (SprinklerZone3) {channel="hydrawise:cloud:home:zone3#icon"}
+```
+
diff --git a/bundles/org.openhab.binding.hydrawise/doc/apikey.png b/bundles/org.openhab.binding.hydrawise/doc/apikey.png
new file mode 100644
index 0000000000000..8e2b420fdc2f3
Binary files /dev/null and b/bundles/org.openhab.binding.hydrawise/doc/apikey.png differ
diff --git a/bundles/org.openhab.binding.hydrawise/doc/logo.png b/bundles/org.openhab.binding.hydrawise/doc/logo.png
new file mode 100644
index 0000000000000..a7863c9450493
Binary files /dev/null and b/bundles/org.openhab.binding.hydrawise/doc/logo.png differ
diff --git a/bundles/org.openhab.binding.hydrawise/doc/settings.png b/bundles/org.openhab.binding.hydrawise/doc/settings.png
new file mode 100644
index 0000000000000..8337151e499ee
Binary files /dev/null and b/bundles/org.openhab.binding.hydrawise/doc/settings.png differ
diff --git a/bundles/org.openhab.binding.hydrawise/pom.xml b/bundles/org.openhab.binding.hydrawise/pom.xml
new file mode 100644
index 0000000000000..6a5035eb0e68b
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+
+ org.openhab.addons.bundles
+ org.openhab.addons.reactor.bundles
+ 2.5.2-SNAPSHOT
+
+
+ org.openhab.binding.hydrawise
+
+ openHAB Add-ons :: Bundles :: Hydrawise Binding
+
+
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/feature/feature.xml b/bundles/org.openhab.binding.hydrawise/src/main/feature/feature.xml
new file mode 100644
index 0000000000000..5db2f38481787
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/feature/feature.xml
@@ -0,0 +1,9 @@
+
+
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
+
+
+ openhab-runtime-base
+ mvn:org.openhab.addons.bundles/org.openhab.binding.hydrawise/${project.version}
+
+
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseBindingConstants.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseBindingConstants.java
new file mode 100644
index 0000000000000..309002526901d
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseBindingConstants.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+
+/**
+ * The {@link HydrawiseBindingConstants} class defines common constants, which are
+ * used across the whole binding.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public class HydrawiseBindingConstants {
+
+ private static final String BINDING_ID = "hydrawise";
+
+ // List of all Thing Type UIDs
+ public static final ThingTypeUID THING_TYPE_CLOUD = new ThingTypeUID(BINDING_ID, "cloud");
+ public static final ThingTypeUID THING_TYPE_LOCAL = new ThingTypeUID(BINDING_ID, "local");
+
+ public static final String BASE_IMAGE_URL = "https://app.hydrawise.com/config/images/";
+
+ public static final String CHANNEL_GROUP_ALLZONES = "allzones";
+ public static final String CHANNEL_ZONE_RUN_CUSTOM = "runcustom";
+ public static final String CHANNEL_ZONE_RUN = "run";
+ public static final String CHANNEL_ZONE_STOP = "stop";
+ public static final String CHANNEL_ZONE_SUSPEND = "suspend";
+ public static final String CHANNEL_ZONE_NAME = "name";
+ public static final String CHANNEL_ZONE_ICON = "icon";
+ public static final String CHANNEL_ZONE_LAST_WATER = "lastwater";
+ public static final String CHANNEL_ZONE_TIME = "time";
+ public static final String CHANNEL_ZONE_TYPE = "type";
+ public static final String CHANNEL_ZONE_NEXT_RUN_TIME_TIME = "nextruntime";
+ public static final String CHANNEL_ZONE_TIME_LEFT = "timeleft";
+ public static final String CHANNEL_RUN_ALL_ZONES = "runall";
+ public static final String CHANNEL_STOP_ALL_ZONES = "stopall";
+ public static final String CHANNEL_SUSPEND_ALL_ZONES = "suspendall";
+ public static final String CHANNEL_SENSOR_NAME = "name";
+ public static final String CHANNEL_SENSOR_INPUT = "input";
+ public static final String CHANNEL_SENSOR_MODE = "mode";
+ public static final String CHANNEL_SENSOR_TIMER = "timer";
+ public static final String CHANNEL_SENSOR_OFFTIMER = "offtimer";
+ public static final String CHANNEL_SENSOR_OFFLEVEL = "offlevel";
+ public static final String CHANNEL_SENSOR_ACTIVE = "active";
+ public static final String CHANNEL_FORECAST_TEMPERATURE_HIGH = "temperaturehigh";
+ public static final String CHANNEL_FORECAST_TEMPERATURE_LOW = "temperaturelow";
+ public static final String CHANNEL_FORECAST_CONDITIONS = "conditions";
+ public static final String CHANNEL_FORECAST_DAY = "day";
+ public static final String CHANNEL_FORECAST_HUMIDITY = "humidity";
+ public static final String CHANNEL_FORECAST_WIND = "wind";
+ public static final String CHANNEL_FORECAST_ICON = "icon";
+ public static final String PROPERTY_CONTROLLER_ID = "controller";
+ public static final String PROPERTY_NAME = "name";
+ public static final String PROPERTY_DESCRIPTION = "description";
+ public static final String PROPERTY_LOCATION = "location";
+ public static final String PROPERTY_ADDRESS = "address";
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudConfiguration.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudConfiguration.java
new file mode 100644
index 0000000000000..722e01ec14e14
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudConfiguration.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+/**
+ * The {@link HydrawiseCloudConfiguration} class contains fields mapping thing configuration parameters.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class HydrawiseCloudConfiguration {
+
+ /**
+ * Customer API key {@link https://app.hydrawise.com/config/account}
+ */
+ public String apiKey;
+
+ /**
+ * refresh interval in seconds.
+ */
+ public Integer refresh;
+
+ /**
+ * optional id of the controller to connect to
+ */
+ public Integer controllerId;
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudHandler.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudHandler.java
new file mode 100644
index 0000000000000..43a10e3c8e064
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseCloudHandler.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+import static org.openhab.binding.hydrawise.internal.HydrawiseBindingConstants.*;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.measure.quantity.Speed;
+import javax.measure.quantity.Temperature;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.library.types.OnOffType;
+import org.eclipse.smarthome.core.library.types.QuantityType;
+import org.eclipse.smarthome.core.library.types.StringType;
+import org.eclipse.smarthome.core.library.unit.ImperialUnits;
+import org.eclipse.smarthome.core.library.unit.SIUnits;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseAuthenticationException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseCloudApiClient;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseCommandException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseConnectionException;
+import org.openhab.binding.hydrawise.internal.api.model.Controller;
+import org.openhab.binding.hydrawise.internal.api.model.CustomerDetailsResponse;
+import org.openhab.binding.hydrawise.internal.api.model.Forecast;
+import org.openhab.binding.hydrawise.internal.api.model.Relay;
+import org.openhab.binding.hydrawise.internal.api.model.StatusScheduleResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link HydrawiseCloudHandler} is responsible for handling commands, which are
+ * sent to one of the channels.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public class HydrawiseCloudHandler extends HydrawiseHandler {
+ /**
+ * 74.2 F
+ */
+ private static final Pattern TEMPERATURE_PATTERN = Pattern.compile("^(\\d{1,3}.?\\d?)\\s([C,F])");
+ /**
+ * 9 mph
+ */
+ private static final Pattern WIND_SPEED_PATTERN = Pattern.compile("^(\\d{1,3})\\s([a-z]{3})");
+ private final Logger logger = LoggerFactory.getLogger(HydrawiseCloudHandler.class);
+ private HydrawiseCloudApiClient client;
+ private int controllerId;
+
+ public HydrawiseCloudHandler(Thing thing, HttpClient httpClient) {
+ super(thing);
+ this.client = new HydrawiseCloudApiClient(httpClient);
+ }
+
+ @Override
+ protected void configure()
+ throws NotConfiguredException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ HydrawiseCloudConfiguration configuration = getConfig().as(HydrawiseCloudConfiguration.class);
+
+ this.refresh = Math.max(configuration.refresh, MIN_REFRESH_SECONDS);
+
+ client.setApiKey(configuration.apiKey);
+
+ CustomerDetailsResponse customerDetails = client.getCustomerDetails();
+
+ List controllers = customerDetails.controllers;
+ if (controllers.isEmpty()) {
+ throw new NotConfiguredException("No controllers found on account");
+ }
+
+ Controller controller = null;
+ // try and use ID from user configuration
+ if (configuration.controllerId != null) {
+ controller = getController(configuration.controllerId.intValue(), controllers);
+ if (controller == null) {
+ throw new NotConfiguredException("No controller found for id " + configuration.controllerId);
+ }
+ } else {
+ // try and use ID from saved property
+ String controllerId = getThing().getProperties().get(PROPERTY_CONTROLLER_ID);
+ if (StringUtils.isNotBlank(controllerId)) {
+ try {
+ controller = getController(Integer.parseInt(controllerId), controllers);
+
+ } catch (NumberFormatException e) {
+ logger.debug("Can not parse property vaue {}", controllerId);
+ }
+ }
+ // use current controller ID
+ if (controller == null) {
+ controller = getController(customerDetails.controllerId, controllers);
+ }
+ }
+
+ if (controller == null) {
+ throw new NotConfiguredException("No controller found");
+ }
+
+ controllerId = controller.controllerId.intValue();
+ updateControllerProperties(controller);
+ logger.debug("Controller id {}", controllerId);
+ }
+
+ /**
+ * Poll the controller for updates.
+ */
+ @Override
+ protected void pollController() throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ List controllers = client.getCustomerDetails().controllers;
+ Controller controller = getController(controllerId, controllers);
+ if (controller != null && !controller.online) {
+ throw new HydrawiseConnectionException("Controller is offline");
+ }
+ StatusScheduleResponse status = client.getStatusSchedule(controllerId);
+ updateSensors(status);
+ updateForecast(status);
+ updateZones(status);
+ }
+
+ @Override
+ protected void sendRunCommand(int seconds, @Nullable Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ if (relay != null) {
+ client.runRelay(seconds, relay.relayId);
+ }
+ }
+
+ @Override
+ protected void sendRunCommand(@Nullable Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ if (relay != null) {
+ client.runRelay(relay.relayId);
+ }
+ }
+
+ @Override
+ protected void sendStopCommand(@Nullable Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ if (relay != null) {
+ client.stopRelay(relay.relayId);
+ }
+
+ }
+
+ @Override
+ protected void sendRunAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runAllRelays(controllerId);
+ }
+
+ @Override
+ protected void sendRunAllCommand(int seconds)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runAllRelays(seconds, controllerId);
+ }
+
+ @Override
+ protected void sendStopAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.stopAllRelays(controllerId);
+ }
+
+ private void updateSensors(StatusScheduleResponse status) {
+ status.sensors.forEach(sensor -> {
+ String group = "sensor" + sensor.input;
+ updateGroupState(group, CHANNEL_SENSOR_ACTIVE, sensor.active > 0 ? OnOffType.ON : OnOffType.OFF);
+ updateGroupState(group, CHANNEL_SENSOR_MODE, new DecimalType(sensor.type));
+ updateGroupState(group, CHANNEL_SENSOR_NAME, new StringType(sensor.name));
+ updateGroupState(group, CHANNEL_SENSOR_OFFLEVEL, new DecimalType(sensor.offlevel));
+ updateGroupState(group, CHANNEL_SENSOR_OFFTIMER, new DecimalType(sensor.offtimer));
+ updateGroupState(group, CHANNEL_SENSOR_TIMER, new DecimalType(sensor.timer));
+ });
+ }
+
+ private void updateForecast(StatusScheduleResponse status) {
+ int i = 1;
+ for (Forecast forecast : status.forecast) {
+ String group = "forecast" + (i++);
+ updateGroupState(group, CHANNEL_FORECAST_CONDITIONS, new StringType(forecast.conditions));
+ updateGroupState(group, CHANNEL_FORECAST_DAY, new StringType(forecast.day));
+ updateGroupState(group, CHANNEL_FORECAST_HUMIDITY, new DecimalType(forecast.humidity));
+ updateTemperature(forecast.tempHi, group, CHANNEL_FORECAST_TEMPERATURE_HIGH);
+ updateTemperature(forecast.tempLo, group, CHANNEL_FORECAST_TEMPERATURE_LOW);
+ updateWindspeed(forecast.wind, group, CHANNEL_FORECAST_WIND);
+ }
+ }
+
+ private void updateTemperature(String tempString, String group, String channel) {
+ Matcher matcher = TEMPERATURE_PATTERN.matcher(tempString);
+ if (matcher.matches()) {
+ try {
+ updateGroupState(group, channel, new QuantityType(Double.valueOf(matcher.group(1)),
+ "C".equals(matcher.group(2)) ? SIUnits.CELSIUS : ImperialUnits.FAHRENHEIT));
+ } catch (NumberFormatException e) {
+ logger.debug("Could not parse temperature string {} ", tempString);
+ }
+ }
+ }
+
+ private void updateWindspeed(String windString, String group, String channel) {
+ Matcher matcher = WIND_SPEED_PATTERN.matcher(windString);
+ if (matcher.matches()) {
+ try {
+ updateGroupState(group, channel, new QuantityType(Integer.parseInt(matcher.group(1)),
+ "kph".equals(matcher.group(2)) ? SIUnits.KILOMETRE_PER_HOUR : ImperialUnits.MILES_PER_HOUR));
+ } catch (NumberFormatException e) {
+ logger.debug("Could not parse wind string {} ", windString);
+ }
+ }
+ }
+
+ private void updateControllerProperties(Controller controller) {
+ getThing().setProperty(PROPERTY_CONTROLLER_ID, String.valueOf(controller.controllerId));
+ getThing().setProperty(PROPERTY_NAME, controller.name);
+ getThing().setProperty(PROPERTY_DESCRIPTION, controller.description);
+ getThing().setProperty(PROPERTY_LOCATION, controller.latitude + "," + controller.longitude);
+ getThing().setProperty(PROPERTY_ADDRESS, controller.address);
+ }
+
+ private @Nullable Controller getController(int controllerId, List controllers) {
+ Optional<@NonNull Controller> optionalController = controllers.stream()
+ .filter(c -> controllerId == c.controllerId.intValue()).findAny();
+ return optionalController.isPresent() ? optionalController.get() : null;
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java
new file mode 100644
index 0000000000000..324cae403a68c
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandler.java
@@ -0,0 +1,325 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+import static org.openhab.binding.hydrawise.internal.HydrawiseBindingConstants.*;
+
+import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.library.types.DateTimeType;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.library.types.OnOffType;
+import org.eclipse.smarthome.core.library.types.StringType;
+import org.eclipse.smarthome.core.thing.ChannelUID;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingStatus;
+import org.eclipse.smarthome.core.thing.ThingStatusDetail;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandler;
+import org.eclipse.smarthome.core.types.Command;
+import org.eclipse.smarthome.core.types.RefreshType;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseAuthenticationException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseCommandException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseConnectionException;
+import org.openhab.binding.hydrawise.internal.api.model.LocalScheduleResponse;
+import org.openhab.binding.hydrawise.internal.api.model.Relay;
+import org.openhab.binding.hydrawise.internal.api.model.Running;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link HydrawiseHandler} is responsible for handling commands, which are
+ * sent to one of the channels.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public abstract class HydrawiseHandler extends BaseThingHandler {
+
+ private final Logger logger = LoggerFactory.getLogger(HydrawiseHandler.class);
+ private @Nullable ScheduledFuture> pollFuture;
+ private Map stateMap = Collections.synchronizedMap(new HashMap<>());
+ private Map relayMap = Collections.synchronizedMap(new HashMap<>());
+
+ /**
+ * value observed being used by the Hydrawise clients as a max time value,
+ */
+ private static long MAX_RUN_TIME = 157680000;
+
+ /**
+ * Minimum amount of time we can poll for updates
+ */
+ protected static final int MIN_REFRESH_SECONDS = 5;
+
+ /**
+ * Minimum amount of time we can poll after a command
+ */
+ protected static final int COMMAND_REFRESH_SECONDS = 5;
+
+ /**
+ * Our poll rate
+ */
+ protected int refresh;
+
+ /**
+ * Future to poll for updated
+ */
+
+ public HydrawiseHandler(Thing thing) {
+ super(thing);
+ }
+
+ @SuppressWarnings({ "null", "unused" }) // compiler does not like relayMap.get can return null
+ @Override
+ public void handleCommand(ChannelUID channelUID, Command command) {
+
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ logger.warn("Controller is NOT ONLINE and is not responding to commands");
+ return;
+ }
+
+ // remove our cached state for this, will be safely updated on next poll
+ stateMap.remove(channelUID.getAsString());
+
+ if (command instanceof RefreshType) {
+ // we already removed this from the cache
+ return;
+ }
+
+ String group = channelUID.getGroupId();
+ String channelId = channelUID.getIdWithoutGroup();
+ boolean allCommand = CHANNEL_GROUP_ALLZONES.equals(group);
+
+ Relay relay = relayMap.get(group);
+ if (!allCommand && relay == null) {
+ logger.debug("Zone not found {}", group);
+ return;
+ }
+
+ try {
+ clearPolling();
+ switch (channelId) {
+ case CHANNEL_ZONE_RUN_CUSTOM:
+ if (!(command instanceof DecimalType)) {
+ logger.warn("Invalid command type for run custom {}", command.getClass().getName());
+ return;
+ }
+ if (allCommand) {
+ sendRunAllCommand(((DecimalType) command).intValue());
+ } else {
+ sendRunCommand(((DecimalType) command).intValue(), relay);
+ }
+ break;
+ case CHANNEL_ZONE_RUN:
+ if (!(command instanceof OnOffType)) {
+ logger.warn("Invalid command type for run {}", command.getClass().getName());
+ return;
+ }
+ if (allCommand) {
+ if (command == OnOffType.ON) {
+ sendRunAllCommand();
+ } else {
+ sendStopAllCommand();
+ }
+ } else {
+ if (command == OnOffType.ON) {
+ sendRunCommand(relay);
+ } else {
+ sendStopCommand(relay);
+ }
+ }
+ break;
+ }
+ initPolling(COMMAND_REFRESH_SECONDS);
+ } catch (HydrawiseCommandException | HydrawiseConnectionException e) {
+ logger.debug("Could not issue command", e);
+ initPolling(COMMAND_REFRESH_SECONDS);
+ } catch (HydrawiseAuthenticationException e) {
+ logger.debug("Credentials not valid");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Credentials not valid");
+ configureInternal();
+ }
+ }
+
+ @Override
+ public void initialize() {
+ scheduler.schedule(this::configureInternal, 0, TimeUnit.SECONDS);
+ }
+
+ @Override
+ public void dispose() {
+ logger.debug("Handler disposed.");
+ clearPolling();
+ }
+
+ @Override
+ public void channelLinked(ChannelUID channelUID) {
+ // clear our cached value so the new channel gets updated on the next poll
+ stateMap.remove(channelUID.getId());
+ }
+
+ protected abstract void configure()
+ throws NotConfiguredException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void pollController() throws HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendRunCommand(int seconds, Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendRunCommand(Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendStopCommand(Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendRunAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendRunAllCommand(int seconds)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected abstract void sendStopAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException;
+
+ protected void updateZones(LocalScheduleResponse status) {
+ ZonedDateTime now = ZonedDateTime.now().truncatedTo(ChronoUnit.SECONDS);
+ status.relays.forEach(r -> {
+ String group = "zone" + r.getRelayNumber();
+ relayMap.put(group, r);
+ logger.trace("Updateing Zone {} {} ", group, r.name);
+ updateGroupState(group, CHANNEL_ZONE_NAME, new StringType(r.name));
+ updateGroupState(group, CHANNEL_ZONE_TYPE, new DecimalType(r.type));
+ updateGroupState(group, CHANNEL_ZONE_TIME,
+ r.runTimeSeconds != null ? new DecimalType(r.runTimeSeconds) : UnDefType.UNDEF);
+ if (StringUtils.isNotBlank(r.icon)) {
+ updateGroupState(group, CHANNEL_ZONE_ICON, new StringType(BASE_IMAGE_URL + r.icon));
+ }
+ if (r.time >= MAX_RUN_TIME) {
+ updateGroupState(group, CHANNEL_ZONE_NEXT_RUN_TIME_TIME, UnDefType.UNDEF);
+ } else {
+ updateGroupState(group, CHANNEL_ZONE_NEXT_RUN_TIME_TIME,
+ new DateTimeType(now.plusSeconds(r.time).truncatedTo(ChronoUnit.MINUTES)));
+ }
+
+ Optional running = status.running.stream()
+ .filter(z -> Integer.parseInt(z.relayId) == r.relayId.intValue()).findAny();
+ if (running.isPresent()) {
+ updateGroupState(group, CHANNEL_ZONE_RUN, OnOffType.ON);
+ updateGroupState(group, CHANNEL_ZONE_TIME_LEFT, new DecimalType(running.get().timeLeft));
+ logger.debug("{} Time Left {}", r.name, running.get().timeLeft);
+
+ } else {
+ updateGroupState(group, CHANNEL_ZONE_RUN, OnOffType.OFF);
+ updateGroupState(group, CHANNEL_ZONE_TIME_LEFT, new DecimalType(0));
+
+ }
+
+ updateGroupState(CHANNEL_GROUP_ALLZONES, CHANNEL_ZONE_RUN,
+ status.running.size() > 0 ? OnOffType.ON : OnOffType.OFF);
+ });
+ }
+
+ protected void updateGroupState(String group, String channelID, State state) {
+ String channelName = group + "#" + channelID;
+ State oldState = stateMap.put(channelName, state);
+ if (!state.equals(oldState)) {
+ ChannelUID channelUID = new ChannelUID(this.getThing().getUID(), channelName);
+ logger.debug("updateState updating {} {}", channelUID, state);
+ updateState(channelUID, state);
+ }
+ }
+
+ @SuppressWarnings("serial")
+ @NonNullByDefault
+ protected class NotConfiguredException extends Exception {
+ NotConfiguredException(String message) {
+ super(message);
+ }
+ }
+
+ private boolean isFutureValid(@Nullable ScheduledFuture> future) {
+ return future != null && !future.isCancelled();
+ }
+
+ private void configureInternal() {
+ clearPolling();
+ stateMap.clear();
+ relayMap.clear();
+ try {
+ configure();
+ initPolling(0);
+ } catch (NotConfiguredException e) {
+ logger.debug("Configuration error {}", e.getMessage());
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, e.getMessage());
+ } catch (HydrawiseConnectionException e) {
+ logger.debug("Could not connect to service");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ } catch (HydrawiseAuthenticationException e) {
+ logger.debug("Credentials not valid");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Credentials not valid");
+ }
+ }
+
+ /**
+ * Starts/Restarts polling with an initial delay. This allows changes in the poll cycle for when commands are sent
+ * and we need to poll sooner then the next refresh cycle.
+ */
+ private synchronized void initPolling(int initalDelay) {
+ clearPolling();
+ pollFuture = scheduler.scheduleWithFixedDelay(this::pollControllerInternal, initalDelay, refresh,
+ TimeUnit.SECONDS);
+ }
+
+ /**
+ * Stops/clears this thing's polling future
+ */
+ private void clearPolling() {
+ ScheduledFuture> localFuture = pollFuture;
+ if (isFutureValid(localFuture)) {
+ if (localFuture != null) {
+ localFuture.cancel(false);
+ }
+ }
+ }
+
+ /**
+ * Poll the controller for updates.
+ */
+ private void pollControllerInternal() {
+ try {
+ pollController();
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ updateStatus(ThingStatus.ONLINE);
+ }
+ } catch (HydrawiseConnectionException e) {
+ // poller will continue to run, set offline until next run
+ logger.debug("Exception polling", e);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ } catch (HydrawiseAuthenticationException e) {
+ // if are creds are not valid, we need to try re authorizing again
+ logger.debug("Authorization exception during polling", e);
+ configureInternal();
+ }
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandlerFactory.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandlerFactory.java
new file mode 100644
index 0000000000000..cf459c0b9ddbb
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseHandlerFactory.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+import static org.openhab.binding.hydrawise.internal.HydrawiseBindingConstants.*;
+
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
+import org.eclipse.smarthome.io.net.http.HttpClientFactory;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+
+/**
+ * The {@link HydrawiseHandlerFactory} is responsible for creating things and thing
+ * handlers.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+@Component(configurationPid = "binding.hydrawise", service = ThingHandlerFactory.class)
+public class HydrawiseHandlerFactory extends BaseThingHandlerFactory {
+
+ private static final Set SUPPORTED_THING_TYPES_UIDS = Stream.of(THING_TYPE_CLOUD, THING_TYPE_LOCAL)
+ .collect(Collectors.toSet());
+
+ private @NonNullByDefault({}) HttpClient httpClient;
+
+ @Override
+ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
+ return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
+ }
+
+ @Override
+ protected @Nullable ThingHandler createHandler(Thing thing) {
+ ThingTypeUID thingTypeUID = thing.getThingTypeUID();
+
+ if (THING_TYPE_CLOUD.equals(thingTypeUID)) {
+ return new HydrawiseCloudHandler(thing, httpClient);
+ }
+
+ if (THING_TYPE_LOCAL.equals(thingTypeUID)) {
+ return new HydrawiseLocalHandler(thing, httpClient);
+ }
+
+ return null;
+ }
+
+ @Reference
+ protected void setHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = httpClientFactory.getCommonHttpClient();
+ }
+
+ protected void unsetHttpClientFactory(HttpClientFactory httpClientFactory) {
+ this.httpClient = null;
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalConfiguration.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalConfiguration.java
new file mode 100644
index 0000000000000..338059702fa1a
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalConfiguration.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+/**
+ * The {@link HydrawiseLocalConfiguration} class contains fields mapping thing configuration parameters.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class HydrawiseLocalConfiguration {
+
+ /**
+ * Host or IP for local controller
+ */
+ public String host;
+ /**
+ * User name (admin) for local controller
+ */
+ public String username;
+ /**
+ * Password for local controller
+ */
+ public String password;
+
+ /**
+ * refresh interval in seconds.
+ */
+ public int refresh;
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalHandler.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalHandler.java
new file mode 100644
index 0000000000000..7db82979ed286
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/HydrawiseLocalHandler.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseAuthenticationException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseCommandException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseConnectionException;
+import org.openhab.binding.hydrawise.internal.api.HydrawiseLocalApiClient;
+import org.openhab.binding.hydrawise.internal.api.model.Relay;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link HydrawiseLocalHandler} is responsible for handling commands, which are
+ * sent to one of the channels.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public class HydrawiseLocalHandler extends HydrawiseHandler {
+ private final Logger logger = LoggerFactory.getLogger(HydrawiseLocalHandler.class);
+ HydrawiseLocalApiClient client;
+
+ public HydrawiseLocalHandler(Thing thing, HttpClient httpClient) {
+ super(thing);
+ client = new HydrawiseLocalApiClient(httpClient);
+ }
+
+ @Override
+ protected void configure() throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ HydrawiseLocalConfiguration configuration = getConfig().as(HydrawiseLocalConfiguration.class);
+ this.refresh = Math.max(configuration.refresh, MIN_REFRESH_SECONDS);
+ logger.trace("Connecting to host {}", configuration.host);
+ client.setCredentials(configuration.host, configuration.username, configuration.password);
+ pollController();
+
+ }
+
+ @Override
+ protected void pollController() throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ updateZones(client.getLocalSchedule());
+ }
+
+ @Override
+ protected void sendRunCommand(int seconds, Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runRelay(seconds, relay.relay);
+ }
+
+ @Override
+ protected void sendRunCommand(Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runRelay(relay.relay);
+ }
+
+ @Override
+ protected void sendStopCommand(Relay relay)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.stopRelay(relay.relay);
+ }
+
+ @Override
+ protected void sendRunAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runAllRelays();
+ }
+
+ @Override
+ protected void sendRunAllCommand(int seconds)
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.runAllRelays(seconds);
+ }
+
+ @Override
+ protected void sendStopAllCommand()
+ throws HydrawiseCommandException, HydrawiseConnectionException, HydrawiseAuthenticationException {
+ client.stopAllRelays();
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseAuthenticationException.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseAuthenticationException.java
new file mode 100644
index 0000000000000..886c93da4e752
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseAuthenticationException.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+/**
+ * Thrown when the Hydrawise cloud or local API returns back a "unauthorized" response to commands
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@SuppressWarnings("serial")
+public class HydrawiseAuthenticationException extends Exception {
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCloudApiClient.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCloudApiClient.java
new file mode 100644
index 0000000000000..e17ebb6f2c1b6
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCloudApiClient.java
@@ -0,0 +1,311 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+import java.util.concurrent.TimeUnit;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.http.HttpMethod;
+import org.openhab.binding.hydrawise.internal.api.model.CustomerDetailsResponse;
+import org.openhab.binding.hydrawise.internal.api.model.Response;
+import org.openhab.binding.hydrawise.internal.api.model.SetControllerResponse;
+import org.openhab.binding.hydrawise.internal.api.model.SetZoneResponse;
+import org.openhab.binding.hydrawise.internal.api.model.StatusScheduleResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.gson.FieldNamingPolicy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+/**
+ * The {@link HydrawiseCloudApiClient} communicates with the cloud based Hydrawise API service
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public class HydrawiseCloudApiClient {
+ private final Logger logger = LoggerFactory.getLogger(HydrawiseCloudApiClient.class);
+
+ private final Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
+ .create();
+ private static final String BASE_URL = "https://app.hydrawise.com/api/v1/";
+ private static final String STATUS_SCHEDUE_URL = BASE_URL
+ + "statusschedule.php?api_key=%s&controller_id=%d&hours=168";
+ private static final String CUSTOMER_DETAILS_URL = BASE_URL + "customerdetails.php?api_key=%s&type=controllers";
+ private static final String SET_CONTROLLER_URL = BASE_URL
+ + "setcontroller.php?api_key=%s&controller_id=%d&json=true";
+ private static final String SET_ZONE_URL = BASE_URL + "setzone.php?period_id=999";
+ private static final int TIMEOUT_SECONDS = 30;
+ private final HttpClient httpClient;
+ private String apiKey;
+
+ /**
+ * Initializes the API client with a HydraWise API key from a user's account and the HTTPClient to use
+ *
+ */
+ public HydrawiseCloudApiClient(String apiKey, HttpClient httpClient) {
+ this.apiKey = apiKey;
+ this.httpClient = httpClient;
+ }
+
+ /**
+ * Initializes the API client with a HTTPClient to use
+ *
+ */
+ public HydrawiseCloudApiClient(HttpClient httpClient) {
+ this("", httpClient);
+ }
+
+ /**
+ * Set a new API key to use for requests
+ *
+ * @param apiKey
+ */
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
+
+ /**
+ * Retrieves the {@link StatusScheduleResponse} for a given controller
+ *
+ * @param controllerId
+ * @return
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ */
+ public StatusScheduleResponse getStatusSchedule(int controllerId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ String json = doGet(String.format(STATUS_SCHEDUE_URL, apiKey, controllerId));
+ StatusScheduleResponse response = gson.fromJson(json, StatusScheduleResponse.class);
+ throwExceptionIfResponseError(response);
+ return response;
+ }
+
+ /***
+ * Retrieves the {@link CustomerDetailsResponse}
+ *
+ * @return
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ */
+ public CustomerDetailsResponse getCustomerDetails()
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ String json = doGet(String.format(CUSTOMER_DETAILS_URL, apiKey));
+ CustomerDetailsResponse response = gson.fromJson(json, CustomerDetailsResponse.class);
+ throwExceptionIfResponseError(response);
+ return response;
+ }
+
+ /***
+ * Sets the controller with supplied {@value id} as the current controller
+ *
+ * @param id
+ * @return SetControllerResponse
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public SetControllerResponse setController(int id)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ String json = doGet(String.format(SET_CONTROLLER_URL, apiKey, id));
+ SetControllerResponse response = gson.fromJson(json, SetControllerResponse.class);
+ throwExceptionIfResponseError(response);
+ if (!response.message.equals("OK")) {
+ throw new HydrawiseCommandException(response.message);
+ }
+ return response;
+ }
+
+ /***
+ * Stops a given relay
+ *
+ * @param relayId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String stopRelay(int relayId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(
+ new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("stop").relayId(relayId).toString());
+ }
+
+ /**
+ * Stops all relays on a given controller
+ *
+ * @param controllerId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String stopAllRelays(int controllerId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("stopall")
+ .controllerId(controllerId).toString());
+ }
+
+ /**
+ * Runs a relay for the default amount of time
+ *
+ * @param relayId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runRelay(int relayId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(
+ new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("run").relayId(relayId).toString());
+ }
+
+ /**
+ * Runs a relay for the given amount of seconds
+ *
+ * @param seconds
+ * @param relayId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runRelay(int seconds, int relayId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("run").relayId(relayId)
+ .duration(seconds).toString());
+ }
+
+ /**
+ * Run all relays on a given controller for the default amount of time
+ *
+ * @param controllerId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runAllRelays(int controllerId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("runall")
+ .controllerId(controllerId).toString());
+ }
+
+ /***
+ * Run all relays on a given controller for the amount of seconds
+ *
+ * @param seconds
+ * @param controllerId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runAllRelays(int seconds, int controllerId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("runall")
+ .controllerId(controllerId).duration(seconds).toString());
+ }
+
+ /**
+ * Suspends a given relay
+ *
+ * @param relayId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String suspendRelay(int relayId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(
+ new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("suspend").relayId(relayId).toString());
+ }
+
+ /**
+ * Suspends a given relay for an amount of seconds
+ *
+ * @param seconds
+ * @param relayId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String suspendRelay(int seconds, int relayId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("suspend").relayId(relayId)
+ .duration(seconds).toString());
+ }
+
+ /**
+ * Suspend all relays on a given controller for an amount of seconds
+ *
+ * @param seconds
+ * @param controllerId
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String suspendAllRelays(int seconds, int controllerId)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(SET_ZONE_URL, apiKey).action("suspendall")
+ .controllerId(controllerId).duration(seconds).toString());
+ }
+
+ private String relayCommand(String url)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ String json = doGet(url);
+ SetZoneResponse response = gson.fromJson(json, SetZoneResponse.class);
+ throwExceptionIfResponseError(response);
+ if ("error".equals(response.messageType)) {
+ throw new HydrawiseCommandException(response.message);
+ }
+ return response.message;
+ }
+
+ private String doGet(String url) throws HydrawiseConnectionException {
+ logger.trace("Getting {}", url);
+ ContentResponse response;
+ try {
+ response = httpClient.newRequest(url).method(HttpMethod.GET).timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
+ .send();
+ } catch (Exception e) {
+ throw new HydrawiseConnectionException(e);
+ }
+ if (response.getStatus() != 200) {
+ throw new HydrawiseConnectionException(
+ "Could not connect to Hydrawise API. Response code " + response.getStatus());
+ }
+ String stringResponse = response.getContentAsString();
+ logger.trace("Response: {}", stringResponse);
+ return stringResponse;
+ }
+
+ private void throwExceptionIfResponseError(Response response)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ String error = response.errorMsg;
+ if (error != null) {
+ if (error.equalsIgnoreCase("unauthorized")) {
+ throw new HydrawiseAuthenticationException();
+ } else {
+ throw new HydrawiseConnectionException(response.errorMsg);
+ }
+ }
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCommandException.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCommandException.java
new file mode 100644
index 0000000000000..20fb8f258159f
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseCommandException.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+/**
+ * Thrown when command responses return a error message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@SuppressWarnings("serial")
+public class HydrawiseCommandException extends Exception {
+ public HydrawiseCommandException(String message) {
+ super(message);
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseConnectionException.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseConnectionException.java
new file mode 100644
index 0000000000000..284f25f8fa239
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseConnectionException.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+/**
+ * Thrown for connection issues to the Hydrawise controller
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@SuppressWarnings("serial")
+public class HydrawiseConnectionException extends Exception {
+
+ public HydrawiseConnectionException(Exception e) {
+ super(e);
+ }
+
+ public HydrawiseConnectionException(String message) {
+ super(message);
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseLocalApiClient.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseLocalApiClient.java
new file mode 100644
index 0000000000000..d76467002fdf5
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseLocalApiClient.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+import java.net.URI;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.api.AuthenticationStore;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.util.BasicAuthentication;
+import org.eclipse.jetty.http.HttpMethod;
+import org.openhab.binding.hydrawise.internal.api.model.LocalScheduleResponse;
+import org.openhab.binding.hydrawise.internal.api.model.SetZoneResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.gson.FieldNamingPolicy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+/**
+ * The {@link HydrawiseLocalApiClient} communicates with a network local Hydrawise controller.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+@NonNullByDefault
+public class HydrawiseLocalApiClient {
+ private final Logger logger = LoggerFactory.getLogger(HydrawiseLocalApiClient.class);
+
+ private final Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
+ .create();
+
+ private static final String GET_LOCAL_DATA_URL = "%s/get_sched_json.php?hours=720";
+ private static final String SET_LOCAL_DATA_URL = "%s/set_manual_data.php?period_id=998";
+
+ private static final int TIMEOUT_SECONDS = 30;
+ private HttpClient httpClient;
+ private String localSetURL = "";
+ private String localGetURL = "";
+
+ public HydrawiseLocalApiClient(HttpClient httpClient) {
+ this.httpClient = httpClient;
+ }
+
+ /**
+ * Initializes the {@link HydrawiseLocalApiClient} to talk with the network local Hydrawise API
+ *
+ * @param host
+ * @param username
+ * @param password
+ */
+ public HydrawiseLocalApiClient(String host, String username, String password, HttpClient httpClient) {
+ this.httpClient = httpClient;
+ setCredentials(host, username, password);
+ }
+
+ /**
+ * Sets the local credentials and controller host
+ *
+ * @param host
+ * @param username
+ * @param password
+ */
+ public void setCredentials(String host, String username, String password) {
+ String url = "http://" + host;
+ localSetURL = String.format(SET_LOCAL_DATA_URL, url);
+ localGetURL = String.format(GET_LOCAL_DATA_URL, url);
+ AuthenticationStore auth = httpClient.getAuthenticationStore();
+ URI uri = URI.create(url);
+ auth.addAuthenticationResult(new BasicAuthentication.BasicResult(uri, username, password));
+ }
+
+ /**
+ * Retrieves the {@link LocalScheduleResponse} for the controller
+ *
+ * @return the local schedule response
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ */
+ public LocalScheduleResponse getLocalSchedule()
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ String json = doGet(localGetURL);
+ LocalScheduleResponse response = gson.fromJson(json, LocalScheduleResponse.class);
+ return response;
+ }
+
+ /**
+ * Stops a given relay
+ *
+ * @param number
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String stopRelay(int number)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("stop").relayNumber(number).toString());
+ }
+
+ /**
+ * Runs a given relay for the default amount of time
+ *
+ * @param number
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runRelay(int number)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("run").relayNumber(number).toString());
+ }
+
+ /**
+ * Runs a given relay for a specified numbers of seconds
+ *
+ * @param seconds
+ * @param number
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runRelay(int seconds, int number)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("run").relayNumber(number)
+ .duration(seconds).toString());
+ }
+
+ /**
+ * Stops all relays
+ *
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String stopAllRelays()
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("stopall").toString());
+ }
+
+ /**
+ * Run all relays for the default amount of time
+ *
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runAllRelays()
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("runall").toString());
+ }
+
+ /**
+ * Run all relays for a given amount of seconds
+ *
+ * @param seconds
+ * @return Response message
+ * @throws HydrawiseConnectionException
+ * @throws HydrawiseAuthenticationException
+ * @throws HydrawiseCommandException
+ */
+ public String runAllRelays(int seconds)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ return relayCommand(new HydrawiseZoneCommandBuilder(localSetURL).action("runall").duration(seconds).toString());
+ }
+
+ private String relayCommand(String url)
+ throws HydrawiseConnectionException, HydrawiseAuthenticationException, HydrawiseCommandException {
+ String json = doGet(url);
+ SetZoneResponse response = gson.fromJson(json, SetZoneResponse.class);
+ if (response.messageType.equals("error")) {
+ throw new HydrawiseCommandException(response.message);
+ }
+ return response.message;
+ }
+
+ private String doGet(String url) throws HydrawiseConnectionException, HydrawiseAuthenticationException {
+ logger.trace("Getting {}", url);
+ ContentResponse response;
+ try {
+ response = httpClient.newRequest(url).method(HttpMethod.GET).timeout(TIMEOUT_SECONDS, TimeUnit.SECONDS)
+ .send();
+ } catch (InterruptedException | TimeoutException | ExecutionException e) {
+ throw new HydrawiseConnectionException(e);
+ }
+ if (response.getStatus() == 401) {
+ throw new HydrawiseAuthenticationException();
+ }
+ if (response.getStatus() != 200) {
+ throw new HydrawiseConnectionException("Error from controller. Response code " + response.getStatus());
+ }
+ String stringResponse = response.getContentAsString();
+ logger.trace("Response: {}", stringResponse);
+ return stringResponse;
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseZoneCommandBuilder.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseZoneCommandBuilder.java
new file mode 100644
index 0000000000000..666e7bdb4034d
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/HydrawiseZoneCommandBuilder.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api;
+
+/**
+ * The {@link HydrawiseZoneCommandBuilder} class builds a command URL string to use when sending commands to the
+ * Hydrawise local controller or cloud based API server
+ *
+ * @author Dan Cunningham - Initial contribution
+ *
+ */
+class HydrawiseZoneCommandBuilder {
+
+ private final StringBuilder builder;
+
+ /**
+ * Construct a new {@link HydrawiseZoneCommandBuilder} class with a base URL
+ *
+ * @param baseURL
+ */
+ public HydrawiseZoneCommandBuilder(String baseURL) {
+ builder = new StringBuilder(baseURL);
+ }
+
+ /**
+ * Construct a new {@link HydrawiseZoneCommandBuilder} class with a base URL and API key.
+ *
+ * @param baseURL
+ * @param apiKey
+ */
+ public HydrawiseZoneCommandBuilder(String baseURL, String apiKey) {
+ this(baseURL);
+ builder.append("&api_key=" + apiKey);
+ }
+
+ /**
+ * Sets the action parameter
+ *
+ * @param action
+ * @return {@link HydrawiseZoneCommandBuilder}
+ */
+ public HydrawiseZoneCommandBuilder action(String action) {
+ builder.append("&action=" + action);
+ return this;
+ }
+
+ /**
+ * Sets the relayId parameter
+ *
+ * @param action
+ * @return {@link HydrawiseZoneCommandBuilder}
+ */
+ public HydrawiseZoneCommandBuilder relayId(int relayId) {
+ builder.append("&relay_id=" + relayId);
+ return this;
+ }
+
+ /**
+ * Sets the relay number parameter
+ *
+ * @param action
+ * @return {@link HydrawiseZoneCommandBuilder}
+ */
+ public HydrawiseZoneCommandBuilder relayNumber(int number) {
+ builder.append("&relay=" + number);
+ return this;
+ }
+
+ /**
+ * Sets the run duration parameter
+ *
+ * @param action
+ * @return {@link HydrawiseZoneCommandBuilder}
+ */
+ public HydrawiseZoneCommandBuilder duration(int seconds) {
+ builder.append("&custom=" + seconds);
+ return this;
+ }
+
+ /**
+ * Sets the controller Id parameter
+ *
+ * @param action
+ * @return {@link HydrawiseZoneCommandBuilder}
+ */
+ public HydrawiseZoneCommandBuilder controllerId(int controllerId) {
+ builder.append("&controller_id=" + controllerId);
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return builder.toString();
+ }
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyActual.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyActual.java
new file mode 100644
index 0000000000000..66741dc7e155f
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyActual.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link BocTopologyDesired} class models the actual BocTopology
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class BocTopologyActual {
+
+ public List bocGateways;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyDesired.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyDesired.java
new file mode 100644
index 0000000000000..8da2ce9a8759c
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/BocTopologyDesired.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link BocTopologyDesired} class models the desired BocTopology
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class BocTopologyDesired {
+
+ public List bocGateways;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Controller.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Controller.java
new file mode 100644
index 0000000000000..adeb0852df569
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Controller.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link Controller} class models a Hydrawise controller unit
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Controller {
+
+ public String name;
+
+ public Integer lastContact;
+
+ public String serialNumber;
+
+ public Integer controllerId;
+
+ public String swVersion;
+
+ public String hardware;
+
+ public Boolean isBoc;
+
+ public String address;
+
+ public String timezone;
+
+ public Integer deviceId;
+
+ public Object parentDeviceId;
+
+ public String image;
+
+ public String description;
+
+ public Integer customerId;
+
+ public Double latitude;
+
+ public Double longitude;
+
+ public String lastContactReadable;
+
+ public String status;
+
+ public String statusIcon;
+
+ public Boolean online;
+
+ public List tags = null;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/CustomerDetailsResponse.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/CustomerDetailsResponse.java
new file mode 100644
index 0000000000000..df247117e94c7
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/CustomerDetailsResponse.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link CustomerDetailsResponse} class models the CustomerDetails response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class CustomerDetailsResponse extends Response {
+
+ public BocTopologyDesired bocTopologyDesired;
+
+ public BocTopologyActual bocTopologyActual;
+
+ public List controllers;
+
+ public String currentController;
+
+ public Boolean isBoc;
+
+ public Integer tandc;
+
+ public Integer controllerId;
+
+ public Integer customerId;
+
+ public String sessionId;
+
+ public String hardwareVersion;
+
+ public Integer deviceId;
+
+ public Integer tandcVersion;
+
+ public Features features;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Features.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Features.java
new file mode 100644
index 0000000000000..29dd6dd24c204
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Features.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link Features} class models an accounts features.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Features {
+
+ public List planArray = null;
+
+ public Object id;
+
+ public String planType2;
+
+ public String planType2Key;
+
+ public Object sku;
+
+ public String discount;
+
+ public String cost;
+
+ public String costUs;
+
+ public String costAu;
+
+ public String costEu;
+
+ public String costCa;
+
+ public String costUk;
+
+ public String active;
+
+ public String controllerQty;
+
+ public String rainfall;
+
+ public String smsQty;
+
+ public String scheduledReports;
+
+ public String emailAlerts;
+
+ public String defineSensor;
+
+ public String addUser;
+
+ public String contractor;
+
+ public Object description;
+
+ public String sensorPack;
+
+ public String filelimit;
+
+ public String filetypeall;
+
+ public String planType;
+
+ public String pushNotification;
+
+ public String weatherQty;
+
+ public String weatherFreeQty;
+
+ public String reportingDays;
+
+ public String weatherHourlyUpdates;
+
+ public String freeEnthusiastPlans;
+
+ public String visible;
+
+ public Object contractorPurchasable;
+
+ public Integer boc;
+
+ public Object expiry;
+
+ public Object start;
+
+ public String customerplanId;
+
+ public Integer smsUsed;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Forecast.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Forecast.java
new file mode 100644
index 0000000000000..2767a9c88890f
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Forecast.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link Forecast} class models a daily weather forecast
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Forecast {
+
+ public String tempHi;
+
+ public String tempLo;
+
+ public String conditions;
+
+ public String day;
+
+ public Integer pop;
+
+ public Integer humidity;
+
+ public String wind;
+
+ public String icon;
+
+ public String iconLocal;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/LocalScheduleResponse.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/LocalScheduleResponse.java
new file mode 100644
index 0000000000000..6e4a47b3d6512
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/LocalScheduleResponse.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * The {@link LocalScheduleResponse} class models the LocalSchedule response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class LocalScheduleResponse extends Response {
+
+ public List running = new LinkedList();
+
+ public List relays = new LinkedList();
+
+ public String name;
+
+ public Integer time;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/PlanArray.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/PlanArray.java
new file mode 100644
index 0000000000000..4db5b2a06ba8f
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/PlanArray.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link PlanArray} class models am account plan.
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class PlanArray {
+
+ public String id;
+
+ public Object sku;
+
+ public String discount;
+
+ public String cost;
+
+ public String costUs;
+
+ public String costAu;
+
+ public String costEu;
+
+ public String costCa;
+
+ public String costUk;
+
+ public String active;
+
+ public String controllerQty;
+
+ public String rainfall;
+
+ public String smsQty;
+
+ public String scheduledReports;
+
+ public String emailAlerts;
+
+ public String defineSensor;
+
+ public String addUser;
+
+ public String contractor;
+
+ public String description;
+
+ public String sensorPack;
+
+ public String filelimit;
+
+ public String filetypeall;
+
+ public String plan_type;
+
+ public String pushNotification;
+
+ public String weatherQty;
+
+ public String weatherFreeQty;
+
+ public String reportingDays;
+
+ public String weatherHourlyUpdates;
+
+ public String freeEnthusiastPlans;
+
+ public String visible;
+
+ public String contractorPurchasable;
+
+ public String boc;
+
+ public String expiry;
+
+ public String start;
+
+ public String customerplanId;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Relay.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Relay.java
new file mode 100644
index 0000000000000..3d9668214c94c
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Relay.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * The {@link Relay} class models the Relay response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Relay {
+
+ public Integer relayId;
+
+ public Integer relay;
+
+ public String name;
+
+ public String icon;
+
+ public String lastwater;
+
+ public Integer time;
+
+ public Integer type;
+
+ @SerializedName("run")
+ public String runTime;
+
+ @SerializedName("run_seconds")
+ public Integer runTimeSeconds;
+
+ public String nicetime;
+
+ public String id;
+
+ /**
+ * Returns back the actual relay number when multiple controllers are chained.
+ *
+ * @return
+ */
+ public int getRelayNumber() {
+ int quotient = relay / 100;
+ return (relay - (quotient * 100)) + (quotient * 12);
+ }
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Response.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Response.java
new file mode 100644
index 0000000000000..516958cde40c1
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Response.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link Response} class models Response messages
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Response {
+
+ public String errorMsg;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Running.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Running.java
new file mode 100644
index 0000000000000..241e6b9223674
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Running.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link Running} class models a running relay
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Running {
+
+ public String relay;
+
+ public String relayId;
+
+ public Integer timeLeft;
+
+ public String run;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Sensor.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Sensor.java
new file mode 100644
index 0000000000000..a1273ad30fe38
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/Sensor.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.List;
+
+/**
+ * The {@link Sensor} class models a sensor
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class Sensor {
+
+ public Integer input;
+
+ public Integer type;
+
+ public Integer mode;
+
+ public Integer timer;
+
+ public Integer offtimer;
+
+ public String name;
+
+ public Integer offlevel;
+
+ public Integer active;
+
+ public List relays = null;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetControllerResponse.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetControllerResponse.java
new file mode 100644
index 0000000000000..340834a1e723e
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetControllerResponse.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link SetControllerResponse} class models the SetController response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class SetControllerResponse extends Response {
+
+ public String name;
+
+ public String controllerId;
+
+ public String message;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetZoneResponse.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetZoneResponse.java
new file mode 100644
index 0000000000000..126d6fa9d2fbc
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/SetZoneResponse.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+/**
+ * The {@link SetZoneResponse} class models the SetZone response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class SetZoneResponse extends Response {
+
+ public String message;
+
+ public String messageType;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/StatusScheduleResponse.java b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/StatusScheduleResponse.java
new file mode 100644
index 0000000000000..dc716999981e5
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/java/org/openhab/binding/hydrawise/internal/api/model/StatusScheduleResponse.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2010-2020 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.hydrawise.internal.api.model;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * The {@link StatusScheduleResponse} class models the Status and Schedule response message
+ *
+ * @author Dan Cunningham - Initial contribution
+ */
+public class StatusScheduleResponse extends LocalScheduleResponse {
+
+ public Integer controllerId;
+
+ public Integer customerId;
+
+ public Integer userId;
+
+ public Integer nextpoll;
+
+ public List sensors = new LinkedList();
+
+ public String message;
+
+ public String obsRain;
+
+ public String obsRainWeek;
+
+ public String obsMaxtemp;
+
+ public Integer obsRainUpgrade;
+
+ public String obsRainText;
+
+ public String obsCurrenttemp;
+
+ public String wateringTime;
+
+ public Integer waterSaving;
+
+ public String lastContact;
+
+ public List forecast = new LinkedList();
+
+ public String status;
+
+ public String statusIcon;
+
+}
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/binding/binding.xml b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/binding/binding.xml
new file mode 100644
index 0000000000000..4a509e0747c0e
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/binding/binding.xml
@@ -0,0 +1,10 @@
+
+
+
+ Hydrawise Binding
+ This is the binding for Hydrawise irrigation systems.
+ Dan Cunningham
+
+
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/channel-types.xml b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/channel-types.xml
new file mode 100644
index 0000000000000..aeae5e87503bb
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/channel-types.xml
@@ -0,0 +1,223 @@
+
+
+
+
+
+ Hydrawise zone
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Commands that control all Hydrawise zones
+
+
+
+
+
+
+
+
+ Hydrawise sensor
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hydrawise weather forecast
+
+
+
+
+
+
+
+
+
+
+
+
+ String
+
+ Name
+
+
+
+
+ String
+
+ Icon URL for this zone
+
+
+
+
+ Number
+
+ Zone start time in seconds
+
+
+
+
+ Number
+
+ Zone Type
+
+
+
+
+ DateTime
+
+ Next time this zone is scheduled to run
+
+
+
+
+ Switch
+
+ Run or stop zones for the default time.
+
+
+
+ Number
+
+ Run zones now for a custom duration of time in seconds
+
+
+
+ Number
+
+ Time left that zone will run for
+
+
+
+
+
+
+ Number
+
+ Sensor input
+
+
+
+
+ Number
+
+ Sensor type
+
+
+
+
+ Number
+
+ Sensor mode
+
+
+
+
+ Number
+
+ Sensor timer
+
+
+
+
+ Number
+
+ Sensor off timer
+
+
+
+
+ String
+
+ Sensor name
+
+
+
+
+ Number
+
+ Sensor off level
+
+
+
+ Switch
+
+ Sensor active
+
+
+
+
+
+ Number:Temperature
+
+ High temperature
+ Temperature
+
+
+
+
+ Number:Temperature
+
+ Low Temperature
+ Temperature
+
+
+
+
+ String
+
+ Weather conditions
+
+
+
+
+ String
+
+ Weather conditions
+
+
+
+
+ String
+
+ Day of week for the weather forecast
+
+
+
+
+ Number
+
+ Humidity percentage
+ Temperature
+
+
+
+
+ Number:Speed
+
+ Wind speed
+ Wind
+
+
+
diff --git a/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/things.xml b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/things.xml
new file mode 100644
index 0000000000000..3b2e35fc485cf
--- /dev/null
+++ b/bundles/org.openhab.binding.hydrawise/src/main/resources/ESH-INF/thing/things.xml
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+ Hydrawise cloud connected irrigation system
+
+
+
+
+
+ Sensor 1
+
+
+
+ Sensor 2
+
+
+
+ Sensor 3
+
+
+
+ Sensor 4
+
+
+
+
+ Today's weather forecast
+
+
+
+ Day 2 weather forecast
+
+
+
+ Day 3 weather forecast
+
+
+
+ Day 4 weather forecast
+
+
+
+
+
+
+ Sprinkler Zone 1
+
+
+
+ Sprinkler Zone 2
+
+
+
+ Sprinkler Zone 3
+
+
+
+ Sprinkler Zone 4
+
+
+
+ Sprinkler Zone 5
+
+
+
+ Sprinkler Zone 6
+
+
+
+ Sprinkler Zone 7
+
+
+
+ Sprinkler Zone 8
+
+
+
+ Sprinkler Zone 9
+
+
+
+ Sprinkler Zone 10
+
+
+
+ Sprinkler Zone 11
+
+
+
+ Sprinkler Zone 12
+
+
+
+ Sprinkler Zone 13
+
+
+
+ Sprinkler Zone 14
+
+
+
+ Sprinkler Zone 15
+
+
+
+ Sprinkler Zone 16
+
+
+
+ Sprinkler Zone 17
+
+
+
+ Sprinkler Zone 18
+
+
+
+ Sprinkler Zone 19
+
+
+
+ Sprinkler Zone 20
+
+
+
+ Sprinkler Zone 21
+
+
+
+ Sprinkler Zone 22
+
+
+
+ Sprinkler Zone 23
+
+
+
+ Sprinkler Zone 24
+
+
+
+ Sprinkler Zone 25
+
+
+
+ Sprinkler Zone 26
+
+
+
+ Sprinkler Zone 27
+
+
+
+ Sprinkler Zone 28
+
+
+
+ Sprinkler Zone 29
+
+
+
+ Sprinkler Zone 30
+
+
+
+ Sprinkler Zone 31
+
+
+
+ Sprinkler Zone 32
+
+
+
+ Sprinkler Zone 33
+
+
+
+ Sprinkler Zone 34
+
+
+
+ Sprinkler Zone 35
+
+
+
+ Sprinkler Zone 36
+
+
+
+
+
+ API Key from https://app.hydrawise.com/config/account
+
+
+
+ Specifies the refresh interval in seconds
+ 30
+
+
+
+ Optional parameter to specify the Hydrawise controller ID if you have more then one associated with
+ your account.
+
+
+
+
+
+
+
+ Hydrawise local connected irrigation system
+
+
+
+ Sprinkler Zone 1
+
+
+
+ Sprinkler Zone 2
+
+
+
+ Sprinkler Zone 3
+
+
+
+ Sprinkler Zone 4
+
+
+
+ Sprinkler Zone 5
+
+
+
+ Sprinkler Zone 6
+
+
+
+ Sprinkler Zone 7
+
+
+
+ Sprinkler Zone 8
+
+
+
+ Sprinkler Zone 9
+
+
+
+ Sprinkler Zone 10
+
+
+
+ Sprinkler Zone 11
+
+
+
+ Sprinkler Zone 12
+
+
+
+ Sprinkler Zone 13
+
+
+
+ Sprinkler Zone 14
+
+
+
+ Sprinkler Zone 15
+
+
+
+ Sprinkler Zone 16
+
+
+
+ Sprinkler Zone 17
+
+
+
+ Sprinkler Zone 18
+
+
+
+ Sprinkler Zone 19
+
+
+
+ Sprinkler Zone 20
+
+
+
+ Sprinkler Zone 21
+
+
+
+ Sprinkler Zone 22
+
+
+
+ Sprinkler Zone 23
+
+
+
+ Sprinkler Zone 24
+
+
+
+ Sprinkler Zone 25
+
+
+
+ Sprinkler Zone 26
+
+
+
+ Sprinkler Zone 27
+
+
+
+ Sprinkler Zone 28
+
+
+
+ Sprinkler Zone 29
+
+
+
+ Sprinkler Zone 30
+
+
+
+ Sprinkler Zone 31
+
+
+
+ Sprinkler Zone 32
+
+
+
+ Sprinkler Zone 33
+
+
+
+ Sprinkler Zone 34
+
+
+
+ Sprinkler Zone 35
+
+
+
+ Sprinkler Zone 36
+
+
+
+
+
+ Host or IP address of local controller
+
+
+ admin
+
+ User name for controller, usually "admin"
+
+
+
+ password
+ Password for local controller, found in the settings menu on the controller itself.
+
+
+
+ Specifies the refresh interval in seconds
+ 30
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.hyperion/NOTICE b/bundles/org.openhab.binding.hyperion/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.hyperion/NOTICE
+++ b/bundles/org.openhab.binding.hyperion/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.hyperion/pom.xml b/bundles/org.openhab.binding.hyperion/pom.xml
index cc54f65e78d0d..38364b8fc5edd 100644
--- a/bundles/org.openhab.binding.hyperion/pom.xml
+++ b/bundles/org.openhab.binding.hyperion/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.hyperion
diff --git a/bundles/org.openhab.binding.hyperion/src/main/feature/feature.xml b/bundles/org.openhab.binding.hyperion/src/main/feature/feature.xml
index 87b6382a45da0..01863fd228f43 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.hyperion/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionBindingConstants.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionBindingConstants.java
index 626a772b7c252..275169eb5cac4 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionBindingConstants.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionDiscoveryParticipant.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionDiscoveryParticipant.java
index c1d08cf837568..6fe5cd33c6c2b 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionHandlerFactory.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionHandlerFactory.java
index b95bbf45d1495..35fb791ba4f95 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionHandlerFactory.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionStateDescriptionProvider.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionStateDescriptionProvider.java
index 2f64777901692..db93a93ccda4c 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionStateDescriptionProvider.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/HyperionStateDescriptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/connection/JsonTcpConnection.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/connection/JsonTcpConnection.java
index f8edad2b68ad5..752481b3baaec 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/connection/JsonTcpConnection.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/connection/JsonTcpConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionHandler.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionHandler.java
index 5624de7732bf3..8ceaf9081ba36 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionHandler.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionNgHandler.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionNgHandler.java
index 1fb9c127ef7cf..5975eb37967eb 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionNgHandler.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/handler/HyperionNgHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ColorCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ColorCommand.java
index a9bb8d4fd501d..70946008609ea 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ColorCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ColorCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/CommandUnsuccessfulException.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/CommandUnsuccessfulException.java
index 8efbc2ad86b6d..eedc8201e7d52 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/CommandUnsuccessfulException.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/CommandUnsuccessfulException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/EffectCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/EffectCommand.java
index 345ced70b356b..67cc2634f4451 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/EffectCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/EffectCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/HyperionCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/HyperionCommand.java
index acafe97756612..d959a84e413b8 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/HyperionCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/HyperionCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ServerInfoCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ServerInfoCommand.java
index 2585b339f2246..9468ba5b6cf3e 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ServerInfoCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ServerInfoCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Adjustment.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Adjustment.java
index 31e925b2267ab..bc970b0454001 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Adjustment.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Adjustment.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/AdjustmentCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/AdjustmentCommand.java
index 45fb1fd4c6a33..72e71d074e013 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/AdjustmentCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/AdjustmentCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Component.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Component.java
index 334b989f7a4ef..f450301d5f152 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Component.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Component.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentState.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentState.java
index d77b6347b9e71..2abb71a289ca4 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentState.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentStateCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentStateCommand.java
index 1f4a614cdf1d3..453aecb68ec86 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentStateCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/ComponentStateCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Hyperion.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Hyperion.java
index b6df95d8a5f73..6e41b2c8bb4aa 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Hyperion.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Hyperion.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgInfo.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgInfo.java
index 359706cc72378..98938c69df064 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgInfo.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgResponse.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgResponse.java
index 6282c9116ca57..cb1680a4519ab 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgResponse.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/NgResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Priority.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Priority.java
index 2ec7c05721145..7a6eff92e06fd 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Priority.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Priority.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Session.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Session.java
index e6a39c64a6f9b..1558cc05b62ad 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Session.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Session.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Value.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Value.java
index ae97437768426..271fb065d8405 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Value.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/ng/Value.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveEffect.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveEffect.java
index 5aa1a38a9e093..9b8743c81cc0d 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveEffect.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveEffect.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveLedColor.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveLedColor.java
index edb4e4599e7a5..31b0b5acf391f 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveLedColor.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ActiveLedColor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearAllCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearAllCommand.java
index b9d3cc9588b9e..5a7422581f089 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearAllCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearAllCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearCommand.java
index 2e3d29ef4c14e..0b3b5950f25b2 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/ClearCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Correction.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Correction.java
index af0dccd4296ba..d1810deaa00fd 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Correction.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Correction.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Effect.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Effect.java
index 3e7e62dd7732c..00b6ddbdae3e7 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Effect.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Effect.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/HyperionBuild.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/HyperionBuild.java
index df68688fc4f67..e5650b5309c14 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/HyperionBuild.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/HyperionBuild.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Priority.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Priority.java
index 6f9ee725f1363..d780c264def01 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Priority.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Priority.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Temperature.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Temperature.java
index ff51c138d10cf..45d6b00aeb311 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Temperature.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Temperature.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Transform.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Transform.java
index e4e46620c67a0..4464c7c7a45fc 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Transform.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/Transform.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/TransformCommand.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/TransformCommand.java
index 275bca2daecb6..eaae1862fb728 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/TransformCommand.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/TransformCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Info.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Info.java
index 7f73c20480ba1..01c36c183dff5 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Info.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Info.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Response.java b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Response.java
index 1d89b751c587f..61926d8d82df7 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Response.java
+++ b/bundles/org.openhab.binding.hyperion/src/main/java/org/openhab/binding/hyperion/internal/protocol/v1/V1Response.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.hyperion/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.hyperion/src/main/resources/ESH-INF/thing/thing-types.xml
index eb8d1f9523d8e..bf7b1eceb89cf 100644
--- a/bundles/org.openhab.binding.hyperion/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.hyperion/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -16,7 +16,7 @@
-
+
network-addressThe host address of the Hyperion server JSON API.
@@ -31,7 +31,7 @@
50
-
+
How often (in seconds) to poll the Hyperion server for value changes.15
@@ -60,7 +60,7 @@
-
+
network-addressThe host address of the Hyperion server JSON API.
@@ -75,7 +75,7 @@
50
-
+
How often (in seconds) to poll the Hyperion server for value changes.true3
@@ -109,7 +109,7 @@
String
-
+
Clears the given Hyperion priority
@@ -121,7 +121,7 @@
Switch
-
+
Shows the current state of the black border component and allows the black border component to be enabled or disabled
@@ -133,7 +133,7 @@
Switch
-
+
Shows the current state of the Kodi checker component and allows the Kodi checker component to be enabled or disabled
@@ -145,13 +145,13 @@
Switch
-
+
Shows the current state of the UDP listener component and allows the UDP listener component to be enabled or disabledSwitch
-
+
Shows the current state of the Boblight server component and allows the Boblight server component to be enabled or disabled
@@ -164,13 +164,13 @@
Switch
-
+
Shows the current state of the v4l component and allows the v4l component to be enabled or disabledSwitch
-
+
Shows the current state of the LED component and allows the LED component to be enabled or disabled
diff --git a/bundles/org.openhab.binding.iaqualink/NOTICE b/bundles/org.openhab.binding.iaqualink/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.iaqualink/NOTICE
+++ b/bundles/org.openhab.binding.iaqualink/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.iaqualink/README.md b/bundles/org.openhab.binding.iaqualink/README.md
index 4c8d1840af897..e1a6ad3df101e 100644
--- a/bundles/org.openhab.binding.iaqualink/README.md
+++ b/bundles/org.openhab.binding.iaqualink/README.md
@@ -3,13 +3,13 @@
This binding supports:
* Any iAquaLink based pool system
-* Reading auxiliary, temperature, pump, chemistry and system values
+* Reading auxiliary, temperature, pump, chemistry and system values
* Controlling system, auxiliary, lighting, and temperature settings
## Binding Configuration
-The binding requires the iAquaLink user name and password.
-If you have more then one pool system registered to an account, you may optionally specify the pool serial ID/Number to use, otherwise the first pool controller will be used.
+The binding requires the iAquaLink user name and password.
+If you have more then one pool system registered to an account, you may optionally specify the pool serial ID/Number to use, otherwise the first pool controller will be used.
## Manual Thing Configuration
@@ -21,12 +21,14 @@ Thing iaqualink:controller:pool [ userName="user@domain.com", password="somepass
## Channels
-The following is a list of supported channels.
+The following is a list of supported channels.
Auxiliary and OneTouch channels will be dynamically added depending on what a system reports as being supported.
-Auxiliary channels that are of a number type represent lighting modes (typically 0-15), Auxiliary channels that are dimmer types can set the light value in increments of 25 (0,25,50,750,100). The Auxiliary channel type will be dynamically assigned based on the controller configuration.
+Auxiliary channels that are of a number type represent lighting modes (typically 0-15).
+Auxiliary channels that are dimmer types can set the light value in increments of 25 (0,25,50,750,100).
+The Auxiliary channel type will be dynamically assigned based on the controller configuration.
-Heater status can be OFF (0), Enabled/ON (3), or Heating (1).
+Heater status can be OFF (0), Enabled/ON (3), or Heating (1).
| Channel Type ID | Item Type |
|---------------------|----------------------------|
@@ -60,11 +62,11 @@ Heater status can be OFF (0), Enabled/ON (3), or Heating (1).
### Color/Mood Auxiliary Channels
String auxiliary channels can control a variety of lighting moods/colors depending on what type of lighting system is installed.
-The following is a table of aux_n channel values (String) to lighting set descriptions values.
+The following is a table of aux_n channel values (String) to lighting set descriptions values.
The binding will automatically detect which color system is enabled and add the appropriate channel type with the following option labels.
Colors can be set, but only On or Off is reported back as the current state of the channel.
-| String Value | jandy Color | Jandy Led Water Colors | Pentair SAm/SAL | Hayward Universal | Pentair intelliBrite |
+| String Value | jandy Color | Jandy LED Water Colors | Pentair SAm/SAL | Hayward Universal | Pentair intelliBrite |
|--------------|----------------|------------------------|-----------------|-------------------|----------------------|
| "off" | Off | Off | Off | Off | Off |
| "on" | On | On | On | On | On |
diff --git a/bundles/org.openhab.binding.iaqualink/pom.xml b/bundles/org.openhab.binding.iaqualink/pom.xml
index 56f6ea628ae55..0c1f64c8859c7 100644
--- a/bundles/org.openhab.binding.iaqualink/pom.xml
+++ b/bundles/org.openhab.binding.iaqualink/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.iaqualink
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/feature/feature.xml b/bundles/org.openhab.binding.iaqualink/src/main/feature/feature.xml
index 486f375726f52..9636f132581f4 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.iaqualink/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkBindingConstants.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkBindingConstants.java
index c69b528975486..6fab375071248 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkBindingConstants.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkHandlerFactory.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkHandlerFactory.java
index ce6cd22a6112e..f94a596ebcbaf 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkHandlerFactory.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/IAqualinkHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/IAqualinkClient.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/IAqualinkClient.java
index 8f7dd2dfeaf22..3c36fc27f2e21 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/IAqualinkClient.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/IAqualinkClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/AccountInfo.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/AccountInfo.java
index 4873f53397542..90fa4004abed9 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/AccountInfo.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/AccountInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Auxiliary.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Auxiliary.java
index 61111dbbb640d..0b934938c5b63 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Auxiliary.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Auxiliary.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Device.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Device.java
index 7b3e4689ff620..82fbf8c5da275 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Device.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Device.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Home.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Home.java
index a0efff52ac45d..e8074d3a1a9b4 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Home.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/Home.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/OneTouch.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/OneTouch.java
index d1816f54e29e6..379a787d4534e 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/OneTouch.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/OneTouch.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/SignIn.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/SignIn.java
index 6c7d5ad515758..9547da0c4fc08 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/SignIn.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/api/model/SignIn.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/config/IAqualinkConfiguration.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/config/IAqualinkConfiguration.java
index 45c4e55c873f8..0e3fcc32e4b34 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/config/IAqualinkConfiguration.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/config/IAqualinkConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/AuxiliaryType.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/AuxiliaryType.java
index 9fd1e307a75f6..c264dce86528b 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/AuxiliaryType.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/AuxiliaryType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/HeaterState.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/HeaterState.java
index b11a969ebbb50..f533008026ea1 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/HeaterState.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/HeaterState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java
index b2b05a1aa0fe8..c6cb34b79925f 100644
--- a/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java
+++ b/bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -60,6 +60,7 @@
import org.openhab.binding.iaqualink.internal.api.model.AccountInfo;
import org.openhab.binding.iaqualink.internal.api.model.Auxiliary;
import org.openhab.binding.iaqualink.internal.api.model.Device;
+import org.openhab.binding.iaqualink.internal.api.model.Home;
import org.openhab.binding.iaqualink.internal.api.model.OneTouch;
import org.openhab.binding.iaqualink.internal.config.IAqualinkConfiguration;
import org.slf4j.Logger;
@@ -343,7 +344,15 @@ private boolean isFutureValid(@Nullable ScheduledFuture> future) {
private void pollController() {
ScheduledFuture> localFuture = pollFuture;
try {
- Map map = client.getHome(serialNumber, sessionId).getSerializedMap();
+ Home home = client.getHome(serialNumber, sessionId);
+
+ if ("Error".equals(home.getResponse())) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
+ "Service reports controller status as: " + home.getStatus());
+ return;
+ }
+
+ Map map = home.getSerializedMap();
if (map != null) {
temperatureUnit = "F".equalsIgnoreCase(map.get("temp_scale")) ? FAHRENHEIT : CELSIUS;
map.forEach((k, v) -> {
diff --git a/bundles/org.openhab.binding.icloud/NOTICE b/bundles/org.openhab.binding.icloud/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.icloud/NOTICE
+++ b/bundles/org.openhab.binding.icloud/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.icloud/README.md b/bundles/org.openhab.binding.icloud/README.md
index ec6e07fa5b1ad..c394a2b8980be 100644
--- a/bundles/org.openhab.binding.icloud/README.md
+++ b/bundles/org.openhab.binding.icloud/README.md
@@ -8,7 +8,7 @@ An Apple account is required.
Two factor authentication is supported.
Please note: Application specific passwords are not supported.
-You'll need to provide the account password to the Binding.
+You will need to provide the account password to the Binding.
## Discovery
@@ -97,7 +97,7 @@ sitemap icloud label="iCloud" {
Text item=iPhone_LocationLastUpdate
Switch item=iPhone_FindMyPhone mappings=[ ON="Find!" ]
Switch item=iPhone_Refresh mappings=[ REFRESH='Refresh now' ]
- // Mapview for BasicUI and Applications (Android/iOS)
+ // Mapview for Basic UI and Applications (Android/iOS)
Mapview item=iPhone_Location height=10
}
}
diff --git a/bundles/org.openhab.binding.icloud/pom.xml b/bundles/org.openhab.binding.icloud/pom.xml
index d88d22ba95a2e..4a7ded24f5073 100644
--- a/bundles/org.openhab.binding.icloud/pom.xml
+++ b/bundles/org.openhab.binding.icloud/pom.xml
@@ -1,11 +1,10 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.icloud
diff --git a/bundles/org.openhab.binding.icloud/src/main/feature/feature.xml b/bundles/org.openhab.binding.icloud/src/main/feature/feature.xml
index 86cf167317d99..51c43d52c26c6 100644
--- a/bundles/org.openhab.binding.icloud/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.icloud/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudBindingConstants.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudBindingConstants.java
index ff653e0e84645..486af00b86ad8 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudBindingConstants.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudConnection.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudConnection.java
index 5bc94b65a484f..2957b7681c29f 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudConnection.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationListener.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationListener.java
index d0ae48f91a7d4..69a35c55752db 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationListener.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationParser.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationParser.java
index b6493b508c0ee..c38556a8642d9 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationParser.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudDeviceInformationParser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudHandlerFactory.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudHandlerFactory.java
index b285a1adc9825..613c9968d12a5 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudHandlerFactory.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudTlsCertificateProvider.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudTlsCertificateProvider.java
index 28b5667785c8b..e20fb42ab18d2 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudTlsCertificateProvider.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/ICloudTlsCertificateProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudAccountThingConfiguration.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudAccountThingConfiguration.java
index 3c249f33a2468..dde3cc93796f6 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudAccountThingConfiguration.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudAccountThingConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudDeviceThingConfiguration.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudDeviceThingConfiguration.java
index 0867e3be5e70d..3c29d39d9fa2f 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudDeviceThingConfiguration.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/configuration/ICloudDeviceThingConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/discovery/ICloudDeviceDiscovery.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/discovery/ICloudDeviceDiscovery.java
index 77c7a91a1f71a..437274529aa01 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/discovery/ICloudDeviceDiscovery.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/discovery/ICloudDeviceDiscovery.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudAccountBridgeHandler.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudAccountBridgeHandler.java
index 376884339f28b..d467cf83522c3 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudAccountBridgeHandler.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudAccountBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java
index dd3d3475a9277..d884b73ee73b6 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/handler/ICloudDeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudAccountDataRequest.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudAccountDataRequest.java
index 2e839e6b7eed7..831afb425cb4b 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudAccountDataRequest.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudAccountDataRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudFindMyDeviceRequest.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudFindMyDeviceRequest.java
index 9e117fbfa0bdf..64c097200d295 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudFindMyDeviceRequest.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/request/ICloudFindMyDeviceRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountDataResponse.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountDataResponse.java
index ceb289e62c758..de893e0d49b98 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountDataResponse.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountDataResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountUserInfo.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountUserInfo.java
index 58195dfc76c21..f7a6f872c6d84 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountUserInfo.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudAccountUserInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceFeatures.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceFeatures.java
index 5cf3a9c28da6f..410da9bef745d 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceFeatures.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceFeatures.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceInformation.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceInformation.java
index 0dea769c90043..0b48aafe4c943 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceInformation.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceInformation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceLocation.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceLocation.java
index 616aa93b04f1f..33ae5e04268d0 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceLocation.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudDeviceLocation.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContext.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContext.java
index 41fc39d08402a..f279a99d6fc4b 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContext.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContext.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContextTimezone.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContextTimezone.java
index ca46de9f0a464..49cb39b26ef88 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContextTimezone.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/json/response/ICloudServerContextTimezone.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/utilities/ICloudTextTranslator.java b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/utilities/ICloudTextTranslator.java
index e275958544763..4c970d3ecdf06 100644
--- a/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/utilities/ICloudTextTranslator.java
+++ b/bundles/org.openhab.binding.icloud/src/main/java/org/openhab/binding/icloud/internal/utilities/ICloudTextTranslator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud.properties b/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud.properties
index 314bad14634ee..43fc007e4b88e 100644
--- a/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud.properties
+++ b/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud.properties
@@ -31,4 +31,4 @@ icloud.device-thing.channel.location.label=Location
icloud.device-thing.channel.location-accuracy=Location Accuracy
icloud.device-thing.channel.location-last-update=Last Location Update
-icloud.device-thing.property.device-name=Device name
\ No newline at end of file
+icloud.device-thing.property.device-name=Device name
diff --git a/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud_fr.properties b/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud_fr.properties
index 6e8d0899bba25..eec888a8a1dfc 100644
--- a/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud_fr.properties
+++ b/bundles/org.openhab.binding.icloud/src/main/resources/ESH-INF/i18n/iCloud_fr.properties
@@ -26,4 +26,4 @@ icloud.device-thing.channel.location.label=Localisation
icloud.device-thing.channel.location-accuracy=Precision de localisation
icloud.device-thing.channel.location-last-update=Dernière mise à jour de la localisation
-icloud.device-thing.property.device-name=Nom de l'appareil
\ No newline at end of file
+icloud.device-thing.property.device-name=Nom de l'appareil
diff --git a/bundles/org.openhab.binding.ihc/NOTICE b/bundles/org.openhab.binding.ihc/NOTICE
index 33ad66d9455ac..807df74ba091e 100644
--- a/bundles/org.openhab.binding.ihc/NOTICE
+++ b/bundles/org.openhab.binding.ihc/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.ihc/README.md b/bundles/org.openhab.binding.ihc/README.md
index edf5042946c5a..5d352ec4039ea 100644
--- a/bundles/org.openhab.binding.ihc/README.md
+++ b/bundles/org.openhab.binding.ihc/README.md
@@ -67,7 +67,7 @@ Channel parameters:
| direction | Text | no | ReadWrite | Direction of the channel (ReadWrite, WriteOnly, ReadOnly). |
| commandToReact | String | no | | Command to react. If not defined, channel react to all commands. |
| pulseWidth | Integer | no | | Pulse width in milliseconds. If defined, binding send pulse rather than command value to IHC controller. |
-| inverted | Boolean | no | false | OpenHAB state is inverted compared to IHC output/input signal. |
+| inverted | Boolean | no | false | openHAB state is inverted compared to IHC output/input signal. |
| serialNumber | Integer | yes | | Serial number of RF device in decimal format. |
| longPressTime | Integer | yes | 1000 | Long press time in milliseconds. |
diff --git a/bundles/org.openhab.binding.ihc/noEmbedDependencies.profile b/bundles/org.openhab.binding.ihc/noEmbedDependencies.profile
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/bundles/org.openhab.binding.ihc/pom.xml b/bundles/org.openhab.binding.ihc/pom.xml
index 606a5dc7c6645..482199b3d0c52 100644
--- a/bundles/org.openhab.binding.ihc/pom.xml
+++ b/bundles/org.openhab.binding.ihc/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.ihc
@@ -18,19 +17,19 @@
org.apache.httpcomponentshttpcore-osgi4.4.10
- provided
+ compileorg.apache.httpcomponentshttpclient-osgi4.5.8
- provided
+ compilecommons-loggingcommons-logging1.2
- provided
+ compile
diff --git a/bundles/org.openhab.binding.ihc/src/main/feature/feature.xml b/bundles/org.openhab.binding.ihc/src/main/feature/feature.xml
index 728aabad9a36a..f6264e77a53d3 100644
--- a/bundles/org.openhab.binding.ihc/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.ihc/src/main/feature/feature.xml
@@ -1,12 +1,12 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:org.apache.httpcomponents/httpcore-osgi/4.4.10
- mvn:org.apache.httpcomponents/httpclient-osgi/4.5.8
- mvn:commons-logging/commons-logging/1.2
+ mvn:org.apache.httpcomponents/httpcore-osgi/4.4.10
+ mvn:org.apache.httpcomponents/httpclient-osgi/4.5.8
+ mvn:commons-logging/commons-logging/1.2mvn:org.openhab.addons.bundles/org.openhab.binding.ihc/${project.version}
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetector.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetector.java
index 28c036d7ffd4c..cf079ef8bf981 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetector.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetector.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java
index ac1c685bcfbcf..1ea92ccd07fdc 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ChannelUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/EnumDictionary.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/EnumDictionary.java
index cf278c71bb30e..a419dd5378d89 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/EnumDictionary.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/EnumDictionary.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcBindingConstants.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcBindingConstants.java
index 44d86fa1ca2ea..6568ff1173673 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcBindingConstants.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcHandlerFactory.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcHandlerFactory.java
index bcbe99dfe694b..292f804f3cc7e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcHandlerFactory.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/IhcHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/SignalLevelConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/SignalLevelConverter.java
index e5a591a92adf9..15d0865a82f74 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/SignalLevelConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/SignalLevelConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/ChannelParams.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/ChannelParams.java
index 59171aa15e9a3..d924dcd09b41b 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/ChannelParams.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/ChannelParams.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/IhcConfiguration.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/IhcConfiguration.java
index 19df1660a7b5d..500452fc94362 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/IhcConfiguration.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/config/IhcConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/Converter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/Converter.java
index fe0ff26796617..6bffb975625be 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/Converter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/Converter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterAdditionalInfo.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterAdditionalInfo.java
index 7538786ac772e..41c73e4f8a947 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterAdditionalInfo.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterAdditionalInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterFactory.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterFactory.java
index 37dda73406c4f..125be6121ccb6 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterFactory.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/ConverterFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverter.java
index 17f14ea7d4bb1..24df819211ea1 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverter.java
index a999e96117707..378233095f81c 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverter.java
index f34dcb87e3510..196ed0af4883e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverter.java
index 8eaad4e5f0f1f..f62ad4fe5ff27 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverter.java
index b3c178d3c2dc8..fc73a40036bf4 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverter.java
index 190cdd6837a85..ea5e604232c6b 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverter.java
index 00cea5def897b..e4eedf59082de 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverter.java
index 38c101674b4af..cba7c2893444e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverter.java
index 7ee02116d1e11..503da6df2cdbe 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverter.java
index 8c0f3bcad3f14..bb8382d45863b 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverter.java
index d3a22e2ae6719..adef3aa882ee6 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverter.java
index 10c07c44b9e7c..e11fe2e220643 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverter.java
index f2ba4b2c43463..2b448e287505e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverter.java
index ada3c98bc86ec..ac12714f9f9d6 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverter.java
index 37f6d00525d95..a1f8ab5a6c534 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverter.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverter.java
index 6b9108e8e5d3a..a735681978597 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverter.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/handler/IhcHandler.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/handler/IhcHandler.java
index 6dfddababaa15..549c297953ab8 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/handler/IhcHandler.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/handler/IhcHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfileFactory.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfileFactory.java
index 990c4e161fa4f..6fb7e452df94c 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfileFactory.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfileFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfiles.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfiles.java
index 31bc4780cc938..0e7609b645f09 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfiles.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/IhcProfiles.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/PushButtonToCommandProfile.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/PushButtonToCommandProfile.java
index 5013b5743d155..c0e396de9b780 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/PushButtonToCommandProfile.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/profiles/PushButtonToCommandProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcClient.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcClient.java
index 10abfdca4a264..9f8d692856287 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcClient.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcEventListener.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcEventListener.java
index a235edc74c82e..368325faa0073 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcEventListener.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/IhcEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSControllerState.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSControllerState.java
index 108f7e0d53323..a4b374a7fccdc 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSControllerState.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSControllerState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSDate.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSDate.java
index fd3b1b84eedab..9202ca326af5a 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSDate.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSDate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSFile.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSFile.java
index 71b4df944051b..cbe0406888952 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSFile.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSFile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSLoginResult.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSLoginResult.java
index f3d0ac689f762..3163442dd82ea 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSLoginResult.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSLoginResult.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSNumberOfSegments.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSNumberOfSegments.java
index 6bf4ef5f7f25b..fb4e1ef5fe930 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSNumberOfSegments.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSNumberOfSegments.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSProjectInfo.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSProjectInfo.java
index 21f3ff2cd4cfa..2c8f74d7b5357 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSProjectInfo.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSProjectInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSRFDevice.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSRFDevice.java
index 8d7a87fc59631..7a6a49c0b3118 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSRFDevice.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSRFDevice.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSegmentationSize.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSegmentationSize.java
index 5f3ce0faf7db7..fd1cc7673f25c 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSegmentationSize.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSegmentationSize.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSystemInfo.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSystemInfo.java
index d3643af03803b..a5365726a862d 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSystemInfo.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSSystemInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSTimeManagerSettings.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSTimeManagerSettings.java
index 10de79916c07b..31164005e6e42 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSTimeManagerSettings.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSTimeManagerSettings.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUser.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUser.java
index 41143c9399172..62dfe10f50166 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUser.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUser.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUserGroup.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUserGroup.java
index f7f5ea949fea1..99acd941febc2 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUserGroup.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/WSUserGroup.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/XPathUtils.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/XPathUtils.java
index 0afc689e38cda..d0e18febe8228 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/XPathUtils.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/datatypes/XPathUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/ConversionException.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/ConversionException.java
index 6c00d238c0e7d..7b303bccc309e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/ConversionException.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/ConversionException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/IhcExecption.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/IhcExecption.java
index d7b294766d830..c5f03ab366808 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/IhcExecption.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/exeptions/IhcExecption.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcConnectionPool.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcConnectionPool.java
index a4b8e6f9c48dc..ce756d69a415d 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcConnectionPool.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcConnectionPool.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcHttpsClient.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcHttpsClient.java
index 7d71c47859283..655aa225f428a 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcHttpsClient.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/http/IhcHttpsClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/IhcEnumValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/IhcEnumValue.java
index fecfa630fe4e8..653717f6b9f97 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/IhcEnumValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/IhcEnumValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/ProjectFileUtils.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/ProjectFileUtils.java
index c8f118a4f5608..5ca0c63eae8c0 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/ProjectFileUtils.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/projectfile/ProjectFileUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSBooleanValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSBooleanValue.java
index 5bf4197ac10bc..9b9918f548d95 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSBooleanValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSBooleanValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSDateValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSDateValue.java
index 871c558897e00..112f6aabf7b80 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSDateValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSDateValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSEnumValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSEnumValue.java
index 0c507ff934f13..7aa86d353fb0c 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSEnumValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSEnumValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSFloatingPointValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSFloatingPointValue.java
index c9b1d8336c178..8aadba5c7584f 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSFloatingPointValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSFloatingPointValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSIntegerValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSIntegerValue.java
index b1a6157efd955..1ddcea90824c9 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSIntegerValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSIntegerValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSPhoneNumberValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSPhoneNumberValue.java
index 5506510c14e54..d03a44d8220a9 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSPhoneNumberValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSPhoneNumberValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSResourceValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSResourceValue.java
index 935c769f07d03..77851fcad7aed 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSResourceValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSResourceValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneDimmerValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneDimmerValue.java
index 55f485940606b..91968fb391821 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneDimmerValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneDimmerValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneRelayValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneRelayValue.java
index c68dc2d2e064a..8dc523f067396 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneRelayValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneRelayValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneShutterSimpleValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneShutterSimpleValue.java
index 2d3bcc7389817..6520eff33719e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneShutterSimpleValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSSceneShutterSimpleValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimeValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimeValue.java
index 0d90f538fe5ec..ddf52709ca043 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimeValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimeValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimerValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimerValue.java
index 4da29232d9c9d..c39b3cd31bcd7 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimerValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSTimerValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSWeekdayValue.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSWeekdayValue.java
index 23683a6732bfd..d9de7db984b32 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSWeekdayValue.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/resourcevalues/WSWeekdayValue.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementService.java
index 966bfec97e580..55a7e8933f6ab 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationService.java
index 69643b228e3f5..6fd1e8f820162 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcBaseService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcBaseService.java
index de1286b6cb720..ee0d75d95f9d7 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcBaseService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcBaseService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationService.java
index 0658be4ba96fa..4d4765c404f36 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerService.java
index 0a96818c2800c..d246758e62d8a 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java
index ff3e921e99dd5..a28ab9820bf7e 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeService.java b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeService.java
index 37a69cf9fee19..13950f58df431 100644
--- a/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeService.java
+++ b/bundles/org.openhab.binding.ihc/src/main/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.ihc/src/main/resources/ESH-INF/thing/channels.xml
index 378c8de378bbb..ca88d89e1cedf 100644
--- a/bundles/org.openhab.binding.ihc/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.ihc/src/main/resources/ESH-INF/thing/channels.xml
@@ -43,7 +43,7 @@
-
+
Command to react. If not defined, channel react to all commands.
@@ -93,7 +93,7 @@
-
+
Command to react. If not defined, channel react to all commands.
@@ -123,7 +123,7 @@
-
+
Command to react. If not defined, channel react to all commands.
@@ -157,7 +157,7 @@
-
+
Command to react. If not defined, channel react to all commands.
@@ -187,7 +187,7 @@
-
+
Command to react. If not defined, channel react to all commands.
@@ -217,7 +217,7 @@
-
+
Command to react. If not defined, channel react to all commands.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetectorTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetectorTest.java
index 7ad87f0e8afb6..ecc9cdaebcb87 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetectorTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ButtonPressDurationDetectorTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/SignalLevelConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/SignalLevelConverterTest.java
index 7d2fb57916fd4..bcdc0bd5a2b39 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/SignalLevelConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/SignalLevelConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverterTest.java
index 193263def3331..96d802ae94db2 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSDateValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverterTest.java
index fbf10f979a865..3c3e3223d38d4 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DateTimeTypeWSTimeValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverterTest.java
index 3eec37b79ee47..5dad5c2fee9c2 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSBooleanValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverterTest.java
index 381aebee276b3..98748589f4a71 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSEnumValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverterTest.java
index 604bff701e5f1..063eadce608a0 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSFloatingPointValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverterTest.java
index cebd0b8a3ee1b..907aa7bfa702e 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSIntegerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverterTest.java
index bdfbd23fd9a0e..56b8aeebacba1 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSTimerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverterTest.java
index 5d7df37fc5fbe..9825d0896b581 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/DecimalTypeWSWeekdayValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverterTest.java
index d4d0cddaa3784..bb8a35f8d3a61 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSBooleanValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverterTest.java
index 3a9c5383d2a62..905131628158f 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OnOffTypeWSIntegerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverterTest.java
index fab31a00b38db..ea7949e4998a1 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSBooleanValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverterTest.java
index 5ff2277271e96..7439d7dab2986 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/OpenClosedTypeWSIntegerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverterTest.java
index 7327738dcb127..91637dd700a7d 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/PercentTypeWSIntegerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverterTest.java
index d2c78ae542b6f..f3d4212d155f8 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/StringTypeWSEnumValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverterTest.java
index e00e40cde9279..5b99a6e1994be 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSBooleanValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverterTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverterTest.java
index 38ff8d8468594..fd2fd41b47e05 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverterTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/converters/UpDownTypeWSIntegerValueConverterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/IhcClientTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/IhcClientTest.java
index 12aa35af2d5f0..28661f82c72e1 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/IhcClientTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/IhcClientTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/ResourceFileUtils.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/ResourceFileUtils.java
index f76f26160be17..9b6b64de8ce1f 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/ResourceFileUtils.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/ResourceFileUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementServiceTest.java
index f641662ae7a6e..eb86baaaeee0d 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAirlinkManagementServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationServiceTest.java
index 88ff0e488f3bc..4c7144906ab3e 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcAuthenticationServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationServiceTest.java
index ae0e259047a67..061004e098aef 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcConfigurationServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerServiceTest.java
index 8629f2388b0fc..6baece6e59fb8 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcControllerServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionServiceTest.java
index 3c2ac938782bb..8bdbb50a6df5c 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcResourceInteractionServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeServiceTest.java b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeServiceTest.java
index 40b45d7a06a19..85f41d56ce110 100644
--- a/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeServiceTest.java
+++ b/bundles/org.openhab.binding.ihc/src/test/java/org/openhab/binding/ihc/internal/ws/services/IhcTimeServiceTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ControllerStateResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ControllerStateResponse.xml
index 4d2a07dbfda77..63c851f51704c 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ControllerStateResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ControllerStateResponse.xml
@@ -5,4 +5,4 @@
text.ctrl.state.ready
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/EmptyQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/EmptyQuery.xml
index f93dc9fc4407e..a2a721d48a8bd 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/EmptyQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/EmptyQuery.xml
@@ -2,4 +2,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetDetectedDeviceListResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetDetectedDeviceListResponse.xml
index 016ef6dcffcb9..ca65c823a9c8b 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetDetectedDeviceListResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetDetectedDeviceListResponse.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectInfoResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectInfoResponse.xml
index ea351c277b0c8..41e64f47d2656 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectInfoResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectInfoResponse.xml
@@ -31,4 +31,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectNumberOfSegmentsResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectNumberOfSegmentsResponse.xml
index 2b126337b6cc9..2020f6ca56c72 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectNumberOfSegmentsResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectNumberOfSegmentsResponse.xml
@@ -3,4 +3,4 @@
28
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentQuery.xml
index fbd0d5bf92e51..f12552ccafcf7 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentQuery.xml
@@ -5,4 +5,4 @@
10012002
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentResponse.xml
index 2a2e71d0ab31a..0a9ce72efa50e 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentResponse.xml
@@ -7,4 +7,4 @@
LvVF4VWSi0WqRKps7lGH6U....OBCl1gwKGbvYM1SDh
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentationSizeResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentationSizeResponse.xml
index 3e56de453416f..4c3c8137f586b 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentationSizeResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetProjectSegmentationSizeResponse.xml
@@ -3,4 +3,4 @@
7500
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetSettingsResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetSettingsResponse.xml
index 899f243662f2f..0ca5befb5869d 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetSettingsResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetSettingsResponse.xml
@@ -27,4 +27,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/GetSystemInfoResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/GetSystemInfoResponse.xml
index 837677fff85c8..a5a14740dc879 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/GetSystemInfoResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/GetSystemInfoResponse.xml
@@ -21,4 +21,4 @@
false
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedQuery.xml
index 4bfbbb1adeb64..8308eba4226c7 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedQuery.xml
@@ -7,4 +7,4 @@
treeview
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedResponse.xml
index 14e06f2e08822..a16cf36366236 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/LoginFailedResponse.xml
@@ -14,4 +14,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ProjectFileContent.txt b/bundles/org.openhab.binding.ihc/src/test/resources/ProjectFileContent.txt
index 6a2c0ff3e4b70..807a575fb7d51 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ProjectFileContent.txt
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ProjectFileContent.txt
@@ -2,4 +2,4 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam imperdiet augue t
Sed hendrerit, est eu hendrerit condimentum, mi justo vehicula ipsum, at dignissim tortor mi quis velit. Aliquam in turpis quis mi dapibus efficitur sed vel metus. Donec ac nisl magna. Cras eget nulla in nunc mollis semper quis et ex. Nulla accumsan dui non mi interdum interdum a nec justo. Phasellus at dolor sit amet purus porta tristique eget in diam. Suspendisse laoreet vulputate nulla quis dictum. Sed laoreet elit sed ipsum ornare ornare. Vivamus in blandit enim, et luctus lacus. Aenean id laoreet diam. Pellentesque ipsum diam, fermentum nec ante ac, mattis tristique mi. Curabitur ultricies risus cursus iaculis ultrices. Nullam sed pharetra arcu. Sed sed dui congue, porttitor nisl vitae, viverra risus.
-Proin at lorem non nunc ullamcorper cursus ut id purus. Proin ac enim non ex aliquam auctor non vel lorem. Aliquam aliquam enim eget tellus mollis dictum. Nulla rhoncus placerat ante vitae vestibulum. Donec facilisis justo vitae dolor ultrices semper. Vivamus mollis neque id felis feugiat, at consectetur ipsum posuere. Ut viverra ex ante, nec lobortis metus pellentesque id. Pellentesque cursus augue sit amet mi varius, sed ultricies ligula turpis duis.
\ No newline at end of file
+Proin at lorem non nunc ullamcorper cursus ut id purus. Proin ac enim non ex aliquam auctor non vel lorem. Aliquam aliquam enim eget tellus mollis dictum. Nulla rhoncus placerat ante vitae vestibulum. Donec facilisis justo vitae dolor ultrices semper. Vivamus mollis neque id felis feugiat, at consectetur ipsum posuere. Ut viverra ex ante, nec lobortis metus pellentesque id. Pellentesque cursus augue sit amet mi varius, sed ultricies ligula turpis duis.
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsQuery.xml
index 0b0a48e071f60..cd6dd012b00e3 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsQuery.xml
@@ -3,4 +3,4 @@
1
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsResponse.xml
index b2a845938295d..b524ffb45410e 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueNotificationsResponse.xml
@@ -119,4 +119,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse11111.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse11111.xml
index 137b8234d644f..e9f584595b940 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse11111.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse11111.xml
@@ -13,4 +13,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse22222.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse22222.xml
index 770b6a92626a0..a526e4304cad0 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse22222.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse22222.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse33333.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse33333.xml
index 40245b2d56b47..de9c10535fd47 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse33333.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse33333.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse44444.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse44444.xml
index 9c4aeaa8e1e9e..83e6816307f84 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse44444.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse44444.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse55555.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse55555.xml
index 8a8a7a7b63ea3..5af7067782e36 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse55555.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse55555.xml
@@ -13,4 +13,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse66666.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse66666.xml
index 4eaa2fd56acf7..99e70fdfb933f 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse66666.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse66666.xml
@@ -13,4 +13,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse77777.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse77777.xml
index 889a8e3979820..bc212cd6e794b 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse77777.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse77777.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse88888.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse88888.xml
index 9d9277f840be6..cffdbfbf0b0c3 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse88888.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryResponse88888.xml
@@ -17,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryTemplate.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryTemplate.xml
index 6d23821b0635b..d0ba1f1d8c134 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryTemplate.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueQueryTemplate.xml
@@ -3,4 +3,4 @@
%s
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100001.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100001.xml
index e1709ec9d45f3..82c5d0116495b 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100001.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100001.xml
@@ -9,4 +9,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100011.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100011.xml
index b56399d5289f8..3abe3e91c58b0 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100011.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate100011.xml
@@ -9,4 +9,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate200002.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate200002.xml
index d986f1b7ff3dc..48952d850b5ea 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate200002.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate200002.xml
@@ -11,4 +11,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate300003.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate300003.xml
index 2dc2eded489af..967d6e7b61ffa 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate300003.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate300003.xml
@@ -11,4 +11,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate400004.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate400004.xml
index c90d311b83150..045682b2e8392 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate400004.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate400004.xml
@@ -11,4 +11,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate500005.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate500005.xml
index db43bcb5ee637..63812de3136bb 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate500005.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate500005.xml
@@ -9,4 +9,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate600006.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate600006.xml
index f68c07e4ef537..5e46d91509511 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate600006.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate600006.xml
@@ -9,4 +9,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate700007.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate700007.xml
index 2041cbc4f468a..0f38bbb948aa8 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate700007.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate700007.xml
@@ -11,4 +11,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate800008.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate800008.xml
index 42de4075330a5..0399863e50fcd 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate800008.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdate800008.xml
@@ -11,4 +11,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateFailureResult.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateFailureResult.xml
index ca2b2715aba9b..c60a2043f1416 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateFailureResult.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateFailureResult.xml
@@ -3,4 +3,4 @@
false
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateOkResult.xml b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateOkResult.xml
index b7ffdbe5efb94..363f71e23be58 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateOkResult.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/ResourceValueUpdateOkResult.xml
@@ -3,4 +3,4 @@
true
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginQuery.xml
index fd30bfa2c2703..77404fa91e01a 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginQuery.xml
@@ -7,4 +7,4 @@
treeview
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginResponse.xml
index 7221eefaa8746..73177a61d1eb3 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/SuccesfulLoginResponse.xml
@@ -64,4 +64,4 @@
false
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeQuery.xml b/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeQuery.xml
index 1e5e31b07a23a..f124252da7a46 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeQuery.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeQuery.xml
@@ -6,4 +6,4 @@
5
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeResponse.xml b/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeResponse.xml
index 0a101cabd06ae..ada9531e9d7da 100644
--- a/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeResponse.xml
+++ b/bundles/org.openhab.binding.ihc/src/test/resources/WaitForControllerStateChangeResponse.xml
@@ -5,4 +5,4 @@
text.ctrl.state.ready
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.innogysmarthome/.classpath b/bundles/org.openhab.binding.innogysmarthome/.classpath
index a5d95095ccaaf..66499b2691224 100644
--- a/bundles/org.openhab.binding.innogysmarthome/.classpath
+++ b/bundles/org.openhab.binding.innogysmarthome/.classpath
@@ -28,5 +28,16 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.innogysmarthome/NOTICE b/bundles/org.openhab.binding.innogysmarthome/NOTICE
index 3f37fa8d86877..efac929dd3b56 100644
--- a/bundles/org.openhab.binding.innogysmarthome/NOTICE
+++ b/bundles/org.openhab.binding.innogysmarthome/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.innogysmarthome/README.md b/bundles/org.openhab.binding.innogysmarthome/README.md
index a845424ac027b..35424b6df971b 100644
--- a/bundles/org.openhab.binding.innogysmarthome/README.md
+++ b/bundles/org.openhab.binding.innogysmarthome/README.md
@@ -1,7 +1,7 @@
# innogy SmartHome Binding
-The binding integrates the [innogy SmartHome](http://innogy.com/smarthome) system into openHAB.
-It uses the official API as provided by innogy as cloud service.
+The binding integrates the [innogy SmartHome](https://innogy.com/smarthome) system into openHAB.
+It uses the official API 1.1 as provided by innogy as cloud service.
As all status updates and commands have to go through the API, a permanent internet connection is required.
Currently there is no API for a direct communication with the innogy SmartHome Controller (SHC).
@@ -11,42 +11,43 @@ Currently there is no API for a direct communication with the innogy SmartHome C
The innogy SmartHome Controller (SHC) is the bridge, that provides the central communication with the devices.
Without the SHC, you cannot communicate with the devices.
+This binding supports both the SHC and the SHC2 (with support for Bluetooth devices).
### Devices
The following table shows all supported and tested devices and their channels.
The channels are described in detail in the next chapter.
-| Device | Description | Supported channels |
-| ------ | ----------- | ------------------ |
-| BRC8 | Basic Remote Controller | button1 ... button8, button1_count ... button8_count, battery_low |
-| ISC2 | In Wall Smart Controller | button1, button2, button1_count, button2_count |
-| ISD2 | In Wall Smart Dimmer | button1, button2, button1_count, button2_count, dimmer |
-| ISR2 | In Wall Smart Rollershutter | button1, button2, button1_count, button2_count, rollershutter |
-| ISS2 | In Wall Smart Switch | button1, button2, button1_count, button2_count, switch |
-| PSD | Pluggable Smart Dimmer | dimmer |
-| PSS | Pluggable Smart Switch, indoor | switch |
-| PSSO | Pluggable Smart Switch, outdoor | switch |
-| RST | Radiator Mounted Smart Thermostat | set_temperature, temperature, frost_warning, humidity, mold_warning, operation_mode, window_reduction_active, battery_low |
-| RST2 | Radiator Mounted Smart Thermostat (newer two battery version since 2018) | set_temperature, temperature, frost_warning, humidity, mold_warning, operation_mode, window_reduction_active, battery_low |
-| | VariableActuator | switch |
-| WDS | Window Door Sensor | contact, battery_low |
-| WMD| Wall Mounted Motion Detector, indoor | motion_count, luminance, battery_low |
-| WMDO | Wall Mounted Motion Detector, outdoor | motion_count, luminance, battery_low |
-| WRT | Wall Mounted Room Thermostat | set_temperature, temperature, humidity, battery_low |
-| WSC2 | Wall Mounted Smart Controller | button1, button2, button1_count, button2_count, battery_low |
-| WSD | Wall Mounted Smoke Detector, old version | smoke, alarm, battery_low |
-| WSD2 | Wall Mounted Smoke Detector, new version | smoke, alarm, battery_low |
+| Device | Description | Supported channels |
+|--------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
+| BRC8 | Basic Remote Controller | button1 ... button8, button1_count ... button8_count, battery_low |
+| ISC2 | In Wall Smart Controller | button1, button2, button1_count, button2_count |
+| ISD2 | In Wall Smart Dimmer | button1, button2, button1_count, button2_count, dimmer |
+| ISR2 | In Wall Smart Rollershutter | button1, button2, button1_count, button2_count, rollershutter |
+| ISS2 | In Wall Smart Switch | button1, button2, button1_count, button2_count, switch |
+| PSD | Pluggable Smart Dimmer | dimmer |
+| PSS | Pluggable Smart Switch, indoor | switch |
+| PSSO | Pluggable Smart Switch, outdoor | switch |
+| BT-PSS | Bluetooth Pluggable Smart Switch, indoor | switch |
+| RST | Radiator Mounted Smart Thermostat | set_temperature, temperature, frost_warning, humidity, mold_warning, operation_mode, window_reduction_active, battery_low |
+| RST2 | Radiator Mounted Smart Thermostat (newer two battery version since 2018) | set_temperature, temperature, frost_warning, humidity, mold_warning, operation_mode, window_reduction_active, battery_low |
+| | VariableActuator | switch |
+| WDS | Window Door Sensor | contact, battery_low |
+| WMD | Wall Mounted Motion Detector, indoor | motion_count, luminance, battery_low |
+| WMDO | Wall Mounted Motion Detector, outdoor | motion_count, luminance, battery_low |
+| WRT | Wall Mounted Room Thermostat | set_temperature, temperature, humidity, battery_low |
+| WSC2 | Wall Mounted Smart Controller | button1, button2, button1_count, button2_count, battery_low |
+| WSD | Wall Mounted Smoke Detector, old version | smoke, alarm, battery_low |
+| WSD2 | Wall Mounted Smoke Detector, new version | smoke, alarm, battery_low |
Powermeter devices
-| Device | Description | Supported channels |
-| ------ | ----------- | ------------------ |
-| AnalogMeter | The Analog Meter from the innogy EnergyControl product | energy_consumption_month_kwh, absolute_energy_consumption, energy_consumption_month_euro, energy_consumption_day_euro, energy_consumption_day_kwh |
-| GenerationMeter | The Generation Meter from the innogy PowerControlSolar product | energy_generation_month_kwh, total_energy_generation, energy_generation_month_euro, energy_generation_day_euro, energy_generation_day_kwh, power_generation_watt |
-| SmartMeter | The Smart Meter from the innogy PowerControl product. | energy_consumption_month_kwh, absolute_energy_consumption, energy_consumption_month_euro, energy_consumption_day_euro, energy_consumption_day_kwh, power_consumption_watt |
-| Two-Way-Meter | The Two-Way-Meter from the innogy PowerControlSolar product | energy_month_kwh, total_energy, energy_month_euro, energy_day_euro, energy_day_kwh, energy_feed_month_kwh, total_energy_fed, energy_feed_month_euro, energy_feed_day_euro, energy_feed_day_kwh, power_watt |
-
+| Device | Description | Supported channels |
+|-----------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| AnalogMeter | The Analog Meter from the innogy EnergyControl product | energy_consumption_month_kwh, absolute_energy_consumption, energy_consumption_month_euro, energy_consumption_day_euro, energy_consumption_day_kwh |
+| GenerationMeter | The Generation Meter from the innogy PowerControlSolar product | energy_generation_month_kwh, total_energy_generation, energy_generation_month_euro, energy_generation_day_euro, energy_generation_day_kwh, power_generation_watt |
+| SmartMeter | The Smart Meter from the innogy PowerControl product. | energy_consumption_month_kwh, absolute_energy_consumption, energy_consumption_month_euro, energy_consumption_day_euro, energy_consumption_day_kwh, power_consumption_watt |
+| Two-Way-Meter | The Two-Way-Meter from the innogy PowerControlSolar product | energy_month_kwh, total_energy, energy_month_euro, energy_day_euro, energy_day_kwh, energy_feed_month_kwh, total_energy_fed, energy_feed_month_euro, energy_feed_day_euro, energy_feed_day_kwh, power_watt |
## Discovery
@@ -60,40 +61,45 @@ However, only devices will appear that are added in the innogy SmartHome app bef
## Channels
-| Channel Type ID | Item Type | Description | Available on thing |
-| --------------- | ------------ | ------------ | ------------------ |
-| alarm | Switch | Switches the alarm (ON/OFF) | WSD, WSD2 |
-| battery_low | Switch | Indicates, if the battery is low (ON/OFF) | BRC8, RST, WDS, WMD, WMD0, WRT, WSC2, WSD, WSD2 |
-| contact | Contact | Indicates the contact state (OPEN/CLOSED) | WDS |
-| dimmer | Dimmer | Allows to dimm a light device | ISD2, PSD |
-| frost_warning | Switch | active, if the measured temperature is too low (ON/OFF) | RST |
-| humidity | Number | Relative humidity in percent | RST, WRT |
-| button1 | - | trigger channel for rules, fires with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
-| button2 | - | trigger channel for rules, fires with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
-| button3 | - | trigger channel for rules, fires with each push | BRC8 |
-| button4 | - | trigger channel for rules, fires with each push | BRC8 |
-| button5 | - | trigger channel for rules, fires with each push | BRC8 |
-| button6 | - | trigger channel for rules, fires with each push | BRC8 |
-| button7 | - | trigger channel for rules, fires with each push | BRC8 |
-| button8 | - | trigger channel for rules, fires with each push | BRC8 |
-| button1_count | Number | number of button pushes for button 1, increased with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
-| button2_count | Number | number of button pushes for button 2, increased with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
-| button3_count | Number | number of button pushes for button 3, increased with each push | BRC8 |
-| button4_count | Number | number of button pushes for button 4, increased with each push | BRC8 |
-| button5_count | Number | number of button pushes for button 5, increased with each push | BRC8 |
-| button6_count | Number | number of button pushes for button 6, increased with each push | BRC8 |
-| button7_count | Number | number of button pushes for button 7, increased with each push | BRC8 |
-| button8_count | Number | number of button pushes for button 8, increased with each push | BRC8 |
-| luminance | Number | Indicates the measured luminance in percent | WMD, WMD0 |
-| mold_warning | Switch | active, if the measured humidity is too low (ON/OFF) | RST |
-| motion_count | Number | Number of detected motions, increases with each detected motion | WMD, WMDO |
-| operation_mode | String | the mode of a thermostat (auto/manual) | RST |
-| rollershutter | Rollershutter | Controls a roller shutter | ISR2 |
-| set_temperature | Number | Sets the target temperature in °C | RST, WRT |
-| smoke | Switch | Indicates, if smoke was detected (ON/OFF) | WSD, WSD2 |
-| switch | Switch | A switch to turn the device or variable on/off (ON/OFF) | ISS2, PSS, PSSO, VariableActuator |
-| temperature | Number | Holds the actual temperature in °C | RST, WRT |
-| window_reduction_active | Switch | indicates if a linked window is open and temperature reduced (ON/OFF) | RST |
+| Channel Type ID | Item Type | Description | Available on thing |
+|-------------------------|---------------|-----------------------------------------------------------------------|-------------------------------------------------|
+| alarm | Switch | Switches the alarm (ON/OFF) | WSD, WSD2 |
+| battery_low | Switch | Indicates, if the battery is low (ON/OFF) | BRC8, RST, WDS, WMD, WMD0, WRT, WSC2, WSD, WSD2 |
+| contact | Contact | Indicates the contact state (OPEN/CLOSED) | WDS |
+| dimmer | Dimmer | Allows to dimm a light device | ISD2, PSD |
+| frost_warning | Switch | active, if the measured temperature is too low (ON/OFF) | RST |
+| humidity | Number | Relative humidity in percent | RST, WRT |
+| button1 | - | trigger channel for rules, fires with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
+| button2 | - | trigger channel for rules, fires with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
+| button3 | - | trigger channel for rules, fires with each push | BRC8 |
+| button4 | - | trigger channel for rules, fires with each push | BRC8 |
+| button5 | - | trigger channel for rules, fires with each push | BRC8 |
+| button6 | - | trigger channel for rules, fires with each push | BRC8 |
+| button7 | - | trigger channel for rules, fires with each push | BRC8 |
+| button8 | - | trigger channel for rules, fires with each push | BRC8 |
+| button1_count | Number | number of button pushes for button 1, increased with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
+| button2_count | Number | number of button pushes for button 2, increased with each push | BRC8, ISC2, ISD2, ISR2, ISS2, WSC2 |
+| button3_count | Number | number of button pushes for button 3, increased with each push | BRC8 |
+| button4_count | Number | number of button pushes for button 4, increased with each push | BRC8 |
+| button5_count | Number | number of button pushes for button 5, increased with each push | BRC8 |
+| button6_count | Number | number of button pushes for button 6, increased with each push | BRC8 |
+| button7_count | Number | number of button pushes for button 7, increased with each push | BRC8 |
+| button8_count | Number | number of button pushes for button 8, increased with each push | BRC8 |
+| luminance | Number | Indicates the measured luminance in percent | WMD, WMD0 |
+| mold_warning | Switch | active, if the measured humidity is too low (ON/OFF) | RST |
+| motion_count | Number | Number of detected motions, increases with each detected motion | WMD, WMDO |
+| operation_mode | String | the mode of a thermostat (auto/manual) | RST |
+| rollershutter* | Rollershutter | Controls a roller shutter | ISR2 |
+| set_temperature | Number | Sets the target temperature in °C | RST, WRT |
+| smoke | Switch | Indicates, if smoke was detected (ON/OFF) | WSD, WSD2 |
+| switch | Switch | A switch to turn the device or variable on/off (ON/OFF) | ISS2, PSS, PSSO, VariableActuator |
+| temperature | Number | Holds the actual temperature in °C | RST, WRT |
+| window_reduction_active | Switch | indicates if a linked window is open and temperature reduced (ON/OFF) | RST |
+
+The `rollershutter` channel has a `boolean` parameter `invert`.
+It is `false` by default.
+This means `100` on innogy is `UP` and `0` is `DOWN`.
+When `invert` is `true` than `0` on innogy is `UP` and `100` is `DOWN`.
## Thing configuration
@@ -168,7 +174,7 @@ The device ID (e.g. e9a74941a3807b57332214f346fb1129) can be found in the Paper
However, a full example .things configuration look like this:
```
-Bridge innogysmarthome:bridge:mybride "innogy SmartHome Controller" [ refreshtoken="" ] {
+Bridge innogysmarthome:bridge:mybride "innogy SmartHome Controller" {
Thing ISD2 myDimmer "Dimmer Kitchen" @ "Kitchen" [ id="" ]
Thing ISS2 myLightSwitch "Light Livingroom" @ "Livingroom" [ id="" ]
Thing PSS myTVSwitch "TV" @ "Livingroom" [ id="" ]
@@ -227,15 +233,15 @@ end
## Resolving certificate issues
-If the bridge stays offline with the following status shown in the PaperUI, the reason could be an expired certificate:
+If the bridge stays offline with the following status shown in the Paper UI, the reason could be an expired certificate:
`OFFLINE - COMMUNICATION_ERROR sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target`
-To solve this on a linux system, follow this steps:
+To solve this on a Linux system, follow this steps:
1. Download the certificates (.cer-files) of https://home.innogy-smarthome.de and https://innogy.com including the "DigiCert Global Root G2" to your computer.
-As this depends on the usen browser and operating system, please google on how to achieve this for your situation.
-2. On your linux system, goto your Java Machine's certificate store, e.g. `/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/security`.
+As this depends on the used browser and operating system, please use a web search engine to find out how to achieve this for your situation.
+2. On your Linux system, goto your Java Machine's certificate store, e.g. `/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/lib/security`.
The path should include a file called `cacerts` (this is the certificate store) and may differ depending on the system used.
3. Copy the .cer-files from step 1 into this directory.
4. Import each certificate with the command: `sudo keytool –importcert –alias “innogysmarthome†–keystore cacerts –file innogy.cer`
diff --git a/bundles/org.openhab.binding.innogysmarthome/pom.xml b/bundles/org.openhab.binding.innogysmarthome/pom.xml
index 289ff4e26c46a..06f3475bf4a61 100644
--- a/bundles/org.openhab.binding.innogysmarthome/pom.xml
+++ b/bundles/org.openhab.binding.innogysmarthome/pom.xml
@@ -1,55 +1,15 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.innogysmarthomeopenHAB Add-ons :: Bundles :: innogy Smarthome Binding
-
-
- org.apache.httpcomponents
- httpcore-osgi
- 4.4.4
- provided
-
-
- org.apache.httpcomponents
- httpclient-osgi
- 4.5.2
- provided
-
-
- com.google.guava
- guava
- 20.0
- provided
-
-
- org.openhab.osgiify
- com.google.http-client.google-http-client-gson
- 1.27.0
- provided
-
-
- com.google.http-client
- google-http-client
- 1.27.0
- provided
-
-
- com.google.oauth-client
- google-oauth-client
- 1.27.0
- provided
-
-
-
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/feature/feature.xml b/bundles/org.openhab.binding.innogysmarthome/src/main/feature/feature.xml
index 77b5edaceaced..cb68e28ecb55c 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/feature/feature.xml
@@ -1,16 +1,10 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
-
- openhab-runtime-base
- mvn:org.apache.httpcomponents/httpcore-osgi/4.4.4
- mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2
- mvn:com.google.guava/guava/20.0
- mvn:commons-codec/commons-codec/1.10
- mvn:com.google.oauth-client/google-oauth-client/1.27.0
- mvn:com.google.http-client/google-http-client/1.27.0
- mvn:org.openhab.osgiify/com.google.http-client.google-http-client-gson/1.27.0
- mvn:org.openhab.addons.bundles/org.openhab.binding.innogysmarthome/${project.version}
-
+
+ openhab-runtime-base
+ openhab-transport-http
+ mvn:org.openhab.addons.bundles/org.openhab.binding.innogysmarthome/${project.version}
+
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyBindingConstants.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyBindingConstants.java
index c46b2936bbe85..716c2e11b004f 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyBindingConstants.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -33,21 +33,11 @@ public class InnogyBindingConstants {
// brands and client ids
public static final String BRAND_INNOGY_SMARTHOME = "innogy_smarthome";
- public static final String BRAND_SMARTHOME_AUSTRIA = "smarthome_austria";
- public static final String BRAND_START_SMARTHOME = "start_smarthome";
public static final String DEFAULT_BRAND = BRAND_INNOGY_SMARTHOME;
public static final String CLIENT_ID_INNOGY_SMARTHOME = "24635748";
- public static final String CLIENT_ID_SMARTHOME_AUSTRIA = "24635749";
- public static final String CLIENT_ID_START_SMARTHOME = "24635750";
-
public static final String CLIENT_SECRET_INNOGY_SMARTHOME = "no secret";
- public static final String CLIENT_SECRET_SMARTHOME_AUSTRIA = "no secret";
- public static final String CLIENT_SECRET_START_SMARTHOME = "no secret";
-
public static final String REDIRECT_URL_INNOGY_SMARTHOME = "https://www.openhab.org/oauth/innogy/innogy-smarthome.html";
- public static final String REDIRECT_URL_SMARTHOME_AUSTRIA = "https://www.openhab.org/oauth/innogy/smarthome-austria.html";
- public static final String REDIRECT_URL_START_SMARTHOME = "https://www.openhab.org/oauth/innogy/start-smarthome.html";
// Bridge config parameters
public static final String CONFIG_BRAND = "brand";
@@ -58,10 +48,10 @@ public class InnogyBindingConstants {
public static final String CONFIG_WEBSOCKET_IDLE_TIMEOUT = "websocketidletimeout";
public static final long REINITIALIZE_DELAY_SECONDS = 30;
- public static final long REINITIALIZE_DELAY_LONG_SECONDS = 120;
+ public static final long REINITIALIZE_RETRY_SECONDS = 60;
// API URLs
- public static final String API_VERSION = "1.0";
+ public static final String API_VERSION = "1.1";
public static final String WEBSOCKET_API_URL_EVENTS = "wss://api.services-smarthome.de/API/" + API_VERSION
+ "/events?token={token}";
@@ -69,6 +59,7 @@ public class InnogyBindingConstants {
public static final String PROPERTY_ID = "id";
public static final String PROPERTY_VERSION = "Version";
public static final String PROPERTY_LOCATION = "Location";
+ public static final String PROPERTY_GEOLOCATION = "Geo Location";
public static final String PROPERTY_SOFTWARE_VERSION = "Software version";
public static final String PROPERTY_IP_ADDRESS = "IP address";
public static final String PROPERTY_REGISTRATION_TIME = "Registration Time";
@@ -76,11 +67,24 @@ public class InnogyBindingConstants {
public static final String PROPERTY_TIME_OF_DISCOVERY = "Time of discovery";
public static final String PROPERTY_BATTERY_POWERED = "Battery powered";
public static final String PROPERTY_DEVICE_TYPE = "Device Type";
+ public static final String PROPERTY_CONFIGURATION_STATE = "Configuration state";
+ public static final String PROPERTY_SHC_TYPE = "Controller Type";
+ public static final String PROPERTY_TIME_ZONE = "Time Zone";
+ public static final String PROPERTY_CURRENT_UTC_OFFSET = "Current UTC offset (minutes)";
+ public static final String PROPERTY_PROTOCOL_ID = "Protocol ID";
+ public static final String PROPERTY_BACKEND_CONNECTION_MONITORED = "Backend connection monitored";
+ public static final String PROPERTY_RFCOM_FAILURE_NOTIFICATION = "RFComm failure notification";
+ public static final String PROPERTY_DISPLAY_CURRENT_TEMPERATURE = "Display current temperature";
+ public static final String PROPERTY_UNDERLYING_DEVICE_IDS = "Underlying device IDs (thermostats)";
+ public static final String PROPERTY_METER_ID = "Meter ID";
+ public static final String PROPERTY_METER_FIRMWARE_VERSION = "Meter firmware version";
// List of main device types
public static final String DEVICE_SHC = "SHC"; // smarthome controller - the bridge
+ public static final String DEVICE_SHCA = "SHCA"; // smarthome controller version 2
public static final String DEVICE_PSS = "PSS"; // pluggable smart switch
public static final String DEVICE_PSSO = "PSSO"; // pluggable smart switch outdoor
+ public static final String DEVICE_BT_PSS = "BT-PSS"; // Bluetooth pluggable smart switch
public static final String DEVICE_VARIABLE_ACTUATOR = "VariableActuator";
public static final String DEVICE_RST = "RST"; // radiator mounted smart thermostat
public static final String DEVICE_RST2 = "RST2"; // radiator mounted smart thermostat (newer version)
@@ -102,18 +106,18 @@ public class InnogyBindingConstants {
public static final String DEVICE_SMART_METER = "SmartMeter";
public static final String DEVICE_TWO_WAY_METER = "TwoWayMeter";
- public static final Set SUPPORTED_DEVICES = Collections
- .unmodifiableSet(Stream
- .of(DEVICE_SHC, DEVICE_PSS, DEVICE_PSSO, DEVICE_VARIABLE_ACTUATOR, DEVICE_RST, DEVICE_RST2,
- DEVICE_WRT, DEVICE_WDS, DEVICE_ISS2, DEVICE_WSD, DEVICE_WSD2, DEVICE_WMD, DEVICE_WMDO,
- DEVICE_WSC2, DEVICE_BRC8, DEVICE_ISC2, DEVICE_ISD2, DEVICE_ISR2, DEVICE_PSD,
- DEVICE_ANALOG_METER, DEVICE_GENERATION_METER, DEVICE_SMART_METER, DEVICE_TWO_WAY_METER)
- .collect(Collectors.toSet()));
+ public static final Set SUPPORTED_DEVICES = Collections.unmodifiableSet(Stream
+ .of(DEVICE_SHC, DEVICE_SHCA, DEVICE_PSS, DEVICE_PSSO, DEVICE_BT_PSS, DEVICE_VARIABLE_ACTUATOR, DEVICE_RST,
+ DEVICE_RST2, DEVICE_WRT, DEVICE_WDS, DEVICE_ISS2, DEVICE_WSD, DEVICE_WSD2, DEVICE_WMD, DEVICE_WMDO,
+ DEVICE_WSC2, DEVICE_BRC8, DEVICE_ISC2, DEVICE_ISD2, DEVICE_ISR2, DEVICE_PSD, DEVICE_ANALOG_METER,
+ DEVICE_GENERATION_METER, DEVICE_SMART_METER, DEVICE_TWO_WAY_METER)
+ .collect(Collectors.toSet()));
// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
public static final ThingTypeUID THING_TYPE_PSS = new ThingTypeUID(BINDING_ID, DEVICE_PSS);
public static final ThingTypeUID THING_TYPE_PSSO = new ThingTypeUID(BINDING_ID, DEVICE_PSSO);
+ public static final ThingTypeUID THING_TYPE_BT_PSS = new ThingTypeUID(BINDING_ID, DEVICE_BT_PSS);
public static final ThingTypeUID THING_TYPE_VARIABLE_ACTUATOR = new ThingTypeUID(BINDING_ID,
DEVICE_VARIABLE_ACTUATOR);
public static final ThingTypeUID THING_TYPE_RST = new ThingTypeUID(BINDING_ID, DEVICE_RST);
@@ -137,14 +141,12 @@ public class InnogyBindingConstants {
public static final ThingTypeUID THING_TYPE_SMART_METER = new ThingTypeUID(BINDING_ID, DEVICE_SMART_METER);
public static final ThingTypeUID THING_TYPE_TWO_WAY_METER = new ThingTypeUID(BINDING_ID, DEVICE_TWO_WAY_METER);
- public static final Set SUPPORTED_DEVICE_THING_TYPES = Collections
- .unmodifiableSet(Stream
- .of(THING_TYPE_PSS, THING_TYPE_PSSO, THING_TYPE_VARIABLE_ACTUATOR, THING_TYPE_RST, THING_TYPE_RST2,
- THING_TYPE_WRT, THING_TYPE_WDS, THING_TYPE_ISS2, THING_TYPE_WSD, THING_TYPE_WSD2,
- THING_TYPE_WMD, THING_TYPE_WMDO, THING_TYPE_WSC2, THING_TYPE_BRC8, THING_TYPE_ISC2,
- THING_TYPE_ISD2, THING_TYPE_ISR2, THING_TYPE_PSD, THING_TYPE_ANALOG_METER,
- THING_TYPE_GENERATION_METER, THING_TYPE_SMART_METER, THING_TYPE_TWO_WAY_METER)
- .collect(Collectors.toSet()));
+ public static final Set SUPPORTED_DEVICE_THING_TYPES = Collections.unmodifiableSet(
+ Stream.of(THING_TYPE_PSS, THING_TYPE_PSSO, THING_TYPE_BT_PSS, THING_TYPE_VARIABLE_ACTUATOR, THING_TYPE_RST,
+ THING_TYPE_RST2, THING_TYPE_WRT, THING_TYPE_WDS, THING_TYPE_ISS2, THING_TYPE_WSD, THING_TYPE_WSD2,
+ THING_TYPE_WMD, THING_TYPE_WMDO, THING_TYPE_WSC2, THING_TYPE_BRC8, THING_TYPE_ISC2, THING_TYPE_ISD2,
+ THING_TYPE_ISR2, THING_TYPE_PSD, THING_TYPE_ANALOG_METER, THING_TYPE_GENERATION_METER,
+ THING_TYPE_SMART_METER, THING_TYPE_TWO_WAY_METER).collect(Collectors.toSet()));
// List of all Channel ids
public static final String CHANNEL_SWITCH = "switch";
@@ -160,22 +162,8 @@ public class InnogyBindingConstants {
public static final String CHANNEL_FROST_WARNING = "frost_warning";
public static final String CHANNEL_MOLD_WARNING = "mold_warning";
public static final String CHANNEL_WINDOW_REDUCTION_ACTIVE = "window_reduction_active";
- public static final String CHANNEL_BUTTON1 = "button1";
- public static final String CHANNEL_BUTTON2 = "button2";
- public static final String CHANNEL_BUTTON3 = "button3";
- public static final String CHANNEL_BUTTON4 = "button4";
- public static final String CHANNEL_BUTTON5 = "button5";
- public static final String CHANNEL_BUTTON6 = "button6";
- public static final String CHANNEL_BUTTON7 = "button7";
- public static final String CHANNEL_BUTTON8 = "button8";
- public static final String CHANNEL_BUTTON1_COUNT = "button1_count";
- public static final String CHANNEL_BUTTON2_COUNT = "button2_count";
- public static final String CHANNEL_BUTTON3_COUNT = "button3_count";
- public static final String CHANNEL_BUTTON4_COUNT = "button4_count";
- public static final String CHANNEL_BUTTON5_COUNT = "button5_count";
- public static final String CHANNEL_BUTTON6_COUNT = "button6_count";
- public static final String CHANNEL_BUTTON7_COUNT = "button7_count";
- public static final String CHANNEL_BUTTON8_COUNT = "button8_count";
+ public static final String CHANNEL_BUTTON = "button";
+ public static final String CHANNEL_BUTTON_COUNT = "button%d_count";
public static final String CHANNEL_DIMMER = "dimmer";
public static final String CHANNEL_ROLLERSHUTTER = "rollershutter";
public static final String CHANNEL_BATTERY_LOW = "battery_low";
@@ -202,5 +190,7 @@ public class InnogyBindingConstants {
public static final String CHANNEL_ENERGY_FEED_DAY_EURO = "energy_feed_day_euro";
public static final String CHANNEL_ENERGY_FEED_DAY_KWH = "energy_feed_day_kwh";
public static final String CHANNEL_POWER_WATT = "power_watt";
-
+ public static final String CHANNEL_CPU = "cpu";
+ public static final String CHANNEL_DISK = "disk";
+ public static final String CHANNEL_MEMORY = "memory";
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyHandlerFactory.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyHandlerFactory.java
index 4a57a73950e34..778c300b4a066 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyHandlerFactory.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,27 +12,26 @@
*/
package org.openhab.binding.innogysmarthome.internal;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.eclipse.smarthome.config.discovery.DiscoveryService;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthFactory;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
-import org.eclipse.smarthome.core.thing.ThingUID;
import org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory;
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
-import org.openhab.binding.innogysmarthome.internal.discovery.InnogyDeviceDiscoveryService;
+import org.eclipse.smarthome.io.net.http.HttpClientFactory;
import org.openhab.binding.innogysmarthome.internal.handler.InnogyBridgeHandler;
import org.openhab.binding.innogysmarthome.internal.handler.InnogyDeviceHandler;
-import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,16 +40,27 @@
* handlers.
*
* @author Oliver Kuhl - Initial contribution
+ * @author Hilbrand Bouwkamp - Refactored to use openHAB http and oauth2 libraries
*/
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.innogysmarthome")
+@NonNullByDefault
public class InnogyHandlerFactory extends BaseThingHandlerFactory implements ThingHandlerFactory {
- private static final Set SUPPORTED_THING_TYPES = Collections
- .unmodifiableSet(Stream.concat(InnogyBridgeHandler.SUPPORTED_THING_TYPES.stream(),
- InnogyDeviceHandler.SUPPORTED_THING_TYPES.stream()).collect(Collectors.toSet()));
+ private static final Set SUPPORTED_THING_TYPES = Stream
+ .concat(InnogyBridgeHandler.SUPPORTED_THING_TYPES.stream(),
+ InnogyDeviceHandler.SUPPORTED_THING_TYPES.stream())
+ .collect(Collectors.toSet());
private final Logger logger = LoggerFactory.getLogger(InnogyHandlerFactory.class);
- private final Map> discoveryServiceRegs = new HashMap<>();
+
+ private final OAuthFactory oAuthFactory;
+ private final HttpClient httpClient;
+
+ @Activate
+ public InnogyHandlerFactory(@Reference OAuthFactory oAuthFactory, @Reference HttpClientFactory httpClientFactory) {
+ this.oAuthFactory = oAuthFactory;
+ httpClient = httpClientFactory.getCommonHttpClient();
+ }
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
@@ -58,44 +68,14 @@ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
}
@Override
- protected ThingHandler createHandler(Thing thing) {
+ protected @Nullable ThingHandler createHandler(Thing thing) {
if (InnogyBridgeHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
- InnogyBridgeHandler handler = new InnogyBridgeHandler((Bridge) thing);
- registerDeviceDiscoveryService(handler);
- return handler;
+ return new InnogyBridgeHandler((Bridge) thing, oAuthFactory, httpClient);
} else if (InnogyDeviceHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
- InnogyDeviceHandler handler = new InnogyDeviceHandler(thing);
- return handler;
+ return new InnogyDeviceHandler(thing);
} else {
logger.debug("Unsupported thing {}.", thing.getThingTypeUID());
return null;
}
}
-
- /**
- * Registers the device discovery service.
- *
- * @param bridgeHandler
- */
- private synchronized void registerDeviceDiscoveryService(InnogyBridgeHandler bridgeHandler) {
- InnogyDeviceDiscoveryService discoveryService = new InnogyDeviceDiscoveryService(bridgeHandler);
- this.discoveryServiceRegs.put(bridgeHandler.getThing().getUID(),
- bundleContext.registerService(DiscoveryService.class.getName(), discoveryService, new Hashtable<>()));
- }
-
- @Override
- protected synchronized void removeHandler(ThingHandler thingHandler) {
- if (thingHandler instanceof InnogyBridgeHandler) {
- ServiceRegistration> serviceReg = this.discoveryServiceRegs.remove(thingHandler.getThing().getUID());
- if (serviceReg != null) {
- // remove discovery service, if bridge handler is removed
- InnogyDeviceDiscoveryService service = (InnogyDeviceDiscoveryService) bundleContext
- .getService(serviceReg.getReference());
- serviceReg.unregister();
- if (service != null) {
- service.deactivate();
- }
- }
- }
- }
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java
index 0709af7c3822c..09a87134adb43 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -13,9 +13,9 @@
package org.openhab.binding.innogysmarthome.internal;
import java.net.URI;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.StatusCode;
@@ -26,6 +26,7 @@
import org.eclipse.jetty.websocket.api.annotations.WebSocket;
import org.eclipse.jetty.websocket.client.WebSocketClient;
import org.openhab.binding.innogysmarthome.internal.handler.InnogyBridgeHandler;
+import org.openhab.binding.innogysmarthome.internal.listener.EventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,17 +36,19 @@
*
* @author Oliver Kuhl - Initial contribution
*/
+@NonNullByDefault
@WebSocket
public class InnogyWebSocket {
- private Logger logger = LoggerFactory.getLogger(InnogyWebSocket.class);
- private final CountDownLatch closeLatch;
- private Session session;
- private org.openhab.binding.innogysmarthome.internal.listener.EventListener eventListener;
- private WebSocketClient client;
+ private final Logger logger = LoggerFactory.getLogger(InnogyWebSocket.class);
+ private final EventListener eventListener;
private final URI webSocketURI;
private final int maxIdleTimeout;
+ private @Nullable Session session;
+ private @Nullable WebSocketClient client;
+ private boolean closing;
+
/**
* Constructs the {@link InnogyWebSocket}.
*
@@ -53,9 +56,8 @@ public class InnogyWebSocket {
* @param webSocketURI the {@link URI} of the websocket endpoint
* @param maxIdleTimeout
*/
- public InnogyWebSocket(InnogyBridgeHandler bridgeHandler, URI webSocketURI, int maxIdleTimeout) {
- this.eventListener = bridgeHandler;
- this.closeLatch = new CountDownLatch(1);
+ public InnogyWebSocket(EventListener eventListener, URI webSocketURI, int maxIdleTimeout) {
+ this.eventListener = eventListener;
this.webSocketURI = webSocketURI;
this.maxIdleTimeout = maxIdleTimeout;
}
@@ -66,8 +68,7 @@ public InnogyWebSocket(InnogyBridgeHandler bridgeHandler, URI webSocketURI, int
* @throws Exception
*/
public synchronized void start() throws Exception {
- SslContextFactory sslContextFactory = new SslContextFactory();
- // sslContextFactory.setTrustAll(true); // The magic
+ final SslContextFactory sslContextFactory = new SslContextFactory();
if (client == null || client.isStopped()) {
client = new WebSocketClient(sslContextFactory);
@@ -87,6 +88,7 @@ public synchronized void start() throws Exception {
* Stops the {@link InnogyWebSocket}.
*/
public synchronized void stop() {
+ this.closing = true;
if (isRunning()) {
logger.debug("Closing session...");
session.close();
@@ -108,13 +110,13 @@ public synchronized boolean isRunning() {
@OnWebSocketConnect
public void onConnect(Session session) {
+ this.closing = false;
logger.info("Connected to innogy Webservice.");
logger.trace("innogy Websocket session: {}", session);
}
@OnWebSocketClose
public void onClose(int statusCode, String reason) {
- this.closeLatch.countDown();
if (statusCode == StatusCode.NORMAL) {
logger.info("Connection to innogy Webservice was closed normally.");
} else {
@@ -124,27 +126,19 @@ public void onClose(int statusCode, String reason) {
}
}
- /**
- * Await the closing of the websocket.
- *
- * @param duration
- * @param unit
- * @return
- * @throws InterruptedException
- */
- public boolean awaitClose(int duration, TimeUnit unit) throws InterruptedException {
- logger.debug("innogy WebSocket awaitClose() - {}{}", duration, unit);
- return this.closeLatch.await(duration, unit);
- }
-
@OnWebSocketError
public void onError(Throwable cause) {
- logger.error("innogy WebSocket onError() - {}", cause.getMessage());
+ logger.debug("innogy WebSocket onError() - {}", cause.getMessage());
+ eventListener.onError(cause);
}
@OnWebSocketMessage
public void onMessage(String msg) {
logger.debug("innogy WebSocket onMessage() - {}", msg);
- eventListener.onEvent(msg);
+ if (closing) {
+ logger.debug("innogy WebSocket onMessage() - ignored, WebSocket is closing...");
+ } else {
+ eventListener.onEvent(msg);
+ }
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Constants.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Constants.java
index 335e0319378a9..4e3b82b184b2c 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Constants.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Constants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -26,7 +26,7 @@
*
*/
@NonNullByDefault
-public class Constants {
+public final class Constants {
// devices
public static final Set BATTERY_POWERED_DEVICES = Collections.unmodifiableSet(
@@ -34,13 +34,13 @@ public class Constants {
// API URLs
public static final String API_HOST = "api.services-smarthome.de";
- public static final String API_VERSION = "1.0";
+ public static final String API_VERSION = "1.1";
public static final String API_URL_BASE = "https://" + API_HOST + "/API/" + API_VERSION;
public static final String API_URL_TOKEN = "https://" + API_HOST + "/AUTH/token";
public static final String API_URL_CHECK_CONNECTION = API_URL_BASE + "/desc/device/SHC.RWE/1.0/event/StateChanged";
public static final String API_URL_INITIALIZE = API_URL_BASE + "/initialize";
- public static final String API_URL_UNINITIALIZE = API_URL_BASE + "/uninitialize";
+ public static final String API_URL_STATUS = API_URL_BASE + "/status";
public static final String API_URL_DEVICE = API_URL_BASE + "/device";
public static final String API_URL_DEVICE_ID = API_URL_DEVICE + "/{id}";
@@ -60,4 +60,8 @@ public class Constants {
// others
public static final String FORMAT_DATETIME = "dd.MM.yyyy HH:mm:ss";
+
+ private Constants() {
+ // Constants class
+ }
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java
index e30ce2b7afca3..feb50b8e9cddd 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -15,31 +15,47 @@
import static org.openhab.binding.innogysmarthome.internal.client.Constants.*;
import java.io.IOException;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
-import org.apache.commons.io.IOUtils;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Location;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
-import org.openhab.binding.innogysmarthome.internal.client.entity.SHCInfo;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.util.StringContentProvider;
+import org.eclipse.jetty.http.HttpHeader;
+import org.eclipse.jetty.http.HttpMethod;
+import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.smarthome.core.auth.client.oauth2.AccessTokenResponse;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthClientService;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthException;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthResponseException;
+import org.openhab.binding.innogysmarthome.internal.client.entity.StatusResponse;
import org.openhab.binding.innogysmarthome.internal.client.entity.action.Action;
-import org.openhab.binding.innogysmarthome.internal.client.entity.action.SetStateAction;
+import org.openhab.binding.innogysmarthome.internal.client.entity.action.StateActionSetter;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+import org.openhab.binding.innogysmarthome.internal.client.entity.capability.CapabilityState;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.DeviceState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.Gateway;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.State;
import org.openhab.binding.innogysmarthome.internal.client.entity.error.ErrorResponse;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.CapabilityLink;
import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-import org.openhab.binding.innogysmarthome.internal.client.entity.state.CapabilityState;
-import org.openhab.binding.innogysmarthome.internal.client.entity.state.DeviceState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.location.Location;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
import org.openhab.binding.innogysmarthome.internal.client.exception.ApiException;
-import org.openhab.binding.innogysmarthome.internal.client.exception.ConfigurationException;
+import org.openhab.binding.innogysmarthome.internal.client.exception.AuthenticationException;
import org.openhab.binding.innogysmarthome.internal.client.exception.ControllerOfflineException;
import org.openhab.binding.innogysmarthome.internal.client.exception.InvalidActionTriggeredException;
-import org.openhab.binding.innogysmarthome.internal.client.exception.InvalidAuthCodeException;
import org.openhab.binding.innogysmarthome.internal.client.exception.RemoteAccessNotAllowedException;
import org.openhab.binding.innogysmarthome.internal.client.exception.ServiceUnavailableException;
import org.openhab.binding.innogysmarthome.internal.client.exception.SessionExistsException;
@@ -47,27 +63,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest;
-import com.google.api.client.auth.oauth2.BearerToken;
-import com.google.api.client.auth.oauth2.Credential;
-import com.google.api.client.auth.oauth2.Credential.Builder;
-import com.google.api.client.auth.oauth2.CredentialRefreshListener;
-import com.google.api.client.auth.oauth2.RefreshTokenRequest;
-import com.google.api.client.auth.oauth2.TokenResponse;
-import com.google.api.client.auth.oauth2.TokenResponseException;
-import com.google.api.client.http.BasicAuthentication;
-import com.google.api.client.http.GenericUrl;
-import com.google.api.client.http.HttpHeaders;
-import com.google.api.client.http.HttpRequest;
-import com.google.api.client.http.HttpRequestFactory;
-import com.google.api.client.http.HttpResponse;
-import com.google.api.client.http.HttpStatusCodes;
-import com.google.api.client.http.HttpTransport;
-import com.google.api.client.http.javanet.NetHttpTransport;
-import com.google.api.client.http.json.JsonHttpContent;
-import com.google.api.client.json.JsonFactory;
-import com.google.api.client.json.JsonObjectParser;
-import com.google.api.client.json.gson.GsonFactory;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
@@ -76,288 +71,172 @@
* The main client that handles the communication with the innogy SmartHome API service.
*
* @author Oliver Kuhl - Initial contribution
+ * @author Hilbrand Bouwkamp - Refactored to use openHAB http and oauth2 libraries
*
*/
+@NonNullByDefault
public class InnogyClient {
+ private static final String BEARER = "Bearer ";
+ private static final String CONTENT_TYPE = "application/json";
+ private static final int HTTP_CLIENT_TIMEOUT_SECONDS = 10;
+
private final Logger logger = LoggerFactory.getLogger(InnogyClient.class);
- private InnogyConfig config;
/**
* date format as used in json in API. Example: 2016-07-11T10:55:52.3863424Z
*/
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
+
private final Gson gson = new GsonBuilder().setDateFormat(DATE_FORMAT).create();
+ private final OAuthClientService oAuthService;
+ private final HttpClient httpClient;
+ private @Nullable Gateway bridgeDetails;
+ private String configVersion = "";
- private HttpTransport httpTransport;
- private JsonFactory jsonFactory;
- private Builder credentialBuilder;
- private HttpRequestFactory requestFactory;
- private Device bridgeDetails;
- private long currentConfigurationVersion;
- private CredentialRefreshListener credentialRefreshListener;
- private long apiCallCounter = 0;
-
- public InnogyClient(InnogyConfig config) {
- this.config = config;
+ public InnogyClient(final OAuthClientService oAuthService, final HttpClient httpClient) {
+ this.oAuthService = oAuthService;
+ this.httpClient = httpClient;
}
/**
* @return the bridgeInfo
*/
- public Device getBridgeDetails() {
+ public @Nullable Gateway getBridgeDetails() {
return bridgeDetails;
}
/**
- * Initializes the client and connects to the innogy SmartHome service via Client API. Based on the provided
- * {@Link Configuration} while constructing {@Link InnogyClient}, the given oauth2 access and refresh tokens are
- * used or - if not yet available - new tokens are fetched from the service using the provided auth code.
- *
- * Throws {@link ApiException}s or {@link IOException}s as described in {@link #getOAuth2Tokens()} and
- * {@link #initializeSession()}.
- *
- * @throws IOException
- * @throws ApiException
- * @throws ConfigurationException
- */
- public void initialize() throws IOException, ApiException, ConfigurationException {
- initializeHttpClient();
-
- if (!config.checkClientData()) {
- throw new ConfigurationException("Invalid configuration: clientId and clientSecret must not be empty!");
- }
-
- if (!config.checkRefreshToken()) {
- // tokens missing, so try to get them via oauth2 from innogy backend
- getOAuth2Tokens();
- }
- if (!config.checkAccessToken()) {
- getAccessToken();
- }
-
- initializeSession();
- }
-
- /**
- * Initializes the HTTP client
- */
- private void initializeHttpClient() {
- httpTransport = new NetHttpTransport();
- jsonFactory = new GsonFactory();
-
- if (credentialRefreshListener == null) {
- credentialRefreshListener = new InnogyCredentialRefreshListener(config);
- }
-
- // prepare credentials & transport for oauth2 access
- credentialBuilder = new Credential.Builder(BearerToken.authorizationHeaderAccessMethod())
- .setTransport(httpTransport).setJsonFactory(jsonFactory).addRefreshListener(credentialRefreshListener)
- .setTokenServerUrl(new GenericUrl(API_URL_TOKEN))
- .setClientAuthentication(new BasicAuthentication(config.getClientId(), config.getClientSecret()));
- Credential credential = new Credential(credentialBuilder) {
- @Override
- public void initialize(HttpRequest request) {
- request.setInterceptor(this);
- request.setUnsuccessfulResponseHandler(this);
- request.setThrowExceptionOnExecuteError(false);
- request.setParser(new JsonObjectParser(jsonFactory)); // TODO: maybe better remove this one and use GSON
- // manually
- setAccessToken(config.getAccessToken());
- setRefreshToken(config.getRefreshToken());
- }
- };
-
- requestFactory = httpTransport.createRequestFactory(credential);
- }
-
- /**
- * Logs into the innogy SmartHome service and initializes the session.
+ * Gets the status
*
* As the API returns the details of the SmartHome controller (SHC), the data is saved in {@link #bridgeDetails} and
- * the {@link #currentConfigurationVersion} is set.
+ * the {@link #configVersion} is set.
*
* @throws SessionExistsException thrown, if a session already exists
* @throws IOException
* @throws ApiException
*/
- private void initializeSession() throws IOException, ApiException {
- logger.debug("Initializing innogy SmartHome Session...");
- HttpResponse response = executeGet(API_URL_INITIALIZE);
-
- handleResponseErrors(response);
+ public void refreshStatus() throws IOException, ApiException, AuthenticationException {
+ logger.debug("Get innogy SmartHome status...");
+ final StatusResponse status = executeGet(API_URL_STATUS, StatusResponse.class);
- SHCInfo info = response.parseAs(SHCInfo.class);
- bridgeDetails = info.deviceList.get(0);
- currentConfigurationVersion = info.currentConfigurationVersion;
+ bridgeDetails = status.gateway;
+ configVersion = bridgeDetails.getConfigVersion();
- logger.debug("innogy SmartHome Session initialized. Configuration version is {}",
- info.currentConfigurationVersion);
+ logger.debug("innogy SmartHome Status loaded. Configuration version is {}.", configVersion);
}
/**
- * Uninitializes the session.
- *
- * @throws IOException
- * @throws ApiException
- */
- public void uninitializeSession() throws IOException, ApiException {
- logger.debug("Uninitializing innogy SmartHome Session...");
- bridgeDetails = null;
-
- HttpResponse response = executeGet(API_URL_UNINITIALIZE);
-
- try {
- handleResponseErrors(response);
- } catch (SessionNotFoundException e) {
- // Session not found - ignoring
- }
- }
-
- /**
- * Fetches the oauth2 tokens from innogy SmartHome service and saves them in the {@Link Configuration}. The needed
- * authcode must be set in the {@Link Configuration}.
- *
- * Throws an {@link RemoteAccessNotAllowedException}, if the authcode is missing.
- * Throws an {@link ApiException} on an unexpected error with the API.
- * Throws an {@link IOException} on any I/O error.
+ * Executes a HTTP GET request with default headers and returns data as object of type T.
*
+ * @param url
+ * @param clazz type of data to return
+ * @return
* @throws IOException
+ * @throws AuthenticationException
* @throws ApiException
- * @throws ConfigurationException thrown if the authcode is not set in the {@link InnogyConfig}
*/
- private void getOAuth2Tokens() throws IOException, ApiException, ConfigurationException {
- if (!config.checkAuthCode()) {
- throw new ConfigurationException("Invalid configuration: authcode must not be empty!");
- }
-
- try {
- logger.debug("Trying to get access and refresh tokens");
- TokenResponse response = new AuthorizationCodeTokenRequest(httpTransport, jsonFactory,
- new GenericUrl(API_URL_TOKEN), config.getAuthCode()).setRedirectUri(config.getRedirectUrl())
- .setClientAuthentication(
- new BasicAuthentication(config.getClientId(), config.getClientSecret()))
- .execute();
- logger.debug("Saving access and refresh tokens.");
- logger.trace("Access token: {}", response.getAccessToken());
- logger.trace("Refresh token: {}", response.getRefreshToken());
- config.setAccessToken(response.getAccessToken());
- config.setRefreshToken(response.getRefreshToken());
- } catch (TokenResponseException e) {
- throw new InvalidAuthCodeException("Error fetching access token: " + e.getDetails());
- }
+ private T executeGet(final String url, final Class clazz)
+ throws IOException, AuthenticationException, ApiException {
+ final ContentResponse response = request(httpClient.newRequest(url).method(HttpMethod.GET));
+ return gson.fromJson(response.getContentAsString(), clazz);
}
/**
- * Fetches the access token from innogy SmartHome service and saves it in the {@Link Configuration}. The needed
- * refreshToken must be set in the {@Link Configuration}.
- *
- * Throws an {@link RemoteAccessNotAllowedException}, if the authcode is missing.
- * Throws an {@link ApiException} on an unexpected error with the API.
- * Throws an {@link IOException} on any I/O error.
+ * Executes a HTTP GET request with default headers and returns data as List of type T.
*
+ * @param url
+ * @param clazz array type of data to return as list
* @throws IOException
+ * @throws AuthenticationException
* @throws ApiException
- * @throws ConfigurationException thrown if the refreshToken is not set in the {@link InnogyConfig}
*/
- private void getAccessToken() throws IOException, ConfigurationException {
- if (!config.checkRefreshToken()) {
- throw new ConfigurationException("Invalid configuration: refreshToken must not be empty!");
- }
-
- logger.debug("Trying to get access token");
- TokenResponse response = new RefreshTokenRequest(httpTransport, jsonFactory, new GenericUrl(API_URL_TOKEN),
- config.getRefreshToken())
- .setClientAuthentication(
- new BasicAuthentication(config.getClientId(), config.getClientSecret()))
- .execute();
- logger.debug("Saving access token.");
- config.setAccessToken(response.getAccessToken());
+ private List executeGetList(final String url, final Class clazz)
+ throws IOException, AuthenticationException, ApiException {
+ return Arrays.asList(executeGet(url, clazz));
}
/**
- * Executes a HTTP GET request with default headers.
+ * Executes a HTTP POST request with the given {@link Action} as content.
*
* @param url
+ * @param action
* @return
* @throws IOException
+ * @throws AuthenticationException
+ * @throws ApiException
*/
- private HttpResponse executeGet(String url) throws IOException {
- apiCallCounter++;
- return requestFactory.buildGetRequest(new GenericUrl(url)).execute();
- }
+ private ContentResponse executePost(final String url, final Action action)
+ throws IOException, AuthenticationException, ApiException {
+ final String json = gson.toJson(action);
+ logger.debug("Action {} JSON: {}", action.getType(), json);
- /**
- * Executes a HTTP GET request with custom headers.
- *
- * @param url
- * @param headers
- * @return
- * @throws IOException
- */
- private HttpResponse executeGet(String url, HttpHeaders headers) throws IOException {
- apiCallCounter++;
- return requestFactory.buildGetRequest(new GenericUrl(url)).setHeaders(headers).execute();
+ return request(httpClient.newRequest(url).method(HttpMethod.POST)
+ .content(new StringContentProvider(json), CONTENT_TYPE).accept(CONTENT_TYPE));
}
- /**
- * Executes a HTTP POST request with the given {@link Action} as content.
- *
- * @param url
- * @param action
- * @return
- * @throws IOException
- */
- private HttpResponse executePost(String url, Action action) throws IOException {
- apiCallCounter++;
- return executePost(url, new JsonHttpContent(jsonFactory, action));
+ private ContentResponse request(final Request request) throws IOException, AuthenticationException, ApiException {
+ final ContentResponse response;
+ try {
+ final AccessTokenResponse accessTokenResponse = getAccessTokenResponse();
+
+ response = request.header(HttpHeader.ACCEPT, CONTENT_TYPE)
+ .header(HttpHeader.AUTHORIZATION, BEARER + accessTokenResponse.getAccessToken())
+ .timeout(HTTP_CLIENT_TIMEOUT_SECONDS, TimeUnit.SECONDS).send();
+ } catch (InterruptedException | TimeoutException | ExecutionException e) {
+ throw new IOException(e);
+ }
+ handleResponseErrors(response, request.getURI());
+ return response;
}
- /**
- * Executes a HTTP POST request with JSON formatted content.
- *
- * @param url
- * @param content
- * @return
- * @throws IOException
- */
- private HttpResponse executePost(String url, JsonHttpContent content) throws IOException {
- apiCallCounter++;
- return requestFactory.buildPostRequest(new GenericUrl(url), content)
- .setHeaders(new HttpHeaders().setAccept("application/json")).execute();
+ public AccessTokenResponse getAccessTokenResponse() throws AuthenticationException, IOException {
+ final AccessTokenResponse accessTokenResponse;
+ try {
+ accessTokenResponse = oAuthService.getAccessTokenResponse();
+ } catch (OAuthException | OAuthResponseException e) {
+ throw new AuthenticationException("Error fetching access token: " + e.getMessage());
+ }
+ if (accessTokenResponse == null || StringUtils.isBlank(accessTokenResponse.getAccessToken())) {
+ throw new AuthenticationException("No innogy accesstoken. Is this thing authorized?");
+ }
+ return accessTokenResponse;
}
/**
- * Handles errors from the {@link HttpResponse} and throws the following errors:
+ * Handles errors from the {@link ContentResponse} and throws the following errors:
*
* @param response
+ * @param uri uri of api call made
* @throws SessionExistsException
* @throws SessionNotFoundException
* @throws ControllerOfflineException thrown, if the innogy SmartHome controller (SHC) is offline.
* @throws IOException
* @throws ApiException
+ * @throws AuthenticationException
*/
- private void handleResponseErrors(HttpResponse response) throws IOException, ApiException {
+ private void handleResponseErrors(final ContentResponse response, final URI uri)
+ throws IOException, ApiException, AuthenticationException {
String content = "";
- switch (response.getStatusCode()) {
- case HttpStatusCodes.STATUS_CODE_OK:
- logger.debug("[{}] Statuscode is OK.", apiCallCounter);
+ switch (response.getStatus()) {
+ case HttpStatus.OK_200:
+ logger.debug("Statuscode is OK: [{}]", uri);
return;
- case HttpStatusCodes.STATUS_CODE_SERVICE_UNAVAILABLE:
+ case HttpStatus.SERVICE_UNAVAILABLE_503:
logger.debug("innogy service is unavailabe (503).");
throw new ServiceUnavailableException("innogy service is unavailabe (503).");
default:
- logger.debug("[{}] Statuscode is NOT OK: {}", apiCallCounter, response.getStatusCode());
+ logger.debug("Statuscode {} is NOT OK: [{}]", response.getStatus(), uri);
try {
- content = IOUtils.toString(response.getContent());
+ content = response.getContentAsString();
logger.trace("Response error content: {}", content);
- ErrorResponse error = gson.fromJson(content, ErrorResponse.class);
+ final ErrorResponse error = gson.fromJson(content, ErrorResponse.class);
if (error == null) {
- logger.debug("Error without JSON message, code: {} / message: {}", response.getStatusCode(),
- response.getStatusMessage());
- throw new ApiException("Error code: " + response.getStatusCode());
+ logger.debug("Error without JSON message, code: {} / message: {}", response.getStatus(),
+ response.getReason());
+ throw new ApiException("Error code: " + response.getStatus());
}
switch (error.getCode()) {
@@ -376,16 +255,15 @@ private void handleResponseErrors(HttpResponse response) throws IOException, Api
throw new RemoteAccessNotAllowedException(
"Remote access not allowed. Access is allowed only from the SHC device network.");
case ErrorResponse.ERR_INVALID_ACTION_TRIGGERED:
- logger.error("Invalid action triggered. Message: {}", error.getMessages());
+ logger.debug("Invalid action triggered. Message: {}", error.getMessages());
throw new InvalidActionTriggeredException(error.getDescription());
default:
logger.debug("Unknown error: {}", error.toString());
throw new ApiException("Unknown error: " + error.toString());
}
- } catch (JsonSyntaxException e) {
+ } catch (final JsonSyntaxException e) {
throw new ApiException("Invalid JSON syntax in error response: " + content);
}
-
}
}
@@ -397,15 +275,9 @@ private void handleResponseErrors(HttpResponse response) throws IOException, Api
* @throws IOException
* @throws ApiException
*/
- public void setSwitchActuatorState(String capabilityId, boolean state) throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_SWITCHACTUATOR, state);
-
- String json = gson.toJson(action);
- logger.debug("Action toggle JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setSwitchActuatorState(final String capabilityId, final boolean state)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION, new StateActionSetter(capabilityId, Capability.TYPE_SWITCHACTUATOR, state));
}
/**
@@ -416,15 +288,9 @@ public void setSwitchActuatorState(String capabilityId, boolean state) throws IO
* @throws IOException
* @throws ApiException
*/
- public void setDimmerActuatorState(String capabilityId, int dimLevel) throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_DIMMERACTUATOR, dimLevel);
-
- String json = gson.toJson(action);
- logger.debug("Action dimm JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setDimmerActuatorState(final String capabilityId, final int dimLevel)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION, new StateActionSetter(capabilityId, Capability.TYPE_DIMMERACTUATOR, dimLevel));
}
/**
@@ -435,16 +301,10 @@ public void setDimmerActuatorState(String capabilityId, int dimLevel) throws IOE
* @throws IOException
* @throws ApiException
*/
- public void setRollerShutterActuatorState(String capabilityId, int rollerShutterLevel)
- throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_ROLLERSHUTTERACTUATOR, rollerShutterLevel);
-
- String json = gson.toJson(action);
- logger.debug("Action rollershutter JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setRollerShutterActuatorState(final String capabilityId, final int rollerShutterLevel)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION,
+ new StateActionSetter(capabilityId, Capability.TYPE_ROLLERSHUTTERACTUATOR, rollerShutterLevel));
}
/**
@@ -455,15 +315,9 @@ public void setRollerShutterActuatorState(String capabilityId, int rollerShutter
* @throws IOException
* @throws ApiException
*/
- public void setVariableActuatorState(String capabilityId, boolean state) throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_VARIABLEACTUATOR, state);
-
- String json = gson.toJson(action);
- logger.debug("Action toggle JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setVariableActuatorState(final String capabilityId, final boolean state)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION, new StateActionSetter(capabilityId, Capability.TYPE_VARIABLEACTUATOR, state));
}
/**
@@ -474,16 +328,10 @@ public void setVariableActuatorState(String capabilityId, boolean state) throws
* @throws IOException
* @throws ApiException
*/
- public void setPointTemperatureState(String capabilityId, double pointTemperature)
- throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_THERMOSTATACTUATOR, pointTemperature);
-
- String json = gson.toJson(action);
- logger.debug("Action toggle JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setPointTemperatureState(final String capabilityId, final double pointTemperature)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION,
+ new StateActionSetter(capabilityId, Capability.TYPE_THERMOSTATACTUATOR, pointTemperature));
}
/**
@@ -494,16 +342,12 @@ public void setPointTemperatureState(String capabilityId, double pointTemperatur
* @throws IOException
* @throws ApiException
*/
- public void setOperationMode(String capabilityId, boolean autoMode) throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_THERMOSTATACTUATOR,
- autoMode ? "Auto" : "Manu");
-
- String json = gson.toJson(action);
- logger.debug("Action toggle JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
+ public void setOperationMode(final String capabilityId, final boolean autoMode)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION,
+ new StateActionSetter(capabilityId, Capability.TYPE_THERMOSTATACTUATOR,
+ autoMode ? CapabilityState.STATE_VALUE_OPERATION_MODE_AUTO
+ : CapabilityState.STATE_VALUE_OPERATION_MODE_MANUAL));
}
/**
@@ -514,35 +358,9 @@ public void setOperationMode(String capabilityId, boolean autoMode) throws IOExc
* @throws IOException
* @throws ApiException
*/
- public void setAlarmActuatorState(String capabilityId, boolean alarmState) throws IOException, ApiException {
- Action action = new SetStateAction(capabilityId, Capability.TYPE_ALARMACTUATOR, alarmState);
-
- String json = gson.toJson(action);
- logger.debug("Action toggle JSON: {}", json);
-
- HttpResponse response = executePost(API_URL_ACTION, action);
-
- handleResponseErrors(response);
- }
-
- /**
- * Disposes the client including disconnecting a maybe remaining session.
- */
- public void dispose() {
- try {
- uninitializeSession();
- if (httpTransport != null) {
- httpTransport.shutdown();
- httpTransport = null;
- }
- jsonFactory = null;
- requestFactory = null;
- credentialBuilder = null;
- } catch (IOException | ApiException e) {
- logger.debug("Error disposing resources: {}", e.getMessage());
- logger.trace("Trace:", e);
- }
-
+ public void setAlarmActuatorState(final String capabilityId, final boolean alarmState)
+ throws IOException, ApiException, AuthenticationException {
+ executePost(API_URL_ACTION, new StateActionSetter(capabilityId, Capability.TYPE_ALARMACTUATOR, alarmState));
}
/**
@@ -552,14 +370,9 @@ public void dispose() {
* @throws IOException
* @throws ApiException
*/
- public List getDevices() throws IOException, ApiException {
+ public List getDevices() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading innogy devices...");
- HttpResponse response = executeGet(API_URL_DEVICE);
-
- handleResponseErrors(response);
-
- Device[] deviceList = response.parseAs(Device[].class);
- return Arrays.asList(deviceList);
+ return executeGetList(API_URL_DEVICE, Device[].class);
}
/**
@@ -570,13 +383,9 @@ public List getDevices() throws IOException, ApiException {
* @throws IOException
* @throws ApiException
*/
- public Device getDeviceById(String deviceId) throws IOException, ApiException {
+ public Device getDeviceById(final String deviceId) throws IOException, ApiException, AuthenticationException {
logger.debug("Loading device with id {}...", deviceId);
- HttpResponse response = executeGet(API_URL_DEVICE_ID.replace("{id}", deviceId));
-
- handleResponseErrors(response);
-
- return response.parseAs(Device.class);
+ return executeGet(API_URL_DEVICE_ID.replace("{id}", deviceId), Device.class);
}
/**
@@ -587,41 +396,41 @@ public Device getDeviceById(String deviceId) throws IOException, ApiException {
* @throws IOException
* @throws ApiException
*/
- public List getFullDevices() throws IOException, ApiException {
+ public List getFullDevices() throws IOException, ApiException, AuthenticationException {
// LOCATIONS
- List locationList = getLocations();
- Map locationMap = new HashMap<>();
- for (Location l : locationList) {
+ final List locationList = getLocations();
+ final Map locationMap = new HashMap<>();
+ for (final Location l : locationList) {
locationMap.put(l.getId(), l);
}
// CAPABILITIES
- List capabilityList = getCapabilities();
- Map capabilityMap = new HashMap<>();
- for (Capability c : capabilityList) {
+ final List capabilityList = getCapabilities();
+ final Map capabilityMap = new HashMap<>();
+ for (final Capability c : capabilityList) {
capabilityMap.put(c.getId(), c);
}
// CAPABILITY STATES
- List capabilityStateList = getCapabilityStates();
- Map capabilityStateMap = new HashMap<>();
- for (CapabilityState cs : capabilityStateList) {
+ final List capabilityStateList = getCapabilityStates();
+ final Map capabilityStateMap = new HashMap<>();
+ for (final CapabilityState cs : capabilityStateList) {
capabilityStateMap.put(cs.getId(), cs);
}
// DEVICE STATES
- List deviceStateList = getDeviceStates();
- Map deviceStateMap = new HashMap<>();
- for (DeviceState es : deviceStateList) {
+ final List deviceStateList = getDeviceStates();
+ final Map deviceStateMap = new HashMap<>();
+ for (final DeviceState es : deviceStateList) {
deviceStateMap.put(es.getId(), es);
}
// MESSAGES
- List messageList = getMessages();
- Map> deviceMessageMap = new HashMap<>();
- for (Message m : messageList) {
+ final List messageList = getMessages();
+ final Map> deviceMessageMap = new HashMap<>();
+ for (final Message m : messageList) {
if (m.getDeviceLinkList() != null && !m.getDeviceLinkList().isEmpty()) {
- String deviceId = m.getDeviceLinkList().get(0).getValue().replace("/device/", "");
+ final String deviceId = m.getDeviceLinkList().get(0).replace("/device/", "");
List ml;
if (deviceMessageMap.containsKey(deviceId)) {
ml = deviceMessageMap.get(deviceId);
@@ -634,21 +443,23 @@ public List getFullDevices() throws IOException, ApiException {
}
// DEVICES
- List deviceList = getDevices();
- for (Device d : deviceList) {
+ final List deviceList = getDevices();
+ for (final Device d : deviceList) {
if (BATTERY_POWERED_DEVICES.contains(d.getType())) {
d.setIsBatteryPowered(true);
}
// location
d.setLocation(locationMap.get(d.getLocationId()));
- HashMap deviceCapabilityMap = new HashMap<>();
+ final HashMap deviceCapabilityMap = new HashMap<>();
// capabilities and their states
- for (CapabilityLink cl : d.getCapabilityLinkList()) {
- Capability c = capabilityMap.get(cl.getId());
- c.setCapabilityState(capabilityStateMap.get(c.getId()));
- deviceCapabilityMap.put(c.getId(), c);
+ for (final String cl : d.getCapabilityLinkList()) {
+ final Capability c = capabilityMap.get(Link.getId(cl));
+ final String capabilityId = c.getId();
+ final CapabilityState capabilityState = capabilityStateMap.get(capabilityId);
+ c.setCapabilityState(capabilityState);
+ deviceCapabilityMap.put(capabilityId, c);
}
d.setCapabilityMap(deviceCapabilityMap);
@@ -658,10 +469,11 @@ public List getFullDevices() throws IOException, ApiException {
// messages
if (deviceMessageMap.containsKey(d.getId())) {
d.setMessageList(deviceMessageMap.get(d.getId()));
- for (Message m : d.getMessageList()) {
+ for (final Message m : d.getMessageList()) {
switch (m.getType()) {
case Message.TYPE_DEVICE_LOW_BATTERY:
d.setLowBattery(true);
+ d.setLowBatteryMessageId(m.getId());
break;
}
}
@@ -680,43 +492,44 @@ public List getFullDevices() throws IOException, ApiException {
* @throws IOException
* @throws ApiException
*/
- public Device getFullDeviceById(String deviceId) throws IOException, ApiException {
+ public Device getFullDeviceById(final String deviceId) throws IOException, ApiException, AuthenticationException {
// LOCATIONS
- List locationList = getLocations();
- Map locationMap = new HashMap<>();
- for (Location l : locationList) {
+ final List locationList = getLocations();
+ final Map locationMap = new HashMap<>();
+ for (final Location l : locationList) {
locationMap.put(l.getId(), l);
}
// CAPABILITIES FOR DEVICE
- List capabilityList = getCapabilitiesForDevice(deviceId);
- Map capabilityMap = new HashMap<>();
- for (Capability c : capabilityList) {
+ final List capabilityList = getCapabilitiesForDevice(deviceId);
+ final Map capabilityMap = new HashMap<>();
+ for (final Capability c : capabilityList) {
capabilityMap.put(c.getId(), c);
}
// CAPABILITY STATES
- List capabilityStateList = getCapabilityStates();
- Map capabilityStateMap = new HashMap<>();
- for (CapabilityState cs : capabilityStateList) {
+ final List capabilityStateList = getCapabilityStates();
+ final Map capabilityStateMap = new HashMap<>();
+ for (final CapabilityState cs : capabilityStateList) {
capabilityStateMap.put(cs.getId(), cs);
}
// DEVICE STATE
- List deviceStateList = getDeviceStatesByDeviceId(deviceId);
- DeviceState deviceState = new DeviceState();
+ final State state = getDeviceStateByDeviceId(deviceId);
+ final DeviceState deviceState = new DeviceState();
deviceState.setId(deviceId);
- deviceState.setStateList(deviceStateList);
+ deviceState.setState(state);
// MESSAGES
- List messageList = getMessages();
+ final List messageList = getMessages();
+ final List ml = new ArrayList<>();
+ final String deviceIdPath = "/device/" + deviceId;
- List ml = new ArrayList<>();
-
- for (Message m : messageList) {
+ for (final Message m : messageList) {
+ logger.trace("Message Type {} with ID {}", m.getType(), m.getId());
if (m.getDeviceLinkList() != null && !m.getDeviceLinkList().isEmpty()) {
- for (Link li : m.getDeviceLinkList()) {
- if (li.getValue().equals("/device/" + deviceId)) {
+ for (final String li : m.getDeviceLinkList()) {
+ if (deviceIdPath.equals(li)) {
ml.add(m);
}
}
@@ -724,7 +537,7 @@ public Device getFullDeviceById(String deviceId) throws IOException, ApiExceptio
}
// DEVICE
- Device d = getDeviceById(deviceId);
+ final Device d = getDeviceById(deviceId);
if (BATTERY_POWERED_DEVICES.contains(d.getType())) {
d.setIsBatteryPowered(true);
d.setLowBattery(false);
@@ -734,10 +547,10 @@ public Device getFullDeviceById(String deviceId) throws IOException, ApiExceptio
d.setLocation(locationMap.get(d.getLocationId()));
// capabilities and their states
- HashMap deviceCapabilityMap = new HashMap<>();
- for (CapabilityLink cl : d.getCapabilityLinkList()) {
+ final HashMap deviceCapabilityMap = new HashMap<>();
+ for (final String cl : d.getCapabilityLinkList()) {
- Capability c = capabilityMap.get(cl.getId());
+ final Capability c = capabilityMap.get(Link.getId(cl));
c.setCapabilityState(capabilityStateMap.get(c.getId()));
deviceCapabilityMap.put(c.getId(), c);
@@ -748,12 +561,13 @@ public Device getFullDeviceById(String deviceId) throws IOException, ApiExceptio
d.setDeviceState(deviceState);
// messages
- if (ml.size() > 0) {
+ if (!ml.isEmpty()) {
d.setMessageList(ml);
- for (Message m : d.getMessageList()) {
+ for (final Message m : d.getMessageList()) {
switch (m.getType()) {
case Message.TYPE_DEVICE_LOW_BATTERY:
d.setLowBattery(true);
+ d.setLowBatteryMessageId(m.getId());
break;
}
}
@@ -769,36 +583,23 @@ public Device getFullDeviceById(String deviceId) throws IOException, ApiExceptio
* @throws IOException
* @throws ApiException
*/
- public List getDeviceStates() throws IOException, ApiException {
+ public List getDeviceStates() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading device states...");
-
- HttpResponse response = executeGet(API_URL_DEVICE_STATES);
-
- handleResponseErrors(response);
-
- DeviceState[] deviceStateArray = response.parseAs(DeviceState[].class);
- return Arrays.asList(deviceStateArray);
+ return executeGetList(API_URL_DEVICE_STATES, DeviceState[].class);
}
/**
- * Loads the device states for the given deviceId.
+ * Loads the device state for the given deviceId.
*
* @param deviceId
* @return
* @throws IOException
* @throws ApiException
*/
- public List getDeviceStatesByDeviceId(String deviceId) throws IOException, ApiException {
+ public State getDeviceStateByDeviceId(final String deviceId)
+ throws IOException, ApiException, AuthenticationException {
logger.debug("Loading device states for device id {}...", deviceId);
-
- HttpResponse response = executeGet(API_URL_DEVICE_ID_STATE.replace("{id}", deviceId));
-
- handleResponseErrors(response);
-
- Property[] propertyArray = response.parseAs(Property[].class);
- List propertyList = Arrays.asList(propertyArray);
-
- return propertyList;
+ return executeGet(API_URL_DEVICE_ID_STATE.replace("{id}", deviceId), State.class);
}
/**
@@ -808,17 +609,9 @@ public List getDeviceStatesByDeviceId(String deviceId) throws IOExcept
* @throws IOException
* @throws ApiException
*/
- public List getLocations() throws IOException, ApiException {
+ public List getLocations() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading locations...");
-
- HttpResponse response = executeGet(API_URL_LOCATION);
-
- handleResponseErrors(response);
-
- Location[] locationArray = response.parseAs(Location[].class);
- List locationList = Arrays.asList(locationArray);
-
- return locationList;
+ return executeGetList(API_URL_LOCATION, Location[].class);
}
/**
@@ -829,16 +622,10 @@ public List getLocations() throws IOException, ApiException {
* @throws IOException
* @throws ApiException
*/
- public List getCapabilitiesForDevice(String deviceId) throws IOException, ApiException {
+ public List getCapabilitiesForDevice(final String deviceId)
+ throws IOException, ApiException, AuthenticationException {
logger.debug("Loading capabilities for device {}...", deviceId);
-
- HttpResponse response = executeGet(API_URL_DEVICE_CAPABILITIES.replace("{id}", deviceId));
-
- handleResponseErrors(response);
-
- Capability[] capabilityArray = response.parseAs(Capability[].class);
- List capabilityList = Arrays.asList(capabilityArray);
- return capabilityList;
+ return executeGetList(API_URL_DEVICE_CAPABILITIES.replace("{id}", deviceId), Capability[].class);
}
/**
@@ -848,16 +635,9 @@ public List getCapabilitiesForDevice(String deviceId) throws IOExcep
* @throws IOException
* @throws ApiException
*/
- public List getCapabilities() throws IOException, ApiException {
+ public List getCapabilities() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading capabilities...");
-
- HttpResponse response = executeGet(API_URL_CAPABILITY);
-
- handleResponseErrors(response);
-
- Capability[] capabilityArray = response.parseAs(Capability[].class);
- List capabilityList = Arrays.asList(capabilityArray);
- return capabilityList;
+ return executeGetList(API_URL_CAPABILITY, Capability[].class);
}
/**
@@ -867,16 +647,9 @@ public List getCapabilities() throws IOException, ApiException {
* @throws IOException
* @throws ApiException
*/
- public List getCapabilityStates() throws IOException, ApiException {
+ public List getCapabilityStates() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading capability states...");
-
- HttpResponse response = executeGet(API_URL_CAPABILITY_STATES);
-
- handleResponseErrors(response);
-
- CapabilityState[] capabilityStatesArray = response.parseAs(CapabilityState[].class);
- List capabilityStatesList = Arrays.asList(capabilityStatesArray);
- return capabilityStatesList;
+ return executeGetList(API_URL_CAPABILITY_STATES, CapabilityState[].class);
}
/**
@@ -886,31 +659,22 @@ public List getCapabilityStates() throws IOException, ApiExcept
* @throws IOException
* @throws ApiException
*/
- public List getMessages() throws IOException, ApiException {
+ public List getMessages() throws IOException, ApiException, AuthenticationException {
logger.debug("Loading messages...");
-
- HttpResponse response = executeGet(API_URL_MESSAGE);
-
- handleResponseErrors(response);
-
- Message[] messageArray = response.parseAs(Message[].class);
- List messageList = Arrays.asList(messageArray);
- return messageList;
+ return executeGetList(API_URL_MESSAGE, Message[].class);
}
/**
- * Returns the {@link InnogyConfig}. Be aware that
- *
- * @return the Configuration
+ * @return the configVersion
*/
- public InnogyConfig getConfig() {
- return config;
+ public String getConfigVersion() {
+ return configVersion;
}
/**
- * @param credentialRefreshListener the credentialRefreshListener to set
+ * @param configVersion the configVersion to set
*/
- public void setCredentialRefreshListener(CredentialRefreshListener credentialRefreshListener) {
- this.credentialRefreshListener = credentialRefreshListener;
+ public void setConfigVersion(final String configVersion) {
+ this.configVersion = configVersion;
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyConfig.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyConfig.java
deleted file mode 100644
index c9b4307bc3b26..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyConfig.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client;
-
-import org.apache.commons.lang.StringUtils;
-
-/**
- * The {@link InnogyConfig} contains all configurations for the innogy SmartHome library.
- *
- * @author Oliver Kuhl - Initial contribution
- *
- */
-public class InnogyConfig {
- private String authCode = null;
- private String accessToken = null;
- private String refreshToken = null;
- private String clientId = null;
- private String clientSecret = null;
- private String redirectUrl = null;
-
- /**
- * Creates a new {@link InnogyConfig} and set the given clientId, clientSecret, redirectUrl and refreshToken.
- *
- * @param clientId
- * @param clientSecret
- * @param redirectUrl
- * @param refreshToken
- */
- public InnogyConfig(String clientId, String clientSecret, String redirectUrl, String refreshToken) {
- this(clientId, clientSecret, redirectUrl, null, null, refreshToken);
- }
-
- /**
- * Creates a new {@link InnogyConfig} and set the given clientId, clientSecret, redirectUrl, authCode, accessToken
- * and refreshToken.
- *
- * @param clientId
- * @param clientSecret
- * @param redirectUrl
- * @param authCode
- * @param accessToken
- * @param refreshToken
- */
- public InnogyConfig(String clientId, String clientSecret, String redirectUrl, String authCode, String accessToken,
- String refreshToken) {
- this.clientId = clientId;
- this.clientSecret = clientSecret;
- this.redirectUrl = redirectUrl;
- this.authCode = authCode;
- this.accessToken = accessToken;
- this.refreshToken = refreshToken;
- }
-
- /**
- * Creates an empty {@link InnogyConfig}.
- */
- public InnogyConfig() {
- }
-
- /**
- * Checks, if the {@link InnogyConfig} has the necessary {@link #clientId} and {@link #clientSecret} set.
- *
- * @return true if everything seems fine or false, if one of those are missing.
- */
- public boolean checkClientData() {
- return !(StringUtils.isEmpty(clientId) || StringUtils.isEmpty(clientSecret)
- || StringUtils.isEmpty(redirectUrl));
- }
-
- /**
- * Checks, if the {@link InnogyConfig} includes the refresh token.
- *
- * @return
- */
- public boolean checkRefreshToken() {
- return !StringUtils.isEmpty(refreshToken);
- }
-
- /**
- * Checks, if the {@link InnogyConfig} includes the access token.
- *
- * @return
- */
- public boolean checkAccessToken() {
- return !StringUtils.isEmpty(accessToken);
- }
-
- /**
- * Checks, if the authCode is set.
- *
- * @return
- */
- public boolean checkAuthCode() {
- return !StringUtils.isBlank(authCode);
- }
-
- /**
- * @return the authCode
- */
- public String getAuthCode() {
- return authCode;
- }
-
- /**
- * @param authCode the authCode to set
- */
- public void setAuthCode(String authCode) {
- this.authCode = authCode;
- }
-
- /**
- * @return the accessToken
- */
- public String getAccessToken() {
- return accessToken;
- }
-
- /**
- * @param accessToken the accessToken to set
- */
- public void setAccessToken(String accessToken) {
- this.accessToken = accessToken;
- }
-
- /**
- * @return the refreshToken
- */
- public String getRefreshToken() {
- return refreshToken;
- }
-
- /**
- * @param refreshToken the refreshToken to set
- */
- public void setRefreshToken(String refreshToken) {
- this.refreshToken = refreshToken;
- }
-
- /**
- * @return the clientId
- */
- public String getClientId() {
- return clientId;
- }
-
- /**
- * @param clientId the clientId to set
- */
- public void setClientId(String clientId) {
- this.clientId = clientId;
- }
-
- /**
- * @return the clientSecret
- */
- public String getClientSecret() {
- return clientSecret;
- }
-
- /**
- * @param clientSecret the clientSecret to set
- */
- public void setClientSecret(String clientSecret) {
- this.clientSecret = clientSecret;
- }
-
- /**
- * @return the redirectUrl
- */
- public String getRedirectUrl() {
- return redirectUrl;
- }
-
- /**
- * @param redirectUrl the redirectUrl
- */
- public void setRedirectUrl(String redirectUrl) {
- this.redirectUrl = redirectUrl;
- }
-
- @Override
- public String toString() {
- String simplifiedAccessToken = "";
- String simplifiedRefreshToken = "";
-
- if (!StringUtils.isEmpty(accessToken)) {
- simplifiedAccessToken = accessToken.substring(0, 10) + "..."
- + accessToken.substring(accessToken.length() - 10);
- }
- if (!StringUtils.isEmpty(refreshToken)) {
- simplifiedRefreshToken = refreshToken.substring(0, 5) + "..."
- + refreshToken.substring(refreshToken.length() - 5);
- }
-
- return "Config [clientId=" + clientId + ", clientSecret=" + clientSecret + ", redirectUrl=" + redirectUrl
- + ", authCode=" + authCode + ", accessToken=" + simplifiedAccessToken + ", refreshToken="
- + simplifiedRefreshToken + "]";
- }
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyCredentialRefreshListener.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyCredentialRefreshListener.java
deleted file mode 100644
index 498344d0dccf1..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/InnogyCredentialRefreshListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client;
-
-import java.io.IOException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.api.client.auth.oauth2.Credential;
-import com.google.api.client.auth.oauth2.CredentialRefreshListener;
-import com.google.api.client.auth.oauth2.TokenErrorResponse;
-import com.google.api.client.auth.oauth2.TokenResponse;
-
-/**
- * The {@link InnogyCredentialRefreshListener} is injected in the google oauth library and called, when the access
- * tokens timed out. It is used to update the {@link InnogyConfig}, to keep the valid tokens up to date.
- *
- * @author Oliver Kuhl - Initial contribution
- *
- */
-public class InnogyCredentialRefreshListener implements CredentialRefreshListener {
-
- private final Logger logger = LoggerFactory.getLogger(InnogyCredentialRefreshListener.class);
- private InnogyConfig config;
-
- public InnogyCredentialRefreshListener(InnogyConfig config) {
- this.config = config;
- }
-
- @Override
- public void onTokenResponse(Credential credential, TokenResponse tokenResponse) throws IOException {
- config.setAccessToken(credential.getAccessToken());
- logger.debug("innogy access token saved (onTokenResponse): {}", credential.getAccessToken());
- }
-
- @Override
- public void onTokenErrorResponse(Credential credential, TokenErrorResponse tokenErrorResponse) throws IOException {
- config.setAccessToken(credential.getAccessToken());
- logger.debug("innogy access token saved (onTokenErrorResponse): {}", credential.getAccessToken());
- }
-
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Util.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Util.java
index 35d2bd99f01d3..c516e58ac1c7e 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Util.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/Util.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -15,27 +15,22 @@
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Utility class with commonly used methods.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-public class Util {
+@NonNullByDefault
+public final class Util {
- public static ZonedDateTime convertZuluTimeStringToDate(String timeString) {
- DateTimeFormatter fmt = DateTimeFormatter.ISO_INSTANT;
- return ZonedDateTime.parse(timeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+ private Util() {
+ // Util class.
}
- /**
- * Compares two strings.
- *
- * @param string1
- * @param string2
- * @return true, if both strings are equal and not null
- */
- public static boolean equalsIfPresent(String string1, String string2) {
- return string1 == null ? false : string1.equals(string2);
+ public static ZonedDateTime convertZuluTimeStringToDate(String timeString) {
+ return ZonedDateTime.parse(timeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/ConfigPropertyList.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/ConfigPropertyList.java
deleted file mode 100644
index 3259645598693..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/ConfigPropertyList.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity;
-
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.time.format.FormatStyle;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.openhab.binding.innogysmarthome.internal.client.Util;
-import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
-
-import com.google.api.client.util.Key;
-
-/**
- * Defines a list of configuration properties. It will be extended by the {@link Device}, that holds a list of config
- * properties.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public abstract class ConfigPropertyList extends PropertyList {
-
- /** config property names */
- protected static final String CONFIG_PROPERTY_NAME = "Name";
- protected static final String CONFIG_PROPERTY_PROTOCOL_ID = "ProtocolId";
- protected static final String CONFIG_PROPERTY_TIME_OF_ACCEPTANCE = "TimeOfAcceptance";
- protected static final String CONFIG_PROPERTY_TIME_OF_DISCOVERY = "TimeOfDiscovery";
- protected static final String CONFIG_PROPERTY_HARDWARE_VERSION = "HardwareVersion";
- protected static final String CONFIG_PROPERTY_SOFTWARE_VERSION = "SoftwareVersion";
- protected static final String CONFIG_PROPERTY_FIRMWARE_VERSION = "FirmwareVersion";
- protected static final String CONFIG_PROPERTY_HOSTNAME = "HostName";
- protected static final String CONFIG_PROPERTY_ACTIVITY_LOG_ENABLED = "ActivityLogEnabled";
- protected static final String CONFIG_PROPERTY_CONFIGURATION_STATE = "ConfigurationState";
- protected static final String CONFIG_PROPERTY_GEOLOCATION = "GeoLocation";
- protected static final String CONFIG_PROPERTY_TIMEZONE = "TimeZone";
- protected static final String CONFIG_PROPERTY_CURRENT_UTC_OFFSET = "CurrentUTCOffset";
- protected static final String CONFIG_PROPERTY_IP_ADDRESS = "IPAddress";
- protected static final String CONFIG_PROPERTY_MAC_ADDRESS = "MACAddress";
- protected static final String CONFIG_PROPERTY_SHC_TYPE = "ShcType";
- protected static final String CONFIG_PROPERTY_BACKEND_CONNECTION_MONITORED = "BackendConnectionMonitored";
- protected static final String CONFIG_PROPERTY_RFCOM_FAILURE_NOTIFICATION = "RFCommFailureNotification";
- protected static final String CONFIG_PROPERTY_POSTCODE = "PostCode";
- protected static final String CONFIG_PROPERTY_CITY = "City";
- protected static final String CONFIG_PROPERTY_STREET = "Street";
- protected static final String CONFIG_PROPERTY_HOUSENUMBER = "HouseNumber";
- protected static final String CONFIG_PROPERTY_COUNTRY = "Country";
- protected static final String CONFIG_PROPERTY_HOUSEHOLD_TYPE = "HouseholdType";
- protected static final String CONFIG_PROPERTY_NUMBER_OF_PERSONS = "NumberOfPersons";
- protected static final String CONFIG_PROPERTY_NUMBER_OF_FLOORS = "NumberOfFloors";
- protected static final String CONFIG_PROPERTY_LIVINGAREA = "LivingArea";
- protected static final String CONFIG_PROPERTY_REGISTRATION_TIME = "RegistrationTime";
- protected static final String CONFIG_PROPERTY_DISPLAY_CURRENT_TEMPERATURE = "DisplayCurrentTemperature";
- protected static final String CONFIG_PROPERTY_UNDERLYING_DEVICE_IDS = "UnderlyingDeviceIds";
- protected static final String CONFIG_PROPERTY_METER_ID = "MeterId";
- protected static final String CONFIG_PROPERTY_METER_FIRMWARE_VERSION = "MeterFirmwareVersion";
- protected static final String CONFIG_PROPERTY_DEVICE_TYPE = "DeviceType";
-
- protected static final String PROTOCOL_ID_COSIP = "Cosip";
- protected static final String PROTOCOL_ID_VIRTUAL = "Virtual";
- protected static final String PROTOCOL_ID_WMBUS = "wMBus";
-
- /**
- * This represents a container of all configuration properties.
- *
- * Optional.
- */
- @Key("Config")
- protected List configList;
- protected HashMap configMap;
-
- /**
- * @return the configList
- */
- public List getConfigList() {
- return configList;
- }
-
- /**
- * @param configList the configList to set
- */
- public void setConfigList(List configList) {
- this.configList = configList;
- }
-
- /**
- * Returns true, if config properties are available.
- *
- * @return
- */
- public boolean hasConfigProperties() {
- return (configList != null && !configList.isEmpty());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see in.ollie.innogysmarthome.entity.PropertyList#getPropertyMap()
- */
- @Override
- protected Map getPropertyMap() {
- if (configMap == null) {
- configMap = PropertyList.getHashMap(configList);
- }
-
- return configMap;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see in.ollie.innogysmarthome.entity.PropertyList#getPropertyList()
- */
- @Override
- protected List getPropertyList() {
- if (configList == null) {
- configList = new ArrayList<>();
- }
-
- return configList;
- }
-
- /**
- * @return
- */
- public Map getConfigMap() {
- return getPropertyMap();
- }
-
- /**
- * Returns the name of the {@link Device}.
- *
- * @return
- */
- public String getName() {
- return getPropertyValueAsString(CONFIG_PROPERTY_NAME);
- }
-
- public String getProtocolId() {
- return getPropertyValueAsString(CONFIG_PROPERTY_PROTOCOL_ID);
- }
-
- /**
- * Returns the time, when the {@link Device} was added to the SHC configuration.
- *
- * @return
- */
- public ZonedDateTime getTimeOfAcceptance() {
- String time = getPropertyValueAsString(CONFIG_PROPERTY_TIME_OF_ACCEPTANCE);
- if (time == null) {
- return null;
- }
- return Util.convertZuluTimeStringToDate(time);
- }
-
- /**
- * Returns the time, when the {@link Device} was discovered by the SHC.
- *
- * @return
- */
- public ZonedDateTime getTimeOfDiscovery() {
- String time = getPropertyValueAsString(CONFIG_PROPERTY_TIME_OF_DISCOVERY);
- if (time == null) {
- return null;
- }
- return Util.convertZuluTimeStringToDate(time);
- }
-
- public String getHardwareVersion() {
- return getPropertyValueAsString(CONFIG_PROPERTY_HARDWARE_VERSION);
- }
-
- public String getSoftwareVersion() {
- return getPropertyValueAsString(CONFIG_PROPERTY_SOFTWARE_VERSION);
- }
-
- public String getFirmwareVersion() {
- return getPropertyValueAsString(CONFIG_PROPERTY_FIRMWARE_VERSION);
- }
-
- public String getHostName() {
- return getPropertyValueAsString(CONFIG_PROPERTY_HOSTNAME);
- }
-
- public Boolean getActivityLogEnabled() {
- return getPropertyValueAsBoolean(CONFIG_PROPERTY_ACTIVITY_LOG_ENABLED);
- }
-
- public String getConfigurationState() {
- return getPropertyValueAsString(CONFIG_PROPERTY_CONFIGURATION_STATE);
- }
-
- public String getGeoLocation() {
- return getPropertyValueAsString(CONFIG_PROPERTY_GEOLOCATION);
- }
-
- public String getTimeZone() {
- return getPropertyValueAsString(CONFIG_PROPERTY_TIMEZONE);
- }
-
- public Integer getCurrentUTCOffset() {
- return getPropertyValueAsInteger(CONFIG_PROPERTY_CURRENT_UTC_OFFSET);
- }
-
- public String getIpAddress() {
- return getPropertyValueAsString(CONFIG_PROPERTY_IP_ADDRESS);
- }
-
- public String getMacAddress() {
- return getPropertyValueAsString(CONFIG_PROPERTY_MAC_ADDRESS);
- }
-
- public String getSHCType() {
- return getPropertyValueAsString(CONFIG_PROPERTY_SHC_TYPE);
- }
-
- public Boolean getBackendConnectionMonitored() {
- return getPropertyValueAsBoolean(CONFIG_PROPERTY_BACKEND_CONNECTION_MONITORED);
- }
-
- public Boolean getRFCommFailureNotification() {
- return getPropertyValueAsBoolean(CONFIG_PROPERTY_RFCOM_FAILURE_NOTIFICATION);
- }
-
- public String getPostCode() {
- return getPropertyValueAsString(CONFIG_PROPERTY_POSTCODE);
- }
-
- public String getCity() {
- return getPropertyValueAsString(CONFIG_PROPERTY_CITY);
- }
-
- public String getStreet() {
- return getPropertyValueAsString(CONFIG_PROPERTY_STREET);
- }
-
- public String getHouseNumber() {
- return getPropertyValueAsString(CONFIG_PROPERTY_HOUSENUMBER);
- }
-
- public String getCountry() {
- return getPropertyValueAsString(CONFIG_PROPERTY_COUNTRY);
- }
-
- public String getHouseHoldType() {
- return getPropertyValueAsString(CONFIG_PROPERTY_HOUSEHOLD_TYPE);
- }
-
- public Integer getNumberOfPersons() {
- return getPropertyValueAsInteger(CONFIG_PROPERTY_NUMBER_OF_PERSONS);
- }
-
- public Integer getNumberOfFloors() {
- return getPropertyValueAsInteger(CONFIG_PROPERTY_NUMBER_OF_FLOORS);
- }
-
- public Integer getLivingArea() {
- return getPropertyValueAsInteger(CONFIG_PROPERTY_LIVINGAREA);
- }
-
- public ZonedDateTime getRegistrationTime() {
- return Util.convertZuluTimeStringToDate(getPropertyValueAsString(CONFIG_PROPERTY_REGISTRATION_TIME));
- }
-
- public String getRegistrationTimeFormattedString() {
- return Util.convertZuluTimeStringToDate(getPropertyValueAsString(CONFIG_PROPERTY_REGISTRATION_TIME))
- .format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM));
- }
-
- public String getDisplayCurrentTemperature() {
- return getPropertyValueAsString(CONFIG_PROPERTY_DISPLAY_CURRENT_TEMPERATURE);
- }
-
- public String getUnderLyingDeviceIds() {
- return getPropertyValueAsString(CONFIG_PROPERTY_UNDERLYING_DEVICE_IDS);
- }
-
- public String getMeterId() {
- return getPropertyValueAsString(CONFIG_PROPERTY_METER_ID);
- }
-
- public String getMeterFirmwareVersion() {
- return getPropertyValueAsString(CONFIG_PROPERTY_METER_FIRMWARE_VERSION);
- }
-
- public String getDeviceType() {
- return getPropertyValueAsString(CONFIG_PROPERTY_DEVICE_TYPE);
- }
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Constant.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Constant.java
index c7bb27765aa4c..b4de2f400e9e0 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Constant.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Constant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,8 +12,6 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity;
-import com.google.api.client.util.Key;
-
/**
* The {@link Constant} entity is used for {@link Action}s.
*
@@ -22,7 +20,6 @@
*/
public class Constant {
- @Key("value")
public Object value;
public Constant(Object value) {
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Location.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Location.java
deleted file mode 100644
index af88df8d7958b..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Location.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity;
-
-import java.util.List;
-
-import com.google.api.client.util.Key;
-
-/**
- * Defines a {@link Location} structure.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public class Location extends ConfigPropertyList {
- private static final String CONFIG_PROPERTY_TYPE = "Type";
-
- /**
- * Identifier of the location – must be unique.
- */
- @Key("id")
- private String id;
-
- /**
- * Reference to the description of the message.
- * Optional.
- */
- @Key("desc")
- private String desc;
-
- /**
- * Container for tagging the location, e.g. if the location is on a certain floor in the house.
- * Optional.
- */
- @Key("Tags")
- private List tagsList;
-
- /**
- * @return the id
- */
- public String getId() {
- return id;
- }
-
- /**
- * @param id the id to set
- */
- public void setId(String id) {
- this.id = id;
- }
-
- /**
- * @return the desc
- */
- public String getDesc() {
- return desc;
- }
-
- /**
- * @param desc the desc to set
- */
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- /**
- * @return the tagsList
- */
- public List getTagsList() {
- return tagsList;
- }
-
- /**
- * @param tagsList the tagsList to set
- */
- public void setTagsList(List tagsList) {
- this.tagsList = tagsList;
- }
-
- @Override
- public String getName() {
- return getPropertyValueAsString(CONFIG_PROPERTY_NAME);
- }
-
- public String getType() {
- return getPropertyValueAsString(CONFIG_PROPERTY_TYPE);
- }
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Property.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Property.java
index d05a4971be2e5..407f0cfa6370b 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Property.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Property.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,8 +12,6 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity;
-import com.google.api.client.util.Key;
-
/**
* Defines a {@link Property}, that is a basic key/value structure used for several data types in the innogy API.
*
@@ -21,13 +19,10 @@
*/
public class Property {
- @Key("name")
private String name;
- @Key("value")
private Object value;
- @Key("lastchanged")
private String lastchanged;
public Property() {
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/PropertyList.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/PropertyList.java
deleted file mode 100644
index 222e2a97f1a84..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/PropertyList.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Provides a list of {@link Property}s and commonly used methods.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public abstract class PropertyList {
-
- /**
- * Returns a {@link Map} of the {@link Property}s. Must be overwritten!
- *
- * @return {@link Map} of {@link Property}s
- */
- protected abstract Map getPropertyMap();
-
- /**
- * Returns a {@link List} of the {@link Property}s. Must be overwritten!
- *
- * @return {@link List} of {@link Property}s
- */
- protected abstract List getPropertyList();
-
- /**
- * Adds a {@link Property} to the {@link #PropertyList()} and corresponding {@link #getPropertyMap()}. Make sure
- * the element is new first - this is not checked!
- *
- * @param p
- */
- private void addProperty(Property p) {
- getPropertyList().add(p);
- getPropertyMap().put(p.getName(), p);
- }
-
- /**
- * Returns the value of the {@link Property} with the given name.
- *
- * @param propertyName
- * @return
- */
- protected Object getPropertyValue(String propertyName) {
- return getPropertyMap().get(propertyName);
- }
-
- /**
- * Returns the value of the {@link Property} with the given name as {@link String}.
- *
- * @param propertyName
- * @return
- */
- protected String getPropertyValueAsString(String propertyName) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- Object value = p.getValue();
- if (value instanceof String) {
- return (String) value;
- }
- }
- return null;
- }
-
- /**
- * Sets the value of the {@link Property} with the given name to the stringState.
- *
- * @param propertyName String the name of the {@link Property}
- * @param stringValue String the new value to set
- */
- protected void setPropertyValueAsString(String propertyName, String stringValue) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- p.setValue(stringValue);
- } else {
- addProperty(new Property(propertyName, stringValue));
- }
- }
-
- /**
- * Returns the value of the {@link Property} with the given name as {@link Boolean}.
- *
- * @param propertyName
- * @return
- */
- protected Boolean getPropertyValueAsBoolean(String propertyName) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- Object value = p.getValue();
- if (value instanceof Boolean) {
- return (Boolean) value;
- }
- }
- return null;
- }
-
- /**
- * Sets the value of the {@link Property} with the given name to the booleanState.
- *
- * @param propertyName String the name of the {@link Property}
- * @param booleanValue boolean the new value to set
- */
- protected void setPropertyValueAsBoolean(String propertyName, boolean booleanValue) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- p.setValue(booleanValue);
- } else {
- addProperty(new Property(propertyName, booleanValue));
- }
- }
-
- /**
- * Returns the value of the {@link Property} with the given name as {@link Double}.
- *
- * @param propertyName
- * @return
- */
- protected Double getPropertyValueAsDouble(String propertyName) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- Object value = p.getValue();
- // return (Double) value;
- return Double.parseDouble(value.toString());
- }
- return null;
- }
-
- /**
- * Sets the value of the {@link Property} with the given name to the doubleState.
- *
- * @param propertyName String the name of the {@link Property}
- * @param doubleValue double the new value to set
- */
- protected void setPropertyValueAsDouble(String propertyName, double doubleValue) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- p.setValue(doubleValue);
- } else {
- addProperty(new Property(propertyName, doubleValue));
- }
- }
-
- /**
- * Returns the value of the {@link Property} with the given name as {@link Integer}.
- *
- * @param propertyName
- * @return
- */
- protected Integer getPropertyValueAsInteger(String propertyName) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- Object value = p.getValue();
- if (value instanceof Integer) {
- return (Integer) value;
- } else if (value instanceof Double) {
- Double doubleValue = (Double) value;
- return doubleValue.intValue();
- } else if (value instanceof String) {
- return Integer.parseInt(value.toString());
- }
- }
- return null;
- }
-
- /**
- * Sets the value of the {@link Property} with the given name to the intState.
- *
- * @param propertyName String the name of the {@link Property}
- * @param intValue int the new value to set
- */
- protected void setPropertyValueAsInteger(String propertyName, int intValue) {
- Property p = getPropertyMap().get(propertyName);
- if (p != null) {
- p.setValue(intValue);
- } else {
- addProperty(new Property(propertyName, intValue));
- }
- }
-
- /**
- * Returns a {@link HashMap} with the name as key and {@link Property} as value.
- *
- * @param propertyList
- * @return
- */
- public static HashMap getHashMap(List propertyList) {
- HashMap map = new HashMap<>();
- for (Property p : propertyList) {
- map.put(p.getName(), p);
- }
- return map;
- }
-
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/SHCInfo.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/SHCInfo.java
deleted file mode 100644
index 6eff21d714a1b..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/SHCInfo.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity;
-
-import java.util.List;
-
-import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
-
-import com.google.api.client.util.Key;
-
-/**
- * Special data structure, which is returned on session initialization by the innogy API.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public class SHCInfo {
-
- @Key("CurrentConfigurationVersion")
- public long currentConfigurationVersion;
-
- @Key("Data")
- public List deviceList;
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/CapabilityLink.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/StatusResponse.java
similarity index 59%
rename from bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/CapabilityLink.java
rename to bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/StatusResponse.java
index cd2c623997190..d98c640a2c5b6 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/CapabilityLink.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/StatusResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,20 +10,18 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.innogysmarthome.internal.client.entity.link;
+package org.openhab.binding.innogysmarthome.internal.client.entity;
-import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.Gateway;
/**
- * Defines a {@link Link} to a {@link Capability}
+ * Defines the structure of the status response
*
* @author Oliver Kuhl - Initial contribution
*/
-public class CapabilityLink extends Link {
- public static final String LINK_BASE = "/capability/";
-
- @Override
- public String getId() {
- return getValue().replace(LINK_BASE, "");
- }
+public class StatusResponse {
+ /**
+ * The innogy SmartHome gateway. Can be null in case there is no registered for the current logged in user.
+ */
+ public Gateway gateway;
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/Action.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/Action.java
index 48768e95cedf4..bda0602feef25 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/Action.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/Action.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,13 +12,8 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity.action;
-import java.util.List;
-
import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-import com.google.api.client.util.Key;
-import com.google.gson.annotations.SerializedName;
-
/**
* Implements the Action structure needed to send JSON actions to the innogy backend. They are used to e.g. switch the
* state of a device.
@@ -27,23 +22,41 @@
*/
public class Action {
- public static final String ACTION_TYPE_SETSTATE = "device/SHC.RWE/1.0/action/SetState";
+ public static final String ACTION_TYPE_SETSTATE = "SetState";
+ private static final String NAMESPACE_CORE_RWE = "core.RWE";
- @Key("type")
+ /**
+ * Specifies the type of the action.
+ */
private String type;
- @Key("Link")
- @SerializedName("Link")
- private Link capabilityLink;
+ /**
+ * Link to the entity supposed to execute the action.
+ */
+ private String target;
+
+ /**
+ * The product (context) that should handle (execute) the action. Defaults to {@link Action#NAMESPACE_CORE_RWE}.
+ */
+ private String namespace = NAMESPACE_CORE_RWE;
- @Key("Data")
- @SerializedName("Data")
- private List parameterList;
+ /**
+ * Dictionary of functions required for the intended execution of the action.
+ */
+ private ActionParams params;
+ /**
+ * Default constructor, used by serialization.
+ */
public Action() {
// used by serialization
}
+ /**
+ * Sets the type of the action. Usual action type is {@link Action#ACTION_TYPE_SETSTATE}.
+ *
+ * @param type
+ */
public Action(String type) {
this.type = type;
}
@@ -63,40 +76,54 @@ public void setType(String type) {
}
/**
- * @return the capabilityLink
+ * @return the link to the target capability
+ */
+ public String getTarget() {
+ return target;
+ }
+
+ /**
+ * @param target the link to the target capability to set
+ */
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ /**
+ * @return the namespace
*/
- public Link getCapabilityLink() {
- return capabilityLink;
+ public String getNamespace() {
+ return namespace;
}
/**
- * @param capabilityLink the capabilityLink to set
+ * @param namespace the namespace to set
*/
- public void setCapabilityLink(Link capabilityLink) {
- this.capabilityLink = capabilityLink;
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
}
/**
- * Sets the capability link to the given capability id.
+ * Sets the link target to the given capability id.
*
* @param capabilityId String with the 32 character long id
*/
- public void setCapabilityLink(String capabilityId) {
- setCapabilityLink(new Link("/capability/" + capabilityId));
+ public void setTargetCapabilityById(String capabilityId) {
+ setTarget(Link.LINK_TYPE_CAPABILITY + capabilityId);
}
/**
- * @return the parameterList
+ * @return the params
*/
- public List getParameterList() {
- return parameterList;
+ public ActionParams getParams() {
+ return params;
}
/**
- * @param parameterList the parameterList to set
+ * @param params the params to set
*/
- public void setParameterList(List parameterList) {
- this.parameterList = parameterList;
+ public void setParams(ActionParams params) {
+ this.params = params;
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParams.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParams.java
new file mode 100644
index 0000000000000..7d415a32ca320
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParams.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+/**
+ * Defines the {@link ActionParams} data structure needed to pass parameters within an {@link Action} to the innogy
+ * SmartHome backend.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class ActionParams {
+
+ private BooleanActionParam onState;
+
+ private BooleanActionParam value;
+
+ private DoubleActionParam pointTemperature;
+
+ private IntegerActionParam dimLevel;
+
+ private IntegerActionParam shutterLevel;
+
+ private StringActionParam operationMode;
+
+ /**
+ * @return the onState
+ */
+ public BooleanActionParam getOnState() {
+ return onState;
+ }
+
+ /**
+ * @param state the state to set
+ */
+ public void setOnState(BooleanActionParam state) {
+ this.onState = state;
+ }
+
+ /**
+ * @return the onState
+ */
+ public BooleanActionParam getValue() {
+ return value;
+ }
+
+ /**
+ * @param state the state to set
+ */
+ public void setValue(BooleanActionParam state) {
+ this.value = state;
+ }
+
+ /**
+ * @return the pointTemperature
+ */
+ public DoubleActionParam getPointTemperature() {
+ return pointTemperature;
+ }
+
+ /**
+ * @param pointTemperature the pointTemperature to set
+ */
+ public void setPointTemperature(DoubleActionParam pointTemperature) {
+ this.pointTemperature = pointTemperature;
+ }
+
+ /**
+ * @return the dimLevel
+ */
+ public IntegerActionParam getDimLevel() {
+ return dimLevel;
+ }
+
+ /**
+ * @param dimLevel the dimLevel to set
+ */
+ public void setDimLevel(IntegerActionParam dimLevel) {
+ this.dimLevel = dimLevel;
+ }
+
+ /**
+ * @return the shutterLevel
+ */
+ public IntegerActionParam getShutterLevel() {
+ return shutterLevel;
+ }
+
+ /**
+ * @param shutterLevel the shutterLevel to set
+ */
+ public void setShutterLevel(IntegerActionParam shutterLevel) {
+ this.shutterLevel = shutterLevel;
+ }
+
+ /**
+ * @return the operationMode
+ */
+ public StringActionParam getOperationMode() {
+ return operationMode;
+ }
+
+ /**
+ * @param operationMode the operationMode to set
+ */
+ public void setOperationMode(StringActionParam operationMode) {
+ this.operationMode = operationMode;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/BooleanActionParam.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/BooleanActionParam.java
new file mode 100644
index 0000000000000..193bba3788567
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/BooleanActionParam.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+/**
+ * Defines the structure of a {@link BooleanActionParam}.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class BooleanActionParam {
+
+ private String type;
+
+ private boolean value;
+
+ /**
+ * @param type
+ * @param value
+ */
+ BooleanActionParam(String type, boolean value) {
+ this.type = type;
+ this.value = value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * @return the value
+ */
+ public boolean isValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(boolean value) {
+ this.value = value;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/DoubleActionParam.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/DoubleActionParam.java
new file mode 100644
index 0000000000000..27c9176e0ea48
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/DoubleActionParam.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+/**
+ * Defines the structure of a {@link DoubleActionParam}.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class DoubleActionParam {
+
+ private String type;
+
+ private double value;
+
+ /**
+ * @param type
+ * @param value
+ */
+ DoubleActionParam(String type, double value) {
+ this.type = type;
+ this.value = value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * @return the value
+ */
+ public double isValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(double value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/IntegerActionParam.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/IntegerActionParam.java
new file mode 100644
index 0000000000000..28d58a4db7870
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/IntegerActionParam.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+/**
+ * Defines the structure of a {@link IntegerActionParam}.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class IntegerActionParam {
+
+ private String type;
+
+ private int value;
+
+ /**
+ * @param type
+ * @param value
+ */
+ IntegerActionParam(String type, int value) {
+ this.type = type;
+ this.value = value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * @return the value
+ */
+ public int isValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/SetStateAction.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/SetStateAction.java
deleted file mode 100644
index c21e365390d16..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/SetStateAction.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity.action;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.openhab.binding.innogysmarthome.internal.client.entity.Constant;
-import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
-
-/**
- * Special {@link Action} needed to set a state of a device.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public class SetStateAction extends Action {
-
- public static final String ACTION_PARAMETER_SWITCHACTUATOR_ONSTATE = "OnState";
- public static final String ACTION_PARAMETER_VARIABLEACTUATOR_VALUE = "Value";
- public static final String ACTION_PARAMETER_THERMOSTATACTUATOR_POINTTEMPERATURE = "PointTemperature";
- public static final String ACTION_PARAMETER_THERMOSTATACTUATOR_OPERATIONMODE = "OperationMode";
- public static final String ACTION_PARAMETER_ALARMACTUATOR_ONSTATE = "OnState";
- public static final String ACTION_PARAMETER_DIMMERACTUATOR_VALUE = "DimLevel";
- public static final String ACTION_PARAMETER_ROLLERSHUTTERACTUATOR_VALUE = "ShutterLevel";
-
- /**
- * Constructs a new {@link SetStateAction}.
- *
- * @param capabilityId String of the 32 character capability id
- * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_SWITCHACTUATOR} or
- * {@link Capability#TYPE_VARIABLEACTUATOR}
- * @param state the new state as boolean (true=on, false=off)
- */
- public SetStateAction(String capabilityId, String capabilityType, boolean state) {
- super(ACTION_TYPE_SETSTATE);
- setCapabilityLink(capabilityId);
-
- List parameterList = new ArrayList<>();
-
- if (capabilityType.equals(Capability.TYPE_SWITCHACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_SWITCHACTUATOR_ONSTATE, "/entity/Constant",
- new Constant(state)));
- } else if (capabilityType.equals(Capability.TYPE_VARIABLEACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_VARIABLEACTUATOR_VALUE, "/entity/Constant",
- new Constant(state)));
- } else if (capabilityType.equals(Capability.TYPE_ALARMACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_ALARMACTUATOR_ONSTATE, "/entity/Constant",
- new Constant(state)));
- }
- setParameterList(parameterList);
- }
-
- /**
- * Constructs a new {@link SetStateAction}.
- *
- * @param capabilityId String of the 32 character capability id
- * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_THERMOSTATACTUATOR}
- * @param newValue the new double value
- */
- public SetStateAction(String capabilityId, String capabilityType, double newValue) {
- super(ACTION_TYPE_SETSTATE);
- setCapabilityLink(capabilityId);
-
- List parameterList = new ArrayList<>();
-
- if (capabilityType.equals(Capability.TYPE_THERMOSTATACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_THERMOSTATACTUATOR_POINTTEMPERATURE,
- "/entity/Constant", new Constant(newValue)));
- }
- setParameterList(parameterList);
- }
-
- /**
- * Constructs a new {@link SetStateAction}.
- *
- * @param capabilityId String of the 32 character capability id
- * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_DIMMERACTUATOR}
- * @param newValue the new int value
- */
- public SetStateAction(String capabilityId, String capabilityType, int newValue) {
- super(ACTION_TYPE_SETSTATE);
- setCapabilityLink(capabilityId);
-
- List parameterList = new ArrayList<>();
-
- if (capabilityType.equals(Capability.TYPE_DIMMERACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_DIMMERACTUATOR_VALUE, "/entity/Constant",
- new Constant(newValue)));
- } else if (capabilityType.equals(Capability.TYPE_ROLLERSHUTTERACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_ROLLERSHUTTERACTUATOR_VALUE, "/entity/Constant",
- new Constant(newValue)));
- }
-
- setParameterList(parameterList);
- }
-
- /**
- * Constructs a new {@link SetStateAction}.
- *
- * @param capabilityId String of the 32 character capability id
- * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_THERMOSTATACTUATOR}
- * @param newValue the new string value
- */
- public SetStateAction(String capabilityId, String capabilityType, String newValue) {
- super(ACTION_TYPE_SETSTATE);
- setCapabilityLink(capabilityId);
-
- List parameterList = new ArrayList<>();
-
- if (capabilityType.equals(Capability.TYPE_THERMOSTATACTUATOR)) {
- parameterList.add(new ActionParameter(ACTION_PARAMETER_THERMOSTATACTUATOR_OPERATIONMODE, "/entity/Constant",
- new Constant(newValue)));
- }
- setParameterList(parameterList);
- }
-
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StateActionSetter.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StateActionSetter.java
new file mode 100644
index 0000000000000..e8f81afc5b27f
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StateActionSetter.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+
+/**
+ * Special {@link Action} needed to set a state of a device.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class StateActionSetter extends Action {
+
+ private static final String CONSTANT = "Constant";
+
+ /**
+ * Constructs a new {@link StateActionSetter}.
+ *
+ * @param capabilityId String of the 32 character capability id
+ * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_SWITCHACTUATOR} or
+ * {@link Capability#TYPE_VARIABLEACTUATOR}
+ * @param state the new state as boolean (true=on, false=off)
+ */
+ public StateActionSetter(String capabilityId, String capabilityType, boolean state) {
+ setType(ACTION_TYPE_SETSTATE);
+ setTargetCapabilityById(capabilityId);
+ final ActionParams params = new ActionParams();
+
+ if (Capability.TYPE_SWITCHACTUATOR.equals(capabilityType)) {
+ params.setOnState(new BooleanActionParam(CONSTANT, state));
+ } else if (Capability.TYPE_VARIABLEACTUATOR.equals(capabilityType)) {
+ params.setValue(new BooleanActionParam(CONSTANT, state));
+ } else if (Capability.TYPE_ALARMACTUATOR.equals(capabilityType)) {
+ params.setOnState(new BooleanActionParam(CONSTANT, state));
+ }
+ setParams(params);
+ }
+
+ /**
+ * Constructs a new {@link StateActionSetter}.
+ *
+ * @param capabilityId String of the 32 character capability id
+ * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_THERMOSTATACTUATOR}
+ * @param newValue the new double value
+ */
+ public StateActionSetter(String capabilityId, String capabilityType, double newValue) {
+ setType(ACTION_TYPE_SETSTATE);
+ setTargetCapabilityById(capabilityId);
+ final ActionParams params = new ActionParams();
+
+ if (Capability.TYPE_THERMOSTATACTUATOR.equals(capabilityType)) {
+ params.setPointTemperature(new DoubleActionParam(CONSTANT, newValue));
+ }
+ setParams(params);
+ }
+
+ /**
+ * Constructs a new {@link StateActionSetter}.
+ *
+ * @param capabilityId String of the 32 character capability id
+ * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_DIMMERACTUATOR}
+ * @param newValue the new int value
+ */
+ public StateActionSetter(String capabilityId, String capabilityType, int newValue) {
+ setType(ACTION_TYPE_SETSTATE);
+ setTargetCapabilityById(capabilityId);
+ final ActionParams params = new ActionParams();
+
+ if (Capability.TYPE_DIMMERACTUATOR.equals(capabilityType)) {
+ params.setDimLevel(new IntegerActionParam(CONSTANT, newValue));
+ } else if (Capability.TYPE_ROLLERSHUTTERACTUATOR.equals(capabilityType)) {
+ params.setShutterLevel(new IntegerActionParam(CONSTANT, newValue));
+ }
+
+ setParams(params);
+ }
+
+ /**
+ * Constructs a new {@link StateActionSetter}.
+ *
+ * @param capabilityId String of the 32 character capability id
+ * @param capabilityType the type of the {@link Capability}, {@link Capability#TYPE_THERMOSTATACTUATOR}
+ * @param newValue the new string value
+ */
+ public StateActionSetter(String capabilityId, String capabilityType, String newValue) {
+ setType(ACTION_TYPE_SETSTATE);
+ setTargetCapabilityById(capabilityId);
+ final ActionParams params = new ActionParams();
+
+ if (Capability.TYPE_THERMOSTATACTUATOR.equals(capabilityType)) {
+ params.setOperationMode(new StringActionParam(CONSTANT, newValue));
+ }
+ setParams(params);
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StringActionParam.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StringActionParam.java
new file mode 100644
index 0000000000000..4667006178c28
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/StringActionParam.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.action;
+
+/**
+ * Defines the structure of a {@link StringActionParam}.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class StringActionParam {
+
+ private String type;
+
+ private String value;
+
+ /**
+ * @param type
+ * @param value
+ */
+ StringActionParam(String type, String value) {
+ this.type = type;
+ this.value = value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * @return the value
+ */
+ public String isValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/Capability.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/Capability.java
index a0e65782b70f5..adeae06a1bb29 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/Capability.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/Capability.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,24 +12,13 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity.capability;
-import java.util.List;
-
-import org.openhab.binding.innogysmarthome.internal.client.entity.ConfigPropertyList;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-import org.openhab.binding.innogysmarthome.internal.client.entity.state.CapabilityState;
-
-import com.google.api.client.util.Key;
-
/**
* Defines the structure of a {@link Capability}. A capability is a specific functionality of a device like a
* temperature sensor.
*
* @author Oliver Kuhl - Initial contribution
*/
-public class Capability extends ConfigPropertyList {
-
- private static final String CONFIG_PROPERTY_ACTIVITY_LOG_ACTIVE = "ActivityLogActive";
- private static final String CONFIG_PROPERTY_PUSH_BUTTONS = "PushButtons";
+public class Capability {
/** capability types */
public static final String TYPE_SWITCHACTUATOR = "SwitchActuator";
@@ -56,29 +45,22 @@ public class Capability extends ConfigPropertyList {
/**
* Unique id for the Capability.
*/
- @Key("id")
private String id;
/**
* Type of the capability – must be unique per device, since the device links to the capability via the type.
*/
- @Key("type")
private String type;
/**
- * Link to the metadata of that specific capability. The link should be complete and can be followed without further
- * additions. In the instance of a capability, the Link will point to the actual instance of the underlying device.
- *
- * Optional.
+ * Contains the link to the parent device, which offers the capability.
*/
- @Key("desc")
- private String desc;
+ private String device;
/**
- * Contain the link to the parent device, which offers the capability.
+ * This represents a container of all configuration properties.
*/
- @Key("Device")
- private List deviceLink;
+ private CapabilityConfig config;
private CapabilityState capabilityState;
@@ -111,31 +93,31 @@ public void setType(String type) {
}
/**
- * @return the desc
+ * @return
*/
- public String getDesc() {
- return desc;
+ public String getDeviceLink() {
+ return device;
}
/**
- * @param desc the desc to set
+ * @param deviceLink
*/
- public void setDesc(String desc) {
- this.desc = desc;
+ public void setDeviceLink(String deviceLink) {
+ this.device = deviceLink;
}
/**
- * @return
+ * @return the config
*/
- public List getDeviceLink() {
- return deviceLink;
+ public CapabilityConfig getConfig() {
+ return config;
}
/**
- * @param deviceLink
+ * @param config the config to set
*/
- public void setDeviceLink(List deviceLink) {
- this.deviceLink = deviceLink;
+ public void setConfig(CapabilityConfig config) {
+ this.config = config;
}
/**
@@ -161,7 +143,7 @@ public void setCapabilityState(CapabilityState capabilityState) {
* @return
*/
public boolean hasState() {
- return capabilityState != null;
+ return (capabilityState != null) && (capabilityState.getState() != null);
}
/**
@@ -169,9 +151,8 @@ public boolean hasState() {
*
* @return
*/
- @Override
public String getName() {
- return getPropertyValueAsString(CONFIG_PROPERTY_NAME);
+ return getConfig().getName();
}
/**
@@ -180,7 +161,7 @@ public String getName() {
* @return boolean or null, if the {@link Capability} does not have this property.
*/
public boolean getActivityLogActive() {
- return getPropertyValueAsBoolean(CONFIG_PROPERTY_ACTIVITY_LOG_ACTIVE);
+ return getConfig().getActivityLogActive();
}
/**
@@ -189,7 +170,7 @@ public boolean getActivityLogActive() {
* @return int or null, if the {@link Capability} does not have this property.
*/
public int getPushButtons() {
- return getPropertyValueAsInteger(CONFIG_PROPERTY_PUSH_BUTTONS);
+ return getConfig().getPushButtons();
}
/**
@@ -198,7 +179,7 @@ public int getPushButtons() {
* @return
*/
public boolean isTypeVariableActuator() {
- return getType().equals(TYPE_VARIABLEACTUATOR);
+ return TYPE_VARIABLEACTUATOR.equals(getType());
}
/**
@@ -207,7 +188,7 @@ public boolean isTypeVariableActuator() {
* @return
*/
public boolean isTypeSwitchActuator() {
- return getType().equals(TYPE_SWITCHACTUATOR);
+ return TYPE_SWITCHACTUATOR.equals(getType());
}
/**
@@ -216,7 +197,7 @@ public boolean isTypeSwitchActuator() {
* @return
*/
public boolean isTypeThermostatActuator() {
- return getType().equals(TYPE_THERMOSTATACTUATOR);
+ return TYPE_THERMOSTATACTUATOR.equals(getType());
}
/**
@@ -225,7 +206,7 @@ public boolean isTypeThermostatActuator() {
* @return
*/
public boolean isTypeTemperatureSensor() {
- return getType().equals(TYPE_TEMPERATURESENSOR);
+ return TYPE_TEMPERATURESENSOR.equals(getType());
}
/**
@@ -234,7 +215,7 @@ public boolean isTypeTemperatureSensor() {
* @return
*/
public boolean isTypeHumiditySensor() {
- return getType().equals(TYPE_HUMIDITYSENSOR);
+ return TYPE_HUMIDITYSENSOR.equals(getType());
}
/**
@@ -243,7 +224,7 @@ public boolean isTypeHumiditySensor() {
* @return
*/
public boolean isTypeWindowDoorSensor() {
- return getType().equals(TYPE_WINDOWDOORSENSOR);
+ return TYPE_WINDOWDOORSENSOR.equals(getType());
}
/**
@@ -252,7 +233,7 @@ public boolean isTypeWindowDoorSensor() {
* @return
*/
public boolean isTypeSmokeDetectorSensor() {
- return getType().equals(TYPE_SMOKEDETECTORSENSOR);
+ return TYPE_SMOKEDETECTORSENSOR.equals(getType());
}
/**
@@ -261,7 +242,7 @@ public boolean isTypeSmokeDetectorSensor() {
* @return
*/
public boolean isTypeAlarmActuator() {
- return getType().equals(TYPE_ALARMACTUATOR);
+ return TYPE_ALARMACTUATOR.equals(getType());
}
/**
@@ -270,7 +251,7 @@ public boolean isTypeAlarmActuator() {
* @return
*/
public boolean isTypeMotionDetectionSensor() {
- return getType().equals(TYPE_MOTIONDETECTIONSENSOR);
+ return TYPE_MOTIONDETECTIONSENSOR.equals(getType());
}
/**
@@ -279,7 +260,7 @@ public boolean isTypeMotionDetectionSensor() {
* @return
*/
public boolean isTypeLuminanceSensor() {
- return getType().equals(TYPE_LUMINANCESENSOR);
+ return TYPE_LUMINANCESENSOR.equals(getType());
}
/**
@@ -288,7 +269,7 @@ public boolean isTypeLuminanceSensor() {
* @return
*/
public boolean isTypePushButtonSensor() {
- return getType().equals(TYPE_PUSHBUTTONSENSOR);
+ return TYPE_PUSHBUTTONSENSOR.equals(getType());
}
/**
@@ -297,7 +278,7 @@ public boolean isTypePushButtonSensor() {
* @return
*/
public boolean isTypeDimmerActuator() {
- return getType().equals(TYPE_DIMMERACTUATOR);
+ return TYPE_DIMMERACTUATOR.equals(getType());
}
/**
@@ -306,7 +287,7 @@ public boolean isTypeDimmerActuator() {
* @return
*/
public boolean isTypeRollerShutterActuator() {
- return getType().equals(TYPE_ROLLERSHUTTERACTUATOR);
+ return TYPE_ROLLERSHUTTERACTUATOR.equals(getType());
}
/**
@@ -315,7 +296,7 @@ public boolean isTypeRollerShutterActuator() {
* @return
*/
public boolean isTypeEnergyConsumptionSensor() {
- return getType().equals(TYPE_ENERGYCONSUMPTIONSENSOR);
+ return TYPE_ENERGYCONSUMPTIONSENSOR.equals(getType());
}
/**
@@ -324,7 +305,7 @@ public boolean isTypeEnergyConsumptionSensor() {
* @return
*/
public boolean isTypePowerConsumptionSensor() {
- return getType().equals(TYPE_POWERCONSUMPTIONSENSOR);
+ return TYPE_POWERCONSUMPTIONSENSOR.equals(getType());
}
/**
@@ -333,7 +314,7 @@ public boolean isTypePowerConsumptionSensor() {
* @return
*/
public boolean isTypeGenerationMeterEnergySensor() {
- return getType().equals(TYPE_GENERATIONMETERENERGYSENSOR);
+ return TYPE_GENERATIONMETERENERGYSENSOR.equals(getType());
}
/**
@@ -342,7 +323,7 @@ public boolean isTypeGenerationMeterEnergySensor() {
* @return
*/
public boolean isTypeGenerationMeterPowerConsumptionSensor() {
- return getType().equals(TYPE_GENERATIONMETERPOWERCONSUMPTIONSENSOR);
+ return TYPE_GENERATIONMETERPOWERCONSUMPTIONSENSOR.equals(getType());
}
/**
@@ -351,7 +332,7 @@ public boolean isTypeGenerationMeterPowerConsumptionSensor() {
* @return
*/
public boolean isTypeTwoWayMeterEnergyConsumptionSensor() {
- return getType().equals(TYPE_TWOWAYMETERENERGYCONSUMPTIONSENSOR);
+ return TYPE_TWOWAYMETERENERGYCONSUMPTIONSENSOR.equals(getType());
}
/**
@@ -360,7 +341,7 @@ public boolean isTypeTwoWayMeterEnergyConsumptionSensor() {
* @return
*/
public boolean isTypeTwoWayMeterEnergyFeedSensor() {
- return getType().equals(TYPE_TWOWAYMETERENERGYFEEDSENSOR);
+ return TYPE_TWOWAYMETERENERGYFEEDSENSOR.equals(getType());
}
/**
@@ -369,6 +350,6 @@ public boolean isTypeTwoWayMeterEnergyFeedSensor() {
* @return
*/
public boolean isTypeTwoWayMeterPowerConsumptionSensor() {
- return getType().equals(TYPE_TWOWAYMETERPOWERCONSUMPTIONSENSOR);
+ return TYPE_TWOWAYMETERPOWERCONSUMPTIONSENSOR.equals(getType());
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityConfig.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityConfig.java
new file mode 100644
index 0000000000000..5ec8893586112
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityConfig.java
@@ -0,0 +1,639 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.capability;
+
+/**
+ * Holds the Capability configuration.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class CapabilityConfig {
+
+ /**
+ * Name of the capability
+ */
+ private String name;
+
+ /**
+ * Specifies if the activity logging is enabled
+ */
+ private Boolean activityLogActive;
+
+ /**
+ * Specifies if the activity logging is enabled
+ */
+ private Integer pushButtons;
+
+ /**
+ * The valve index
+ */
+ private Integer valveIndex;
+
+ /**
+ * The valve type
+ */
+ private String valveType;
+
+ /**
+ * The valve control mode: Heating or Cooling
+ */
+ private String controlMode;
+
+ /**
+ * Dimmer: Programmed on the device as maximum/minimum and not used for UI representation
+ */
+ private Integer technicalMaxValue;
+
+ /**
+ * Dimmer: Programmed on the device as maximum/minimum and not used for UI representation
+ */
+ private Integer technicalMinValue;
+
+ /**
+ * Rollershutter: How long it takes for the shutter to open completely when it's completely closed (in tenth of
+ * second)
+ */
+ private Integer timeFullUp;
+
+ /**
+ * Rollershutter: How long it takes for the shutter to close completely when it's completely open (in tenth of
+ * second)
+ */
+ private Integer timeFullDown;
+
+ /**
+ * Rollershutter: Flag indicating the ISR is in the calibration mode or not.
+ */
+ private Boolean isCalibrating;
+
+ /**
+ * Switchactuator:
+ * "different types of current sensing behavior the ISS can have:
+ * Enabled - Factory default value, current sensing is enabled; (default)
+ * DisabledNormal - Current sensing disabled, uses output 1;
+ * DisabledReversed - Current sensing disabled, uses output 2"
+ */
+ private String sensingBehavior;
+
+ /**
+ * Thermostatactuator: The max temperature
+ */
+ private Double maxTemperature;
+
+ /**
+ * Thermostatactuator: The min temperature
+ */
+ private Double minTemperature;
+
+ /**
+ * Thermostatactuator: Indicating whether the device is locked
+ */
+ private Boolean childLock;
+
+ /**
+ * Thermostatactuator: The window open temperature
+ */
+ private Double windowOpenTemperature;
+
+ /**
+ * Thermostatactuator: default PointTemperature
+ */
+ private String vRCCSetPoint;
+
+ /**
+ * Temperaturesensor: Indicating whether the device has freeze protection activated
+ */
+ private Boolean isFreezeProtectionActivated;
+
+ /**
+ * Temperaturesensor: The freeze protection temperature, default 6 °C
+ */
+ private Double freezeProtection;
+
+ /**
+ * Temperaturesensor: default Temperature
+ */
+ private String vRCCTemperature;
+
+ /**
+ * HumiditySensor: Indicating whether the device has mold protection activated
+ */
+ private Boolean isMoldProtectionActivated;
+
+ /**
+ * HumiditySensor: The humidity mold protection
+ */
+ private Double humidityMoldProtection;
+
+ /**
+ * HumiditySensor: default Humidity
+ */
+ private String vRCCHumidity;
+
+ /**
+ * SirenActuator: Alarm Sound Id
+ */
+ private String alarmSoundId;
+
+ /**
+ * SirenActuator: Notification Sound Id
+ */
+ private String notificationSoundId;
+
+ /**
+ * SirenActuator: Feedback Sound Id
+ */
+ private String feedbackSoundId;
+
+ /**
+ * RoomSetPoint/RoomTemperature/RoomHumidity: List of capability ids, which are linked to the VRCC
+ */
+ private String underlyingCapabilityIds;
+
+ /**
+ * WindowsDoorSensor: Time before the changed status is sent after the window/door is opened (in seconds)
+ */
+ private Integer eventFilterTime;
+
+ /**
+ * Medion ThermostatActuator: Specifies the temperature threshold that will denote a window open event. 0 = window
+ * reduction disabled 1-12 = 1/12 °C, 2/12 °C,…, 12/12 °C
+ */
+ private Integer windowOpenThreshold;
+
+ /**
+ * Medion ThermostatActuator: Duration in minutes for how long after the threshold was overstepped the valve will be
+ * closed (target temperature = OFF). After the set time, the temperature will jump back to the previous set target
+ * temperature.
+ */
+ private Integer windowOpenTimer;
+
+ /**
+ * Medion MotionDetectionSensor sensitivityControl
+ */
+ private Integer sensitivityControl;
+
+ /**
+ * Medion WindowDoorShockSensor: shockDetectorThreshold
+ */
+ private Integer shockDetectorThreshold;
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the activityLogActive
+ */
+ public Boolean getActivityLogActive() {
+ return activityLogActive;
+ }
+
+ /**
+ * @param activityLogActive the activityLogActive to set
+ */
+ public void setActivityLogActive(final Boolean activityLogActive) {
+ this.activityLogActive = activityLogActive;
+ }
+
+ /**
+ * @return the pushButtons
+ */
+ public Integer getPushButtons() {
+ return pushButtons;
+ }
+
+ /**
+ * @param pushButtons the pushButtons to set
+ */
+ public void setPushButtons(final Integer pushButtons) {
+ this.pushButtons = pushButtons;
+ }
+
+ /**
+ * @return the valveIndex
+ */
+ public Integer getValveIndex() {
+ return valveIndex;
+ }
+
+ /**
+ * @param valveIndex the valveIndex to set
+ */
+ public void setValveIndex(final Integer valveIndex) {
+ this.valveIndex = valveIndex;
+ }
+
+ /**
+ * @return the valveType
+ */
+ public String getValveType() {
+ return valveType;
+ }
+
+ /**
+ * @param valveType the valveType to set
+ */
+ public void setValveType(final String valveType) {
+ this.valveType = valveType;
+ }
+
+ /**
+ * @return the controlMode
+ */
+ public String getControlMode() {
+ return controlMode;
+ }
+
+ /**
+ * @param controlMode the controlMode to set
+ */
+ public void setControlMode(final String controlMode) {
+ this.controlMode = controlMode;
+ }
+
+ /**
+ * @return the technicalMaxValue
+ */
+ public Integer getTechnicalMaxValue() {
+ return technicalMaxValue;
+ }
+
+ /**
+ * @param technicalMaxValue the technicalMaxValue to set
+ */
+ public void setTechnicalMaxValue(final Integer technicalMaxValue) {
+ this.technicalMaxValue = technicalMaxValue;
+ }
+
+ /**
+ * @return the technicalMinValue
+ */
+ public Integer getTechnicalMinValue() {
+ return technicalMinValue;
+ }
+
+ /**
+ * @param technicalMinValue the technicalMinValue to set
+ */
+ public void setTechnicalMinValue(final Integer technicalMinValue) {
+ this.technicalMinValue = technicalMinValue;
+ }
+
+ /**
+ * @return the timeFullUp
+ */
+ public Integer getTimeFullUp() {
+ return timeFullUp;
+ }
+
+ /**
+ * @param timeFullUp the timeFullUp to set
+ */
+ public void setTimeFullUp(final Integer timeFullUp) {
+ this.timeFullUp = timeFullUp;
+ }
+
+ /**
+ * @return the timeFullDown
+ */
+ public Integer getTimeFullDown() {
+ return timeFullDown;
+ }
+
+ /**
+ * @param timeFullDown the timeFullDown to set
+ */
+ public void setTimeFullDown(final Integer timeFullDown) {
+ this.timeFullDown = timeFullDown;
+ }
+
+ /**
+ * @return the isCalibrating
+ */
+ public Boolean getIsCalibrating() {
+ return isCalibrating;
+ }
+
+ /**
+ * @param isCalibrating the isCalibrating to set
+ */
+ public void setIsCalibrating(final Boolean isCalibrating) {
+ this.isCalibrating = isCalibrating;
+ }
+
+ /**
+ * @return the sensingBehavior
+ */
+ public String getSensingBehavior() {
+ return sensingBehavior;
+ }
+
+ /**
+ * @param sensingBehavior the sensingBehavior to set
+ */
+ public void setSensingBehavior(final String sensingBehavior) {
+ this.sensingBehavior = sensingBehavior;
+ }
+
+ /**
+ * @return the maxTemperature
+ */
+ public Double getMaxTemperature() {
+ return maxTemperature;
+ }
+
+ /**
+ * @param maxTemperature the maxTemperature to set
+ */
+ public void setMaxTemperature(final Double maxTemperature) {
+ this.maxTemperature = maxTemperature;
+ }
+
+ /**
+ * @return the minTemperature
+ */
+ public Double getMinTemperature() {
+ return minTemperature;
+ }
+
+ /**
+ * @param minTemperature the minTemperature to set
+ */
+ public void setMinTemperature(final Double minTemperature) {
+ this.minTemperature = minTemperature;
+ }
+
+ /**
+ * @return the childLock
+ */
+ public Boolean getChildLock() {
+ return childLock;
+ }
+
+ /**
+ * @param childLock the childLock to set
+ */
+ public void setChildLock(final Boolean childLock) {
+ this.childLock = childLock;
+ }
+
+ /**
+ * @return the windowOpenTemperature
+ */
+ public Double getWindowOpenTemperature() {
+ return windowOpenTemperature;
+ }
+
+ /**
+ * @param windowOpenTemperature the windowOpenTemperature to set
+ */
+ public void setWindowOpenTemperature(final Double windowOpenTemperature) {
+ this.windowOpenTemperature = windowOpenTemperature;
+ }
+
+ /**
+ * @return the vRCCSetPoint
+ */
+ public String getvRCCSetPoint() {
+ return vRCCSetPoint;
+ }
+
+ /**
+ * @param vRCCSetPoint the vRCCSetPoint to set
+ */
+ public void setvRCCSetPoint(final String vRCCSetPoint) {
+ this.vRCCSetPoint = vRCCSetPoint;
+ }
+
+ /**
+ * @return the isFreezeProtectionActivated
+ */
+ public Boolean getIsFreezeProtectionActivated() {
+ return isFreezeProtectionActivated;
+ }
+
+ /**
+ * @param isFreezeProtectionActivated the isFreezeProtectionActivated to set
+ */
+ public void setIsFreezeProtectionActivated(final Boolean isFreezeProtectionActivated) {
+ this.isFreezeProtectionActivated = isFreezeProtectionActivated;
+ }
+
+ /**
+ * @return the freezeProtection
+ */
+ public Double getFreezeProtection() {
+ return freezeProtection;
+ }
+
+ /**
+ * @param freezeProtection the freezeProtection to set
+ */
+ public void setFreezeProtection(final Double freezeProtection) {
+ this.freezeProtection = freezeProtection;
+ }
+
+ /**
+ * @return the vRCCTemperature
+ */
+ public String getvRCCTemperature() {
+ return vRCCTemperature;
+ }
+
+ /**
+ * @param vRCCTemperature the vRCCTemperature to set
+ */
+ public void setvRCCTemperature(final String vRCCTemperature) {
+ this.vRCCTemperature = vRCCTemperature;
+ }
+
+ /**
+ * @return the isMoldProtectionActivated
+ */
+ public Boolean getIsMoldProtectionActivated() {
+ return isMoldProtectionActivated;
+ }
+
+ /**
+ * @param isMoldProtectionActivated the isMoldProtectionActivated to set
+ */
+ public void setIsMoldProtectionActivated(final Boolean isMoldProtectionActivated) {
+ this.isMoldProtectionActivated = isMoldProtectionActivated;
+ }
+
+ /**
+ * @return the humidityMoldProtection
+ */
+ public Double getHumidityMoldProtection() {
+ return humidityMoldProtection;
+ }
+
+ /**
+ * @param humidityMoldProtection the humidityMoldProtection to set
+ */
+ public void setHumidityMoldProtection(final Double humidityMoldProtection) {
+ this.humidityMoldProtection = humidityMoldProtection;
+ }
+
+ /**
+ * @return the vRCCHumidity
+ */
+ public String getvRCCHumidity() {
+ return vRCCHumidity;
+ }
+
+ /**
+ * @param vRCCHumidity the vRCCHumidity to set
+ */
+ public void setvRCCHumidity(final String vRCCHumidity) {
+ this.vRCCHumidity = vRCCHumidity;
+ }
+
+ /**
+ * @return the alarmSoundId
+ */
+ public String getAlarmSoundId() {
+ return alarmSoundId;
+ }
+
+ /**
+ * @param alarmSoundId the alarmSoundId to set
+ */
+ public void setAlarmSoundId(final String alarmSoundId) {
+ this.alarmSoundId = alarmSoundId;
+ }
+
+ /**
+ * @return the notificationSoundId
+ */
+ public String getNotificationSoundId() {
+ return notificationSoundId;
+ }
+
+ /**
+ * @param notificationSoundId the notificationSoundId to set
+ */
+ public void setNotificationSoundId(final String notificationSoundId) {
+ this.notificationSoundId = notificationSoundId;
+ }
+
+ /**
+ * @return the feedbackSoundId
+ */
+ public String getFeedbackSoundId() {
+ return feedbackSoundId;
+ }
+
+ /**
+ * @param feedbackSoundId the feedbackSoundId to set
+ */
+ public void setFeedbackSoundId(final String feedbackSoundId) {
+ this.feedbackSoundId = feedbackSoundId;
+ }
+
+ /**
+ * @return the underlyingCapabilityIds
+ */
+ public String getUnderlyingCapabilityIds() {
+ return underlyingCapabilityIds;
+ }
+
+ /**
+ * @param underlyingCapabilityIds the underlyingCapabilityIds to set
+ */
+ public void setUnderlyingCapabilityIds(final String underlyingCapabilityIds) {
+ this.underlyingCapabilityIds = underlyingCapabilityIds;
+ }
+
+ /**
+ * @return the eventFilterTime
+ */
+ public Integer getEventFilterTime() {
+ return eventFilterTime;
+ }
+
+ /**
+ * @param eventFilterTime the eventFilterTime to set
+ */
+ public void setEventFilterTime(final Integer eventFilterTime) {
+ this.eventFilterTime = eventFilterTime;
+ }
+
+ /**
+ * @return the windowOpenThreshold
+ */
+ public Integer getWindowOpenThreshold() {
+ return windowOpenThreshold;
+ }
+
+ /**
+ * @param windowOpenThreshold the windowOpenThreshold to set
+ */
+ public void setWindowOpenThreshold(final Integer windowOpenThreshold) {
+ this.windowOpenThreshold = windowOpenThreshold;
+ }
+
+ /**
+ * @return the windowOpenTimer
+ */
+ public Integer getWindowOpenTimer() {
+ return windowOpenTimer;
+ }
+
+ /**
+ * @param windowOpenTimer the windowOpenTimer to set
+ */
+ public void setWindowOpenTimer(final Integer windowOpenTimer) {
+ this.windowOpenTimer = windowOpenTimer;
+ }
+
+ /**
+ * @return the sensitivityControl
+ */
+ public Integer getSensitivityControl() {
+ return sensitivityControl;
+ }
+
+ /**
+ * @param sensitivityControl the sensitivityControl to set
+ */
+ public void setSensitivityControl(final Integer sensitivityControl) {
+ this.sensitivityControl = sensitivityControl;
+ }
+
+ /**
+ * @return the shockDetectorThreshold
+ */
+ public Integer getShockDetectorThreshold() {
+ return shockDetectorThreshold;
+ }
+
+ /**
+ * @param shockDetectorThreshold the shockDetectorThreshold to set
+ */
+ public void setShockDetectorThreshold(final Integer shockDetectorThreshold) {
+ this.shockDetectorThreshold = shockDetectorThreshold;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityState.java
new file mode 100644
index 0000000000000..9c280a234f62f
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/CapabilityState.java
@@ -0,0 +1,407 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.capability;
+
+/**
+ * Defines the {@link CapabilityState}, that holds the state of a {@link Capability}, e.g. a temperature.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class CapabilityState {
+
+ public static final String STATE_VALUE_OPERATION_MODE_AUTO = "Auto";
+ public static final String STATE_VALUE_OPERATION_MODE_MANUAL = "Manu";
+
+ /**
+ * id of the {@link Capability}
+ */
+ private String id;
+
+ /**
+ * class containing all states
+ */
+ private State state;
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the state
+ */
+ public State getState() {
+ return state;
+ }
+
+ /**
+ * @param state the state to set
+ */
+ public void setState(final State state) {
+ this.state = state;
+ }
+
+ public Boolean getVariableActuatorState() {
+ return getState().getValueState().getValue();
+ }
+
+ public void setVariableActuatorState(final Boolean on) {
+ getState().getValueState().setValue(on);
+ }
+
+ public Boolean getSwitchActuatorState() {
+ return getState().getOnState().getValue();
+ }
+
+ public void setSwitchActuatorState(final Boolean on) {
+ getState().getOnState().setValue(on);
+ }
+
+ public Double getTemperatureSensorTemperatureState() {
+ return getState().getTemperatureState().getValue();
+ }
+
+ public void setTemperatureSensorTemperatureState(final Double temperature) {
+ getState().getTemperatureState().setValue(temperature);
+ }
+
+ public Boolean getTemperatureSensorFrostWarningState() {
+ return getState().getFrostWarningState().getValue();
+ }
+
+ public void setTemperatureSensorFrostWarningState(final Boolean frostWarning) {
+ getState().getFrostWarningState().setValue(frostWarning);
+ }
+
+ public Double getThermostatActuatorPointTemperatureState() {
+ return getState().getPointTemperatureState().getValue();
+ }
+
+ public void setThermostatActuatorPointTemperatureState(final Double pointTemperature) {
+ getState().getPointTemperatureState().setValue(pointTemperature);
+ }
+
+ public String getThermostatActuatorOperationModeState() {
+ return getState().getOperationModeState().getValue();
+ }
+
+ public void setThermostatActuatorOperationModeState(final String operationMode) {
+ getState().getOperationModeState()
+ .setValue(STATE_VALUE_OPERATION_MODE_MANUAL.equals(operationMode) ? STATE_VALUE_OPERATION_MODE_MANUAL
+ : STATE_VALUE_OPERATION_MODE_AUTO);
+ }
+
+ public Boolean getThermostatActuatorWindowReductionActiveState() {
+ return getState().getWindowReductionActiveState().getValue();
+ }
+
+ public void setThermostatActuatorWindowReductionActiveState(final Boolean windowReductionActive) {
+ getState().getWindowReductionActiveState().setValue(windowReductionActive);
+ }
+
+ public Double getHumiditySensorHumidityState() {
+ return getState().getHumidityState().getValue();
+ }
+
+ public void setHumiditySensorHumidityState(final Double humidity) {
+ getState().getHumidityState().setValue(humidity);
+ }
+
+ public Boolean getHumiditySensorMoldWarningState() {
+ return getState().getMoldWarningState().getValue();
+ }
+
+ public void setHumiditySensorMoldWarningState(final Boolean moldWarning) {
+ getState().getMoldWarningState().setValue(moldWarning);
+ }
+
+ public Boolean getWindowDoorSensorState() {
+ return getState().getIsOpenState().getValue();
+ }
+
+ public void setWindowDoorSensorState(final Boolean open) {
+ getState().getIsOpenState().setValue(open);
+ }
+
+ public Boolean getSmokeDetectorSensorState() {
+ return getState().getIsSmokeAlarmState().getValue();
+ }
+
+ public void setSmokeDetectorSensorState(final Boolean on) {
+ getState().getIsSmokeAlarmState().setValue(on);
+ }
+
+ public Boolean getAlarmActuatorState() {
+ return getState().getOnState().getValue();
+ }
+
+ public void setAlarmActuatorState(final Boolean on) {
+ getState().getOnState().setValue(on);
+ }
+
+ public Integer getMotionDetectionSensorState() {
+ return getState().getMotionDetectedCountState().getValue();
+ }
+
+ public void setMotionDetectionSensorState(final Integer numberOfMotions) {
+ getState().getMotionDetectedCountState().setValue(numberOfMotions);
+ }
+
+ public Double getLuminanceSensorState() {
+ return getState().getLuminanceState().getValue();
+ }
+
+ public void setLuminanceSensorState(final Double luminance) {
+ getState().getLuminanceState().setValue(luminance);
+ }
+
+ public Integer getPushButtonSensorCounterState() {
+ return getState().getLastKeyPressCounterState().getValue();
+ }
+
+ public void setPushButtonSensorCounterState(final Integer numberOfPresses) {
+ getState().getLastKeyPressCounterState().setValue(numberOfPresses);
+ }
+
+ public Integer getPushButtonSensorButtonIndexState() {
+ return getState().getLastPressedButtonIndex().getValue();
+ }
+
+ public void setPushButtonSensorButtonIndexState(final Integer buttonIndex) {
+ getState().getLastPressedButtonIndex().setValue(buttonIndex);
+ }
+
+ public String getPushButtonSensorButtonIndexType() {
+ return getState().getLastKeyPressType().getValue();
+ }
+
+ public void setPushButtonSensorButtonIndexType(String lastKeyPressType) {
+ getState().getLastKeyPressType().setValue(lastKeyPressType);
+ }
+
+ public Integer getDimmerActuatorState() {
+ return getState().getDimLevelState().getValue();
+ }
+
+ public void setDimmerActuatorState(final Integer DimLevel) {
+ getState().getDimLevelState().setValue(DimLevel);
+ }
+
+ public Integer getRollerShutterActuatorState() {
+ return getState().getShutterLevelState().getValue();
+ }
+
+ public void setRollerShutterActuatorState(final Integer rollerShutterLevel) {
+ getState().getShutterLevelState().setValue(rollerShutterLevel);
+ }
+
+ // ENERGY CONSUMPTION SENSOR
+ public Double getEnergyConsumptionSensorEnergyConsumptionMonthKWhState() {
+ return getState().getEnergyConsumptionMonthKWhState().getValue();
+ }
+
+ public void setEnergyConsumptionSensorEnergyConsumptionMonthKWhState(final Double state) {
+ getState().getEnergyConsumptionMonthKWhState().setValue(state);
+ }
+
+ public Double getEnergyConsumptionSensorAbsoluteEnergyConsumptionState() {
+ return getState().getAbsoluteEnergyConsumptionState().getValue();
+ }
+
+ public void setEnergyConsumptionSensorAbsoluteEnergyConsumptionState(final Double state) {
+ getState().getAbsoluteEnergyConsumptionState().setValue(state);
+ }
+
+ public Double getEnergyConsumptionSensorEnergyConsumptionMonthEuroState() {
+ return getState().getEnergyConsumptionMonthEuroState().getValue();
+ }
+
+ public void setEnergyConsumptionSensorEnergyConsumptionMonthEuroState(final Double state) {
+ getState().getEnergyConsumptionMonthEuroState().setValue(state);
+ }
+
+ public Double getEnergyConsumptionSensorEnergyConsumptionDayEuroState() {
+ return getState().getEnergyConsumptionDayEuroState().getValue();
+ }
+
+ public void setEnergyConsumptionSensorEnergyConsumptionDayEuroState(final Double state) {
+ getState().getEnergyConsumptionDayEuroState().setValue(state);
+ }
+
+ public Double getEnergyConsumptionSensorEnergyConsumptionDayKWhState() {
+ return getState().getEnergyConsumptionDayKWhState().getValue();
+ }
+
+ public void setEnergyConsumptionSensorEnergyConsumptionDayKWhState(final Double state) {
+ getState().getEnergyConsumptionDayKWhState().setValue(state);
+ }
+
+ // POWER CONSUMPTION SENSOR
+ public Double getPowerConsumptionSensorPowerConsumptionWattState() {
+ return getState().getPowerConsumptionWattState().getValue();
+ }
+
+ public void setPowerConsumptionSensorPowerConsumptionWattState(final Double state) {
+ getState().getPowerConsumptionWattState().setValue(state);
+ }
+
+ // GENERATION METER ENGERY SENSOR
+ public Double getGenerationMeterEnergySensorEnergyPerMonthInKWhState() {
+ return getState().getEnergyPerMonthInKWhState().getValue();
+ }
+
+ public void setGenerationMeterEnergySensorEnergyPerMonthInKWhState(final Double state) {
+ getState().getEnergyPerMonthInKWhState().setValue(state);
+ }
+
+ public Double getGenerationMeterEnergySensorTotalEnergyState() {
+ return getState().getTotalEnergyState().getValue();
+ }
+
+ public void setGenerationMeterEnergySensorTotalEnergyState(final Double state) {
+ getState().getTotalEnergyState().setValue(state);
+ }
+
+ public Double getGenerationMeterEnergySensorEnergyPerMonthInEuroState() {
+ return getState().getEnergyPerMonthInEuroState().getValue();
+ }
+
+ public void setGenerationMeterEnergySensorEnergyPerMonthInEuroState(final Double state) {
+ getState().getEnergyPerMonthInEuroState().setValue(state);
+ }
+
+ public Double getGenerationMeterEnergySensorEnergyPerDayInEuroState() {
+ return getState().getEnergyPerDayInEuroState().getValue();
+ }
+
+ public void setGenerationMeterEnergySensorEnergyPerDayInEuroState(final Double state) {
+ getState().getEnergyPerDayInEuroState().setValue(state);
+ }
+
+ public Double getGenerationMeterEnergySensorEnergyPerDayInKWhState() {
+ return getState().getEnergyPerDayInKWhState().getValue();
+ }
+
+ public void setGenerationMeterEnergySensorEnergyPerDayInKWhState(final Double state) {
+ getState().getEnergyPerDayInKWhState().setValue(state);
+ }
+
+ // GENERATION METER POWER CONSUMPTION SENSOR
+ public Double getGenerationMeterPowerConsumptionSensorPowerInWattState() {
+ return getState().getPowerInWattState().getValue();
+ }
+
+ public void setGenerationMeterPowerConsumptionSensorPowerInWattState(final Double state) {
+ getState().getPowerInWattState().setValue(state);
+ }
+
+ // TWO WAY METER ENERGY CONSUMPTION SENSOR
+ public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState() {
+ return getState().getEnergyPerMonthInKWhState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState(final Double state) {
+ getState().getEnergyPerMonthInKWhState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyConsumptionSensorTotalEnergyState() {
+ return getState().getTotalEnergyState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyConsumptionSensorTotalEnergyState(final Double state) {
+ getState().getTotalEnergyState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState() {
+ return getState().getEnergyPerMonthInEuroState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState(final Double state) {
+ getState().getEnergyPerMonthInEuroState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState() {
+ return getState().getEnergyPerDayInEuroState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState(final Double state) {
+ getState().getEnergyPerDayInEuroState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState() {
+ return getState().getEnergyPerDayInKWhState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState(final Double state) {
+ getState().getEnergyPerDayInKWhState().setValue(state);
+ }
+
+ // TWO WAY METER ENERGY FEED SENSOR
+ public Double getTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState() {
+ return getState().getEnergyPerMonthInKWhState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState(final Double state) {
+ getState().getEnergyPerMonthInKWhState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyFeedSensorTotalEnergyState() {
+ return getState().getTotalEnergyState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyFeedSensorTotalEnergyState(final Double state) {
+ getState().getTotalEnergyState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState() {
+ return getState().getEnergyPerMonthInEuroState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState(final Double state) {
+ getState().getEnergyPerMonthInEuroState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState() {
+ return getState().getEnergyPerDayInEuroState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState(final Double state) {
+ getState().getEnergyPerDayInEuroState().setValue(state);
+ }
+
+ public Double getTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState() {
+ return getState().getEnergyPerDayInKWhState().getValue();
+ }
+
+ public void setTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState(final Double state) {
+ getState().getEnergyPerDayInKWhState().setValue(state);
+ }
+
+ // TWO WAY METER POWER CONSUMPTION SENSOR
+ public Double getTwoWayMeterPowerConsumptionSensorPowerInWattState() {
+ return getState().getPowerInWattState().getValue();
+ }
+
+ public void setTwoWayMeterPowerConsumptionSensorPowerInWattState(final Double state) {
+ getState().getPowerInWattState().setValue(state);
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/State.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/State.java
new file mode 100644
index 0000000000000..b89f096095e4b
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/capability/State.java
@@ -0,0 +1,757 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.capability;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.BooleanState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.DateTimeState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.DoubleState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.IntegerState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.StringState;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Holds the Capability state.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class State {
+
+ @SerializedName("absoluteEnergyConsumption")
+ private DoubleState absoluteEnergyConsumptionState;
+
+ @SerializedName("activeChannel")
+ private StringState activeChannelState;
+
+ @SerializedName("dimLevel")
+ private IntegerState dimLevelState;
+
+ @SerializedName("energyConsumptionDayEuro")
+ private DoubleState energyConsumptionDayEuroState;
+
+ @SerializedName("energyConsumptionDayKWh")
+ private DoubleState energyConsumptionDayKWhState;
+
+ @SerializedName("energyConsumptionMonthEuro")
+ private DoubleState energyConsumptionMonthEuroState;
+
+ @SerializedName("energyConsumptionMonthKWh")
+ private DoubleState energyConsumptionMonthKWhState;
+
+ @SerializedName("energyPerDayInEuro")
+ private DoubleState energyPerDayInEuroState;
+
+ @SerializedName("energyPerDayInKWh")
+ private DoubleState energyPerDayInKWhState;
+
+ @SerializedName("energyPerMonthInEuro")
+ private DoubleState energyPerMonthInEuroState;
+
+ @SerializedName("energyPerMonthInKWh")
+ private DoubleState energyPerMonthInKWhState;
+
+ @SerializedName("frostWarning")
+ private BooleanState frostWarningState;
+
+ @SerializedName("humidity")
+ private DoubleState humidityState;
+
+ @SerializedName("isDay")
+ private BooleanState isDayState;
+
+ @SerializedName("isOn")
+ private BooleanState isOnState;
+
+ @SerializedName("isOpen")
+ private BooleanState isOpenState;
+
+ @SerializedName("isSmokeAlarm")
+ private BooleanState isSmokeAlarmState;
+
+ @SerializedName("lastKeyPressCounter")
+ private IntegerState lastKeyPressCounterState;
+
+ @SerializedName("lastPressedButtonIndex")
+ private IntegerState lastPressedButtonIndex;
+
+ private StringState lastPressedButtonIndexState;
+
+ @SerializedName("luminance")
+ private DoubleState luminanceState;
+
+ @SerializedName("moldWarning")
+ private BooleanState moldWarningState;
+
+ @SerializedName("motionDetectedCount")
+ private IntegerState motionDetectedCountState;
+
+ @SerializedName("nextSunrise")
+ private DateTimeState nextSunrise;
+
+ @SerializedName("nextSunset")
+ private DateTimeState nextSunsetState;
+
+ @SerializedName("nextTimeEvent")
+ private DateTimeState nextTimeEventState;
+
+ @SerializedName("onState")
+ private BooleanState onState;
+
+ @SerializedName("operationMode")
+ private StringState operationModeState;
+
+ @SerializedName("pointTemperature")
+ private DoubleState pointTemperatureState;
+
+ @SerializedName("powerConsumptionWatt")
+ private DoubleState powerConsumptionWattState;
+
+ @SerializedName("powerInWatt")
+ private DoubleState powerInWattState;
+
+ @SerializedName("shutterLevel")
+ private IntegerState shutterLevelState;
+
+ @SerializedName("supplyValueInCubicMetterPerDay")
+ private DoubleState supplyValueInCubicMetterPerDayState;
+
+ @SerializedName("supplyValueInCubicMetterPerMonth")
+ private DoubleState supplyValueInCubicMetterPerMonthState;
+
+ @SerializedName("supplyValueInCurrencyPerDay")
+ private DoubleState supplyValueInCurrencyPerDayState;
+
+ @SerializedName("supplyValueInCurrencyPerMonth")
+ private DoubleState supplyValueInCurrencyPerMonthState;
+
+ @SerializedName("supplyValueInLitrePerDay")
+ private DoubleState supplyValueInLitrePerDayState;
+
+ @SerializedName("supplyValueInLitrePerMonth")
+ private DoubleState supplyValueInLitrePerMonthState;
+
+ @SerializedName("temperature")
+ private DoubleState temperatureState;
+
+ @SerializedName("totalEnergy")
+ private DoubleState totalEnergyState;
+
+ @SerializedName("value")
+ private BooleanState valueState;
+
+ @SerializedName("valvePosition")
+ private BooleanState valvePositionState;
+
+ @SerializedName("windowReductionActive")
+ private BooleanState windowReductionActiveState;
+
+ /**
+ * @return the absoluteEnergyConsumptionState
+ */
+ public DoubleState getAbsoluteEnergyConsumptionState() {
+ return absoluteEnergyConsumptionState;
+ }
+
+ /**
+ * @param state the absoluteEnergyConsumptionState to set
+ */
+ public void setAbsoluteEnergyConsumptionState(DoubleState state) {
+ this.absoluteEnergyConsumptionState = state;
+ }
+
+ /**
+ * @return the activeChannelState
+ */
+ public StringState getActiveChannelState() {
+ return activeChannelState;
+ }
+
+ /**
+ * @param state the activeChannelState to set
+ */
+ public void setActiveChannelState(StringState state) {
+ this.activeChannelState = state;
+ }
+
+ /**
+ * @return the dimLevelState
+ */
+ public IntegerState getDimLevelState() {
+ return dimLevelState;
+ }
+
+ /**
+ * @param state the dimLevelState to set
+ */
+ public void setDimLevelState(IntegerState state) {
+ this.dimLevelState = state;
+ }
+
+ /**
+ * @return the energyConsumptionDayEuroState
+ */
+ public DoubleState getEnergyConsumptionDayEuroState() {
+ return energyConsumptionDayEuroState;
+ }
+
+ /**
+ * @param state the energyConsumptionDayEuroState to set
+ */
+ public void setEnergyConsumptionDayEuroState(DoubleState state) {
+ this.energyConsumptionDayEuroState = state;
+ }
+
+ /**
+ * @return the energyConsumptionDayKWhState
+ */
+ public DoubleState getEnergyConsumptionDayKWhState() {
+ return energyConsumptionDayKWhState;
+ }
+
+ /**
+ * @param state the energyConsumptionDayKWhState to set
+ */
+ public void setEnergyConsumptionDayKWhState(DoubleState state) {
+ this.energyConsumptionDayKWhState = state;
+ }
+
+ /**
+ * @return the energyConsumptionMonthEuroState
+ */
+ public DoubleState getEnergyConsumptionMonthEuroState() {
+ return energyConsumptionMonthEuroState;
+ }
+
+ /**
+ * @param state the energyConsumptionMonthEuroState to set
+ */
+ public void setEnergyConsumptionMonthEuroState(DoubleState state) {
+ this.energyConsumptionMonthEuroState = state;
+ }
+
+ /**
+ * @return the energyConsumptionMonthKWhState
+ */
+ public DoubleState getEnergyConsumptionMonthKWhState() {
+ return energyConsumptionMonthKWhState;
+ }
+
+ /**
+ * @param state the energyConsumptionMonthKWhState to set
+ */
+ public void setEnergyConsumptionMonthKWhState(DoubleState state) {
+ this.energyConsumptionMonthKWhState = state;
+ }
+
+ /**
+ * @return the energyPerDayInEuroState
+ */
+ public DoubleState getEnergyPerDayInEuroState() {
+ return energyPerDayInEuroState;
+ }
+
+ /**
+ * @param state the energyPerDayInEuroState to set
+ */
+ public void setEnergyPerDayInEuroState(DoubleState state) {
+ this.energyPerDayInEuroState = state;
+ }
+
+ /**
+ * @return the energyPerDayInKWhState
+ */
+ public DoubleState getEnergyPerDayInKWhState() {
+ return energyPerDayInKWhState;
+ }
+
+ /**
+ * @param state the energyPerDayInKWhState to set
+ */
+ public void setEnergyPerDayInKWhState(DoubleState state) {
+ this.energyPerDayInKWhState = state;
+ }
+
+ /**
+ * @return the energyPerMonthInEuroState
+ */
+ public DoubleState getEnergyPerMonthInEuroState() {
+ return energyPerMonthInEuroState;
+ }
+
+ /**
+ * @param state the energyPerMonthInEuroState to set
+ */
+ public void setEnergyPerMonthInEuroState(DoubleState state) {
+ this.energyPerMonthInEuroState = state;
+ }
+
+ /**
+ * @return the energyPerMonthInKWhState
+ */
+ public DoubleState getEnergyPerMonthInKWhState() {
+ return energyPerMonthInKWhState;
+ }
+
+ /**
+ * @param state the energyPerMonthInKWhState to set
+ */
+ public void setEnergyPerMonthInKWhState(DoubleState state) {
+ this.energyPerMonthInKWhState = state;
+ }
+
+ /**
+ * @return the frostWarningState
+ */
+ public BooleanState getFrostWarningState() {
+ return frostWarningState;
+ }
+
+ /**
+ * @param state the frostWarningState to set
+ */
+ public void setFrostWarningState(BooleanState state) {
+ this.frostWarningState = state;
+ }
+
+ /**
+ * @return the humidityState
+ */
+ public DoubleState getHumidityState() {
+ return humidityState;
+ }
+
+ /**
+ * @param state the humidityState to set
+ */
+ public void setHumidityState(DoubleState state) {
+ this.humidityState = state;
+ }
+
+ /**
+ * @return the isDayState
+ */
+ public BooleanState getIsDayState() {
+ return isDayState;
+ }
+
+ /**
+ * @param state the isDayState to set
+ */
+ public void setIsDayState(BooleanState state) {
+ this.isDayState = state;
+ }
+
+ /**
+ * @return the isOnState
+ */
+ public BooleanState getIsOnState() {
+ return isOnState;
+ }
+
+ /**
+ * @param state the isOnState to set
+ */
+ public void setIsOnState(BooleanState state) {
+ this.isOnState = state;
+ }
+
+ /**
+ * @return the isOpenState
+ */
+ public BooleanState getIsOpenState() {
+ return isOpenState;
+ }
+
+ /**
+ * @param state the isOpenState to set
+ */
+ public void setIsOpenState(BooleanState state) {
+ this.isOpenState = state;
+ }
+
+ /**
+ * @return the isSmokeAlarmState
+ */
+ public BooleanState getIsSmokeAlarmState() {
+ return isSmokeAlarmState;
+ }
+
+ /**
+ * @param state the isSmokeAlarmState to set
+ */
+ public void setIsSmokeAlarmState(BooleanState state) {
+ this.isSmokeAlarmState = state;
+ }
+
+ /**
+ * @return the lastKeyPressCounterState
+ */
+ public IntegerState getLastKeyPressCounterState() {
+ return lastKeyPressCounterState;
+ }
+
+ /**
+ * @param state the lastKeyPressCounterState to set
+ */
+ public void setLastKeyPressCounterState(IntegerState state) {
+ this.lastKeyPressCounterState = state;
+ }
+
+ /**
+ * @return the lastPressedButtonIndex
+ */
+ public IntegerState getLastPressedButtonIndex() {
+ return lastPressedButtonIndex;
+ }
+
+ /**
+ * @param state the lastPressedButtonIndex to set
+ */
+ public void setLastPressedButtonIndex(IntegerState state) {
+ this.lastPressedButtonIndex = state;
+ }
+
+ public StringState getLastKeyPressType() {
+ if (lastPressedButtonIndexState == null) {
+ lastPressedButtonIndexState = new StringState();
+ }
+ return lastPressedButtonIndexState;
+ }
+
+ public void setLastKeyPressType(StringState lastPressedButtonIndexState) {
+ this.lastPressedButtonIndexState = lastPressedButtonIndexState;
+ }
+
+ /**
+ * @return the luminanceState
+ */
+ public DoubleState getLuminanceState() {
+ return luminanceState;
+ }
+
+ /**
+ * @param state the luminanceState to set
+ */
+ public void setLuminanceState(DoubleState state) {
+ this.luminanceState = state;
+ }
+
+ /**
+ * @return the moldWarningState
+ */
+ public BooleanState getMoldWarningState() {
+ return moldWarningState;
+ }
+
+ /**
+ * @param state the moldWarningState to set
+ */
+ public void setMoldWarningState(BooleanState state) {
+ this.moldWarningState = state;
+ }
+
+ /**
+ * @return the motionDetectedCountState
+ */
+ public IntegerState getMotionDetectedCountState() {
+ return motionDetectedCountState;
+ }
+
+ /**
+ * @param state the motionDetectedCountState to set
+ */
+ public void setMotionDetectedCountState(IntegerState state) {
+ this.motionDetectedCountState = state;
+ }
+
+ /**
+ * @return the nextSunrise
+ */
+ public DateTimeState getNextSunrise() {
+ return nextSunrise;
+ }
+
+ /**
+ * @param state the nextSunrise to set
+ */
+ public void setNextSunrise(DateTimeState state) {
+ this.nextSunrise = state;
+ }
+
+ /**
+ * @return the nextSunsetState
+ */
+ public DateTimeState getNextSunsetState() {
+ return nextSunsetState;
+ }
+
+ /**
+ * @param state the nextSunsetState to set
+ */
+ public void setNextSunsetState(DateTimeState state) {
+ this.nextSunsetState = state;
+ }
+
+ /**
+ * @return the nextTimeEventState
+ */
+ public DateTimeState getNextTimeEventState() {
+ return nextTimeEventState;
+ }
+
+ /**
+ * @param state the nextTimeEventState to set
+ */
+ public void setNextTimeEventState(DateTimeState state) {
+ this.nextTimeEventState = state;
+ }
+
+ /**
+ * @return the onState
+ */
+ public BooleanState getOnState() {
+ return onState;
+ }
+
+ /**
+ * @param state the onState to set
+ */
+ public void setOnState(BooleanState state) {
+ this.onState = state;
+ }
+
+ /**
+ * @return the operationModeState
+ */
+ public StringState getOperationModeState() {
+ return operationModeState;
+ }
+
+ /**
+ * @param state the operationModeState to set
+ */
+ public void setOperationModeState(StringState state) {
+ this.operationModeState = state;
+ }
+
+ /**
+ * @return the pointTemperatureState
+ */
+ public DoubleState getPointTemperatureState() {
+ return pointTemperatureState;
+ }
+
+ /**
+ * @param state the pointTemperatureState to set
+ */
+ public void setPointTemperatureState(DoubleState state) {
+ this.pointTemperatureState = state;
+ }
+
+ /**
+ * @return the powerConsumptionWattState
+ */
+ public DoubleState getPowerConsumptionWattState() {
+ return powerConsumptionWattState;
+ }
+
+ /**
+ * @param state the powerConsumptionWattState to set
+ */
+ public void setPowerConsumptionWattState(DoubleState state) {
+ this.powerConsumptionWattState = state;
+ }
+
+ /**
+ * @return the powerInWattState
+ */
+ public DoubleState getPowerInWattState() {
+ return powerInWattState;
+ }
+
+ /**
+ * @param state the powerInWattState to set
+ */
+ public void setPowerInWattState(DoubleState state) {
+ this.powerInWattState = state;
+ }
+
+ /**
+ * @return the shutterLevelState
+ */
+ public IntegerState getShutterLevelState() {
+ return shutterLevelState;
+ }
+
+ /**
+ * @param state the shutterLevelState to set
+ */
+ public void setShutterLevelState(IntegerState state) {
+ this.shutterLevelState = state;
+ }
+
+ /**
+ * @return the supplyValueInCubicMetterPerDayState
+ */
+ public DoubleState getSupplyValueInCubicMetterPerDayState() {
+ return supplyValueInCubicMetterPerDayState;
+ }
+
+ /**
+ * @param state the supplyValueInCubicMetterPerDayState to set
+ */
+ public void setSupplyValueInCubicMetterPerDayState(DoubleState state) {
+ this.supplyValueInCubicMetterPerDayState = state;
+ }
+
+ /**
+ * @return the supplyValueInCubicMetterPerMonthState
+ */
+ public DoubleState getSupplyValueInCubicMetterPerMonthState() {
+ return supplyValueInCubicMetterPerMonthState;
+ }
+
+ /**
+ * @param state the supplyValueInCubicMetterPerMonthState to set
+ */
+ public void setSupplyValueInCubicMetterPerMonthState(DoubleState state) {
+ this.supplyValueInCubicMetterPerMonthState = state;
+ }
+
+ /**
+ * @return the supplyValueInCurrencyPerDayState
+ */
+ public DoubleState getSupplyValueInCurrencyPerDayState() {
+ return supplyValueInCurrencyPerDayState;
+ }
+
+ /**
+ * @param state the supplyValueInCurrencyPerDayState to set
+ */
+ public void setSupplyValueInCurrencyPerDayState(DoubleState state) {
+ this.supplyValueInCurrencyPerDayState = state;
+ }
+
+ /**
+ * @return the supplyValueInCurrencyPerMonthState
+ */
+ public DoubleState getSupplyValueInCurrencyPerMonthState() {
+ return supplyValueInCurrencyPerMonthState;
+ }
+
+ /**
+ * @param state the supplyValueInCurrencyPerMonthState to set
+ */
+ public void setSupplyValueInCurrencyPerMonthState(DoubleState state) {
+ this.supplyValueInCurrencyPerMonthState = state;
+ }
+
+ /**
+ * @return the supplyValueInLitrePerDayState
+ */
+ public DoubleState getSupplyValueInLitrePerDayState() {
+ return supplyValueInLitrePerDayState;
+ }
+
+ /**
+ * @param state the supplyValueInLitrePerDayState to set
+ */
+ public void setSupplyValueInLitrePerDayState(DoubleState state) {
+ this.supplyValueInLitrePerDayState = state;
+ }
+
+ /**
+ * @return the supplyValueInLitrePerMonthState
+ */
+ public DoubleState getSupplyValueInLitrePerMonthState() {
+ return supplyValueInLitrePerMonthState;
+ }
+
+ /**
+ * @param state the supplyValueInLitrePerMonthState to set
+ */
+ public void setSupplyValueInLitrePerMonthState(DoubleState state) {
+ this.supplyValueInLitrePerMonthState = state;
+ }
+
+ /**
+ * @return the temperatureState
+ */
+ public DoubleState getTemperatureState() {
+ return temperatureState;
+ }
+
+ /**
+ * @param state the temperatureState to set
+ */
+ public void setTemperatureState(DoubleState state) {
+ this.temperatureState = state;
+ }
+
+ /**
+ * @return the totalEnergyState
+ */
+ public DoubleState getTotalEnergyState() {
+ return totalEnergyState;
+ }
+
+ /**
+ * @param state the totalEnergyState to set
+ */
+ public void setTotalEnergyState(DoubleState state) {
+ this.totalEnergyState = state;
+ }
+
+ /**
+ * @return the valueState
+ */
+ public BooleanState getValueState() {
+ return valueState;
+ }
+
+ /**
+ * @param state the valueState to set
+ */
+ public void setValueState(BooleanState state) {
+ this.valueState = state;
+ }
+
+ /**
+ * @return the valvePositionState
+ */
+ public BooleanState getValvePositionState() {
+ return valvePositionState;
+ }
+
+ /**
+ * @param state the valvePositionState to set
+ */
+ public void setValvePositionState(BooleanState state) {
+ this.valvePositionState = state;
+ }
+
+ /**
+ * @return the windowReductionActiveState
+ */
+ public BooleanState getWindowReductionActiveState() {
+ return windowReductionActiveState;
+ }
+
+ /**
+ * @param state the windowReductionActiveState to set
+ */
+ public void setWindowReductionActiveState(BooleanState state) {
+ this.windowReductionActiveState = state;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Device.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Device.java
index d713414a690f4..a01ae503f44f0 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Device.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Device.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,28 +12,25 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity.device;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import org.openhab.binding.innogysmarthome.internal.client.entity.ConfigPropertyList;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Location;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.CapabilityLink;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-import org.openhab.binding.innogysmarthome.internal.client.entity.state.DeviceState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.location.Location;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
-import com.google.api.client.util.Key;
+import com.google.gson.annotations.SerializedName;
/**
* Defines the structure of a {@link Device}.
*
* @author Oliver Kuhl - Initial contribution
*/
-public class Device extends ConfigPropertyList {
+public class Device {
public static final String DEVICE_TYPE_SHC = "SHC";
+ public static final String DEVICE_TYPE_SHCA = "SHCA";
public static final String DEVICE_TYPE_ANALOG_METER = "AnalogMeter";
public static final String DEVICE_TYPE_BRC8 = "BRC8";
public static final String DEVICE_TYPE_GENERATION_METER = "GenerationMeter";
@@ -59,16 +56,20 @@ public class Device extends ConfigPropertyList {
public static final String DEVICE_MANUFACTURER_RWE = "RWE";
public static final String DEVICE_MANUFACTURER_INNOGY = "innogy";
+ protected static final String PROTOCOL_ID_COSIP = "Cosip";
+ protected static final String PROTOCOL_ID_VIRTUAL = "Virtual";
+ protected static final String PROTOCOL_ID_WMBUS = "wMBus";
+
+ public static final List EMPTY_CAPABILITY_LINK_LIST = new ArrayList();
+
/**
* Unique id for the device, always available in model.
*/
- @Key("id")
private String id;
/**
* Identifier of the manufacturer, always available in model
*/
- @Key("manufacturer")
private String manufacturer;
/**
@@ -78,7 +79,6 @@ public class Device extends ConfigPropertyList {
* be increased to indicate that there are new or changed attributes
* of the device. Always available in model.
*/
- @Key("version")
private String version;
/**
@@ -88,65 +88,61 @@ public class Device extends ConfigPropertyList {
* core.RWE, which supports all RWE hardware devices (also referred to as core devices).
* Always available in model.
*/
- @Key("product")
private String product;
/**
* Device number or id like SGTIN given by the manufacturer. Optional.
*/
- @Key("serialnumber")
private String serialnumber;
- /**
- * Link to the metadata of that specific device. The link should be complete and can be followed without further
- * additions. The triple of device type, manufacturer and version define the unique path to the metadata.
- *
- * Optional.
- */
- @Key("desc")
- private String desc;
-
/**
* Specifies the type of the device, which is defined by the manufacturer. The triple of device type, manufacturer
* and the version must be unique.
* Always available in model.
*/
- @Key("type")
private String type;
- private DeviceState deviceState;
+ private DeviceConfig config;
/**
- * The tag container can contain any number of properties for grouping of the devices in the client, e.g. category
- * of device like “security relatedâ€. The tags can be freely chosen by the client and will not be considered by the
- * system for any business logic.
+ * Contains a list of the device capabilities.
*
* Optional.
*/
- @Key("Tags")
- private List tagList;
+ @SerializedName("capabilities")
+ private List capabilityLinkList;
+
+ private HashMap capabilityMap;
+
+ private DeviceState deviceState;
/**
- * Contains a list of the device capabilities.
+ * The tag container can contain any number of properties for grouping of the devices in the client, e.g. category
+ * of device like “security relatedâ€. The tags can be freely chosen by the client and will not be considered by the
+ * system for any business logic.
*
* Optional.
*/
- @Key("Capabilities")
- private List capabilityLinkList;
-
- private HashMap capabilityMap;
+ // @Key("tags")
+ // private List tagList;
/**
* The location contains the link to the location of the device. Optional.
*/
- @Key("Location")
- private List locationLinkList;
+ @SerializedName("location")
+ private String locationLink;
- private Location location;
+ private transient Location location;
private List messageList;
private boolean lowBattery;
+ /**
+ * Stores the message id, that contains the low battery state. This is needed to identify the device, when the
+ * message
+ * with that id is deleted (thus low battery state is false again).
+ */
+ private String lowBatteryMessageId;
/**
* Stores, if the {@link Device} is battery powered.
@@ -233,40 +229,36 @@ public boolean hasSerialNumber() {
}
/**
- * Returns a relative link to the description.
- *
- * @return the desc
+ * @return the type
*/
- public String getDescription() {
- return desc;
+ public String getType() {
+ return type;
}
/**
- * Sets the description.
- *
- * @param desc the desc to set
+ * @param type the type to set
*/
- public void setDescription(String desc) {
- this.desc = desc;
+ public void setType(String type) {
+ this.type = type;
}
/**
- * @return the type
+ * @return the config
*/
- public String getType() {
- return type;
+ public DeviceConfig getConfig() {
+ return config;
}
/**
- * @param type the type to set
+ * @param config the config to set
*/
- public void setType(String type) {
- this.type = type;
+ public void setConfig(DeviceConfig config) {
+ this.config = config;
}
/**
* Returns the {@link DeviceState}. Only available, if device has a state. Better check with
- * {@link Device#hasState()} first!
+ * {@link Device#hasDeviceState()} first!
*
* @return the entityState or null
*/
@@ -286,35 +278,25 @@ public void setDeviceState(DeviceState deviceState) {
*
* @return
*/
- public boolean hasState() {
+ public boolean hasDeviceState() {
return deviceState != null;
}
- /**
- * @return the tagList
- */
- public List getTagList() {
- return tagList;
- }
-
- /**
- * @param tagList the tagList to set
- */
- public void setTagList(List tagList) {
- this.tagList = tagList;
- }
-
/**
* @return the capabilityList
*/
- public List getCapabilityLinkList() {
- return capabilityLinkList;
+ public List getCapabilityLinkList() {
+ if (capabilityLinkList != null) {
+ return capabilityLinkList;
+ } else {
+ return EMPTY_CAPABILITY_LINK_LIST;
+ }
}
/**
* @param capabilityList the capabilityList to set
*/
- public void setCapabilityList(List capabilityList) {
+ public void setCapabilityList(List capabilityList) {
this.capabilityLinkList = capabilityList;
}
@@ -325,6 +307,9 @@ public void setCapabilityMap(HashMap capabilityMap) {
this.capabilityMap = capabilityMap;
}
+ /**
+ * @return the capabilityMap
+ */
public HashMap getCapabilityMap() {
return this.capabilityMap;
}
@@ -340,25 +325,27 @@ public Capability getCapabilityWithId(String id) {
}
/**
- * @return the locationList
+ * @return the locationLink
*/
- public List getLocationLinkList() {
- return locationLinkList;
+ public String getLocationLink() {
+ return locationLink;
}
/**
* @param locationList the locationList to set
*/
- public void setLocationList(List locationList) {
- this.locationLinkList = locationList;
+ public void setLocation(String locationLink) {
+ this.locationLink = locationLink;
}
+ /**
+ * Returns the id of the {@link Location}
+ *
+ * @return
+ */
public String getLocationId() {
- if (locationLinkList != null) {
- Link locationLink = locationLinkList.get(0);
- if (locationLink != null) {
- return locationLink.getValue().replace("/location/", "");
- }
+ if (locationLink != null) {
+ return locationLink.replace("/location/", "");
}
return null;
}
@@ -402,9 +389,9 @@ public List getMessageList() {
public void setMessageList(List messageList) {
this.messageList = messageList;
- for (Message m : messageList) {
- setLowBattery(m.getType().equals(Message.TYPE_DEVICE_LOW_BATTERY));
- setReachable(!m.getType().equals(Message.TYPE_DEVICE_UNREACHABLE));
+ for (final Message m : messageList) {
+ setLowBattery(Message.TYPE_DEVICE_LOW_BATTERY.equals(m.getType()));
+ setReachable(!Message.TYPE_DEVICE_UNREACHABLE.equals(m.getType()));
}
}
@@ -414,7 +401,9 @@ public void setMessageList(List messageList) {
* @param isReachable
*/
public void setReachable(boolean isReachable) {
- getDeviceState().setReachable(isReachable);
+ if (getDeviceState().hasIsReachableState()) {
+ getDeviceState().setReachable(isReachable);
+ }
}
/**
@@ -423,7 +412,7 @@ public void setReachable(boolean isReachable) {
* @return
*/
public boolean isReachable() {
- return getDeviceState().isReachable();
+ return getDeviceState().getState().getIsReachable().getValue();
}
/**
@@ -444,6 +433,14 @@ public boolean hasLowBattery() {
return lowBattery;
}
+ public String getLowBatteryMessageId() {
+ return this.lowBatteryMessageId;
+ }
+
+ public void setLowBatteryMessageId(String messageId) {
+ this.lowBatteryMessageId = messageId;
+ }
+
/**
* Returns true, if the {@link Device} is battery powered.
*
@@ -478,7 +475,7 @@ public boolean hasMessages() {
* @return
*/
public boolean isController() {
- return DEVICE_TYPE_SHC.equals(type);
+ return DEVICE_TYPE_SHC.equals(type) || DEVICE_TYPE_SHCA.equals(type);
}
/**
@@ -505,7 +502,7 @@ public boolean isInnogyDevice() {
* @return
*/
public boolean isVirtualDevice() {
- return PROTOCOL_ID_VIRTUAL.equals(getProtocolId());
+ return PROTOCOL_ID_VIRTUAL.equals(getConfig().getProtocolId());
}
/**
@@ -514,7 +511,8 @@ public boolean isVirtualDevice() {
* @return
*/
public boolean isRadioDevice() {
- return PROTOCOL_ID_COSIP.equals(getProtocolId()) || PROTOCOL_ID_WMBUS.equals(getProtocolId());
+ return PROTOCOL_ID_COSIP.equals(getConfig().getProtocolId())
+ || PROTOCOL_ID_WMBUS.equals(getConfig().getProtocolId());
}
/**
@@ -523,7 +521,7 @@ public boolean isRadioDevice() {
* @return
*/
public boolean isCoSipDevice() {
- return PROTOCOL_ID_COSIP.equals(getProtocolId());
+ return PROTOCOL_ID_COSIP.equals(getConfig().getProtocolId());
}
/**
@@ -532,14 +530,14 @@ public boolean isCoSipDevice() {
* @return
*/
public boolean isWMBusDevice() {
- return PROTOCOL_ID_WMBUS.equals(getProtocolId());
+ return PROTOCOL_ID_WMBUS.equals(getConfig().getProtocolId());
}
@Override
public String toString() {
- String string = "Device [" + "id=" + getId() + " manufacturer=" + getManufacturer() + " version=" + getVersion()
- + " product=" + getProduct() + " serialnumber=" + getSerialnumber() + " type=" + getType() + " name="
- + getName() + "]";
+ final String string = "Device [" + "id=" + getId() + " manufacturer=" + getManufacturer() + " version="
+ + getVersion() + " product=" + getProduct() + " serialnumber=" + getSerialnumber() + " type="
+ + getType() + " name=" + getConfig().getName() + "]";
return string;
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceConfig.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceConfig.java
new file mode 100644
index 0000000000000..b8828c2ba016d
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceConfig.java
@@ -0,0 +1,412 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.device;
+
+import java.time.ZonedDateTime;
+
+import org.openhab.binding.innogysmarthome.internal.client.Util;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Holds the configuration of the Device.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class DeviceConfig {
+ private String name;
+
+ private String protocolId;
+
+ private String timeOfAcceptance;
+
+ private String timeOfDiscovery;
+
+ private String hardwareVersion;
+
+ private String softwareVersion;
+
+ private String firmwareVersion;
+
+ private String hostName;
+
+ private boolean activityLogEnabled;
+
+ private String configurationState;
+
+ @SerializedName("IPAddress")
+ private String ipAddress;
+
+ @SerializedName("MACAddress")
+ private String macAddress;
+
+ private String registrationTime;
+
+ private String timeZone;
+
+ private String shcType;
+
+ private String geoLocation;
+
+ private Double currentUTCOffset;
+
+ private Boolean backendConnectionMonitored;
+
+ @SerializedName("RFCommFailureNotification")
+ private Boolean rfCommFailureNotification;
+
+ private String displayCurrentTemperature;
+
+ private String underlyingDeviceIds;
+
+ private String meterId;
+
+ private String meterFirmwareVersion;
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the protocolId
+ */
+ public String getProtocolId() {
+ return protocolId;
+ }
+
+ /**
+ * @param protocolId the protocolId to set
+ */
+ public void setProtocolId(String protocolId) {
+ this.protocolId = protocolId;
+ }
+
+ /**
+ * Returns the time, when the {@link Device} was added to the SHC configuration.
+ *
+ * @return
+ */
+ public ZonedDateTime getTimeOfAcceptance() {
+ if (timeOfAcceptance == null) {
+ return null;
+ }
+ return Util.convertZuluTimeStringToDate(timeOfAcceptance);
+ }
+
+ /**
+ * @param timeOfAcceptance the timeOfAcceptance to set
+ */
+ public void setTimeOfAcceptance(String timeOfAcceptance) {
+ this.timeOfAcceptance = timeOfAcceptance;
+ }
+
+ /**
+ * Returns the time, when the {@link Device} was discovered by the SHC.
+ *
+ * @return
+ */
+ public ZonedDateTime getTimeOfDiscovery() {
+ if (timeOfDiscovery == null) {
+ return null;
+ }
+ return Util.convertZuluTimeStringToDate(timeOfDiscovery);
+ }
+
+ /**
+ * @param timeOfDiscovery the timeOfDiscovery to set
+ */
+ public void setTimeOfDiscovery(String timeOfDiscovery) {
+ this.timeOfDiscovery = timeOfDiscovery;
+ }
+
+ /**
+ * @return the hardwareVersion
+ */
+ public String getHardwareVersion() {
+ return hardwareVersion;
+ }
+
+ /**
+ * @param hardwareVersion the hardwareVersion to set
+ */
+ public void setHardwareVersion(String hardwareVersion) {
+ this.hardwareVersion = hardwareVersion;
+ }
+
+ /**
+ * @return the softwareVersion
+ */
+ public String getSoftwareVersion() {
+ return softwareVersion;
+ }
+
+ /**
+ * @param softwareVersion the softwareVersion to set
+ */
+ public void setSoftwareVersion(String softwareVersion) {
+ this.softwareVersion = softwareVersion;
+ }
+
+ /**
+ * @return the firmwareVersion
+ */
+ public String getFirmwareVersion() {
+ return firmwareVersion;
+ }
+
+ /**
+ * @param firmwareVersion the firmwareVersion to set
+ */
+ public void setFirmwareVersion(String firmwareVersion) {
+ this.firmwareVersion = firmwareVersion;
+ }
+
+ /**
+ * @return the hostName
+ */
+ public String getHostName() {
+ return hostName;
+ }
+
+ /**
+ * @param hostName the hostName to set
+ */
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ /**
+ * @return the activityLogEnabled
+ */
+ public boolean isActivityLogEnabled() {
+ return activityLogEnabled;
+ }
+
+ /**
+ * @param activityLogEnabled the activityLogEnabled to set
+ */
+ public void setActivityLogEnabled(boolean activityLogEnabled) {
+ this.activityLogEnabled = activityLogEnabled;
+ }
+
+ /**
+ * @return the configurationState
+ */
+ public String getConfigurationState() {
+ return configurationState;
+ }
+
+ /**
+ * @param configurationState the configurationState to set
+ */
+ public void setConfigurationState(String configurationState) {
+ this.configurationState = configurationState;
+ }
+
+ /**
+ * @return the iPAddress
+ */
+ public String getIPAddress() {
+ return ipAddress;
+ }
+
+ /**
+ * @param ipAddress the ipAddress to set
+ */
+ public void setIPAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ }
+
+ /**
+ * @return the mACAddress
+ */
+ public String getMACAddress() {
+ return macAddress;
+ }
+
+ /**
+ * @param mACAddress the mACAddress to set
+ */
+ public void setMACAddress(String mACAddress) {
+ this.macAddress = mACAddress;
+ }
+
+ /**
+ * @return the registrationTime
+ */
+ public ZonedDateTime getRegistrationTime() {
+ if (registrationTime == null) {
+ return null;
+ }
+ return Util.convertZuluTimeStringToDate(registrationTime);
+ }
+
+ /**
+ * @param registrationTime the registrationTime to set
+ */
+ public void setRegistrationTime(String registrationTime) {
+ this.registrationTime = registrationTime;
+ }
+
+ /**
+ * @return the timeZone
+ */
+ public String getTimeZone() {
+ return timeZone;
+ }
+
+ /**
+ * @param timeZone the timeZone to set
+ */
+ public void setTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ }
+
+ /**
+ * @return the shcType
+ */
+ public String getShcType() {
+ return shcType;
+ }
+
+ /**
+ * @param shcType the shcType to set
+ */
+ public void setShcType(String shcType) {
+ this.shcType = shcType;
+ }
+
+ /**
+ * @return the geoLocation
+ */
+ public String getGeoLocation() {
+ return geoLocation;
+ }
+
+ /**
+ * @param geoLocation the geoLocation to set
+ */
+ public void setGeoLocation(String geoLocation) {
+ this.geoLocation = geoLocation;
+ }
+
+ /**
+ * @return the currentUTCOffset
+ */
+ public Double getCurrentUTCOffset() {
+ return currentUTCOffset;
+ }
+
+ /**
+ * @param currentUTCOffset the currentUTCOffset to set
+ */
+ public void setCurrentUTCOffset(Double currentUTCOffset) {
+ this.currentUTCOffset = currentUTCOffset;
+ }
+
+ /**
+ * @return the backendConnectionMonitored
+ */
+ public Boolean getBackendConnectionMonitored() {
+ return backendConnectionMonitored;
+ }
+
+ /**
+ * @param backendConnectionMonitored the backendConnectionMonitored to set
+ */
+ public void setBackendConnectionMonitored(Boolean backendConnectionMonitored) {
+ this.backendConnectionMonitored = backendConnectionMonitored;
+ }
+
+ /**
+ * @return the rFCommFailureNotification
+ */
+ public Boolean getRFCommFailureNotification() {
+ return rfCommFailureNotification;
+ }
+
+ /**
+ * @param rFCommFailureNotification the rFCommFailureNotification to set
+ */
+ public void setRFCommFailureNotification(Boolean rFCommFailureNotification) {
+ rfCommFailureNotification = rFCommFailureNotification;
+ }
+
+ /**
+ * @return the displayCurrentTemperature
+ */
+ public String getDisplayCurrentTemperature() {
+ return displayCurrentTemperature;
+ }
+
+ /**
+ * @param displayCurrentTemperature the displayCurrentTemperature to set
+ */
+ public void setDisplayCurrentTemperature(String displayCurrentTemperature) {
+ this.displayCurrentTemperature = displayCurrentTemperature;
+ }
+
+ /**
+ * @return the underlyingDeviceIds
+ */
+ public String getUnderlyingDeviceIds() {
+ return underlyingDeviceIds;
+ }
+
+ /**
+ * @param underlyingDeviceIds the underlyingDeviceIds to set
+ */
+ public void setUnderlyingDeviceIds(String underlyingDeviceIds) {
+ this.underlyingDeviceIds = underlyingDeviceIds;
+ }
+
+ /**
+ * @return the meterId
+ */
+ public String getMeterId() {
+ return meterId;
+ }
+
+ /**
+ * @param meterId the meterId to set
+ */
+ public void setMeterId(String meterId) {
+ this.meterId = meterId;
+ }
+
+ /**
+ * @return the meterFirmwareVersion
+ */
+ public String getMeterFirmwareVersion() {
+ return meterFirmwareVersion;
+ }
+
+ /**
+ * @param meterFirmwareVersion the meterFirmwareVersion to set
+ */
+ public void setMeterFirmwareVersion(String meterFirmwareVersion) {
+ this.meterFirmwareVersion = meterFirmwareVersion;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceState.java
new file mode 100644
index 0000000000000..bdae2afc75fc7
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/DeviceState.java
@@ -0,0 +1,171 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.device;
+
+import java.util.HashMap;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
+
+/**
+ * Defines the {@link DeviceState}, e.g. if the device is reachable.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class DeviceState {
+
+ protected static final String DEVICE_INCLUSION_STATE_INCLUDED = "Included";
+ protected static final String DEVICE_INCLUSION_STATE_PENDING = "InclusionPending";
+ protected static final String DEVICE_UPDATE_STATE_UPTODATE = "UpToDate";
+
+ protected static final String PROTOCOL_ID_WMBUS = "wMBus";
+ protected static final String PROTOCOL_ID_VIRTUAL = "Virtual";
+ protected static final String PROTOCOL_ID_COSIP = "Cosip";
+
+ private String id;
+
+ private State state;
+
+ private HashMap stateMap;
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the state
+ */
+ public State getState() {
+ return state;
+ }
+
+ /**
+ * @param state the state to set
+ */
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ /**
+ * Returns true if the device is reachable, false otherwise.
+ *
+ * @return true or false for "reachable" {@link Device}s, else null.
+ */
+ public Boolean isReachable() {
+ return getState().getIsReachable().getValue();
+ }
+
+ /**
+ * Returns if the {@link State} "isReachable" is available for the current {@link Device}.
+ *
+ * @return
+ */
+ public Boolean hasIsReachableState() {
+ return getState().getIsReachable() != null;
+ }
+
+ /**
+ * Sets if the {@link Device} is reachable.
+ *
+ * @param isReachable
+ */
+ public void setReachable(boolean isReachable) {
+ getState().getIsReachable().setValue(isReachable);
+ }
+
+ /**
+ * Returns the configuration state of the device.
+ *
+ * @return the configuration state
+ */
+ public String getDeviceConfigurationState() {
+ return getState().getDeviceConfigurationState().getValue();
+ }
+
+ /**
+ * Returns the device inclusion state.
+ *
+ * @return the device inclusion state
+ */
+ public String getDeviceInclusionState() {
+ return getState().getDeviceInclusionState().getValue();
+ }
+
+ /**
+ * Returns true, if the device is included.
+ *
+ * @return true, if the {@link Device} is "Included"
+ */
+ public boolean deviceIsIncluded() {
+ return DEVICE_INCLUSION_STATE_INCLUDED.equals(getState().getDeviceInclusionState().getValue());
+ }
+
+ /**
+ * @return the stateMap
+ */
+ public HashMap getStateMap() {
+ return stateMap;
+ }
+
+ /**
+ * @param stateMap the stateMap to set
+ */
+ public void setStateMap(HashMap stateMap) {
+ this.stateMap = stateMap;
+ }
+
+ /**
+ * Returns true, if the device inclusion state is "InclusionPending".
+ *
+ * @return true, if the inclusion state is "InclusionPending"
+ */
+ public Boolean deviceInclusionIsPending() {
+ return DEVICE_INCLUSION_STATE_PENDING.equals(getDeviceInclusionState());
+ }
+
+ /**
+ * Return the update state of the {@link Device}.
+ *
+ * @return the update state
+ */
+ public String getDeviceUpdateState() {
+ return getState().getUpdateState().getValue();
+ }
+
+ /**
+ * Returns true if the {@link Device} is up to date.
+ *
+ * @return true, if the deviceUpdateState is "UpToDate"
+ */
+ public Boolean deviceIsUpToDate() {
+ return DEVICE_UPDATE_STATE_UPTODATE.equals(getDeviceUpdateState());
+ }
+
+ /**
+ * Returns the firmware version of the {@link Device}.
+ *
+ * @return the firmware version
+ */
+ public String getFirmwareVersion() {
+ return getState().getFirmwareVersion().getValue();
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Gateway.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Gateway.java
new file mode 100644
index 0000000000000..ea7ca89f6bbc1
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Gateway.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.device;
+
+/**
+ * Defines the {@link Gateway} structure.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class Gateway {
+
+ /**
+ * Serial number of the gateway
+ */
+ private String serialNumber;
+
+ /**
+ * Connected status
+ */
+ private Boolean connected;
+
+ /**
+ * Version of the app
+ */
+ private String appVersion;
+
+ /**
+ * Version of the operating system
+ */
+ private String osVersion;
+
+ /**
+ * Version of the configuration. Changes each time the configuration was changed via the innogy client app.
+ */
+ private String configVersion;
+
+ /**
+ * @return the serial number
+ */
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ /**
+ * @param serialNumber the serial number to set
+ */
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
+ /**
+ * @return if the gateway is connected
+ */
+ public Boolean getConnected() {
+ return connected;
+ }
+
+ /**
+ * @param connected the connected state to set, true if connected
+ */
+ public void setConnected(Boolean connected) {
+ this.connected = connected;
+ }
+
+ /**
+ * @return the app version
+ */
+ public String getAppVersion() {
+ return appVersion;
+ }
+
+ /**
+ * @param appVersion the app version to set
+ */
+ public void setAppVersion(String appVersion) {
+ this.appVersion = appVersion;
+ }
+
+ /**
+ * @return the os version
+ */
+ public String getOsVersion() {
+ return osVersion;
+ }
+
+ /**
+ * @param osVersion the os version to set
+ */
+ public void setOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ }
+
+ /**
+ * @return the configuration version
+ */
+ public String getConfigVersion() {
+ return configVersion;
+ }
+
+ /**
+ * @param configVersion the config version to set
+ */
+ public void setConfigVersion(String configVersion) {
+ this.configVersion = configVersion;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/State.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/State.java
new file mode 100644
index 0000000000000..2b1c55f04dafd
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/State.java
@@ -0,0 +1,458 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.device;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.BooleanState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.DateTimeState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.DoubleState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.IntegerState;
+import org.openhab.binding.innogysmarthome.internal.client.entity.state.StringState;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Holds the state of the Device.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class State {
+ /** Standard device states */
+ @SerializedName("deviceInclusionState")
+ private StringState deviceInclusionState;
+
+ @SerializedName("deviceConfigurationState")
+ private StringState deviceConfigurationState;
+
+ private BooleanState isReachable;
+
+ private StringState updateState;
+
+ private StringState firmwareVersion;
+
+ @SerializedName("WHRating")
+ private DoubleState wHRating;
+
+ /** SHC device states */
+ // Removed updateAvailable because it is different between version 1 and 2 devices and not used anyway
+ // Related to openhab-addons #6613
+ // private StringState updateAvailable
+
+ private DateTimeState lastReboot;
+
+ private IntegerState memoryLoad;
+
+ @SerializedName("CPULoad")
+ private IntegerState cpuLoad;
+
+ @SerializedName("LBDongleAttached")
+ private BooleanState lBDongleAttached;
+
+ @SerializedName("MBusDongleAttached")
+ private BooleanState mBusDongleAttached;
+
+ private IntegerState configVersion;
+
+ @SerializedName("OSState")
+ private StringState oSState;
+
+ private IntegerState wifiSignalStrength;
+
+ private StringState ethIpAddress;
+
+ private StringState wifiIpAddress;
+
+ private StringState ethMacAddress;
+
+ private StringState wifiMacAddress;
+
+ private StringState inUseAdapter;
+
+ private BooleanState innogyLayerAttached;
+
+ private BooleanState discoveryActive;
+
+ private StringState operationStatus;
+
+ private DoubleState currentUtcOffset;
+
+ private DoubleState cpuUsage;
+
+ private DoubleState diskUsage;
+
+ private DoubleState memoryUsage;
+
+ /**
+ * @return the deviceInclusionState
+ */
+ public StringState getDeviceInclusionState() {
+ return deviceInclusionState;
+ }
+
+ /**
+ * @param deviceInclusionState the deviceInclusionState to set
+ */
+ public void setDeviceInclusionState(StringState deviceInclusionState) {
+ this.deviceInclusionState = deviceInclusionState;
+ }
+
+ /**
+ * @return the deviceConfigurationState
+ */
+ public StringState getDeviceConfigurationState() {
+ return deviceConfigurationState;
+ }
+
+ /**
+ * @param deviceConfigurationState the deviceConfigurationState to set
+ */
+ public void setDeviceConfigurationState(StringState deviceConfigurationState) {
+ this.deviceConfigurationState = deviceConfigurationState;
+ }
+
+ /**
+ * @return the isReachable
+ */
+ public BooleanState getIsReachable() {
+ return isReachable;
+ }
+
+ /**
+ * @param isReachable the isReachable to set
+ */
+ public void setIsReachable(BooleanState isReachable) {
+ this.isReachable = isReachable;
+ }
+
+ /**
+ * @return the updateState
+ */
+ public StringState getUpdateState() {
+ return updateState;
+ }
+
+ /**
+ * @param updateState the updateState to set
+ */
+ public void setUpdateState(StringState updateState) {
+ this.updateState = updateState;
+ }
+
+ /**
+ * @return the firmwareVersion
+ */
+ public StringState getFirmwareVersion() {
+ return firmwareVersion;
+ }
+
+ /**
+ * @param firmwareVersion the firmwareVersion to set
+ */
+ public void setFirmwareVersion(StringState firmwareVersion) {
+ this.firmwareVersion = firmwareVersion;
+ }
+
+ /**
+ * @return the wHRating
+ */
+ public DoubleState getWHRating() {
+ return wHRating;
+ }
+
+ /**
+ * @param wHRating the wHRating to set
+ */
+ public void setWHRating(DoubleState wHRating) {
+ this.wHRating = wHRating;
+ }
+
+ /**
+ * @return the lastReboot
+ */
+ public DateTimeState getLastReboot() {
+ return lastReboot;
+ }
+
+ /**
+ * @param lastReboot the lastReboot to set
+ */
+ public void setLastReboot(DateTimeState lastReboot) {
+ this.lastReboot = lastReboot;
+ }
+
+ /**
+ * @return the memoryLoad
+ */
+ public IntegerState getMemoryLoad() {
+ return memoryLoad;
+ }
+
+ /**
+ * @param memoryLoad the memoryLoad to set
+ */
+ public void setMemoryLoad(IntegerState memoryLoad) {
+ this.memoryLoad = memoryLoad;
+ }
+
+ /**
+ * @return the cPULoad
+ */
+ public IntegerState getCPULoad() {
+ return cpuLoad;
+ }
+
+ /**
+ * @param cpuLoad the cPULoad to set
+ */
+ public void setCPULoad(IntegerState cpuLoad) {
+ this.cpuLoad = cpuLoad;
+ }
+
+ /**
+ * @return the lBDongleAttached
+ */
+ public BooleanState getLBDongleAttached() {
+ return lBDongleAttached;
+ }
+
+ /**
+ * @param lBDongleAttached the lBDongleAttached to set
+ */
+ public void setLBDongleAttached(BooleanState lBDongleAttached) {
+ this.lBDongleAttached = lBDongleAttached;
+ }
+
+ /**
+ * @return the mBusDongleAttached
+ */
+ public BooleanState getMBusDongleAttached() {
+ return mBusDongleAttached;
+ }
+
+ /**
+ * @param mBusDongleAttached the mBusDongleAttached to set
+ */
+ public void setMBusDongleAttached(BooleanState mBusDongleAttached) {
+ this.mBusDongleAttached = mBusDongleAttached;
+ }
+
+ /**
+ * @return the configVersion
+ */
+ public IntegerState getConfigVersion() {
+ return configVersion;
+ }
+
+ /**
+ * @param configVersion the configVersion to set
+ */
+ public void setConfigVersion(IntegerState configVersion) {
+ this.configVersion = configVersion;
+ }
+
+ /**
+ * @return the oSState
+ */
+ public StringState getOSState() {
+ return oSState;
+ }
+
+ /**
+ * @param oSState the oSState to set
+ */
+ public void setOSState(StringState oSState) {
+ this.oSState = oSState;
+ }
+
+ /**
+ * @return the wifiSignalStrength
+ */
+ public IntegerState getWifiSignalStrength() {
+ return wifiSignalStrength;
+ }
+
+ /**
+ * @param wifiSignalStrength the wifiSignalStrength to set
+ */
+ public void setWifiSignalStrength(IntegerState wifiSignalStrength) {
+ this.wifiSignalStrength = wifiSignalStrength;
+ }
+
+ /**
+ * @return the ethIpAddress
+ */
+ public StringState getEthIpAddress() {
+ return ethIpAddress;
+ }
+
+ /**
+ * @param ethIpAddress the ethIpAddress to set
+ */
+ public void setEthIpAddress(StringState ethIpAddress) {
+ this.ethIpAddress = ethIpAddress;
+ }
+
+ /**
+ * @return the wifiIpAddress
+ */
+ public StringState getWifiIpAddress() {
+ return wifiIpAddress;
+ }
+
+ /**
+ * @param wifiIpAddress the wifiIpAddress to set
+ */
+ public void setWifiIpAddress(StringState wifiIpAddress) {
+ this.wifiIpAddress = wifiIpAddress;
+ }
+
+ /**
+ * @return the ethMacAddress
+ */
+ public StringState getEthMacAddress() {
+ return ethMacAddress;
+ }
+
+ /**
+ * @param ethMacAddress the ethMacAddress to set
+ */
+ public void setEthMacAddress(StringState ethMacAddress) {
+ this.ethMacAddress = ethMacAddress;
+ }
+
+ /**
+ * @return the wifiMacAddress
+ */
+ public StringState getWifiMacAddress() {
+ return wifiMacAddress;
+ }
+
+ /**
+ * @param wifiMacAddress the wifiMacAddress to set
+ */
+ public void setWifiMacAddress(StringState wifiMacAddress) {
+ this.wifiMacAddress = wifiMacAddress;
+ }
+
+ /**
+ * @return the inUseAdapter
+ */
+ public StringState getInUseAdapter() {
+ return inUseAdapter;
+ }
+
+ /**
+ * @param inUseAdapter the inUseAdapter to set
+ */
+ public void setInUseAdapter(StringState inUseAdapter) {
+ this.inUseAdapter = inUseAdapter;
+ }
+
+ /**
+ * @return the innogyLayerAttached
+ */
+ public BooleanState getInnogyLayerAttached() {
+ return innogyLayerAttached;
+ }
+
+ /**
+ * @param innogyLayerAttached the innogyLayerAttached to set
+ */
+ public void setInnogyLayerAttached(BooleanState innogyLayerAttached) {
+ this.innogyLayerAttached = innogyLayerAttached;
+ }
+
+ /**
+ * @return the discoveryActive
+ */
+ public BooleanState getDiscoveryActive() {
+ return discoveryActive;
+ }
+
+ /**
+ * @param discoveryActive the discoveryActive to set
+ */
+ public void setDiscoveryActive(BooleanState discoveryActive) {
+ this.discoveryActive = discoveryActive;
+ }
+
+ /**
+ * @return the operationStatus
+ */
+ public StringState getOperationStatus() {
+ return operationStatus;
+ }
+
+ /**
+ * @param operationStatus the operationStatus to set
+ */
+ public void setOperationStatus(StringState operationStatus) {
+ this.operationStatus = operationStatus;
+ }
+
+ /**
+ * @return the currentUtcOffset
+ */
+ public DoubleState getCurrentUtcOffset() {
+ return currentUtcOffset;
+ }
+
+ /**
+ * @param currentUtcOffset the currentUtcOffset to set
+ */
+ public void setCurrentUtcOffset(DoubleState currentUtcOffset) {
+ this.currentUtcOffset = currentUtcOffset;
+ }
+
+ /**
+ * @return the cpuUsage
+ */
+ public DoubleState getCpuUsage() {
+ return cpuUsage;
+ }
+
+ /**
+ * @param cpuUsage the cpuUsage to set
+ */
+ public void setCpuUsage(DoubleState cpuUsage) {
+ this.cpuUsage = cpuUsage;
+ }
+
+ /**
+ * @return the diskUsage
+ */
+ public DoubleState getDiskUsage() {
+ return diskUsage;
+ }
+
+ /**
+ * @param diskUsage the diskUsage to set
+ */
+ public void setDiskUsage(DoubleState diskUsage) {
+ this.diskUsage = diskUsage;
+ }
+
+ /**
+ * @return the memoryUsage
+ */
+ public DoubleState getMemoryUsage() {
+ return memoryUsage;
+ }
+
+ /**
+ * @param memoryUsage the memoryUsage to set
+ */
+ public void setMemoryUsage(DoubleState memoryUsage) {
+ this.memoryUsage = memoryUsage;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/error/ErrorResponse.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/error/ErrorResponse.java
index c46bbb2dea356..e159e82a62988 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/error/ErrorResponse.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/error/ErrorResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,12 +14,10 @@
import java.util.List;
-import org.openhab.binding.innogysmarthome.internal.client.InnogyConfig;
-
import com.google.gson.annotations.SerializedName;
/**
- * The {@link InnogyConfig} contains all configurations for the innogy SmartHome library.
+ * Error response object from the innogy SmartHome api.
*
* @author Oliver Kuhl - Initial contribution
*
@@ -60,6 +58,7 @@ public class ErrorResponse {
// Products
public static final int ERR_PREMIUM_SERVICE_CANNOT_BE_ENABLED_DIRECTLY = 3500;
+ public static final int ERR_CANNOT_REMOVE_A_PRODUCT_THAT_WAS_PAID = 3501;
// Actions
public static final int ERR_INVALID_ACTION_TRIGGERED = 4000;
@@ -75,6 +74,12 @@ public class ErrorResponse {
public static final int ERR_ONE_SHC_ALREADY_REGISTERED = 5004;
public static final int ERR_USER_HAS_NO_REGISTERED_SHC = 5005;
public static final int ERR_CONTROLLER_OFFLINE = 5006;
+ public static final int ERR_REGISTRATION_FAILURE = 5009;
+
+ // Smart codes
+ public static final int ERR_SMARTCODE_REQUEST_NOT_ALLOWED = 6000;
+ public static final int ERR_SMARTCODE_CANNOT_BE_REDEEMED = 6001;
+ public static final int ERR_RESTRICTED_ACCESS = 6002;
@SerializedName("errorcode")
private int code;
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/BaseEvent.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/BaseEvent.java
new file mode 100644
index 0000000000000..d4b82c0cb6de1
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/BaseEvent.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.event;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class BaseEvent {
+
+ public static final String TYPE_STATE_CHANGED = "StateChanged";// "device/SHC.RWE/1.0/event/StateChanged";
+ public static final String TYPE_NEW_MESSAGE_RECEIVED = "NewMessageReceived"; // "device/SHC.RWE/1.0/event/NewMessageReceived";
+ public static final String TYPE_MESSAGE_CREATED = "MessageCreated";
+ public static final String TYPE_MESSAGE_DELETED = "MessageDeleted"; // "device/SHC.RWE/1.0/event/MessageDeleted";
+ public static final String TYPE_DISCONNECT = "Disconnect"; // "/event/Disconnect";
+ public static final String TYPE_CONFIGURATION_CHANGED = "ConfigurationChanged"; // "device/SHC.RWE/1.0/event/ConfigChanged";
+ public static final String TYPE_CONTROLLER_CONNECTIVITY_CHANGED = "/event/ControllerConnectivityChanged"; // "device/SHC.RWE/1.0/event/ControllerConnectivityChanged";
+ public static final String TYPE_BUTTON_PRESSED = "ButtonPressed";
+
+ public static final Set SUPPORTED_EVENT_TYPES = Collections
+ .unmodifiableSet(Stream.of(TYPE_STATE_CHANGED, TYPE_NEW_MESSAGE_RECEIVED, TYPE_MESSAGE_CREATED,
+ TYPE_MESSAGE_DELETED, TYPE_DISCONNECT, TYPE_CONFIGURATION_CHANGED,
+ TYPE_CONTROLLER_CONNECTIVITY_CHANGED, TYPE_BUTTON_PRESSED).collect(Collectors.toSet()));
+
+ /**
+ * The event sequence number – the gateway keeps track and adds a sequence number to each event for the client to
+ * identify order and missing events
+ */
+ private Integer sequenceNumber;
+
+ /**
+ * Specifies the type of the event. The type must be the full path to uniquely reference the event definition.
+ * Always available.
+ */
+ private String type;
+
+ /**
+ * Date and time when the event occurred in the system. Always available.
+ */
+ private String timestamp;
+
+ /**
+ * @return the sequenceNumber
+ */
+ public Integer getSequenceNumber() {
+ return sequenceNumber;
+ }
+
+ /**
+ * @return the timestamp
+ */
+ public String getTimestamp() {
+ return timestamp;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param sequenceNumber the sequenceNumber to set
+ */
+ public void setSequenceNumber(Integer sequenceNumber) {
+ this.sequenceNumber = sequenceNumber;
+ }
+
+ /**
+ * @param timestamp the timestamp to set
+ */
+ public void setTimestamp(String timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a ConfigChanged event.
+ *
+ * @return
+ */
+ public boolean isConfigChangedEvent() {
+ return TYPE_CONFIGURATION_CHANGED.equals(getType());
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a ControllerConnectivityChanged event.
+ *
+ * @return
+ */
+ public boolean isControllerConnectivityChangedEvent() {
+ return TYPE_CONTROLLER_CONNECTIVITY_CHANGED.equals(getType());
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a Disconnect event.
+ *
+ * @return
+ */
+ public boolean isDisconnectedEvent() {
+ return TYPE_DISCONNECT.equals(getType());
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a MessageDeletedEvent.
+ *
+ * @return
+ */
+ public boolean isMessageDeletedEvent() {
+ return TYPE_MESSAGE_DELETED.equals(getType());
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a NewMessageReceivedEvent.
+ *
+ * @return
+ */
+ public boolean isNewMessageReceivedEvent() {
+ return TYPE_NEW_MESSAGE_RECEIVED.equals(getType());
+ }
+
+ /**
+ * Returns true, if the {@link Event} is a StateChangedEvent.
+ *
+ * @return
+ */
+ public boolean isStateChangedEvent() {
+ return TYPE_STATE_CHANGED.equals(getType());
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/Event.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/Event.java
index c37e4394521ee..a5adaea44ac2b 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/Event.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/Event.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,75 +12,40 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity.event;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
-import org.openhab.binding.innogysmarthome.internal.client.entity.PropertyList;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-
-import com.google.api.client.util.Key;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.annotations.SerializedName;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
/**
* Defines the {@link Event}, which is sent by the innogy websocket to inform the clients about changes.
*
* @author Oliver Kuhl - Initial contribution
*/
-public class Event extends PropertyList {
-
- public static final String TYPE_STATE_CHANGED = "device/SHC.RWE/1.0/event/StateChanged";
- public static final String TYPE_NEW_MESSAGE_RECEIVED = "device/SHC.RWE/1.0/event/NewMessageReceived";
- public static final String TYPE_MESSAGE_DELETED = "device/SHC.RWE/1.0/event/MessageDeleted";
- public static final String TYPE_DISCONNECT = "/event/Disconnect";
- public static final String TYPE_CONFIG_CHANGED = "device/SHC.RWE/1.0/event/ConfigChanged";
- public static final String TYPE_CONTROLLER_CONNECTIVITY_CHANGED = "device/SHC.RWE/1.0/event/ControllerConnectivityChanged";
+public class Event extends BaseEvent {
public static final String EVENT_PROPERTY_CONFIGURATION_VERSION = "ConfigurationVersion";
public static final String EVENT_PROPERTY_IS_CONNECTED = "IsConnected";
/**
- * Specifies the type of the event. The type must be the full path to uniquely reference the event definition.
- * Always available.
- */
- @Key("type")
- private String type;
-
- /**
- * Date and time when the event occurred in the system. Always available.
+ * Reference to the associated entity (instance or metadata) for the given event. Always available.
*/
- @Key("timestamp")
- private String timestamp;
+ private String source;
/**
- * Link to the metadata to the event definition.
- * Optional.
+ * The product (context) that generated the event.
*/
- @Key("desc")
- private String desc;
-
- /**
- * Reference to the associated entity (instance or metadata) for the given event. Always available.
- */
- @Key("link")
- private Link link;
+ private String namespace;
/**
* This container includes only properties, e.g. for the changed state properties. If there is other data than
* properties to be transported, the data container will be used.
* Optional.
*/
- @Key("Properties")
- @SerializedName("Properties")
- private List propertyList;
+ private EventProperties properties;
protected HashMap propertyMap;
@@ -89,135 +54,62 @@ public class Event extends PropertyList {
* the DeviceFound events contains the entire Device entity rather than selected properties.
* Optional.
*/
- @Key("Data")
- @SerializedName("Data")
- private List dataList;
-
- /**
- * @return the type
- */
- public String getType() {
- return type;
- }
-
- /**
- * @param type the type to set
- */
- public void setType(String type) {
- this.type = type;
- }
+ private EventData data;
/**
- * @return the timestamp
+ * @return the link to the source
*/
- public String getTimestamp() {
- return timestamp;
+ public String getSource() {
+ return source;
}
/**
- * @param timestamp the timestamp to set
+ * @param source the link to the source to set
*/
- public void setTimestamp(String timestamp) {
- this.timestamp = timestamp;
+ public void setSource(String source) {
+ this.source = source;
}
/**
- * @return the desc
+ * @return the namespace
*/
- protected String getDesc() {
- return desc;
+ public String getNamespace() {
+ return namespace;
}
/**
- * @param desc the desc to set
+ * @param namespace the namespace to set
*/
- public void setDesc(String desc) {
- this.desc = desc;
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
}
/**
- * @return the link
+ * @return the properties
*/
- public Link getLink() {
- return link;
- }
-
- /**
- * @param link the link to set
- */
- public void setLink(Link link) {
- this.link = link;
- }
-
- /**
- * @return the propertyList
- */
- @Override
- public List getPropertyList() {
- return propertyList;
+ public EventProperties getProperties() {
+ return properties;
}
/**
* @param propertyList the propertyList to set
*/
- public void setPropertyList(List propertyList) {
- this.propertyList = propertyList;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see in.ollie.innogysmarthome.entity.PropertyList#getPropertyMap()
- */
- @Override
- protected Map getPropertyMap() {
- if (propertyMap == null) {
- propertyMap = PropertyList.getHashMap(propertyList);
- }
-
- return propertyMap;
+ public void setProperties(EventProperties properties) {
+ this.properties = properties;
}
/**
* @return the dataList
*/
- public List getDataList() {
- return dataList;
- }
-
- public List getDataListAsMessage() {
- List messageList = new ArrayList<>();
- List objectList = getDataList();
- for (JsonObject o : objectList) {
- Message m = new Message();
- m.setId(o.get("id").getAsString());
- m.setType(o.get("type").getAsString());
- m.setRead(o.get("read").getAsBoolean());
- m.setMessageClass(o.get("class").getAsString());
- m.setDesc(o.get("desc").getAsString());
- m.setTimestamp(o.get("timestamp").getAsString());
- if (o.has("Devices")) {
- List deviceLinkList = new ArrayList<>();
- JsonArray deviceArr = o.get("Devices").getAsJsonArray();
-
- for (JsonElement deviceObject : deviceArr) {
- deviceLinkList.add(new Link(deviceObject.getAsJsonObject().get("value").getAsString()));
- }
- m.setDeviceLinkList(deviceLinkList);
- }
- // TODO: add datapropertylist
- // m.setDataPropertyList(dataPropertyList);
- m.setProductLink(new Link(o.get("Product").getAsJsonObject().get("value").getAsString()));
- messageList.add(m);
- }
- return messageList;
+ public EventData getData() {
+ return data;
}
/**
* @param dataList the dataList to set
*/
- public void setDataList(List dataList) {
- this.dataList = dataList;
+ public void setData(EventData data) {
+ this.data = data;
}
/**
@@ -225,12 +117,11 @@ public void setDataList(List dataList) {
*
* @return String the id of the link or null
*/
- public String getLinkId() {
- String linkType = getLinkType();
- if (linkType != null && !linkType.equals(Link.LINK_TYPE_UNKNOWN) && !linkType.equals(Link.LINK_TYPE_SHC)) {
- String linkValue = getLink().getValue();
- if (linkValue != null) {
- return linkValue.replace(linkType, "");
+ public String getSourceId() {
+ final String linkType = getSourceLinkType();
+ if (linkType != null && !Link.LINK_TYPE_UNKNOWN.equals(linkType) && !Link.LINK_TYPE_SHC.equals(linkType)) {
+ if (source != null) {
+ return source.replace(linkType, "");
}
}
return null;
@@ -241,75 +132,20 @@ public String getLinkId() {
*
* @return
*/
- public String getLinkType() {
- Link link = getLink();
- if (link != null) {
- return link.getLinkType();
+ public String getSourceLinkType() {
+ if (source != null) {
+ return Link.getLinkType(source);
}
return null;
}
- /**
- * Returns true, if the {@link Event} is a StateChangedEvent.
- *
- * @return
- */
- public boolean isStateChangedEvent() {
- return getType().equals(TYPE_STATE_CHANGED);
- }
-
- /**
- * Returns true, if the {@link Event} is a NewMessageReceivedEvent.
- *
- * @return
- */
- public boolean isNewMessageReceivedEvent() {
- return getType().equals(TYPE_NEW_MESSAGE_RECEIVED);
- }
-
- /**
- * Returns true, if the {@link Event} is a MessageDeletedEvent.
- *
- * @return
- */
- public boolean isMessageDeletedEvent() {
- return getType().equals(TYPE_MESSAGE_DELETED);
- }
-
- /**
- * Returns true, if the {@link Event} is a Disconnect event.
- *
- * @return
- */
- public boolean isDisconnectedEvent() {
- return getType().equals(TYPE_DISCONNECT);
- }
-
- /**
- * Returns true, if the {@link Event} is a ConfigChanged event.
- *
- * @return
- */
- public boolean isConfigChangedEvent() {
- return getType().equals(TYPE_CONFIG_CHANGED);
- }
-
- /**
- * Returns true, if the {@link Event} is a ControllerConnectivityChanged event.
- *
- * @return
- */
- public boolean isControllerConnectivityChangedEvent() {
- return getType().equals(TYPE_CONTROLLER_CONNECTIVITY_CHANGED);
- }
-
/**
* Returns true, if the {@link Link} points to a {@link Capability}.
*
* @return
*/
public Boolean isLinkedtoCapability() {
- return getLink() == null ? false : getLink().isTypeCapability();
+ return source == null ? false : Link.isTypeCapability(source);
}
/**
@@ -318,7 +154,7 @@ public Boolean isLinkedtoCapability() {
* @return
*/
public Boolean isLinkedtoDevice() {
- return getLink() == null ? false : getLink().isTypeDevice();
+ return source == null ? false : Link.isTypeDevice(source);
}
/**
@@ -327,7 +163,7 @@ public Boolean isLinkedtoDevice() {
* @return
*/
public Boolean isLinkedtoMessage() {
- return getLink() == null ? false : getLink().isTypeMessage();
+ return source == null ? false : Link.isTypeMessage(source);
}
/**
@@ -336,7 +172,7 @@ public Boolean isLinkedtoMessage() {
* @return
*/
public Boolean isLinkedtoSHC() {
- return getLink() == null ? false : getLink().isTypeSHC();
+ return source == null ? false : Link.isTypeSHC(source);
}
/**
@@ -345,7 +181,7 @@ public Boolean isLinkedtoSHC() {
* @return
*/
public Integer getConfigurationVersion() {
- return getPropertyValueAsInteger(EVENT_PROPERTY_CONFIGURATION_VERSION);
+ return getData().getConfigVersion();
}
/**
@@ -358,6 +194,6 @@ public Boolean getIsConnected() {
if (!isControllerConnectivityChangedEvent()) {
return null;
}
- return getPropertyValueAsBoolean(EVENT_PROPERTY_IS_CONNECTED);
+ return getProperties().getIsConnected();
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/EntityState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventData.java
similarity index 60%
rename from bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/EntityState.java
rename to bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventData.java
index 38fe1eae15d4f..b8496353a9056 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/EntityState.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,30 +10,35 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.innogysmarthome.internal.client.entity.state;
-
-import com.google.api.client.util.Key;
+package org.openhab.binding.innogysmarthome.internal.client.entity.event;
/**
- * The general structure of the state of an entity.
- *
* @author Oliver Kuhl - Initial contribution
+ *
*/
-public class EntityState extends StatePropertyList {
+public class EventData {
+ private Integer configVersion;
- @Key("Id")
private String id;
/**
- * @return the id
+ * @return the configVersion
*/
- public String getId() {
- return id;
+ public Integer getConfigVersion() {
+ return configVersion;
}
/**
- * @param id the id to set
+ * @param configVersion the configVersion to set
*/
+ public void setConfigVersion(Integer configVersion) {
+ this.configVersion = configVersion;
+ }
+
+ public String getId() {
+ return id;
+ }
+
public void setId(String id) {
this.id = id;
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventProperties.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventProperties.java
new file mode 100644
index 0000000000000..0c4e36374ad74
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/EventProperties.java
@@ -0,0 +1,583 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.event;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class EventProperties {
+ /** SHC Properties **/
+ private Integer configVersion;
+
+ private Boolean isConnected;
+
+ /** Writable capability properties **/
+ private Integer dimLevel;
+
+ private Boolean onState;
+
+ private String operationMode;
+
+ private Double pointTemperature;
+
+ private Integer shutterLevel;
+
+ private Boolean value;
+
+ /** readable capability properties **/
+ private Double absoluteEnergyConsumption;
+
+ private Double energyConsumptionDayEuro;
+
+ private Double energyConsumptionDayKWh;
+
+ private Double energyConsumptionMonthEuro;
+
+ private Double energyConsumptionMonthKWh;
+
+ private Double energyPerDayInEuro;
+
+ private Double energyPerDayInKWh;
+
+ private Double energyPerMonthInEuro;
+
+ private Double energyPerMonthInKWh;
+
+ private Boolean frostWarning;
+
+ private Double humidity;
+
+ private Boolean isOpen;
+
+ private Boolean isSmokeAlarm;
+
+ private Integer lastKeyPressCounter;
+
+ private Integer lastPressedButtonIndex;
+
+ /**
+ * Key press type
+ */
+ @SerializedName("type")
+ private String lastKeyPressType;
+
+ private Double luminance;
+
+ private Boolean moldWarning;
+
+ private Integer motionDetectedCount;
+
+ private Double powerConsumptionWatt;
+
+ private Double powerInWatt;
+
+ private Double temperature;
+
+ private Double totalEnergy;
+
+ private Boolean windowReductionActive;
+
+ private Double cpuUsage;
+
+ private Double diskUsage;
+
+ private Double memoryUsage;
+
+ /**
+ * @return the configurationVersion
+ */
+ public Integer getConfigVersion() {
+ return configVersion;
+ }
+
+ /**
+ * @param configVersion the configurationVersion to set
+ */
+ public void setConfigVersion(final Integer configVersion) {
+ this.configVersion = configVersion;
+ }
+
+ /**
+ * @return the isConnected
+ */
+ public Boolean getIsConnected() {
+ return isConnected;
+ }
+
+ /**
+ * @param isConnected the isConnected to set
+ */
+ public void setIsConnected(final Boolean isConnected) {
+ this.isConnected = isConnected;
+ }
+
+ /**
+ * @return the dimLevel
+ */
+ public Integer getDimLevel() {
+ return dimLevel;
+ }
+
+ /**
+ * @param dimLevel the dimLevel to set
+ */
+ public void setDimLevel(final Integer dimLevel) {
+ this.dimLevel = dimLevel;
+ }
+
+ /**
+ * @return the onState
+ */
+ public Boolean getOnState() {
+ return onState;
+ }
+
+ /**
+ * @param onState the onState to set
+ */
+ public void setOnState(final Boolean onState) {
+ this.onState = onState;
+ }
+
+ /**
+ * @return the operationMode
+ */
+ public String getOperationMode() {
+ return operationMode;
+ }
+
+ /**
+ * @param operationMode the operationMode to set
+ */
+ public void setOperationMode(final String operationMode) {
+ this.operationMode = operationMode;
+ }
+
+ /**
+ * @return the pointTemperature
+ */
+ public Double getPointTemperature() {
+ return pointTemperature;
+ }
+
+ /**
+ * @param pointTemperature the pointTemperature to set
+ */
+ public void setPointTemperature(final Double pointTemperature) {
+ this.pointTemperature = pointTemperature;
+ }
+
+ /**
+ * @return the shutterLevel
+ */
+ public Integer getShutterLevel() {
+ return shutterLevel;
+ }
+
+ /**
+ * @param shutterLevel the shutterLevel to set
+ */
+ public void setShutterLevel(final Integer shutterLevel) {
+ this.shutterLevel = shutterLevel;
+ }
+
+ /**
+ * @return the value
+ */
+ public Boolean getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(final Boolean value) {
+ this.value = value;
+ }
+
+ /**
+ * @return the absoluteEnergyConsumption
+ */
+ public Double getAbsoluteEnergyConsumption() {
+ return absoluteEnergyConsumption;
+ }
+
+ /**
+ * @param absoluteEnergyConsumption the absoluteEnergyConsumption to set
+ */
+ public void setAbsoluteEnergyConsumption(final Double absoluteEnergyConsumption) {
+ this.absoluteEnergyConsumption = absoluteEnergyConsumption;
+ }
+
+ /**
+ * @return the energyConsumptionDayEuro
+ */
+ public Double getEnergyConsumptionDayEuro() {
+ return energyConsumptionDayEuro;
+ }
+
+ /**
+ * @param energyConsumptionDayEuro the energyConsumptionDayEuro to set
+ */
+ public void setEnergyConsumptionDayEuro(final Double energyConsumptionDayEuro) {
+ this.energyConsumptionDayEuro = energyConsumptionDayEuro;
+ }
+
+ /**
+ * @return the energyConsumptionDayKWh
+ */
+ public Double getEnergyConsumptionDayKWh() {
+ return energyConsumptionDayKWh;
+ }
+
+ /**
+ * @param energyConsumptionDayKWh the energyConsumptionDayKWh to set
+ */
+ public void setEnergyConsumptionDayKWh(final Double energyConsumptionDayKWh) {
+ this.energyConsumptionDayKWh = energyConsumptionDayKWh;
+ }
+
+ /**
+ * @return the energyConsumptionMonthEuro
+ */
+ public Double getEnergyConsumptionMonthEuro() {
+ return energyConsumptionMonthEuro;
+ }
+
+ /**
+ * @param energyConsumptionMonthEuro the energyConsumptionMonthEuro to set
+ */
+ public void setEnergyConsumptionMonthEuro(final Double energyConsumptionMonthEuro) {
+ this.energyConsumptionMonthEuro = energyConsumptionMonthEuro;
+ }
+
+ /**
+ * @return the energyConsumptionMonthKWh
+ */
+ public Double getEnergyConsumptionMonthKWh() {
+ return energyConsumptionMonthKWh;
+ }
+
+ /**
+ * @param energyConsumptionMonthKWh the energyConsumptionMonthKWh to set
+ */
+ public void setEnergyConsumptionMonthKWh(final Double energyConsumptionMonthKWh) {
+ this.energyConsumptionMonthKWh = energyConsumptionMonthKWh;
+ }
+
+ /**
+ * @return the energyPerDayInEuro
+ */
+ public Double getEnergyPerDayInEuro() {
+ return energyPerDayInEuro;
+ }
+
+ /**
+ * @param energyPerDayInEuro the energyPerDayInEuro to set
+ */
+ public void setEnergyPerDayInEuro(final Double energyPerDayInEuro) {
+ this.energyPerDayInEuro = energyPerDayInEuro;
+ }
+
+ /**
+ * @return the energyPerDayInKWh
+ */
+ public Double getEnergyPerDayInKWh() {
+ return energyPerDayInKWh;
+ }
+
+ /**
+ * @param energyPerDayInKWh the energyPerDayInKWh to set
+ */
+ public void setEnergyPerDayInKWh(final Double energyPerDayInKWh) {
+ this.energyPerDayInKWh = energyPerDayInKWh;
+ }
+
+ /**
+ * @return the energyPerMonthInEuro
+ */
+ public Double getEnergyPerMonthInEuro() {
+ return energyPerMonthInEuro;
+ }
+
+ /**
+ * @param energyPerMonthInEuro the energyPerMonthInEuro to set
+ */
+ public void setEnergyPerMonthInEuro(final Double energyPerMonthInEuro) {
+ this.energyPerMonthInEuro = energyPerMonthInEuro;
+ }
+
+ /**
+ * @return the energyPerMonthInKWh
+ */
+ public Double getEnergyPerMonthInKWh() {
+ return energyPerMonthInKWh;
+ }
+
+ /**
+ * @param energyPerMonthInKWh the energyPerMonthInKWh to set
+ */
+ public void setEnergyPerMonthInKWh(final Double energyPerMonthInKWh) {
+ this.energyPerMonthInKWh = energyPerMonthInKWh;
+ }
+
+ /**
+ * @return the frostWarning
+ */
+ public Boolean getFrostWarning() {
+ return frostWarning;
+ }
+
+ /**
+ * @param frostWarning the frostWarning to set
+ */
+ public void setFrostWarning(final Boolean frostWarning) {
+ this.frostWarning = frostWarning;
+ }
+
+ /**
+ * @return the humidity
+ */
+ public Double getHumidity() {
+ return humidity;
+ }
+
+ /**
+ * @param humidity the humidity to set
+ */
+ public void setHumidity(final Double humidity) {
+ this.humidity = humidity;
+ }
+
+ /**
+ * @return the isOpen
+ */
+ public Boolean getIsOpen() {
+ return isOpen;
+ }
+
+ /**
+ * @param isOpen the isOpen to set
+ */
+ public void setIsOpen(final Boolean isOpen) {
+ this.isOpen = isOpen;
+ }
+
+ /**
+ * @return the isSmokeAlarm
+ */
+ public Boolean getIsSmokeAlarm() {
+ return isSmokeAlarm;
+ }
+
+ /**
+ * @param isSmokeAlarm the isSmokeAlarm to set
+ */
+ public void setIsSmokeAlarm(final Boolean isSmokeAlarm) {
+ this.isSmokeAlarm = isSmokeAlarm;
+ }
+
+ /**
+ * @return the lastKeyPressCounter
+ */
+ public Integer getLastKeyPressCounter() {
+ return lastKeyPressCounter;
+ }
+
+ /**
+ * @param lastKeyPressCounter the lastKeyPressCounter to set
+ */
+ public void setLastKeyPressCounter(final Integer lastKeyPressCounter) {
+ this.lastKeyPressCounter = lastKeyPressCounter;
+ }
+
+ /**
+ * @return the lastPressedButtonIndex
+ */
+ public Integer getLastPressedButtonIndex() {
+ return lastPressedButtonIndex;
+ }
+
+ /**
+ * @param lastPressedButtonIndex the lastPressedButtonIndex to set
+ */
+ public void setLastPressedButtonIndex(final Integer lastPressedButtonIndex) {
+ this.lastPressedButtonIndex = lastPressedButtonIndex;
+ }
+
+ public String getLastKeyPressType() {
+ return lastKeyPressType;
+ }
+
+ public void setLastKeyPressType(final String lastKeyPressType) {
+ this.lastKeyPressType = lastKeyPressType;
+ }
+
+ /**
+ * @return the luminance
+ */
+ public Double getLuminance() {
+ return luminance;
+ }
+
+ /**
+ * @param luminance the luminance to set
+ */
+ public void setLuminance(final Double luminance) {
+ this.luminance = luminance;
+ }
+
+ /**
+ * @return the moldWarning
+ */
+ public Boolean getMoldWarning() {
+ return moldWarning;
+ }
+
+ /**
+ * @param moldWarning the moldWarning to set
+ */
+ public void setMoldWarning(final Boolean moldWarning) {
+ this.moldWarning = moldWarning;
+ }
+
+ /**
+ * @return the motionDetectedCount
+ */
+ public Integer getMotionDetectedCount() {
+ return motionDetectedCount;
+ }
+
+ /**
+ * @param motionDetectedCount the motionDetectedCount to set
+ */
+ public void setMotionDetectedCount(final Integer motionDetectedCount) {
+ this.motionDetectedCount = motionDetectedCount;
+ }
+
+ /**
+ * @return the powerConsumptionWatt
+ */
+ public Double getPowerConsumptionWatt() {
+ return powerConsumptionWatt;
+ }
+
+ /**
+ * @param powerConsumptionWatt the powerConsumptionWatt to set
+ */
+ public void setPowerConsumptionWatt(final Double powerConsumptionWatt) {
+ this.powerConsumptionWatt = powerConsumptionWatt;
+ }
+
+ /**
+ * @return the powerInWatt
+ */
+ public Double getPowerInWatt() {
+ return powerInWatt;
+ }
+
+ /**
+ * @param powerInWatt the powerInWatt to set
+ */
+ public void setPowerInWatt(final Double powerInWatt) {
+ this.powerInWatt = powerInWatt;
+ }
+
+ /**
+ * @return the temperature
+ */
+ public Double getTemperature() {
+ return temperature;
+ }
+
+ /**
+ * @param temperature the temperature to set
+ */
+ public void setTemperature(final Double temperature) {
+ this.temperature = temperature;
+ }
+
+ /**
+ * @return the totalEnergy
+ */
+ public Double getTotalEnergy() {
+ return totalEnergy;
+ }
+
+ /**
+ * @param totalEnergy the totalEnergy to set
+ */
+ public void setTotalEnergy(final Double totalEnergy) {
+ this.totalEnergy = totalEnergy;
+ }
+
+ /**
+ * @return the windowReductionActive
+ */
+ public Boolean getWindowReductionActive() {
+ return windowReductionActive;
+ }
+
+ /**
+ * @param windowReductionActive the windowReductionActive to set
+ */
+ public void setWindowReductionActive(final Boolean windowReductionActive) {
+ this.windowReductionActive = windowReductionActive;
+ }
+
+ /**
+ * @param cpuUsage the cpuUsage to set
+ */
+ public void setCpuUsage(final Double cpuUsage) {
+ this.cpuUsage = cpuUsage;
+ }
+
+ /**
+ * @return the cpuUsage
+ */
+ public Double getCpuUsage() {
+ return cpuUsage;
+ }
+
+ /**
+ * @param diskUsage the diskUsage to set
+ */
+ public void setDiskUsage(final Double diskUsage) {
+ this.diskUsage = diskUsage;
+ }
+
+ /**
+ * @return the diskUsage
+ */
+ public Double getDiskUsage() {
+ return diskUsage;
+ }
+
+ /**
+ * @param memoryUsage the memoryUsage to set
+ */
+ public void setMemoryUsage(final Double memoryUsage) {
+ this.memoryUsage = memoryUsage;
+ }
+
+ /**
+ * @return the memoryUsage
+ */
+ public Double getMemoryUsage() {
+ return memoryUsage;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageEvent.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageEvent.java
new file mode 100644
index 0000000000000..805c7dc44af38
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageEvent.java
@@ -0,0 +1,155 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.event;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
+import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
+
+/**
+ * Defines the {@link Event}, which is sent by the innogy websocket to inform the clients about changes.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class MessageEvent extends BaseEvent {
+
+ public static final String EVENT_PROPERTY_CONFIGURATION_VERSION = "ConfigurationVersion";
+ public static final String EVENT_PROPERTY_IS_CONNECTED = "IsConnected";
+
+ /**
+ * Reference to the associated entity (instance or metadata) for the given event. Always available.
+ */
+ private String source;
+
+ /**
+ * The product (context) that generated the event.
+ */
+ private String namespace;
+
+ /**
+ * Data for the event, The data container can contain any type of entity dependent on the event type. For example,
+ * the DeviceFound events contains the entire Device entity rather than selected properties.
+ * Optional.
+ */
+ private Message data;
+
+ /**
+ * @return the link to the source
+ */
+ public String getSource() {
+ return source;
+ }
+
+ /**
+ * @param source the link to the source to set
+ */
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ /**
+ * @return the namespace
+ */
+ public String getNamespace() {
+ return namespace;
+ }
+
+ /**
+ * @param namespace the namespace to set
+ */
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
+ }
+
+ /**
+ * @return the dataList
+ */
+ public Message getData() {
+ return data;
+ }
+
+ /**
+ * @param message the message to set
+ */
+ public void setData(Message data) {
+ this.data = data;
+ }
+
+ public Message getMessage() {
+ return data;
+ }
+
+ /**
+ * Returns the id of the link or null, if there is no link or the link does not have an id.
+ *
+ * @return String the id of the link or null
+ */
+ public String getSourceId() {
+ final String linkType = getSourceLinkType();
+ if (linkType != null && !Link.LINK_TYPE_UNKNOWN.equals(linkType) && !Link.LINK_TYPE_SHC.equals(linkType)) {
+ if (source != null) {
+ return source.replace(linkType, "");
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the Type of the {@link Link} in the {@link Event}.
+ *
+ * @return
+ */
+ public String getSourceLinkType() {
+ if (source != null) {
+ return Link.getLinkType(source);
+ }
+ return null;
+ }
+
+ /**
+ * Returns true, if the {@link Link} points to a {@link Capability}.
+ *
+ * @return
+ */
+ public Boolean isLinkedtoCapability() {
+ return source == null ? false : Link.isTypeCapability(source);
+ }
+
+ /**
+ * Returns true, if the {@link Link} points to a {@link Device}.
+ *
+ * @return
+ */
+ public Boolean isLinkedtoDevice() {
+ return source == null ? false : Link.isTypeDevice(source);
+ }
+
+ /**
+ * Returns true, if the {@link Link} points to a {@link Message}.
+ *
+ * @return
+ */
+ public Boolean isLinkedtoMessage() {
+ return source == null ? false : Link.isTypeMessage(source);
+ }
+
+ /**
+ * Returns true, if the {@link Link} points to the SHC {@link Device}.
+ *
+ * @return
+ */
+ public Boolean isLinkedtoSHC() {
+ return source == null ? false : Link.isTypeSHC(source);
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/Link.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/Link.java
index e890177d45aab..a762440d968a3 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/Link.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/link/Link.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,11 +12,9 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.entity.link;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
-
-import com.google.api.client.util.Key;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
/**
* Defines the data structure for a {@link Link}. This is the basic component used to link different data types in the
@@ -32,45 +30,20 @@ public class Link {
public static final String LINK_TYPE_SHC = "/desc/device/SHC.RWE/";
public static final String LINK_TYPE_UNKNOWN = "unknown";
- @Key("value")
- private String value;
-
- public Link(String value) {
- this.value = value;
- }
-
- public Link() {
- }
-
- /**
- * @return the value
- */
- public String getValue() {
- return value;
- }
-
- /**
- * @param value the value to set
- */
- public void setValue(String value) {
- this.value = value;
- }
-
/**
* Returns the Type of the {@link Link}.
*
* @return {@link #LINK_TYPE_CAPABILITY},{@link #LINK_TYPE_DEVICE}, {@link #LINK_TYPE_MESSAGE},
* {@link #LINK_TYPE_SHC} or {@link #LINK_TYPE_UNKNOWN}
*/
- public String getLinkType() {
- String linkValue = getValue();
- if (linkValue.startsWith(LINK_TYPE_CAPABILITY)) {
+ public static String getLinkType(String link) {
+ if (link.startsWith(LINK_TYPE_CAPABILITY)) {
return LINK_TYPE_CAPABILITY;
- } else if (linkValue.startsWith(LINK_TYPE_DEVICE)) {
+ } else if (link.startsWith(LINK_TYPE_DEVICE)) {
return LINK_TYPE_DEVICE;
- } else if (linkValue.startsWith(LINK_TYPE_MESSAGE)) {
+ } else if (link.startsWith(LINK_TYPE_MESSAGE)) {
return LINK_TYPE_MESSAGE;
- } else if (linkValue.startsWith(LINK_TYPE_SHC)) {
+ } else if (link.startsWith(LINK_TYPE_SHC)) {
return LINK_TYPE_SHC;
} else {
return LINK_TYPE_UNKNOWN;
@@ -82,11 +55,11 @@ public String getLinkType() {
*
* @return String the id of the link or null
*/
- public String getId() {
- if (this.value != null) {
- String linkType = getLinkType();
- if (linkType != null && !linkType.equals(Link.LINK_TYPE_UNKNOWN) && !linkType.equals(Link.LINK_TYPE_SHC)) {
- return this.value.replace(linkType, "");
+ public static String getId(String link) {
+ if (link != null) {
+ final String linkType = getLinkType(link);
+ if (linkType != null && !Link.LINK_TYPE_UNKNOWN.equals(linkType) && !Link.LINK_TYPE_SHC.equals(linkType)) {
+ return link.replace(linkType, "");
}
}
return null;
@@ -97,8 +70,8 @@ public String getId() {
*
* @return
*/
- public boolean isTypeCapability() {
- return getLinkType().equals(LINK_TYPE_CAPABILITY);
+ public static boolean isTypeCapability(String link) {
+ return LINK_TYPE_CAPABILITY.equals(Link.getLinkType(link));
}
/**
@@ -106,8 +79,8 @@ public boolean isTypeCapability() {
*
* @return
*/
- public boolean isTypeDevice() {
- return getLinkType().equals(LINK_TYPE_DEVICE);
+ public static boolean isTypeDevice(String link) {
+ return LINK_TYPE_DEVICE.equals(Link.getLinkType(link));
}
/**
@@ -115,8 +88,8 @@ public boolean isTypeDevice() {
*
* @return
*/
- public boolean isTypeMessage() {
- return getLinkType().equals(LINK_TYPE_MESSAGE);
+ public static boolean isTypeMessage(String link) {
+ return LINK_TYPE_MESSAGE.equals(Link.getLinkType(link));
}
/**
@@ -124,8 +97,8 @@ public boolean isTypeMessage() {
*
* @return
*/
- public boolean isTypeSHC() {
- return getLinkType().equals(LINK_TYPE_SHC);
+ public static boolean isTypeSHC(String link) {
+ return LINK_TYPE_SHC.equals(Link.getLinkType(link));
}
/**
@@ -133,7 +106,7 @@ public boolean isTypeSHC() {
*
* @return
*/
- public boolean isTypeUnknown() {
- return getLinkType().equals(LINK_TYPE_UNKNOWN);
+ public static boolean isTypeUnknown(String link) {
+ return LINK_TYPE_UNKNOWN.equals(Link.getLinkType(link));
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/Location.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/Location.java
new file mode 100644
index 0000000000000..3d299b3de4f30
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/Location.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.location;
+
+/**
+ * Defines a {@link Location} structure.
+ *
+ * @author Oliver Kuhl - Initial contribution
+ */
+public class Location {
+
+ /**
+ * Identifier of the location – must be unique.
+ */
+ private String id;
+
+ /**
+ * Configuration properties of the {@link Location}.
+ */
+ private LocationConfig config;
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the config
+ */
+ public LocationConfig getConfig() {
+ return config;
+ }
+
+ /**
+ * @param config the config to set
+ */
+ public void setConfig(LocationConfig config) {
+ this.config = config;
+ }
+
+ /**
+ * @return the location name
+ */
+ public String getName() {
+ return getConfig().getName();
+ }
+
+ /**
+ * @return the location type
+ */
+ public String getType() {
+ return getConfig().getType();
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParameter.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/LocationConfig.java
similarity index 53%
rename from bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParameter.java
rename to bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/LocationConfig.java
index cfcdb8f78e22d..3f915a6d2b6d7 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/action/ActionParameter.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/location/LocationConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,35 +10,24 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.innogysmarthome.internal.client.entity.action;
-
-import org.openhab.binding.innogysmarthome.internal.client.entity.Constant;
-
-import com.google.api.client.util.Key;
+package org.openhab.binding.innogysmarthome.internal.client.entity.location;
/**
- * Defines the {@link ActionParameter} data structure needed to pass parameters within an {@link Action} to the innogy
- * SmartHome backend.
+ * Defines the structure of the configuration of a {@link Location}.
*
* @author Oliver Kuhl - Initial contribution
*/
-public class ActionParameter {
-
- @Key("name")
+public class LocationConfig {
+ /**
+ * Name of the {@link Location}
+ */
private String name;
- @Key("type")
+ /**
+ * Type of the {@link Location}
+ */
private String type;
- @Key("Constant")
- private Constant constant;
-
- public ActionParameter(String name, String type, Constant constant) {
- this.name = name;
- this.type = type;
- this.constant = constant;
- }
-
/**
* @return the name
*/
@@ -66,19 +55,4 @@ public String getType() {
public void setType(String type) {
this.type = type;
}
-
- /**
- * @return the constant
- */
- public Constant getConstant() {
- return constant;
- }
-
- /**
- * @param constant the constant to set
- */
- public void setConstant(Constant constant) {
- this.constant = constant;
- }
-
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Message.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/Message.java
similarity index 73%
rename from bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Message.java
rename to bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/Message.java
index 6f72b481835b5..372dd349e64b4 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/Message.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/Message.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -10,14 +10,10 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.openhab.binding.innogysmarthome.internal.client.entity;
+package org.openhab.binding.innogysmarthome.internal.client.entity.message;
import java.util.List;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
-
-import com.google.api.client.util.Key;
-
/**
* Defines the structure of a {@link Message}. Messages are part of the innogy system and besides other things are used
* to raise battery warnings.
@@ -79,80 +75,47 @@ public class Message {
/**
* Identifier of the message – must be unique.
*/
- @Key("id")
private String id;
/**
* Specifies the type of the message.
*/
- @Key("type")
private String type;
/**
- * Defines whether it is an alert or a message, default is message.
+ * Defines whether the message has been viewed by a user.
*/
- @Key("class")
- private String messageClass;
+ private boolean isRead;
/**
- * Reference to the description of the message.
- *
- * Optional.
+ * Defines whether it is an alert or a message, default is message.
*/
- @Key("desc")
- private String desc;
-
+ private String messageClass;
/**
* Timestamp when the message was created.
*
* Optional.
*/
- @Key("timestamp")
private String timestamp;
- /**
- * Defines whether the message has been viewed by a user.
- */
- @Key("read")
- private boolean isRead;
-
- /**
- * Reference to the underlying product, which the message relates to.
- */
- @Key("Product")
- private Link productLink;
-
/**
* Reference to the underlying devices, which the message relates to.
*
* Optional.
*/
- @Key("Devices")
- private List deviceLinkList;
-
- /**
- * Reference to the underlying capabilities, which the message relates to.
- *
- * Optional.
- */
- @Key("Capabilities")
- private List capabilityLinkList;
+ private List deviceLinkList;
/**
* Container for all parameters of the message. The parameters are contained in Property entities.
*
* Optional.
*/
- @Key("Data")
- private List dataPropertyList;
+ private MessageProperties properties;
/**
- * Container for tagging the message, e.g. if the message should only be visible to certain roles.
- *
- * Optional.
+ * The product (context) that generated the message.
*/
- @Key("Tags")
- private List tagsPropertyList;
+ private String namespace;
/**
* @return the id
@@ -196,20 +159,6 @@ public void setMessageClass(String messageClass) {
this.messageClass = messageClass;
}
- /**
- * @return the desc
- */
- public String getDesc() {
- return desc;
- }
-
- /**
- * @param desc the desc to set
- */
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
/**
* @return the timestamp
*/
@@ -238,73 +187,63 @@ public void setRead(boolean isRead) {
this.isRead = isRead;
}
- /**
- * @return the productLink
- */
- public Link getProductLink() {
- return productLink;
- }
-
- /**
- * @param productLink the productLink to set
- */
- public void setProductLink(Link productLink) {
- this.productLink = productLink;
- }
-
/**
* @return the deviceLinkList
*/
- public List getDeviceLinkList() {
+ public List getDeviceLinkList() {
return deviceLinkList;
}
/**
* @param deviceLinkList the deviceLinkList to set
*/
- public void setDeviceLinkList(List deviceLinkList) {
+ public void setDeviceLinkList(List deviceLinkList) {
this.deviceLinkList = deviceLinkList;
}
/**
- * @return the capabilityLinkList
+ * @return the dataPropertyList
*/
- public List getCapabilityLinkList() {
- return capabilityLinkList;
+ public MessageProperties getProperties() {
+ return properties;
}
/**
- * @param capabilityLinkList the capabilityLinkList to set
+ * @param dataPropertyList the dataPropertyList to set
*/
- public void setCapabilityLinkList(List capabilityLinkList) {
- this.capabilityLinkList = capabilityLinkList;
+ public void setProperties(MessageProperties properties) {
+ this.properties = properties;
}
/**
- * @return the dataPropertyList
+ * @return the namespace
*/
- public List getDataPropertyList() {
- return dataPropertyList;
+ public String getNamespace() {
+ return namespace;
}
/**
- * @param dataPropertyList the dataPropertyList to set
+ * @param namespace the namespace to set
*/
- public void setDataPropertyList(List dataPropertyList) {
- this.dataPropertyList = dataPropertyList;
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
}
/**
- * @return the tagsPropertyList
+ * Returns true, if the message is of type "DeviceUnreachable".
+ *
+ * @return
*/
- public List getTagsPropertyList() {
- return tagsPropertyList;
+ public boolean isTypeDeviceUnreachable() {
+ return TYPE_DEVICE_UNREACHABLE.equals(type);
}
/**
- * @param tagsPropertyList the tagsPropertyList to set
+ * Returns true, if the message is of type "DeviceLowBattery".
+ *
+ * @return
*/
- public void setTagsPropertyList(List tagsPropertyList) {
- this.tagsPropertyList = tagsPropertyList;
+ public boolean isTypeDeviceLowBattery() {
+ return TYPE_DEVICE_LOW_BATTERY.equals(type);
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/MessageProperties.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/MessageProperties.java
new file mode 100644
index 0000000000000..ae6a06cc1a6d1
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/message/MessageProperties.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.message;
+
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class MessageProperties {
+ /**
+ * Name of the referenced {@link Device}
+ */
+ private String deviceName;
+
+ /**
+ * Serialnumber of the referenced {@link Device}
+ */
+ private String serialNumber;
+
+ /**
+ * Locationname of the referenced {@link Device}
+ */
+ private String locationName;
+
+ /**
+ * @return the deviceName
+ */
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ /**
+ * @param deviceName the deviceName to set
+ */
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ /**
+ * @return the serialNumber
+ */
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ /**
+ * @param serialNumber the serialNumber to set
+ */
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
+ /**
+ * @return the locationName
+ */
+ public String getLocationName() {
+ return locationName;
+ }
+
+ /**
+ * @param locationName the locationName to set
+ */
+ public void setLocationName(String locationName) {
+ this.locationName = locationName;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BaseState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BaseState.java
new file mode 100644
index 0000000000000..7f262f6c5410e
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BaseState.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public abstract class BaseState {
+ private String lastChanged;
+
+ /**
+ * @return the lastChanged
+ */
+ public String getLastChanged() {
+ return lastChanged;
+ }
+
+ /**
+ * @param lastChanged the lastChanged to set
+ */
+ public void setLastChanged(String lastChanged) {
+ this.lastChanged = lastChanged;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BooleanState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BooleanState.java
new file mode 100644
index 0000000000000..b6e43852688a5
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/BooleanState.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class BooleanState extends BaseState {
+ private Boolean value;
+
+ /**
+ * @return the value
+ */
+ public Boolean getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(Boolean value) {
+ this.value = value;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/CapabilityState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/CapabilityState.java
deleted file mode 100644
index 305e182c78807..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/CapabilityState.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity.state;
-
-import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
-
-/**
- * Defines the {@link CapabilityState}, that holds the state of a {@link Capability}, e.g. a temperature.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public class CapabilityState extends EntityState {
- public static final String STATE_NAME_VARIABLE_ACTUATOR = "Value";
- public static final String STATE_NAME_SWITCH_ACTUATOR = "OnState";
- public static final String STATE_NAME_TEMPERATURE_SENSOR_TEMPERATURE = "Temperature";
- public static final String STATE_NAME_TEMPERATURE_SENSOR_FROST_WARNING = "FrostWarning";
- public static final String STATE_NAME_THERMOSTAT_ACTUATOR_POINT_TEMPERATURE = "PointTemperature";
- public static final String STATE_NAME_THERMOSTAT_ACTUATOR_OPERATION_MODE = "OperationMode";
- public static final String STATE_NAME_THERMOSTAT_ACTUATOR_WINDOW_REDUCTION_ACTIVE = "WindowReductionActive";
- public static final String STATE_NAME_HUMIDITY_SENSOR_HUMIDITY = "Humidity";
- public static final String STATE_NAME_HUMIDITY_SENSOR_MOLD_WARNING = "MoldWarning";
- public static final String STATE_NAME_WINDOW_DOOR_SENSOR = "IsOpen";
- public static final String STATE_NAME_SMOKE_DETECTOR_SENSOR = "IsSmokeAlarm";
- public static final String STATE_NAME_ALARM_ACTUATOR = "OnState";
- public static final String STATE_NAME_MOTION_DETECTION_SENSOR = "MotionDetectedCount";
- public static final String STATE_NAME_LUMINANCE_SENSOR = "Luminance";
- public static final String STATE_NAME_PUSH_BUTTON_SENSOR_COUNTER = "LastKeyPressCounter";
- public static final String STATE_NAME_PUSH_BUTTON_SENSOR_BUTTON_INDEX = "LastPressedButtonIndex";
- public static final String STATE_NAME_DIMMER_ACTUATOR = "DimLevel";
- public static final String STATE_NAME_ROLLERSHUTTER_ACTUATOR = "ShutterLevel";
-
- // ENERGY CONSUMPTION SENSOR
- public static final String STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_KWH = "EnergyConsumptionMonthKWh";
- public static final String STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ABSOLUTE_ENERGY_CONSUMPTION = "AbsoluteEnergyConsumption";
- public static final String STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_EURO = "EnergyConsumptionMonthEuro";
- public static final String STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_EURO = "EnergyConsumptionDayEuro";
- public static final String STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_KWH = "EnergyConsumptionDayKWh";
- // POWER CONSUMPTION SENSOR
- public static final String STATE_NAME_POWER_CONSUMPTION_SENSOR_POWER_CONSUMPTION_WATT = "PowerConsumptionWatt";
- // GENERATION METER ENERGY SENSOR
- public static final String STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_KWH = "EnergyPerMonthInKWh";
- public static final String STATE_NAME_GENERATION_METER_ENERGY_SENSOR_TOTAL_ENERGY = "TotalEnergy";
- public static final String STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_EURO = "EnergyPerMonthInEuro";
- public static final String STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_EURO = "EnergyPerDayInEuro";
- public static final String STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_KWH = "EnergyPerDayInKWh";
- // GENERATION METER POWER CONSUMPTION SENSOR
- public static final String STATE_NAME_GENERATION_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT = "PowerInWatt";
- // TWO WAY METER ENERGY CONSUMPTION SENSOR
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_KWH = "EnergyPerMonthInKWh";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_TOTAL_ENERGY = "TotalEnergy";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_EURO = "EnergyPerMonthInEuro";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_EURO = "EnergyPerDayInEuro";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_KWH = "EnergyPerDayInKWh";
- // TWO WAY METER ENERGY FEED SENSOR
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_KWH = "EnergyPerMonthInKWh";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_TOTAL_ENERGY = "TotalEnergy";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_EURO = "EnergyPerMonthInEuro";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_EURO = "EnergyPerDayInEuro";
- public static final String STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_KWH = "EnergyPerDayInKWh";
- // TWO WAY METER POWER CONSUMPTION SENSOR
- public static final String STATE_NAME_TWO_WAY_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT = "PowerInWatt";
-
- public static final String STATE_VALUE_OPERATION_MODE_AUTO = "Auto";
- public static final String STATE_VALUE_OPERATION_MODE_MANUAL = "Manu";
-
- public Boolean getVariableActuatorState() {
- return getPropertyValueAsBoolean(STATE_NAME_VARIABLE_ACTUATOR);
- }
-
- public void setVariableActuatorState(boolean on) {
- setPropertyValueAsBoolean(STATE_NAME_VARIABLE_ACTUATOR, on);
- }
-
- public Boolean getSwitchActuatorState() {
- return getPropertyValueAsBoolean(STATE_NAME_SWITCH_ACTUATOR);
- }
-
- public void setSwitchActuatorState(boolean on) {
- setPropertyValueAsBoolean(STATE_NAME_SWITCH_ACTUATOR, on);
- }
-
- public Double getTemperatureSensorTemperatureState() {
- return getPropertyValueAsDouble(STATE_NAME_TEMPERATURE_SENSOR_TEMPERATURE);
- }
-
- public void setTemperatureSensorTemperatureState(double temperature) {
- setPropertyValueAsDouble(STATE_NAME_TEMPERATURE_SENSOR_TEMPERATURE, temperature);
- }
-
- public Boolean getTemperatureSensorFrostWarningState() {
- return getPropertyValueAsBoolean(STATE_NAME_TEMPERATURE_SENSOR_FROST_WARNING);
- }
-
- public void setTemperatureSensorFrostWarningState(boolean frostWarning) {
- setPropertyValueAsBoolean(STATE_NAME_TEMPERATURE_SENSOR_FROST_WARNING, frostWarning);
- }
-
- public Double getThermostatActuatorPointTemperatureState() {
- return getPropertyValueAsDouble(STATE_NAME_THERMOSTAT_ACTUATOR_POINT_TEMPERATURE);
- }
-
- public void setThermostatActuatorPointTemperatureState(double pointTemperature) {
- setPropertyValueAsDouble(STATE_NAME_THERMOSTAT_ACTUATOR_POINT_TEMPERATURE, pointTemperature);
- }
-
- public String getThermostatActuatorOperationModeState() {
- return getPropertyValueAsString(STATE_NAME_THERMOSTAT_ACTUATOR_OPERATION_MODE);
- }
-
- public void setThermostatActuatorOperationModeState(String operationMode) {
- if (operationMode.equals(STATE_VALUE_OPERATION_MODE_MANUAL)) {
- setPropertyValueAsString(STATE_NAME_THERMOSTAT_ACTUATOR_OPERATION_MODE, STATE_VALUE_OPERATION_MODE_MANUAL);
- } else {
- setPropertyValueAsString(STATE_NAME_THERMOSTAT_ACTUATOR_OPERATION_MODE, STATE_VALUE_OPERATION_MODE_AUTO);
- }
- }
-
- public Boolean getThermostatActuatorWindowReductionActiveState() {
- return getPropertyValueAsBoolean(STATE_NAME_THERMOSTAT_ACTUATOR_WINDOW_REDUCTION_ACTIVE);
- }
-
- public void setThermostatActuatorWindowReductionActiveState(boolean windowReductionActive) {
- setPropertyValueAsBoolean(STATE_NAME_THERMOSTAT_ACTUATOR_WINDOW_REDUCTION_ACTIVE, windowReductionActive);
- }
-
- public Double getHumiditySensorHumidityState() {
- return getPropertyValueAsDouble(STATE_NAME_HUMIDITY_SENSOR_HUMIDITY);
- }
-
- public void setHumiditySensorHumidityState(double humidity) {
- setPropertyValueAsDouble(STATE_NAME_HUMIDITY_SENSOR_HUMIDITY, humidity);
- }
-
- public Boolean getHumiditySensorMoldWarningState() {
- return getPropertyValueAsBoolean(STATE_NAME_HUMIDITY_SENSOR_MOLD_WARNING);
- }
-
- public void setHumiditySensorMoldWarningState(boolean moldWarning) {
- setPropertyValueAsBoolean(STATE_NAME_HUMIDITY_SENSOR_MOLD_WARNING, moldWarning);
- }
-
- public Boolean getWindowDoorSensorState() {
- return getPropertyValueAsBoolean(STATE_NAME_WINDOW_DOOR_SENSOR);
- }
-
- public void setWindowDoorSensorState(boolean open) {
- setPropertyValueAsBoolean(STATE_NAME_WINDOW_DOOR_SENSOR, open);
- }
-
- public Boolean getSmokeDetectorSensorState() {
- return getPropertyValueAsBoolean(STATE_NAME_SMOKE_DETECTOR_SENSOR);
- }
-
- public void setSmokeDetectorSensorState(boolean on) {
- setPropertyValueAsBoolean(STATE_NAME_SMOKE_DETECTOR_SENSOR, on);
- }
-
- public Boolean getAlarmActuatorState() {
- return getPropertyValueAsBoolean(STATE_NAME_ALARM_ACTUATOR);
- }
-
- public void setAlarmActuatorState(boolean on) {
- setPropertyValueAsBoolean(STATE_NAME_ALARM_ACTUATOR, on);
- }
-
- public Double getMotionDetectionSensorState() {
- return getPropertyValueAsDouble(STATE_NAME_MOTION_DETECTION_SENSOR);
- }
-
- public void setMotionDetectionSensorState(double numberOfMotions) {
- setPropertyValueAsDouble(STATE_NAME_MOTION_DETECTION_SENSOR, numberOfMotions);
- }
-
- public Double getLuminanceSensorState() {
- return getPropertyValueAsDouble(STATE_NAME_LUMINANCE_SENSOR);
- }
-
- public void setLuminanceSensorState(double luminance) {
- setPropertyValueAsDouble(STATE_NAME_LUMINANCE_SENSOR, luminance);
- }
-
- public Double getPushButtonSensorCounterState() {
- return getPropertyValueAsDouble(STATE_NAME_PUSH_BUTTON_SENSOR_COUNTER);
- }
-
- public void setPushButtonSensorCounterState(double numberOfPresses) {
- setPropertyValueAsDouble(STATE_NAME_PUSH_BUTTON_SENSOR_COUNTER, numberOfPresses);
- }
-
- public Double getPushButtonSensorButtonIndexState() {
- return getPropertyValueAsDouble(STATE_NAME_PUSH_BUTTON_SENSOR_BUTTON_INDEX);
- }
-
- public void setPushButtonSensorButtonIndexState(double buttonIndex) {
- setPropertyValueAsDouble(STATE_NAME_PUSH_BUTTON_SENSOR_BUTTON_INDEX, buttonIndex);
- }
-
- public Double getDimmerActuatorState() {
- return getPropertyValueAsDouble(STATE_NAME_DIMMER_ACTUATOR);
- }
-
- public void setDimmerActuatorState(double DimLevel) {
- setPropertyValueAsDouble(STATE_NAME_DIMMER_ACTUATOR, DimLevel);
- }
-
- public Double getRollerShutterActuatorState() {
- return getPropertyValueAsDouble(STATE_NAME_ROLLERSHUTTER_ACTUATOR);
- }
-
- public void setRollerShutterActuatorState(double rollerShutterLevel) {
- setPropertyValueAsDouble(STATE_NAME_ROLLERSHUTTER_ACTUATOR, rollerShutterLevel);
- }
-
- // ENERGY CONSUMPTION SENSOR
- public Double getEnergyConsumptionSensorEnergyConsumptionMonthKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_KWH);
- }
-
- public void setEnergyConsumptionSensorEnergyConsumptionMonthKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_KWH, state);
- }
-
- public Double getEnergyConsumptionSensorAbsoluteEnergyConsumptionState() {
- return getPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ABSOLUTE_ENERGY_CONSUMPTION);
- }
-
- public void setEnergyConsumptionSensorAbsoluteEnergyConsumptionState(double state) {
- setPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ABSOLUTE_ENERGY_CONSUMPTION, state);
- }
-
- public Double getEnergyConsumptionSensorEnergyConsumptionMonthEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_EURO);
- }
-
- public void setEnergyConsumptionSensorEnergyConsumptionMonthEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_EURO, state);
- }
-
- public Double getEnergyConsumptionSensorEnergyConsumptionDayEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_EURO);
- }
-
- public void setEnergyConsumptionSensorEnergyConsumptionDayEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_EURO, state);
- }
-
- public Double getEnergyConsumptionSensorEnergyConsumptionDayKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_KWH);
- }
-
- public void setEnergyConsumptionSensorEnergyConsumptionDayKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_KWH, state);
- }
-
- // POWER CONSUMPTION SENSOR
- public Double getPowerConsumptionSensorPowerConsumptionWattState() {
- return getPropertyValueAsDouble(STATE_NAME_POWER_CONSUMPTION_SENSOR_POWER_CONSUMPTION_WATT);
- }
-
- public void setPowerConsumptionSensorPowerConsumptionWattState(double state) {
- setPropertyValueAsDouble(STATE_NAME_POWER_CONSUMPTION_SENSOR_POWER_CONSUMPTION_WATT, state);
- }
-
- // GENERATION METER ENGERY SENSOR
- public Double getGenerationMeterEnergySensorEnergyPerMonthInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_KWH);
- }
-
- public void setGenerationMeterEnergySensorEnergyPerMonthInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_KWH, state);
- }
-
- public Double getGenerationMeterEnergySensorTotalEnergyState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_TOTAL_ENERGY);
- }
-
- public void setGenerationMeterEnergySensorTotalEnergyState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_TOTAL_ENERGY, state);
- }
-
- public Double getGenerationMeterEnergySensorEnergyPerMonthInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_EURO);
- }
-
- public void setGenerationMeterEnergySensorEnergyPerMonthInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_EURO, state);
- }
-
- public Double getGenerationMeterEnergySensorEnergyPerDayInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_EURO);
- }
-
- public void setGenerationMeterEnergySensorEnergyPerDayInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_EURO, state);
- }
-
- public Double getGenerationMeterEnergySensorEnergyPerDayInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_KWH);
- }
-
- public void setGenerationMeterEnergySensorEnergyPerDayInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_KWH, state);
- }
-
- // GENERATION METER POWER CONSUMPTION SENSOR
- public Double getGenerationMeterPowerConsumptionSensorPowerInWattState() {
- return getPropertyValueAsDouble(STATE_NAME_GENERATION_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT);
- }
-
- public void setGenerationMeterPowerConsumptionSensorPowerInWattState(double state) {
- setPropertyValueAsDouble(STATE_NAME_GENERATION_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT, state);
- }
-
- // TWO WAY METER ENERGY CONSUMPTION SENSOR
- public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_KWH);
- }
-
- public void setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_KWH, state);
- }
-
- public Double getTwoWayMeterEnergyConsumptionSensorTotalEnergyState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_TOTAL_ENERGY);
- }
-
- public void setTwoWayMeterEnergyConsumptionSensorTotalEnergyState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_TOTAL_ENERGY, state);
- }
-
- public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_EURO);
- }
-
- public void setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_EURO, state);
- }
-
- public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_EURO);
- }
-
- public void setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_EURO, state);
- }
-
- public Double getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_KWH);
- }
-
- public void setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_KWH, state);
- }
-
- // TWO WAY METER ENERGY FEED SENSOR
- public Double getTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_KWH);
- }
-
- public void setTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_KWH, state);
- }
-
- public Double getTwoWayMeterEnergyFeedSensorTotalEnergyState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_TOTAL_ENERGY);
- }
-
- public void setTwoWayMeterEnergyFeedSensorTotalEnergyState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_TOTAL_ENERGY, state);
- }
-
- public Double getTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_EURO);
- }
-
- public void setTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_EURO, state);
- }
-
- public Double getTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_EURO);
- }
-
- public void setTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_EURO, state);
- }
-
- public Double getTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_KWH);
- }
-
- public void setTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_KWH, state);
- }
-
- // TWO WAY METER POWER CONSUMPTION SENSOR
- public Double getTwoWayMeterPowerConsumptionSensorPowerInWattState() {
- return getPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT);
- }
-
- public void setTwoWayMeterPowerConsumptionSensorPowerInWattState(double state) {
- setPropertyValueAsDouble(STATE_NAME_TWO_WAY_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT, state);
- }
-
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DateTimeState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DateTimeState.java
new file mode 100644
index 0000000000000..0a5801d68c500
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DateTimeState.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class DateTimeState extends BaseState {
+ private String value;
+
+ /**
+ * @return the value
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DeviceState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DeviceState.java
deleted file mode 100644
index d4a52e69a7535..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DeviceState.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity.state;
-
-import org.openhab.binding.innogysmarthome.internal.client.Util;
-import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
-
-/**
- * Defines the {@link DeviceState}, e.g. if the device is reachable.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public class DeviceState extends EntityState {
-
- /**
- * Returns true if the device is reachable, false otherwise.
- *
- * @return true or false for "reachable" {@link Device}s, else null.
- */
- public Boolean isReachable() {
- return getPropertyValueAsBoolean(STATE_NAME_ISREACHABLE);
- }
-
- /**
- * Sets if the {@link Device} is reachable.
- *
- * @param isReachable
- */
- public void setReachable(boolean isReachable) {
- setPropertyValueAsBoolean(STATE_NAME_ISREACHABLE, isReachable);
- }
-
- /**
- * Returns the configuration state of the device.
- *
- * @return the configuration state
- */
- public String getDeviceConfigurationState() {
- return getPropertyValueAsString(STATE_NAME_DEVICECONFIGURATIONSTATE);
- }
-
- /**
- * Returns the device inclusion state.
- *
- * @return the device inclusion state
- */
- public String getDeviceInclusionState() {
- return getPropertyValueAsString(STATE_NAME_DEVICEINCLUSIONSTATE);
- }
-
- /**
- * Returns true, if the device is included.
- *
- * @return true, if the {@link Device} is "Included"
- */
- public boolean deviceIsIncluded() {
- return Util.equalsIfPresent(getDeviceInclusionState(), DEVICE_INCLUSION_STATE_INCLUDED);
- }
-
- /**
- * Returns true, if the device inclusion state is "InclusionPending".
- *
- * @return true, if the inclusion state is "InclusionPending"
- */
- public Boolean deviceInclusionIsPending() {
- return Util.equalsIfPresent(getDeviceInclusionState(), DEVICE_INCLUSION_STATE_PENDING);
- }
-
- /**
- * Return the update state of the {@link Device}.
- *
- * @return the update state
- */
- public String getDeviceUpdateState() {
- return getPropertyValueAsString(STATE_NAME_UPDATESTATE);
- }
-
- /**
- * Returns true if the {@link Device} is up to date.
- *
- * @return true, if the deviceUpdateState is "UpToDate"
- */
- public Boolean deviceIsUpToDate() {
- return Util.equalsIfPresent(getDeviceUpdateState(), DEVICE_UPDATE_STATE_UPTODATE);
- }
-
- /**
- * Returns the firmware version of the {@link Device}.
- *
- * @return the firmware version
- */
- public String getFirmwareVersion() {
- return getPropertyValueAsString(STATE_NAME_FIRMWAREVERSION);
- }
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DoubleState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DoubleState.java
new file mode 100644
index 0000000000000..ccb7e69486588
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/DoubleState.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class DoubleState extends BaseState {
+ private Double value;
+
+ /**
+ * @return the value
+ */
+ public Double getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(Double value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/IntegerState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/IntegerState.java
new file mode 100644
index 0000000000000..b0a4984a7b8af
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/IntegerState.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class IntegerState extends BaseState {
+ private Integer value;
+
+ /**
+ * @return the value
+ */
+ public Integer getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StatePropertyList.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StatePropertyList.java
deleted file mode 100644
index 3a0baca704c7c..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StatePropertyList.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.entity.state;
-
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.openhab.binding.innogysmarthome.internal.client.Util;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
-import org.openhab.binding.innogysmarthome.internal.client.entity.PropertyList;
-
-import com.google.api.client.util.DateTime;
-import com.google.api.client.util.Key;
-
-/**
- * The {@link StatePropertyList} holds a list of state properties.
- *
- * @author Oliver Kuhl - Initial contribution
- */
-public abstract class StatePropertyList extends PropertyList {
-
- /** state property field names */
- protected static final String STATE_PROPERTY_KEY_NAME = "name";
- protected static final String STATE_PROPERTY_KEY_VALUE = "value";
- protected static final String STATE_PROPERTY_KEY_LASTCHANGED = "lastchanged";
-
- /** state name list */
- protected static final String STATE_NAME_ISREACHABLE = "IsReachable";
- protected static final String STATE_NAME_DEVICECONFIGURATIONSTATE = "DeviceConfigurationState";
- protected static final String STATE_NAME_DEVICEINCLUSIONSTATE = "DeviceInclusionState";
- protected static final String STATE_NAME_UPDATESTATE = "UpdateState";
- protected static final String STATE_NAME_FIRMWAREVERSION = "FirmwareVersion";
-
- /** state name list - SHC specials */
- protected static final String STATE_NAME_UPDATEAVAILABLE = "UpdateAvailable";
- protected static final String STATE_NAME_LASTREBOOT = "LastReboot";
- protected static final String STATE_NAME_MBUSDONGLEATTACHED = "MBusDongleAttached";
- protected static final String STATE_NAME_LBDONGLEATTACHED = "LBDongleAttached";
- protected static final String STATE_NAME_CONFIGVERSION = "ConfigVersion";
- protected static final String STATE_NAME_OSSTATE = "OSState";
- protected static final String STATE_NAME_MEMORYLOAD = "MemoryLoad";
- protected static final String STATE_NAME_CPULOAD = "CPULoad";
-
- protected static final String DEVICE_INCLUSION_STATE_INCLUDED = "Included";
- protected static final String DEVICE_INCLUSION_STATE_PENDING = "InclusionPending";
-
- protected static final String DEVICE_UPDATE_STATE_UPTODATE = "UpToDate";
-
- /**
- * This represents a container of all configuration properties.
- *
- * Optional.
- */
- @Key("State")
- protected List stateList;
-
- protected HashMap stateMap;
-
- /**
- * @return the stateList
- */
- public List getStateList() {
- return stateList;
- }
-
- /**
- * @param stateList the stateList to set
- */
- public void setStateList(List stateList) {
- this.stateList = stateList;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.openhab.binding.innogysmarthome.internal.client.entity.PropertyList#getPropertyMap()
- */
- @Override
- protected Map getPropertyMap() {
- if (stateMap == null) {
- stateMap = PropertyList.getHashMap(stateList);
- }
-
- return stateMap;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.openhab.binding.innogysmarthome.internal.client.entity.PropertyList#getPropertyList()
- */
- @Override
- protected List getPropertyList() {
- if (stateList == null) {
- stateList = new ArrayList<>();
- }
-
- return stateList;
- }
-
- /**
- * @return
- */
- public Map getStateMap() {
- return getPropertyMap();
- }
-
- /**
- * Returns the name of the state.
- *
- * @return
- */
- public String getName() {
- return getPropertyValueAsString(STATE_PROPERTY_KEY_NAME);
- }
-
- /**
- * Returns the value of the state.
- *
- * @return
- */
- public Object getValue() {
- return getPropertyValue(STATE_PROPERTY_KEY_VALUE);
- }
-
- /**
- * Returns the {@link DateTime}, when the last state change occurred.
- *
- * @return
- */
- public ZonedDateTime getLastChanged() {
- String time = getPropertyValueAsString(STATE_PROPERTY_KEY_LASTCHANGED);
- if (time == null) {
- return null;
- }
- return Util.convertZuluTimeStringToDate(time);
- }
-
- /**
- * Returns the String of the available Update or an empty {@link String} if none.
- *
- * @return
- */
- public String getUpdateAvailable() {
- return getPropertyValueAsString(STATE_NAME_UPDATEAVAILABLE);
- }
-
- /**
- * Return the {@link DateTime} of the last reboot.
- *
- * @return
- */
- public ZonedDateTime getLastReboot() {
- String time = getPropertyValueAsString(STATE_NAME_LASTREBOOT);
- if (time == null) {
- return null;
- }
- return Util.convertZuluTimeStringToDate(time);
- }
-
- /**
- * Returns the config version of the smarthome setup.
- *
- * The config version changes everytime, the configuration on the controller is changed and saved.
- *
- * @return
- */
- public Integer getConfigVersion() {
- return getPropertyValueAsInteger(STATE_NAME_CONFIGVERSION);
- }
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StringState.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StringState.java
new file mode 100644
index 0000000000000..6c4c334cc924c
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/state/StringState.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.client.entity.state;
+
+/**
+ * @author Oliver Kuhl - Initial contribution
+ *
+ */
+public class StringState extends BaseState {
+ private String value;
+
+ /**
+ * @return the value
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ApiException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ApiException.java
index 2c0b636658a19..2d3f8f44c9b69 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ApiException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ApiException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,19 +12,22 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, when the innogy SmartHome Client API returns an unknown error.
*
* @author Oliver Kuhl - Initial contribution
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class ApiException extends Exception {
+ private static final long serialVersionUID = 1L;
+
public ApiException() {
}
public ApiException(String message) {
super(message);
}
-
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ConfigurationException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/AuthenticationException.java
similarity index 50%
rename from bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ConfigurationException.java
rename to bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/AuthenticationException.java
index 05d9d849695a8..9d7104bf2f5e4 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ConfigurationException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/AuthenticationException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,19 +12,23 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
- * Thrown, if the {@Link Configuration} is not complete
+ * Thrown, if an authentication error is given.
*
- * @author Oliver Kuhl - Initial contribution
+ * @author Hilbrand Bouwkamp - Initial contribution
*
*/
-@SuppressWarnings("serial")
-public class ConfigurationException extends Exception {
+@NonNullByDefault
+public class AuthenticationException extends Exception {
+
+ private static final long serialVersionUID = 1L;
- public ConfigurationException() {
+ public AuthenticationException() {
}
- public ConfigurationException(String message) {
+ public AuthenticationException(String message) {
super(message);
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ControllerOfflineException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ControllerOfflineException.java
index a86fe674858f6..0360f61418887 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ControllerOfflineException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ControllerOfflineException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,15 +14,19 @@
import java.io.IOException;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, if the innogy SmartHome controller (SHC) is offline.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class ControllerOfflineException extends IOException {
+ private static final long serialVersionUID = 1L;
+
public ControllerOfflineException() {
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidActionTriggeredException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidActionTriggeredException.java
index b561b75eb9d1a..8882af10d3026 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidActionTriggeredException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidActionTriggeredException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,14 +12,19 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, if an action was called with invalid parameters.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class InvalidActionTriggeredException extends ApiException {
+
+ private static final long serialVersionUID = 1L;
+
public InvalidActionTriggeredException() {
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidAuthCodeException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidAuthCodeException.java
deleted file mode 100644
index 471cf179bdc51..0000000000000
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/InvalidAuthCodeException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Copyright (c) 2010-2019 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.innogysmarthome.internal.client.exception;
-
-/**
- * Thrown, if an error occurs fetching the access tokens.
- *
- * @author Oliver Kuhl - Initial contribution
- *
- */
-@SuppressWarnings("serial")
-public class InvalidAuthCodeException extends ApiException {
-
- public InvalidAuthCodeException() {
- }
-
- public InvalidAuthCodeException(String message) {
- super(message);
- }
-
-}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/RemoteAccessNotAllowedException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/RemoteAccessNotAllowedException.java
index ca745d5e96c3d..6f4294f1cbe83 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/RemoteAccessNotAllowedException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/RemoteAccessNotAllowedException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,15 +12,19 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, when the authorization fails with a "remote access not allowed" error.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class RemoteAccessNotAllowedException extends ApiException {
+ private static final long serialVersionUID = 1L;
+
public RemoteAccessNotAllowedException() {
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ServiceUnavailableException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ServiceUnavailableException.java
index f644dc7235912..32f3ed4a0b58a 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ServiceUnavailableException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/ServiceUnavailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,12 +12,15 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, if the innogy service is unavailable (HTTP response 503).
*
* @author Oliver Kuhl - Initial contribution
*
*/
+@NonNullByDefault
public class ServiceUnavailableException extends ApiException {
private static final long serialVersionUID = -9148687420729079329L;
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionExistsException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionExistsException.java
index b7fb1ef7aad68..eff7e5c1bc3e8 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionExistsException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionExistsException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,15 +12,19 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, when a session already exists while initializing a new session.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class SessionExistsException extends ApiException {
+ private static final long serialVersionUID = 1L;
+
public SessionExistsException() {
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionNotFoundException.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionNotFoundException.java
index cd491f6cc6c08..2498d7e43968e 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionNotFoundException.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/exception/SessionNotFoundException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,17 +12,20 @@
*/
package org.openhab.binding.innogysmarthome.internal.client.exception;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
/**
* Thrown, if the session is not initialized or disconnected.
*
* @author Oliver Kuhl - Initial contribution
*
*/
-@SuppressWarnings("serial")
+@NonNullByDefault
public class SessionNotFoundException extends ApiException {
+ private static final long serialVersionUID = 1L;
+
public SessionNotFoundException() {
- super();
}
public SessionNotFoundException(String message) {
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyBridgeDiscoveryParticipant.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyBridgeDiscoveryParticipant.java
index 847a61e2dcbfd..392488498df22 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyBridgeDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyBridgeDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -19,6 +19,8 @@
import javax.jmdns.ServiceInfo;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.discovery.DiscoveryResult;
import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
import org.eclipse.smarthome.config.discovery.mdns.MDNSDiscoveryParticipant;
@@ -34,7 +36,8 @@
*
* @author Oliver Kuhl - Initial contribution
*/
-@Component(immediate = true)
+@Component(service = MDNSDiscoveryParticipant.class, configurationPid = "mdnsdiscovery.innogysmarthome")
+@NonNullByDefault
public class InnogyBridgeDiscoveryParticipant implements MDNSDiscoveryParticipant {
private final Logger logger = LoggerFactory.getLogger(InnogyBridgeDiscoveryParticipant.class);
@@ -50,7 +53,7 @@ public String getServiceType() {
}
@Override
- public DiscoveryResult createResult(ServiceInfo service) {
+ public @Nullable DiscoveryResult createResult(ServiceInfo service) {
ThingUID uid = getThingUID(service);
if (uid != null) {
DiscoveryResult result = DiscoveryResultBuilder.create(uid)
@@ -61,7 +64,7 @@ public DiscoveryResult createResult(ServiceInfo service) {
}
@Override
- public ThingUID getThingUID(ServiceInfo service) {
+ public @Nullable ThingUID getThingUID(@Nullable ServiceInfo service) {
if (service != null) {
String serviceName = service.getName();
if (serviceName.startsWith("SMARTHOME")) {
@@ -70,7 +73,6 @@ public ThingUID getThingUID(ServiceInfo service) {
return new ThingUID(THING_TYPE_BRIDGE, serviceName);
}
}
-
return null;
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyDeviceDiscoveryService.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyDeviceDiscoveryService.java
index ab07e0c326329..c7a0b5156f0ea 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyDeviceDiscoveryService.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/discovery/InnogyDeviceDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -14,18 +14,21 @@
import static org.openhab.binding.innogysmarthome.internal.InnogyBindingConstants.*;
-import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
import org.eclipse.smarthome.config.discovery.DiscoveryResult;
import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
+import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.ThingUID;
-import org.eclipse.smarthome.core.thing.binding.BridgeHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
import org.openhab.binding.innogysmarthome.internal.handler.InnogyBridgeHandler;
import org.openhab.binding.innogysmarthome.internal.handler.InnogyDeviceHandler;
@@ -38,20 +41,21 @@
*
* @author Oliver Kuhl - Initial contribution
*/
-public class InnogyDeviceDiscoveryService extends AbstractDiscoveryService {
+@NonNullByDefault
+public class InnogyDeviceDiscoveryService extends AbstractDiscoveryService
+ implements DiscoveryService, ThingHandlerService {
+
+ private static final int SEARCH_TIME_SECONDS = 60;
- private static final int SEARCH_TIME = 60;
private final Logger logger = LoggerFactory.getLogger(InnogyDeviceDiscoveryService.class);
- private InnogyBridgeHandler bridgeHandler;
+
+ private @Nullable InnogyBridgeHandler bridgeHandler;
/**
- * Construct an {@link InnogyDeviceDiscoveryService} with the given {@link BridgeHandler}.
- *
- * @param bridgeHandler
+ * Construct an {@link InnogyDeviceDiscoveryService}.
*/
- public InnogyDeviceDiscoveryService(InnogyBridgeHandler bridgeHandler) {
- super(SEARCH_TIME);
- this.bridgeHandler = bridgeHandler;
+ public InnogyDeviceDiscoveryService() {
+ super(SEARCH_TIME_SECONDS);
}
/**
@@ -73,10 +77,8 @@ public Set getSupportedThingTypes() {
@Override
protected void startScan() {
logger.debug("SCAN for new innogy devices started...");
-
- Collection devices = bridgeHandler.loadDevices();
- if (devices != null) {
- for (Device d : devices) {
+ if (bridgeHandler != null) {
+ for (final Device d : bridgeHandler.loadDevices()) {
onDeviceAdded(d);
}
}
@@ -89,34 +91,36 @@ protected synchronized void stopScan() {
}
public void onDeviceAdded(Device device) {
- ThingUID thingUID = getThingUID(device);
- ThingTypeUID thingTypeUID = getThingTypeUID(device);
- if (thingUID != null && thingTypeUID != null) {
-
- ThingUID bridgeUID = bridgeHandler.getThing().getUID();
+ if (bridgeHandler == null) {
+ return;
+ }
+ final ThingUID bridgeUID = bridgeHandler.getThing().getUID();
+ final ThingUID thingUID = getThingUID(bridgeUID, device);
+ final ThingTypeUID thingTypeUID = getThingTypeUID(device);
- String name = device.getName();
+ if (thingUID != null && thingTypeUID != null) {
+ String name = device.getConfig().getName();
if (name.isEmpty()) {
name = device.getSerialnumber();
}
- Map properties = new HashMap<>();
+ final Map properties = new HashMap<>();
properties.put(PROPERTY_ID, device.getId());
- String label;
+ final String label;
if (device.hasLocation()) {
label = device.getType() + ": " + name + " (" + device.getLocation().getName() + ")";
} else {
label = device.getType() + ": " + name;
}
- DiscoveryResult discoveryResult = DiscoveryResultBuilder.create(thingUID).withThingType(thingTypeUID)
+ final DiscoveryResult discoveryResult = DiscoveryResultBuilder.create(thingUID).withThingType(thingTypeUID)
.withProperties(properties).withBridge(bridgeUID).withLabel(label).build();
thingDiscovered(discoveryResult);
} else {
logger.debug("Discovered unsupported device of type '{}' and name '{}' with id {}", device.getType(),
- device.getName(), device.getId());
+ device.getConfig().getName(), device.getId());
}
}
@@ -126,14 +130,12 @@ public void onDeviceAdded(Device device) {
* @param device
* @return
*/
- private ThingUID getThingUID(Device device) {
- ThingUID bridgeUID = bridgeHandler.getThing().getUID();
- ThingTypeUID thingTypeUID = getThingTypeUID(device);
+ private @Nullable ThingUID getThingUID(ThingUID bridgeUID, Device device) {
+ final ThingTypeUID thingTypeUID = getThingTypeUID(device);
if (thingTypeUID != null && getSupportedThingTypes().contains(thingTypeUID)) {
return new ThingUID(thingTypeUID, bridgeUID, device.getId());
}
-
return null;
}
@@ -143,8 +145,20 @@ private ThingUID getThingUID(Device device) {
* @param device
* @return
*/
- private ThingTypeUID getThingTypeUID(Device device) {
- String thingTypeId = device.getType();
+ private @Nullable ThingTypeUID getThingTypeUID(Device device) {
+ final String thingTypeId = device.getType();
return thingTypeId != null ? new ThingTypeUID(BINDING_ID, thingTypeId) : null;
}
+
+ @Override
+ public void setThingHandler(@Nullable ThingHandler handler) {
+ if (handler instanceof InnogyBridgeHandler) {
+ bridgeHandler = (InnogyBridgeHandler) handler;
+ }
+ }
+
+ @Override
+ public @Nullable ThingHandler getThingHandler() {
+ return bridgeHandler;
+ }
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeConfiguration.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeConfiguration.java
new file mode 100644
index 0000000000000..dd95903b35457
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeConfiguration.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2010-2020 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.innogysmarthome.internal.handler;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.openhab.binding.innogysmarthome.internal.InnogyBindingConstants;
+
+/**
+ *
+ * @author Hilbrand Bouwkamp - Initial contribution
+ */
+@NonNullByDefault
+public class InnogyBridgeConfiguration {
+
+ public String brand = InnogyBindingConstants.DEFAULT_BRAND;
+ public String authcode = "";
+ public int websocketidletimeout = 900;
+
+ public String clientId = InnogyBindingConstants.CLIENT_ID_INNOGY_SMARTHOME;
+ public String clientSecret = InnogyBindingConstants.CLIENT_SECRET_INNOGY_SMARTHOME;
+ public String redirectUrl = InnogyBindingConstants.REDIRECT_URL_INNOGY_SMARTHOME;
+
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java
index 263dd965131c8..e1e2cbdf64efb 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -13,24 +13,36 @@
package org.openhab.binding.innogysmarthome.internal.handler;
import static org.openhab.binding.innogysmarthome.internal.InnogyBindingConstants.*;
+import static org.openhab.binding.innogysmarthome.internal.client.Constants.API_URL_TOKEN;
import java.io.IOException;
-import java.math.BigDecimal;
import java.net.SocketTimeoutException;
import java.net.URI;
+import java.time.format.DateTimeFormatter;
+import java.time.format.FormatStyle;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.client.HttpClient;
import org.eclipse.smarthome.config.core.Configuration;
+import org.eclipse.smarthome.core.auth.client.oauth2.AccessTokenRefreshListener;
+import org.eclipse.smarthome.core.auth.client.oauth2.AccessTokenResponse;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthClientService;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthException;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthFactory;
+import org.eclipse.smarthome.core.auth.client.oauth2.OAuthResponseException;
+import org.eclipse.smarthome.core.library.types.DecimalType;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.ChannelUID;
import org.eclipse.smarthome.core.thing.Thing;
@@ -38,33 +50,31 @@
import org.eclipse.smarthome.core.thing.ThingStatusDetail;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
import org.eclipse.smarthome.core.thing.binding.BaseBridgeHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerService;
import org.eclipse.smarthome.core.types.Command;
-import org.openhab.binding.innogysmarthome.internal.InnogyBindingConstants;
import org.openhab.binding.innogysmarthome.internal.InnogyWebSocket;
import org.openhab.binding.innogysmarthome.internal.client.InnogyClient;
-import org.openhab.binding.innogysmarthome.internal.client.InnogyConfig;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
+import org.openhab.binding.innogysmarthome.internal.client.entity.device.DeviceConfig;
+import org.openhab.binding.innogysmarthome.internal.client.entity.event.BaseEvent;
import org.openhab.binding.innogysmarthome.internal.client.entity.event.Event;
+import org.openhab.binding.innogysmarthome.internal.client.entity.event.MessageEvent;
import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
import org.openhab.binding.innogysmarthome.internal.client.exception.ApiException;
-import org.openhab.binding.innogysmarthome.internal.client.exception.ConfigurationException;
+import org.openhab.binding.innogysmarthome.internal.client.exception.AuthenticationException;
import org.openhab.binding.innogysmarthome.internal.client.exception.ControllerOfflineException;
import org.openhab.binding.innogysmarthome.internal.client.exception.InvalidActionTriggeredException;
-import org.openhab.binding.innogysmarthome.internal.client.exception.InvalidAuthCodeException;
import org.openhab.binding.innogysmarthome.internal.client.exception.RemoteAccessNotAllowedException;
import org.openhab.binding.innogysmarthome.internal.client.exception.SessionExistsException;
+import org.openhab.binding.innogysmarthome.internal.discovery.InnogyDeviceDiscoveryService;
import org.openhab.binding.innogysmarthome.internal.listener.DeviceStatusListener;
import org.openhab.binding.innogysmarthome.internal.listener.EventListener;
import org.openhab.binding.innogysmarthome.internal.manager.DeviceStructureManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.api.client.auth.oauth2.Credential;
-import com.google.api.client.auth.oauth2.CredentialRefreshListener;
-import com.google.api.client.auth.oauth2.TokenErrorResponse;
-import com.google.api.client.auth.oauth2.TokenResponse;
import com.google.gson.Gson;
/**
@@ -78,288 +88,286 @@
* to the innogy SmartHome webservice via the {@link InnogyClient}.
*
* @author Oliver Kuhl - Initial contribution
+ * @author Hilbrand Bouwkamp - Refactored to use openHAB http and oauth2 libraries
*/
-public class InnogyBridgeHandler extends BaseBridgeHandler implements CredentialRefreshListener, EventListener {
+@NonNullByDefault
+public class InnogyBridgeHandler extends BaseBridgeHandler
+ implements AccessTokenRefreshListener, EventListener, DeviceStatusListener {
public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_BRIDGE);
- private final Logger logger = LoggerFactory.getLogger(InnogyBridgeHandler.class);
- private InnogyConfig innogyConfig;
- private InnogyClient client;
- private InnogyWebSocket webSocket;
- private DeviceStructureManager deviceStructMan;
- private Gson gson = new Gson();
- private Set deviceStatusListeners = new CopyOnWriteArraySet<>();
+ private static final long WEBSOCKET_TIMEOUT_RETRY_SECONDS = 5;
- private ScheduledFuture> reinitJob;
+ private final Logger logger = LoggerFactory.getLogger(InnogyBridgeHandler.class);
+ private final Gson gson = new Gson();
+ private final Object lock = new Object();
+ private final Set deviceStatusListeners = new CopyOnWriteArraySet<>();
+ private final OAuthFactory oAuthFactory;
+ private final HttpClient httpClient;
+
+ private @Nullable InnogyClient client;
+ private @Nullable InnogyWebSocket webSocket;
+ private @Nullable DeviceStructureManager deviceStructMan;
+ private @Nullable String bridgeId;
+ private @Nullable ScheduledFuture> reinitJob;
+ private @NonNullByDefault({}) InnogyBridgeConfiguration bridgeConfiguration;
+ private @Nullable OAuthClientService oAuthService;
/**
- * The {@link Initializer} class implements the initialization process of the bridge including starting the
- * {@link DeviceStructureManager} (who loads all the {@link Device}s and states) and the {@link InnogyWebSocket}.
- *
- * @author Oliver Kuhl - Initial contribution
+ * Constructs a new {@link InnogyBridgeHandler}.
*
+ * @param bridge Bridge thing to be used by this handler
+ * @param oAuthFactory Factory class to get OAuth2 service
+ * @param httpClient httpclient instance
*/
- private class Initializer implements Runnable {
-
- @Override
- public void run() {
- client = new InnogyClient(innogyConfig);
- client.setCredentialRefreshListener(InnogyBridgeHandler.this);
- try {
- logger.debug("Initializing innogy SmartHome client...");
- client.initialize();
- } catch (Exception e) {
- if (!handleClientException(e)) {
- logger.error("Error initializing innogy SmartHome client.", e);
- return;
- }
- }
-
- if (StringUtils.isNotBlank(client.getConfig().getRefreshToken())) {
- getThing().getConfiguration().put(CONFIG_REFRESH_TOKEN, client.getConfig().getRefreshToken());
- if (StringUtils.isNotBlank(client.getConfig().getAccessToken())) {
- getThing().getConfiguration().put(CONFIG_ACCESS_TOKEN, client.getConfig().getAccessToken());
- }
- Configuration configuration = editConfiguration();
- configuration.put(CONFIG_AUTH_CODE, "");
- updateConfiguration(configuration);
- innogyConfig.setAuthCode("");
- }
-
- deviceStructMan = new DeviceStructureManager(client);
- try {
- deviceStructMan.start();
- } catch (Exception e) {
- if (!handleClientException(e)) {
- logger.error("Error starting device structure manager.", e);
- return;
- }
- }
+ public InnogyBridgeHandler(final Bridge bridge, final OAuthFactory oAuthFactory, final HttpClient httpClient) {
+ super(bridge);
+ this.oAuthFactory = oAuthFactory;
+ this.httpClient = httpClient;
+ }
- updateStatus(ThingStatus.ONLINE);
- setBridgeProperties(deviceStructMan.getBridgeDevice());
+ @Override
+ public void handleCommand(final ChannelUID channelUID, final Command command) {
+ // not needed
+ }
- onEventRunnerStopped();
- }
+ @Override
+ public Collection> getServices() {
+ return Collections.singleton(InnogyDeviceDiscoveryService.class);
+ }
- private void setBridgeProperties(Device bridgeDevice) {
- Map properties = editProperties();
- properties.put(Thing.PROPERTY_VENDOR, bridgeDevice.getManufacturer());
- properties.put(Thing.PROPERTY_SERIAL_NUMBER, bridgeDevice.getSerialnumber());
- properties.put(PROPERTY_ID, bridgeDevice.getId());
- properties.put(Thing.PROPERTY_FIRMWARE_VERSION, bridgeDevice.getFirmwareVersion());
- properties.put(Thing.PROPERTY_HARDWARE_VERSION, bridgeDevice.getHardwareVersion());
- properties.put(PROPERTY_SOFTWARE_VERSION, bridgeDevice.getSoftwareVersion());
- properties.put(PROPERTY_IP_ADDRESS, bridgeDevice.getIpAddress());
- properties.put(Thing.PROPERTY_MAC_ADDRESS, bridgeDevice.getMacAddress());
- properties.put(PROPERTY_REGISTRATION_TIME, bridgeDevice.getRegistrationTimeFormattedString());
- updateProperties(properties);
+ @Override
+ public void initialize() {
+ logger.debug("Initializing innogy SmartHome BridgeHandler...");
+ final InnogyBridgeConfiguration bridgeConfiguration = getConfigAs(InnogyBridgeConfiguration.class);
+ if (checkConfig(bridgeConfiguration)) {
+ this.bridgeConfiguration = bridgeConfiguration;
+ scheduler.execute(this::initializeClient);
}
}
/**
- * Runnable to run the websocket for receiving permanent update {@link Event}s from the innogy API.
+ * Checks bridge configuration. If configuration is valid returns true.
*
- * @author Oliver Kuhl - Initial contribution
+ * @return true if the configuration if valid
*/
- private class WebSocketRunner implements Runnable {
-
- private InnogyBridgeHandler bridgeHandler;
-
- /**
- * Constructs the {@link WebSocketRunner} with the given {@link InnogyBridgeHandler}.
- *
- * @param bridgeHandler
- */
- public WebSocketRunner(InnogyBridgeHandler bridgeHandler) {
- this.bridgeHandler = bridgeHandler;
+ private boolean checkConfig(final InnogyBridgeConfiguration bridgeConfiguration) {
+ if (BRAND_INNOGY_SMARTHOME.equals(bridgeConfiguration.brand)) {
+ return true;
+ } else {
+ logger.debug("Invalid brand '{}'. Make sure to select a brand in the SHC thing configuration!",
+ bridgeConfiguration.brand);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Invalid brand '"
+ + bridgeConfiguration.brand + "'. Make sure to select a brand in the SHC thing configuration!");
+ return false;
}
+ }
- @Override
- public void run() {
- String webSocketUrl = WEBSOCKET_API_URL_EVENTS.replace("{token}",
- (String) getConfig().get(CONFIG_ACCESS_TOKEN));
- logger.debug("WebSocket URL: {}...{}", webSocketUrl.substring(0, 70),
- webSocketUrl.substring(webSocketUrl.length() - 10));
-
- try {
- if (webSocket != null && webSocket.isRunning()) {
- webSocket.stop();
- webSocket = null;
- }
-
- BigDecimal idleTimeout = (BigDecimal) getConfig().get(CONFIG_WEBSOCKET_IDLE_TIMEOUT);
- webSocket = new InnogyWebSocket(bridgeHandler, URI.create(webSocketUrl), idleTimeout.intValue() * 1000);
- logger.debug("Starting innogy websocket.");
- webSocket.start();
- } catch (Exception e) {
- if (!handleClientException(e)) {
- logger.error("Error starting websocket.", e);
- return;
- }
- }
+ /**
+ * Initializes the services and InnogyClient.
+ */
+ private void initializeClient() {
+ final OAuthClientService oAuthService = oAuthFactory.createOAuthClientService(thing.getUID().getAsString(),
+ API_URL_TOKEN, API_URL_TOKEN, bridgeConfiguration.clientId, bridgeConfiguration.clientSecret, null,
+ true);
+ this.oAuthService = oAuthService;
+
+ if (checkOnAuthCode()) {
+ final InnogyClient localClient = new InnogyClient(oAuthService, httpClient);
+ client = localClient;
+ deviceStructMan = new DeviceStructureManager(localClient);
+ oAuthService.addAccessTokenRefreshListener(this);
+ registerDeviceStatusListener(InnogyBridgeHandler.this);
+ scheduleRestartClient(0);
}
}
/**
- * Constructs a new {@link InnogyBridgeHandler}.
+ * Fetches the OAuth2 tokens from innogy SmartHome service if the auth code is set in the configuration and if
+ * successful removes the auth code. Returns true if the auth code was not set or if the authcode was successfully
+ * used to get a new refresh and access token.
*
- * @param bridge
+ * @return true if success
*/
- public InnogyBridgeHandler(Bridge bridge) {
- super(bridge);
+ private boolean checkOnAuthCode() {
+ if (StringUtils.isNotBlank(bridgeConfiguration.authcode)) {
+ logger.debug("Trying to get access and refresh tokens");
+ try {
+ oAuthService.getAccessTokenResponseByAuthorizationCode(bridgeConfiguration.authcode,
+ bridgeConfiguration.redirectUrl);
+ final Configuration configuration = editConfiguration();
+ configuration.put(CONFIG_AUTH_CODE, "");
+ updateConfiguration(configuration);
+ } catch (IOException | OAuthException | OAuthResponseException e) {
+ logger.debug("Error fetching access tokens. Invalid authcode! Please generate a new one. Detail: {}",
+ e.getMessage());
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "Cannot connect to innogy SmartHome service. Please set auth-code!");
+ return false;
+ }
+ }
+ return true;
}
- @Override
- public void handleCommand(ChannelUID channelUID, Command command) {
- // not needed
+ /**
+ * Initializes the client and connects to the innogy SmartHome service via Client API. Based on the provided
+ * {@Link Configuration} while constructing {@Link InnogyClient}, the given oauth2 access and refresh tokens are
+ * used or - if not yet available - new tokens are fetched from the service using the provided auth code.
+ */
+ private void startClient() {
+ try {
+ logger.debug("Initializing innogy SmartHome client...");
+ final InnogyClient localClient = this.client;
+ if (localClient != null) {
+ localClient.refreshStatus();
+ }
+ } catch (AuthenticationException | ApiException | IOException e) {
+ if (handleClientException(e)) {
+ // If exception could not be handled properly it's no use to continue so we won't continue start
+ logger.debug("Error initializing innogy SmartHome client.", e);
+ return;
+ }
+ }
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
+ try {
+ deviceStructMan.refreshDevices();
+ } catch (IOException | ApiException | AuthenticationException e) {
+ if (handleClientException(e)) {
+ // If exception could not be handled properly it's no use to continue so we won't continue start
+ logger.debug("Error starting device structure manager.", e);
+ return;
+ }
+ }
+ setBridgeProperties(deviceStructMan.getBridgeDevice());
+ bridgeId = deviceStructMan.getBridgeDevice().getId();
+ startWebsocket();
+ cancelReinitJob();
}
- @Override
- public void initialize() {
- logger.debug("Initializing innogy SmartHome BridgeHandler...");
+ /**
+ * Start the websocket connection for receiving permanent update {@link Event}s from the innogy API.
+ */
+ private void startWebsocket() {
+ try {
+ final AccessTokenResponse accessTokenResponse = client.getAccessTokenResponse();
+ final String webSocketUrl = WEBSOCKET_API_URL_EVENTS.replace("{token}",
+ accessTokenResponse.getAccessToken());
- // Start an extra thread to readout the configuration and check the connection, because it takes sometimes more
- // than 5000 milliseconds and the handler will suspend (ThingStatus.UNINITIALIZED).
- InnogyConfig config = loadAndCheckConfig();
+ logger.debug("WebSocket URL: {}...{}", webSocketUrl.substring(0, 70),
+ webSocketUrl.substring(webSocketUrl.length() - 10));
+ InnogyWebSocket localWebSocket = this.webSocket;
- if (config != null) {
- logger.debug("innogy config: {}", config.toString());
- scheduler.execute(new Initializer());
+ if (localWebSocket != null && localWebSocket.isRunning()) {
+ localWebSocket.stop();
+ this.webSocket = null;
+ }
+ localWebSocket = new InnogyWebSocket(this, URI.create(webSocketUrl),
+ bridgeConfiguration.websocketidletimeout * 1000);
+ logger.debug("Starting innogy websocket.");
+ this.webSocket = localWebSocket;
+ localWebSocket.start();
+ updateStatus(ThingStatus.ONLINE);
+ } catch (final Exception e) { // Catch Exception because websocket start throws Exception
+ logger.warn("Error starting websocket.", e);
+ handleClientException(e);
}
}
+ @Override
+ public void onAccessTokenResponse(final AccessTokenResponse credential) {
+ scheduleRestartClient(REINITIALIZE_DELAY_SECONDS);
+ }
+
/**
* Schedules a re-initialization in the given future.
*
* @param seconds
*/
- private void scheduleReinitialize(long seconds) {
- if (reinitJob != null && !reinitJob.isDone()) {
+ private synchronized void scheduleRestartClient(final long seconds) {
+ final ScheduledFuture> localReinitJob = reinitJob;
+
+ if (localReinitJob != null && !localReinitJob.isDone()) {
logger.debug("Scheduling reinitialize in {} seconds - ignored: already triggered in {} seconds.", seconds,
- reinitJob.getDelay(TimeUnit.SECONDS));
+ localReinitJob.getDelay(TimeUnit.SECONDS));
return;
}
logger.debug("Scheduling reinitialize in {} seconds.", seconds);
- reinitJob = scheduler.schedule(() -> initialize(), seconds, TimeUnit.SECONDS);
+ reinitJob = scheduler.scheduleWithFixedDelay(this::startClient, seconds, REINITIALIZE_RETRY_SECONDS,
+ TimeUnit.SECONDS);
}
- /**
- * Schedules a re-initialization using the default {@link InnogyBindingConstants#REINITIALIZE_DELAY_SECONDS}.
- */
- private void scheduleReinitialize() {
- scheduleReinitialize(REINITIALIZE_DELAY_SECONDS);
+ private void setBridgeProperties(final Device bridgeDevice) {
+ final DeviceConfig config = bridgeDevice.getConfig();
+
+ logger.debug("Setting Bridge Device Properties for Bridge of type '{}' with ID '{}'", config.getName(),
+ bridgeDevice.getId());
+ final Map properties = editProperties();
+
+ setPropertyIfPresent(Thing.PROPERTY_VENDOR, bridgeDevice.getManufacturer(), properties);
+ setPropertyIfPresent(Thing.PROPERTY_SERIAL_NUMBER, bridgeDevice.getSerialnumber(), properties);
+ setPropertyIfPresent(PROPERTY_ID, bridgeDevice.getId(), properties);
+ setPropertyIfPresent(Thing.PROPERTY_FIRMWARE_VERSION, config.getFirmwareVersion(), properties);
+ setPropertyIfPresent(Thing.PROPERTY_HARDWARE_VERSION, config.getHardwareVersion(), properties);
+ setPropertyIfPresent(PROPERTY_SOFTWARE_VERSION, config.getSoftwareVersion(), properties);
+ setPropertyIfPresent(PROPERTY_IP_ADDRESS, config.getIPAddress(), properties);
+ setPropertyIfPresent(Thing.PROPERTY_MAC_ADDRESS, config.getMACAddress(), properties);
+ if (config.getRegistrationTime() != null) {
+ properties.put(PROPERTY_REGISTRATION_TIME,
+ config.getRegistrationTime().format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)));
+ }
+ setPropertyIfPresent(PROPERTY_CONFIGURATION_STATE, config.getConfigurationState(), properties);
+ setPropertyIfPresent(PROPERTY_SHC_TYPE, bridgeDevice.getType(), properties);
+ setPropertyIfPresent(PROPERTY_TIME_ZONE, config.getTimeZone(), properties);
+ setPropertyIfPresent(PROPERTY_PROTOCOL_ID, config.getProtocolId(), properties);
+ setPropertyIfPresent(PROPERTY_GEOLOCATION, config.getGeoLocation(), properties);
+ setPropertyIfPresent(PROPERTY_CURRENT_UTC_OFFSET, config.getCurrentUTCOffset(), properties);
+ setPropertyIfPresent(PROPERTY_BACKEND_CONNECTION_MONITORED, config.getBackendConnectionMonitored(), properties);
+ setPropertyIfPresent(PROPERTY_RFCOM_FAILURE_NOTIFICATION, config.getRFCommFailureNotification(), properties);
+ updateProperties(properties);
}
- /**
- * Loads the {@link Configuration} of the bridge thing, creates an new
- * {@link InnogyConfig}, checks and returns it.
- *
- * @return the {@link InnogyConfig} for the {@link InnogyClient}.
- */
- private InnogyConfig loadAndCheckConfig() {
- Configuration thingConfig = super.getConfig();
-
- if (innogyConfig == null) {
- innogyConfig = new InnogyConfig();
- }
-
- // load and check connection and authorization data
- String brand;
- if (StringUtils.isNotBlank((String) thingConfig.get(CONFIG_BRAND))) {
- brand = thingConfig.get(CONFIG_BRAND).toString();
- } else {
- brand = DEFAULT_BRAND;
- }
- switch (brand) {
- case BRAND_INNOGY_SMARTHOME:
- innogyConfig.setClientId(CLIENT_ID_INNOGY_SMARTHOME);
- innogyConfig.setClientSecret(CLIENT_SECRET_INNOGY_SMARTHOME);
- innogyConfig.setRedirectUrl(REDIRECT_URL_INNOGY_SMARTHOME);
- break;
- case BRAND_SMARTHOME_AUSTRIA:
- innogyConfig.setClientId(CLIENT_ID_SMARTHOME_AUSTRIA);
- innogyConfig.setClientSecret(CLIENT_SECRET_SMARTHOME_AUSTRIA);
- innogyConfig.setRedirectUrl(REDIRECT_URL_SMARTHOME_AUSTRIA);
- break;
- case BRAND_START_SMARTHOME:
- innogyConfig.setClientId(CLIENT_ID_START_SMARTHOME);
- innogyConfig.setClientSecret(CLIENT_SECRET_START_SMARTHOME);
- innogyConfig.setRedirectUrl(REDIRECT_URL_START_SMARTHOME);
- break;
- default:
- logger.debug("Invalid brand '{}'. Make sure to select a brand in the SHC thing configuration!", brand);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
- "Invalid brand '" + brand + "'. Make sure to select a brand in the SHC thing configuration!");
- dispose();
- break;
- }
-
- if (StringUtils.isNotBlank((String) thingConfig.get(CONFIG_ACCESS_TOKEN))) {
- innogyConfig.setAccessToken(thingConfig.get(CONFIG_ACCESS_TOKEN).toString());
- }
- if (StringUtils.isNotBlank((String) thingConfig.get(CONFIG_REFRESH_TOKEN))) {
- innogyConfig.setRefreshToken(thingConfig.get(CONFIG_REFRESH_TOKEN).toString());
- }
-
- if (innogyConfig.checkRefreshToken()) {
- return innogyConfig;
- } else {
- if (StringUtils.isNotBlank((String) thingConfig.get(CONFIG_AUTH_CODE))) {
- innogyConfig.setAuthCode(thingConfig.get(CONFIG_AUTH_CODE).toString());
- return innogyConfig;
- } else {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
- "Cannot connect to innogy SmartHome service. Please set auth-code!");
- return null;
- }
+ private void setPropertyIfPresent(final String key, final @Nullable Object data,
+ final Map properties) {
+ if (data != null) {
+ properties.put(key, data instanceof String ? (String) data : data.toString());
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.smarthome.core.thing.binding.BaseThingHandler#dispose()
- */
@Override
public void dispose() {
logger.debug("Disposing innogy SmartHome bridge handler '{}'", getThing().getUID().getId());
- if (reinitJob != null) {
- reinitJob.cancel(true);
- reinitJob = null;
- }
-
+ unregisterDeviceStatusListener(this);
+ cancelReinitJob();
if (webSocket != null) {
webSocket.stop();
webSocket = null;
}
-
- if (client != null) {
- try {
- client.dispose();
- } catch (Exception e) {
- logger.trace("Error disposing client: {}", e.getMessage());
- }
- client = null;
- }
-
+ client = null;
deviceStructMan = null;
super.dispose();
logger.debug("innogy SmartHome bridge handler shut down.");
}
+ private synchronized void cancelReinitJob() {
+ ScheduledFuture> reinitJob = this.reinitJob;
+
+ if (reinitJob != null) {
+ reinitJob.cancel(true);
+ this.reinitJob = null;
+ }
+ }
+
/**
* Registers a {@link DeviceStatusListener}.
*
* @param deviceStatusListener
* @return true, if successful
*/
- public boolean registerDeviceStatusListener(DeviceStatusListener deviceStatusListener) {
- if (deviceStatusListener == null) {
- throw new IllegalArgumentException("It's not allowed to pass a null deviceStatusListener.");
- }
+ public boolean registerDeviceStatusListener(final DeviceStatusListener deviceStatusListener) {
return deviceStatusListeners.add(deviceStatusListener);
}
@@ -369,10 +377,7 @@ public boolean registerDeviceStatusListener(DeviceStatusListener deviceStatusLis
* @param deviceStatusListener
* @return true, if successful
*/
- public boolean unregisterDeviceStatusListener(DeviceStatusListener deviceStatusListener) {
- if (deviceStatusListener == null) {
- throw new IllegalArgumentException("It's not allowed to pass a null deviceStatusListener.");
- }
+ public boolean unregisterDeviceStatusListener(final DeviceStatusListener deviceStatusListener) {
return deviceStatusListeners.remove(deviceStatusListener);
}
@@ -382,15 +387,14 @@ public boolean unregisterDeviceStatusListener(DeviceStatusListener deviceStatusL
* @return a Collection of {@link Device}s
*/
public Collection loadDevices() {
- Collection devices = null;
- if (deviceStructMan != null) {
- try {
- devices = deviceStructMan.getDeviceList();
- } catch (Exception e) {
- logger.error("Error loading devices from device structure manager.", e);
- }
- }
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ final Collection devices;
+ if (deviceStructMan == null) {
+ devices = Collections.emptyList();
+ } else {
+ devices = deviceStructMan.getDeviceList();
+ }
return devices;
}
@@ -400,7 +404,7 @@ public Collection loadDevices() {
* @param deviceId
* @return {@link Device} or null, if it does not exist or no {@link DeviceStructureManager} is available
*/
- public Device getDeviceById(String deviceId) {
+ public @Nullable Device getDeviceById(final String deviceId) {
if (deviceStructMan != null) {
return deviceStructMan.getDeviceById(deviceId);
}
@@ -413,7 +417,8 @@ public Device getDeviceById(String deviceId) {
* @param deviceId
* @return the {@link Device} or null, if it does not exist or no {@link DeviceStructureManager} is available
*/
- public Device refreshDevice(String deviceId) {
+ public @Nullable Device refreshDevice(final String deviceId) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
if (deviceStructMan == null) {
return null;
}
@@ -422,102 +427,131 @@ public Device refreshDevice(String deviceId) {
try {
deviceStructMan.refreshDevice(deviceId);
device = deviceStructMan.getDeviceById(deviceId);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
return device;
}
- // CredentialRefreshListener implementation
-
- /*
- * (non-Javadoc)
- *
- * @see
- * com.google.api.client.auth.oauth2.CredentialRefreshListener#onTokenResponse(com.google.api.client.auth.oauth2.
- * Credential, com.google.api.client.auth.oauth2.TokenResponse)
- */
@Override
- public void onTokenResponse(Credential credential, TokenResponse tokenResponse) throws IOException {
- String accessToken = credential.getAccessToken();
- innogyConfig.setAccessToken(accessToken);
- getThing().getConfiguration().put(CONFIG_ACCESS_TOKEN, accessToken);
- logger.debug("Access token for innogy expired. New access token saved.");
- logger.debug("innogy access token saved (onTokenResponse): {}...{}", accessToken.substring(0, 10),
- accessToken.substring(accessToken.length() - 10));
+ public void onDeviceStateChanged(final Device device) {
+ synchronized (this.lock) {
+ if (!bridgeId.equals(device.getId())) {
+ logger.trace("DeviceId {} not relevant for this handler (responsible for id {})", device.getId(),
+ bridgeId);
+ return;
+ }
+
+ logger.debug("onDeviceStateChanged called with device {}/{}", device.getConfig().getName(), device.getId());
+
+ // DEVICE STATES
+ if (device.hasDeviceState()) {
+ final Double cpuUsage = device.getDeviceState().getState().getCpuUsage().getValue();
+ if (cpuUsage != null) {
+ logger.debug("-> CPU usage state: {}", cpuUsage);
+ updateState(CHANNEL_CPU, new DecimalType(cpuUsage));
+ }
+ final Double diskUsage = device.getDeviceState().getState().getDiskUsage().getValue();
+ if (diskUsage != null) {
+ logger.debug("-> Disk usage state: {}", diskUsage);
+ updateState(CHANNEL_DISK, new DecimalType(diskUsage));
+ }
+ final Double memoryUsage = device.getDeviceState().getState().getMemoryUsage().getValue();
+ if (memoryUsage != null) {
+ logger.debug("-> Memory usage state: {}", memoryUsage);
+ updateState(CHANNEL_MEMORY, new DecimalType(memoryUsage));
+ }
+
+ }
+
+ }
- // restart WebSocket
- onEventRunnerStopped();
}
- /*
- * (non-Javadoc)
- *
- * @see com.google.api.client.auth.oauth2.CredentialRefreshListener#onTokenErrorResponse(com.google.api.client.auth.
- * oauth2.Credential, com.google.api.client.auth.oauth2.TokenErrorResponse)
- */
@Override
- public void onTokenErrorResponse(Credential credential, TokenErrorResponse tokenErrorResponse) throws IOException {
- String accessToken = "";
- innogyConfig.setAccessToken(accessToken);
- getThing().getConfiguration().put(CONFIG_ACCESS_TOKEN, accessToken);
- logger.debug("innogy access token removed (onTokenErrorResponse): {}...{}", accessToken.substring(0, 10),
- accessToken.substring(accessToken.length() - 10));
+ public void onDeviceStateChanged(final Device device, final Event event) {
+ synchronized (this.lock) {
+ if (!bridgeId.equals(device.getId())) {
+ logger.trace("DeviceId {} not relevant for this handler (responsible for id {})", device.getId(),
+ bridgeId);
+ return;
+ }
+
+ logger.trace("DeviceId {} relevant for this handler.", device.getId());
- // restart binding
- scheduleReinitialize();
+ if (event.isLinkedtoDevice() && Device.DEVICE_TYPE_SHCA.equals(device.getType())) {
+ device.getDeviceState().getState().getCpuUsage().setValue(event.getProperties().getCpuUsage());
+ device.getDeviceState().getState().getDiskUsage().setValue(event.getProperties().getDiskUsage());
+ device.getDeviceState().getState().getMemoryUsage().setValue(event.getProperties().getMemoryUsage());
+ onDeviceStateChanged(device);
+ }
+ }
}
- /*
- * (non-Javadoc)
- *
- * @see org.openhab.binding.innogysmarthome.handler.EventListener#onEvent(java.lang.String)
- */
@Override
- public void onEvent(String msg) {
+ public void onEvent(final String msg) {
logger.trace("onEvent called. Msg: {}", msg);
try {
- Event[] eventArray = gson.fromJson(msg, Event[].class);
- for (Event event : eventArray) {
- logger.debug("Event found: Type:{} Capability:{}", event.getType(),
- event.getLink() != null ? event.getLink().getValue() : "(no link)");
+ final BaseEvent be = gson.fromJson(msg, BaseEvent.class);
+ logger.debug("Event no {} found. Type: {}", be.getSequenceNumber(), be.getType());
+ if (!BaseEvent.SUPPORTED_EVENT_TYPES.contains(be.getType())) {
+ logger.debug("Event type {} not supported. Skipping...", be.getType());
+ } else {
+ final Event event = gson.fromJson(msg, Event.class);
+
switch (event.getType()) {
- case Event.TYPE_STATE_CHANGED:
+ case BaseEvent.TYPE_STATE_CHANGED:
+ case BaseEvent.TYPE_BUTTON_PRESSED:
handleStateChangedEvent(event);
break;
- case Event.TYPE_DISCONNECT:
- logger.info("Websocket disconnected. Reason: {}", event.getPropertyList().get(0).getValue());
- scheduleReinitialize(0);
+ case BaseEvent.TYPE_DISCONNECT:
+ logger.debug("Websocket disconnected.");
+ scheduleRestartClient(0);
break;
- case Event.TYPE_CONFIG_CHANGED:
- logger.info("Configuration changed to version {}. Restarting innogy binding...",
- event.getConfigurationVersion());
- dispose();
- scheduleReinitialize(0);
+ case BaseEvent.TYPE_CONFIGURATION_CHANGED:
+ if (client.getConfigVersion().equals(event.getConfigurationVersion().toString())) {
+ logger.debug(
+ "Ignored configuration changed event with version '{}' as current version is '{}' the same.",
+ event.getConfigurationVersion(), client.getConfigVersion());
+ } else {
+ logger.info("Configuration changed from version {} to {}. Restarting innogy binding...",
+ client.getConfigVersion(), event.getConfigurationVersion());
+ scheduleRestartClient(0);
+ }
break;
- case Event.TYPE_CONTROLLER_CONNECTIVITY_CHANGED:
+ case BaseEvent.TYPE_CONTROLLER_CONNECTIVITY_CHANGED:
handleControllerConnectivityChangedEvent(event);
break;
- case Event.TYPE_NEW_MESSAGE_RECEIVED:
- handleNewMessageReceivedEvent(event);
+ case BaseEvent.TYPE_NEW_MESSAGE_RECEIVED:
+ case BaseEvent.TYPE_MESSAGE_CREATED:
+ final MessageEvent messageEvent = gson.fromJson(msg, MessageEvent.class);
+ handleNewMessageReceivedEvent(messageEvent);
break;
- case Event.TYPE_MESSAGE_DELETED:
+ case BaseEvent.TYPE_MESSAGE_DELETED:
handleMessageDeletedEvent(event);
break;
default:
- logger.debug("Unknown eventtype {}.", event.getType());
+ logger.debug("Unsupported eventtype {}.", event.getType());
break;
}
}
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException | RuntimeException e) {
logger.debug("Error with Event: {}", e.getMessage(), e);
+ handleClientException(e);
+ }
+ }
+
+ @Override
+ public void onError(final Throwable cause) {
+ if (cause instanceof Exception) {
+ handleClientException((Exception) cause);
}
}
@@ -528,38 +562,44 @@ public void onEvent(String msg) {
* @param event
* @throws ApiException
* @throws IOException
+ * @throws AuthenticationException
*/
- public void handleStateChangedEvent(Event event) throws ApiException, IOException {
+ public void handleStateChangedEvent(final Event event) throws ApiException, IOException, AuthenticationException {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
if (deviceStructMan == null) {
- scheduleReinitialize();
return;
}
// CAPABILITY
if (event.isLinkedtoCapability()) {
- Device device = deviceStructMan.getDeviceByCapabilityLink(event.getLink().getValue());
+ logger.trace("Event is linked to capability");
+ final Device device = deviceStructMan.getDeviceByCapabilityId(event.getSourceId());
if (device != null) {
- for (DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
+ for (final DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
deviceStatusListener.onDeviceStateChanged(device, event);
}
} else {
- logger.debug("Unknown/unsupported device for capability {}.", event.getLink().getValue());
+ logger.debug("Unknown/unsupported device for capability {}.", event.getSource());
}
// DEVICE
} else if (event.isLinkedtoDevice()) {
- deviceStructMan.refreshDevice(event.getLinkId());
- Device device = deviceStructMan.getDeviceById(event.getLinkId());
+ logger.trace("Event is linked to device");
+
+ if (!event.getSourceId().equals(deviceStructMan.getBridgeDevice().getId())) {
+ deviceStructMan.refreshDevice(event.getSourceId());
+ }
+ final Device device = deviceStructMan.getDeviceById(event.getSourceId());
if (device != null) {
- for (DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
+ for (final DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
deviceStatusListener.onDeviceStateChanged(device, event);
}
} else {
- logger.debug("Unknown/unsupported device {}.", event.getLinkId());
+ logger.debug("Unknown/unsupported device {}.", event.getSourceId());
}
} else {
- logger.debug("link type {} not supported (yet?)", event.getLinkType());
+ logger.debug("link type {} not supported (yet?)", event.getSourceLinkType());
}
}
@@ -570,18 +610,22 @@ public void handleStateChangedEvent(Event event) throws ApiException, IOExceptio
* @param event
* @throws ApiException
* @throws IOException
+ * @throws AuthenticationException
*/
- public void handleControllerConnectivityChangedEvent(Event event) throws ApiException, IOException {
- Boolean connected = event.getIsConnected();
+ public void handleControllerConnectivityChangedEvent(final Event event)
+ throws ApiException, IOException, AuthenticationException {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
+ final Boolean connected = event.getIsConnected();
if (connected != null) {
logger.debug("SmartHome Controller connectivity changed to {}.", connected ? "online" : "offline");
if (connected) {
- deviceStructMan = new DeviceStructureManager(client);
- deviceStructMan.start();
+ deviceStructMan.refreshDevices();
updateStatus(ThingStatus.ONLINE);
} else {
updateStatus(ThingStatus.OFFLINE);
- deviceStructMan = null;
}
} else {
logger.warn("isConnected property missing in event! (returned null)");
@@ -594,29 +638,33 @@ public void handleControllerConnectivityChangedEvent(Event event) throws ApiExce
* @param event
* @throws ApiException
* @throws IOException
+ * @throws AuthenticationException
*/
- public void handleNewMessageReceivedEvent(Event event) throws ApiException, IOException {
+ public void handleNewMessageReceivedEvent(final MessageEvent event)
+ throws ApiException, IOException, AuthenticationException {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
if (deviceStructMan == null) {
- scheduleReinitialize();
- }
-
- List messageList = event.getDataListAsMessage();
- for (Message m : messageList) {
- if (Message.TYPE_DEVICE_LOW_BATTERY.equals(m.getType())) {
- for (Link dl : m.getDeviceLinkList()) {
- deviceStructMan.refreshDevice(dl.getId());
- Device device = deviceStructMan.getDeviceById(dl.getId());
- if (device != null) {
- for (DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
- deviceStatusListener.onDeviceStateChanged(device);
- }
- } else {
- logger.debug("Unknown/unsupported device {}.", event.getLinkId());
+ return;
+ }
+ final Message message = event.getMessage();
+ if (logger.isTraceEnabled()) {
+ logger.trace("Message: {}", gson.toJson(message));
+ logger.trace("Messagetype: {}", message.getType());
+ }
+ if (Message.TYPE_DEVICE_LOW_BATTERY.equals(message.getType())) {
+ for (final String link : message.getDeviceLinkList()) {
+ deviceStructMan.refreshDevice(Link.getId(link));
+ final Device device = deviceStructMan.getDeviceById(Link.getId(link));
+ if (device != null) {
+ for (final DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
+ deviceStatusListener.onDeviceStateChanged(device);
}
+ } else {
+ logger.debug("Unknown/unsupported device {}.", event.getSourceId());
}
- } else {
- logger.debug("Message received event not yet implemented for Messagetype {}.", m.getType());
}
+ } else {
+ logger.debug("Message received event not yet implemented for Messagetype {}.", message.getType());
}
}
@@ -629,51 +677,31 @@ public void handleNewMessageReceivedEvent(Event event) throws ApiException, IOEx
* @param event
* @throws ApiException
* @throws IOException
+ * @throws AuthenticationException
*/
- public void handleMessageDeletedEvent(Event event) throws ApiException, IOException {
- if (deviceStructMan != null) {
- if (Link.LINK_TYPE_MESSAGE.equals(event.getLinkType())) {
- Device device = deviceStructMan.getDeviceWithMessageId(event.getLinkId());
- if (device != null) {
- deviceStructMan.refreshDevice(device.getId());
- device = deviceStructMan.getDeviceById(device.getId());
- for (DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
- deviceStatusListener.onDeviceStateChanged(device);
- }
- } else {
- logger.debug("Unknown/unsupported device {}.", event.getLinkId());
- }
+ public void handleMessageDeletedEvent(final Event event) throws ApiException, IOException, AuthenticationException {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
+ final String messageId = event.getData().getId();
+
+ logger.debug("handleMessageDeletedEvent with messageId '{}'", messageId);
+ Device device = deviceStructMan.getDeviceWithMessageId(messageId);
+ if (device != null) {
+ deviceStructMan.refreshDevice(device.getId());
+ device = deviceStructMan.getDeviceById(device.getId());
+ for (final DeviceStatusListener deviceStatusListener : deviceStatusListeners) {
+ deviceStatusListener.onDeviceStateChanged(device);
}
} else {
- scheduleReinitialize();
+ logger.debug("No device found with message id {}.", messageId);
}
}
- /**
- * This method is called, when the eventRunner stops and must be restarted after the given delay in seconds.
- *
- * @param delay long in seconds
- */
- public void onEventRunnerStopped(long delay) {
- logger.trace("onEventRunnerStopped called");
- scheduler.schedule(new WebSocketRunner(this), delay, TimeUnit.SECONDS);
- }
-
- /**
- * This method is called, whenever the eventRunner stops and must be restarted immediately.
- */
- public void onEventRunnerStopped() {
- onEventRunnerStopped(0);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.openhab.binding.innogysmarthome.internal.listener.EventListener#onEventRunnerStoppedAbnormally()
- */
@Override
public void connectionClosed() {
- scheduleReinitialize(REINITIALIZE_DELAY_SECONDS);
+ scheduleRestartClient(REINITIALIZE_DELAY_SECONDS);
}
/**
@@ -683,22 +711,31 @@ public void connectionClosed() {
* @param deviceId
* @param state
*/
- public void commandSwitchDevice(String deviceId, boolean state) {
+ public void commandSwitchDevice(final String deviceId, final boolean state) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- // TODO: ADD DEVICES
// VariableActuator
- String deviceType = deviceStructMan.getDeviceById(deviceId).getType();
- if (deviceType.equals(DEVICE_VARIABLE_ACTUATOR)) {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_VARIABLEACTUATOR);
+ final String deviceType = deviceStructMan.getDeviceById(deviceId).getType();
+ if (DEVICE_VARIABLE_ACTUATOR.equals(deviceType)) {
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_VARIABLEACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setVariableActuatorState(capabilityId, state);
// PSS / PSSO / ISS2
- } else if (deviceType.equals(DEVICE_PSS) || deviceType.equals(DEVICE_PSSO)
- || deviceType.equals(DEVICE_ISS2)) {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_SWITCHACTUATOR);
+ } else if (DEVICE_PSS.equals(deviceType) || DEVICE_PSSO.equals(deviceType)
+ || DEVICE_ISS2.equals(deviceType)) {
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_SWITCHACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setSwitchActuatorState(capabilityId, state);
}
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -710,11 +747,18 @@ public void commandSwitchDevice(String deviceId, boolean state) {
* @param deviceId
* @param pointTemperature
*/
- public void commandUpdatePointTemperature(String deviceId, double pointTemperature) {
+ public void commandUpdatePointTemperature(final String deviceId, final double pointTemperature) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_THERMOSTATACTUATOR);
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_THERMOSTATACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setPointTemperatureState(capabilityId, pointTemperature);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -726,11 +770,18 @@ public void commandUpdatePointTemperature(String deviceId, double pointTemperatu
* @param deviceId
* @param alarmState
*/
- public void commandSwitchAlarm(String deviceId, boolean alarmState) {
+ public void commandSwitchAlarm(final String deviceId, final boolean alarmState) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_ALARMACTUATOR);
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_ALARMACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setAlarmActuatorState(capabilityId, alarmState);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -742,11 +793,18 @@ public void commandSwitchAlarm(String deviceId, boolean alarmState) {
* @param deviceId
* @param autoMode true activates the automatic mode, false the manual mode.
*/
- public void commandSetOperationMode(String deviceId, boolean autoMode) {
+ public void commandSetOperationMode(final String deviceId, final boolean autoMode) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_THERMOSTATACTUATOR);
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_THERMOSTATACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setOperationMode(capabilityId, autoMode);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -758,11 +816,18 @@ public void commandSetOperationMode(String deviceId, boolean autoMode) {
* @param deviceId
* @param dimLevel
*/
- public void commandSetDimmLevel(String deviceId, int dimLevel) {
+ public void commandSetDimmLevel(final String deviceId, final int dimLevel) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_DIMMERACTUATOR);
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_DIMMERACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setDimmerActuatorState(capabilityId, dimLevel);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -774,11 +839,19 @@ public void commandSetDimmLevel(String deviceId, int dimLevel) {
* @param deviceId
* @param rollerSchutterLevel
*/
- public void commandSetRollerShutterLevel(String deviceId, int rollerSchutterLevel) {
+ public void commandSetRollerShutterLevel(final String deviceId, final int rollerSchutterLevel) {
+ final DeviceStructureManager deviceStructMan = this.deviceStructMan;
+ if (deviceStructMan == null) {
+ return;
+ }
try {
- String capabilityId = deviceStructMan.getCapabilityId(deviceId, Capability.TYPE_ROLLERSHUTTERACTUATOR);
+ final String capabilityId = deviceStructMan.getCapabilityId(deviceId,
+ Capability.TYPE_ROLLERSHUTTERACTUATOR);
+ if (capabilityId == null) {
+ return;
+ }
client.setRollerShutterActuatorState(capabilityId, rollerSchutterLevel);
- } catch (Exception e) {
+ } catch (IOException | ApiException | AuthenticationException e) {
handleClientException(e);
}
}
@@ -791,97 +864,64 @@ public void commandSetRollerShutterLevel(String deviceId, int rollerSchutterLeve
* @param e the Exception
* @return boolean true, if binding should continue.
*/
- private boolean handleClientException(Exception e) {
-
- // Session exists
+ private boolean handleClientException(final Exception e) {
+ long reinitialize = REINITIALIZE_DELAY_SECONDS;
if (e instanceof SessionExistsException) {
logger.debug("Session already exists. Continuing...");
- return true;
- }
-
- // Remote access not allowed (usually by IP address change)
- if (e instanceof RemoteAccessNotAllowedException) {
+ reinitialize = -1;
+ } else if (e instanceof InvalidActionTriggeredException) {
+ logger.debug("Error triggering action: {}", e.getMessage());
+ reinitialize = -1;
+ } else if (e instanceof RemoteAccessNotAllowedException) {
+ // Remote access not allowed (usually by IP address change)
logger.debug("Remote access not allowed. Dropping access token and reinitializing binding...");
- innogyConfig.setAccessToken("");
- getThing().getConfiguration().put(CONFIG_ACCESS_TOKEN, "");
- scheduleReinitialize(0);
- }
-
- // Controller offline
- if (e instanceof ControllerOfflineException) {
+ refreshAccessToken();
+ reinitialize = 0;
+ } else if (e instanceof ControllerOfflineException) {
logger.debug("innogy SmartHome Controller is offline.");
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE, e.getMessage());
- dispose();
- scheduleReinitialize();
- return false;
- }
-
- // Configuration error
- if (e instanceof ConfigurationException) {
- logger.debug("Configuration error: {}", e.getMessage());
+ } else if (e instanceof AuthenticationException) {
+ logger.debug("OAuthenticaton error, refreshing tokens: {}", e.getMessage());
+ refreshAccessToken();
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, e.getMessage());
- dispose();
- return false;
- }
-
- // invalid auth code
- if (e instanceof InvalidAuthCodeException) {
- logger.debug("Error fetching access tokens. Invalid authcode! Please generate a new one. Detail: {}",
- e.getMessage());
- org.eclipse.smarthome.config.core.Configuration configuration = editConfiguration();
- configuration.put(CONFIG_AUTH_CODE, "");
- updateConfiguration(configuration);
- innogyConfig.setAuthCode("");
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
- "Invalid authcode. Please generate a new one!");
- dispose();
- return false;
- }
-
- if (e instanceof InvalidActionTriggeredException) {
- logger.debug("Error triggering action: {}", e.getMessage());
- return true;
- }
-
- // io error
- if (e instanceof IOException) {
+ } else if (e instanceof IOException) {
logger.debug("IO error: {}", e.getMessage());
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
- dispose();
- scheduleReinitialize(REINITIALIZE_DELAY_LONG_SECONDS);
- return false;
- }
-
- // unexpected API error
- if (e instanceof ApiException) {
- logger.debug("Unexcepted API error: {}", e.getMessage());
+ } else if (e instanceof ApiException) {
+ logger.warn("Unexcepted API error: {}", e.getMessage(), e);
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
- dispose();
- scheduleReinitialize(REINITIALIZE_DELAY_LONG_SECONDS);
- return false;
- }
-
- // java.net.SocketTimeoutException
- if (e instanceof SocketTimeoutException) {
+ } else if (e instanceof TimeoutException) {
+ logger.debug("WebSocket timeout: {}", e.getMessage());
+ reinitialize = WEBSOCKET_TIMEOUT_RETRY_SECONDS;
+ } else if (e instanceof SocketTimeoutException) {
logger.debug("Socket timeout: {}", e.getMessage());
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
- dispose();
- scheduleReinitialize();
- return false;
- }
-
- // ExecutionException
- if (e instanceof ExecutionException) {
+ } else if (e instanceof InterruptedException) {
+ reinitialize = -1;
+ Thread.currentThread().interrupt();
+ } else if (e instanceof ExecutionException) {
logger.debug("ExecutionException: {}", ExceptionUtils.getRootCauseMessage(e));
- dispose();
- scheduleReinitialize();
- return false;
+ updateStatus(ThingStatus.OFFLINE);
+ } else {
+ logger.debug("Unknown exception", e);
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, e.getMessage());
+ }
+ if (reinitialize >= 0) {
+ scheduleRestartClient(reinitialize);
+ return true;
}
-
- // unknown
- logger.debug("Unknown exception", e);
- dispose();
- scheduleReinitialize();
return false;
}
+
+ private void refreshAccessToken() {
+ try {
+ final OAuthClientService localOAuthService = this.oAuthService;
+
+ if (localOAuthService != null) {
+ oAuthService.refreshToken();
+ }
+ } catch (IOException | OAuthResponseException | OAuthException e) {
+ logger.debug("Could not refresh tokens", e);
+ }
+ }
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyDeviceHandler.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyDeviceHandler.java
index 56d8d878aee4b..8557c5f752f88 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyDeviceHandler.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/handler/InnogyDeviceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,8 +18,11 @@
import java.time.format.FormatStyle;
import java.util.HashMap;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.smarthome.core.library.types.DecimalType;
import org.eclipse.smarthome.core.library.types.OnOffType;
import org.eclipse.smarthome.core.library.types.OpenClosedType;
@@ -39,11 +42,10 @@
import org.eclipse.smarthome.core.thing.binding.ThingHandler;
import org.eclipse.smarthome.core.types.Command;
import org.eclipse.smarthome.core.types.RefreshType;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+import org.openhab.binding.innogysmarthome.internal.client.entity.capability.CapabilityState;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
import org.openhab.binding.innogysmarthome.internal.client.entity.event.Event;
-import org.openhab.binding.innogysmarthome.internal.client.entity.state.CapabilityState;
import org.openhab.binding.innogysmarthome.internal.listener.DeviceStatusListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,29 +56,35 @@
*
* @author Oliver Kuhl - Initial contribution
*/
+@NonNullByDefault
public class InnogyDeviceHandler extends BaseThingHandler implements DeviceStatusListener {
public static final Set SUPPORTED_THING_TYPES = SUPPORTED_DEVICE_THING_TYPES;
- private final Logger logger = LoggerFactory.getLogger(InnogyDeviceHandler.class);
- private String deviceId;
- private InnogyBridgeHandler bridgeHandler;
+ private static final String DEBUG = "DEBUG";
+ private static final String LONG_PRESS = "LongPress";
+ private static final String SHORT_PRESS = "ShortPress";
+
+ private final Logger logger = LoggerFactory.getLogger(InnogyDeviceHandler.class);
private final Object lock = new Object();
+ private String deviceId = "";
+ private @Nullable InnogyBridgeHandler bridgeHandler;
+
/**
* Constructs a new {@link InnogyDeviceHandler} for the given {@link Thing}.
*
* @param thing
*/
- public InnogyDeviceHandler(Thing thing) {
+ public InnogyDeviceHandler(final Thing thing) {
super(thing);
}
@Override
- public void handleCommand(ChannelUID channelUID, Command command) {
+ public void handleCommand(final ChannelUID channelUID, final Command command) {
logger.debug("handleCommand called for channel '{}' of type '{}' with command '{}'", channelUID,
getThing().getThingTypeUID().getId(), command);
- InnogyBridgeHandler innogyBridgeHandler = getInnogyBridgeHandler();
+ final InnogyBridgeHandler innogyBridgeHandler = getInnogyBridgeHandler();
if (innogyBridgeHandler == null) {
logger.warn("BridgeHandler not found. Cannot handle command without bridge.");
return;
@@ -87,24 +95,38 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
if (command instanceof RefreshType) {
- Device device = innogyBridgeHandler.getDeviceById(deviceId);
+ final Device device = innogyBridgeHandler.getDeviceById(deviceId);
if (device != null) {
onDeviceStateChanged(device);
}
return;
}
- // TODO: add devices
// SWITCH
- if (channelUID.getId().equals(CHANNEL_SWITCH)) {
+ if (CHANNEL_SWITCH.equals(channelUID.getId())) {
+ // DEBUGGING HELPER
+ // ----------------
+ final Device device = innogyBridgeHandler.getDeviceById(deviceId);
+ if (DEBUG.equals(device.getConfig().getName())) {
+ logger.debug("DEBUG SWITCH ACTIVATED!");
+ if (OnOffType.ON.equals(command)) {
+ innogyBridgeHandler.onEvent(
+ "{\"sequenceNumber\": -1,\"type\": \"MessageCreated\",\"desc\": \"/desc/event/MessageCreated\",\"namespace\": \"core.RWE\",\"timestamp\": \"2019-07-07T18:41:47.2970000Z\",\"source\": \"/desc/device/SHC.RWE/1.0\",\"data\": {\"id\": \"6e5ce2290cd247208f95a5b53736958b\",\"type\": \"DeviceLowBattery\",\"read\": false,\"class\": \"Alert\",\"timestamp\": \"2019-07-07T18:41:47.232Z\",\"devices\": [\"/device/fe51785319854f36a621d0b4f8ea0e25\"],\"properties\": {\"deviceName\": \"Heizkörperthermostat\",\"serialNumber\": \"914110165056\",\"locationName\": \"Bad\"},\"namespace\": \"core.RWE\"}}");
+ } else {
+ innogyBridgeHandler.onEvent(
+ "{\"sequenceNumber\": -1,\"type\": \"MessageDeleted\",\"desc\": \"/desc/event/MessageDeleted\",\"namespace\": \"core.RWE\",\"timestamp\": \"2019-07-07T19:15:39.2100000Z\",\"data\": { \"id\": \"6e5ce2290cd247208f95a5b53736958b\" }}");
+ }
+ return;
+ }
+ // ----------------
if (command instanceof OnOffType) {
innogyBridgeHandler.commandSwitchDevice(deviceId, OnOffType.ON.equals(command));
}
// DIMMER
- } else if (channelUID.getId().equals(CHANNEL_DIMMER)) {
+ } else if (CHANNEL_DIMMER.equals(channelUID.getId())) {
if (command instanceof DecimalType) {
- DecimalType dimLevel = (DecimalType) command;
+ final DecimalType dimLevel = (DecimalType) command;
innogyBridgeHandler.commandSetDimmLevel(deviceId, dimLevel.intValue());
} else if (command instanceof OnOffType) {
if (OnOffType.ON.equals(command)) {
@@ -115,9 +137,9 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
// ROLLERSHUTTER
- } else if (channelUID.getId().equals(CHANNEL_ROLLERSHUTTER)) {
+ } else if (CHANNEL_ROLLERSHUTTER.equals(channelUID.getId())) {
if (command instanceof DecimalType) {
- DecimalType rollerShutterLevel = (DecimalType) command;
+ final DecimalType rollerShutterLevel = (DecimalType) command;
innogyBridgeHandler.commandSetRollerShutterLevel(deviceId,
invertValueIfConfigured(CHANNEL_ROLLERSHUTTER, rollerShutterLevel.intValue()));
} else if (command instanceof OnOffType) {
@@ -139,29 +161,30 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
// SET_TEMPERATURE
- } else if (channelUID.getId().equals(CHANNEL_SET_TEMPERATURE)) {
+ } else if (CHANNEL_SET_TEMPERATURE.equals(channelUID.getId())) {
if (command instanceof DecimalType) {
- DecimalType pointTemperature = (DecimalType) command;
+ final DecimalType pointTemperature = (DecimalType) command;
innogyBridgeHandler.commandUpdatePointTemperature(deviceId, pointTemperature.doubleValue());
}
// OPERATION_MODE
- } else if (channelUID.getId().equals(CHANNEL_OPERATION_MODE)) {
+ } else if (CHANNEL_OPERATION_MODE.equals(channelUID.getId())) {
if (command instanceof StringType) {
- StringType autoModeCommand = (StringType) command;
+ final String autoModeCommand = command.toString();
- if (autoModeCommand.toString().equals("Auto")) {
+ if (CapabilityState.STATE_VALUE_OPERATION_MODE_AUTO.equals(autoModeCommand)) {
innogyBridgeHandler.commandSetOperationMode(deviceId, true);
- } else if (autoModeCommand.toString().equals("Manu")) {
+ } else if (CapabilityState.STATE_VALUE_OPERATION_MODE_MANUAL.equals(autoModeCommand)) {
innogyBridgeHandler.commandSetOperationMode(deviceId, false);
} else {
logger.warn("Could not set operationmode. Invalid value '{}'! Only '{}' or '{}' allowed.",
- autoModeCommand.toString(), "Auto", "Manu");
+ autoModeCommand, CapabilityState.STATE_VALUE_OPERATION_MODE_AUTO,
+ CapabilityState.STATE_VALUE_OPERATION_MODE_MANUAL);
}
}
// ALARM
- } else if (channelUID.getId().equals(CHANNEL_ALARM)) {
+ } else if (CHANNEL_ALARM.equals(channelUID.getId())) {
if (command instanceof OnOffType) {
innogyBridgeHandler.commandSwitchAlarm(deviceId, OnOffType.ON.equals(command));
}
@@ -174,11 +197,18 @@ public void handleCommand(ChannelUID channelUID, Command command) {
@Override
public void initialize() {
logger.debug("Initializing innogy SmartHome device handler.");
- initializeThing((getBridge() == null) ? null : getBridge().getStatus());
+ initializeThing(getBridge() == null ? null : getBridge().getStatus());
+ }
+
+ @Override
+ public void dispose() {
+ if (bridgeHandler != null) {
+ bridgeHandler.unregisterDeviceStatusListener(this);
+ }
}
@Override
- public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) {
+ public void bridgeStatusChanged(final ThingStatusInfo bridgeStatusInfo) {
logger.debug("bridgeStatusChanged {}", bridgeStatusInfo);
initializeThing(bridgeStatusInfo.getStatus());
}
@@ -188,7 +218,7 @@ public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) {
*
* @param bridgeStatus
*/
- private void initializeThing(ThingStatus bridgeStatus) {
+ private void initializeThing(@Nullable final ThingStatus bridgeStatus) {
logger.debug("initializeThing thing {} bridge status {}", getThing().getUID(), bridgeStatus);
final String configDeviceId = (String) getConfig().get(PROPERTY_ID);
if (configDeviceId != null) {
@@ -197,8 +227,12 @@ private void initializeThing(ThingStatus bridgeStatus) {
// the bridge
if (getInnogyBridgeHandler() != null) {
if (bridgeStatus == ThingStatus.ONLINE) {
- updateStatus(ThingStatus.ONLINE);
- initializeProperties();
+ if (initializeProperties()) {
+ updateStatus(ThingStatus.ONLINE);
+ } else {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.GONE,
+ "Device not found in innogy config. Was it removed?");
+ }
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE);
}
@@ -213,12 +247,13 @@ private void initializeThing(ThingStatus bridgeStatus) {
/**
* Initializes all properties of the {@link Device}, like vendor, serialnumber etc.
*/
- private void initializeProperties() {
+ private boolean initializeProperties() {
synchronized (this.lock) {
- Device device = getDevice();
+ final Device device = getDevice();
if (device != null) {
- Map properties = editProperties();
+ final Map properties = editProperties();
properties.put(PROPERTY_ID, device.getId());
+ properties.put(PROPERTY_PROTOCOL_ID, device.getConfig().getProtocolId());
if (device.hasSerialNumber()) {
properties.put(Thing.PROPERTY_SERIAL_NUMBER, device.getSerialnumber());
}
@@ -239,17 +274,39 @@ private void initializeProperties() {
} else if (device.isRadioDevice()) {
properties.put(PROPERTY_DEVICE_TYPE, "Radio");
}
- properties.put(PROPERTY_TIME_OF_ACCEPTANCE,
- device.getTimeOfAcceptance().format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)));
- properties.put(PROPERTY_TIME_OF_DISCOVERY,
- device.getTimeOfDiscovery().format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)));
+ // Thermostat
+ if (Device.DEVICE_TYPE_RST.equals(device.getType())
+ || Device.DEVICE_TYPE_WRT.equals(device.getType())) {
+ properties.put(PROPERTY_DISPLAY_CURRENT_TEMPERATURE,
+ device.getConfig().getDisplayCurrentTemperature());
+ }
+
+ // Meter
+ if (Device.DEVICE_TYPE_ANALOG_METER.equals(device.getType())
+ || Device.DEVICE_TYPE_GENERATION_METER.equals(device.getType())
+ || Device.DEVICE_TYPE_SMARTMETER.equals(device.getType())
+ || Device.DEVICE_TYPE_TWO_WAY_METER.equals(device.getType())) {
+ properties.put(PROPERTY_METER_ID, device.getConfig().getMeterId());
+ properties.put(PROPERTY_METER_FIRMWARE_VERSION, device.getConfig().getMeterFirmwareVersion());
+ }
+
+ if (device.getConfig().getTimeOfAcceptance() != null) {
+ properties.put(PROPERTY_TIME_OF_ACCEPTANCE, device.getConfig().getTimeOfAcceptance()
+ .format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)));
+ }
+ if (device.getConfig().getTimeOfDiscovery() != null) {
+ properties.put(PROPERTY_TIME_OF_DISCOVERY, device.getConfig().getTimeOfDiscovery()
+ .format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)));
+ }
+
updateProperties(properties);
- // TODO: check device state first! E.g. there is no state, when device is still in configuration state.
onDeviceStateChanged(device);
+ return true;
} else {
logger.warn("initializeProperties: device is null");
+ return false;
}
}
}
@@ -260,7 +317,7 @@ private void initializeProperties() {
*
* @return the {@link Device} or null, if not found or no {@link InnogyBridgeHandler} is available
*/
- private Device getDevice() {
+ private @Nullable Device getDevice() {
if (getInnogyBridgeHandler() != null) {
return getInnogyBridgeHandler().getDeviceById(deviceId);
}
@@ -272,14 +329,14 @@ private Device getDevice() {
*
* @return the {@link InnogyBridgeHandler} or null
*/
- private InnogyBridgeHandler getInnogyBridgeHandler() {
+ private @Nullable InnogyBridgeHandler getInnogyBridgeHandler() {
synchronized (this.lock) {
if (this.bridgeHandler == null) {
- Bridge bridge = getBridge();
+ final Bridge bridge = getBridge();
if (bridge == null) {
return null;
}
- ThingHandler handler = bridge.getHandler();
+ final ThingHandler handler = bridge.getHandler();
if (handler instanceof InnogyBridgeHandler) {
this.bridgeHandler = (InnogyBridgeHandler) handler;
this.bridgeHandler.registerDeviceStatusListener(this);
@@ -292,7 +349,7 @@ private InnogyBridgeHandler getInnogyBridgeHandler() {
}
@Override
- public void onDeviceStateChanged(Device device) {
+ public void onDeviceStateChanged(final Device device) {
synchronized (this.lock) {
if (!deviceId.equals(device.getId())) {
logger.trace("DeviceId {} not relevant for this handler (responsible for id {})", device.getId(),
@@ -300,17 +357,21 @@ public void onDeviceStateChanged(Device device) {
return;
}
- logger.debug("onDeviceStateChanged called with device {}/{}", device.getName(), device.getId());
+ logger.debug("onDeviceStateChanged called with device {}/{}", device.getConfig().getName(), device.getId());
// DEVICE STATES
- if (device.hasState()) {
- Boolean reachable = device.getDeviceState().isReachable();
- boolean included = device.getDeviceState().deviceIsIncluded();
+ if (device.hasDeviceState()) {
+ Boolean reachable = null;
+ if (device.getDeviceState().hasIsReachableState()) {
+ reachable = device.getDeviceState().isReachable();
+ }
+
if (reachable != null && !reachable) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "Device not reachable.");
return;
- } else if (reachable != null && reachable) {
- if (included) {
+ } else if ((reachable != null && reachable)
+ || Device.DEVICE_TYPE_VARIABLE_ACTUATOR.equals(device.getType())) {
+ if (device.getDeviceState().deviceIsIncluded()) {
updateStatus(ThingStatus.ONLINE);
} else {
updateStatus(ThingStatus.ONLINE, ThingStatusDetail.CONFIGURATION_PENDING,
@@ -329,17 +390,19 @@ public void onDeviceStateChanged(Device device) {
}
// CAPABILITY STATES
- for (Capability c : device.getCapabilityMap().values()) {
+ for (final Entry entry : device.getCapabilityMap().entrySet()) {
+ final Capability c = entry.getValue();
+
logger.debug("->capability:{} ({}/{})", c.getId(), c.getType(), c.getName());
if (c.getCapabilityState() == null) {
- logger.debug("Capability not available for device {} ({})", device.getName(), device.getType());
+ logger.debug("Capability not available for device {} ({})", device.getConfig().getName(),
+ device.getType());
continue;
}
- // TODO: ADD DEVICES
switch (c.getType()) {
case Capability.TYPE_VARIABLEACTUATOR:
- Boolean variableActuatorState = c.getCapabilityState().getVariableActuatorState();
+ final Boolean variableActuatorState = c.getCapabilityState().getVariableActuatorState();
if (variableActuatorState != null) {
updateState(CHANNEL_SWITCH, variableActuatorState ? OnOffType.ON : OnOffType.OFF);
} else {
@@ -348,7 +411,7 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_SWITCHACTUATOR:
- Boolean switchActuatorState = c.getCapabilityState().getSwitchActuatorState();
+ final Boolean switchActuatorState = c.getCapabilityState().getSwitchActuatorState();
if (switchActuatorState != null) {
updateState(CHANNEL_SWITCH, switchActuatorState ? OnOffType.ON : OnOffType.OFF);
} else {
@@ -357,15 +420,9 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_DIMMERACTUATOR:
- Double dimmerActuatorState = c.getCapabilityState().getDimmerActuatorState();
- if (dimmerActuatorState != null) {
- int dimLevel = dimmerActuatorState.intValue();
- logger.debug("Dimlevel state {} -> type {}", dimmerActuatorState, dimLevel);
- if (dimLevel > 0) {
- updateState(CHANNEL_DIMMER, OnOffType.ON);
- } else {
- updateState(CHANNEL_DIMMER, OnOffType.OFF);
- }
+ final Integer dimLevel = c.getCapabilityState().getDimmerActuatorState();
+ if (dimLevel != null) {
+ logger.debug("Dimlevel state {}", dimLevel);
updateState(CHANNEL_DIMMER, new PercentType(dimLevel));
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -373,17 +430,10 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_ROLLERSHUTTERACTUATOR:
- Double rollerShutterActuatorState = c.getCapabilityState().getRollerShutterActuatorState();
- if (rollerShutterActuatorState != null) {
- int rollerShutterLevel = invertValueIfConfigured(CHANNEL_ROLLERSHUTTER,
- rollerShutterActuatorState.intValue());
- logger.debug("RollerShutterlevel state {} -> type {}", rollerShutterActuatorState,
- rollerShutterLevel);
- if (rollerShutterLevel > 0) {
- updateState(CHANNEL_ROLLERSHUTTER, OnOffType.ON);
- } else {
- updateState(CHANNEL_ROLLERSHUTTER, OnOffType.OFF);
- }
+ Integer rollerShutterLevel = c.getCapabilityState().getRollerShutterActuatorState();
+ if (rollerShutterLevel != null) {
+ rollerShutterLevel = invertValueIfConfigured(CHANNEL_ROLLERSHUTTER, rollerShutterLevel);
+ logger.debug("RollerShutterlevel state {}", rollerShutterLevel);
updateState(CHANNEL_ROLLERSHUTTER, new PercentType(rollerShutterLevel));
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -392,18 +442,18 @@ public void onDeviceStateChanged(Device device) {
break;
case Capability.TYPE_TEMPERATURESENSOR:
// temperature
- Double temperatureSensorState = c.getCapabilityState().getTemperatureSensorTemperatureState();
+ final Double temperatureSensorState = c.getCapabilityState()
+ .getTemperatureSensorTemperatureState();
if (temperatureSensorState != null) {
logger.debug("-> Temperature sensor state: {}", temperatureSensorState);
- DecimalType temp = new DecimalType(temperatureSensorState);
- updateState(CHANNEL_TEMPERATURE, temp);
+ updateState(CHANNEL_TEMPERATURE, new DecimalType(temperatureSensorState));
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
c.getCapabilityState().getId(), c.getId());
}
// frost warning
- Boolean temperatureSensorFrostWarningState = c.getCapabilityState()
+ final Boolean temperatureSensorFrostWarningState = c.getCapabilityState()
.getTemperatureSensorFrostWarningState();
if (temperatureSensorFrostWarningState != null) {
updateState(CHANNEL_FROST_WARNING,
@@ -416,13 +466,14 @@ public void onDeviceStateChanged(Device device) {
break;
case Capability.TYPE_THERMOSTATACTUATOR:
// point temperature
- Double thermostatActuatorPointTemperatureState = c.getCapabilityState()
+ final Double thermostatActuatorPointTemperatureState = c.getCapabilityState()
.getThermostatActuatorPointTemperatureState();
if (thermostatActuatorPointTemperatureState != null) {
- DecimalType pointTemp = new DecimalType(thermostatActuatorPointTemperatureState);
+ final DecimalType pointTemp = new DecimalType(thermostatActuatorPointTemperatureState);
logger.debug(
"Update CHANNEL_SET_TEMPERATURE: state:{}->decType:{} (DeviceName {}, Capab-ID:{})",
- thermostatActuatorPointTemperatureState, pointTemp, device.getName(), c.getId());
+ thermostatActuatorPointTemperatureState, pointTemp, device.getConfig().getName(),
+ c.getId());
updateState(CHANNEL_SET_TEMPERATURE, pointTemp);
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -430,10 +481,10 @@ public void onDeviceStateChanged(Device device) {
}
// operation mode
- String thermostatActuatorOperationModeState = c.getCapabilityState()
+ final String thermostatActuatorOperationModeState = c.getCapabilityState()
.getThermostatActuatorOperationModeState();
if (thermostatActuatorOperationModeState != null) {
- StringType operationMode = new StringType(thermostatActuatorOperationModeState);
+ final StringType operationMode = new StringType(thermostatActuatorOperationModeState);
updateState(CHANNEL_OPERATION_MODE, operationMode);
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -441,7 +492,7 @@ public void onDeviceStateChanged(Device device) {
}
// window reduction active
- Boolean thermostatActuatorWindowReductionActiveState = c.getCapabilityState()
+ final Boolean thermostatActuatorWindowReductionActiveState = c.getCapabilityState()
.getThermostatActuatorWindowReductionActiveState();
if (thermostatActuatorWindowReductionActiveState != null) {
updateState(CHANNEL_WINDOW_REDUCTION_ACTIVE,
@@ -453,9 +504,9 @@ public void onDeviceStateChanged(Device device) {
break;
case Capability.TYPE_HUMIDITYSENSOR:
// humidity
- Double humidityState = c.getCapabilityState().getHumiditySensorHumidityState();
+ final Double humidityState = c.getCapabilityState().getHumiditySensorHumidityState();
if (humidityState != null) {
- DecimalType humidity = new DecimalType(humidityState);
+ final DecimalType humidity = new DecimalType(humidityState);
updateState(CHANNEL_HUMIDITY, humidity);
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -463,7 +514,7 @@ public void onDeviceStateChanged(Device device) {
}
// mold warning
- Boolean humiditySensorMoldWarningState = c.getCapabilityState()
+ final Boolean humiditySensorMoldWarningState = c.getCapabilityState()
.getHumiditySensorMoldWarningState();
if (humiditySensorMoldWarningState != null) {
updateState(CHANNEL_MOLD_WARNING,
@@ -474,7 +525,7 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_WINDOWDOORSENSOR:
- Boolean contactState = c.getCapabilityState().getWindowDoorSensorState();
+ final Boolean contactState = c.getCapabilityState().getWindowDoorSensorState();
if (contactState != null) {
updateState(CHANNEL_CONTACT, contactState ? OpenClosedType.OPEN : OpenClosedType.CLOSED);
} else {
@@ -483,7 +534,7 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_SMOKEDETECTORSENSOR:
- Boolean smokeState = c.getCapabilityState().getSmokeDetectorSensorState();
+ final Boolean smokeState = c.getCapabilityState().getSmokeDetectorSensorState();
if (smokeState != null) {
updateState(CHANNEL_SMOKE, smokeState ? OnOffType.ON : OnOffType.OFF);
} else {
@@ -492,7 +543,7 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_ALARMACTUATOR:
- Boolean alarmState = c.getCapabilityState().getAlarmActuatorState();
+ final Boolean alarmState = c.getCapabilityState().getAlarmActuatorState();
if (alarmState != null) {
updateState(CHANNEL_ALARM, alarmState ? OnOffType.ON : OnOffType.OFF);
} else {
@@ -501,9 +552,9 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_MOTIONDETECTIONSENSOR:
- Double motionState = c.getCapabilityState().getMotionDetectionSensorState();
+ final Integer motionState = c.getCapabilityState().getMotionDetectionSensorState();
if (motionState != null) {
- DecimalType motionCount = new DecimalType(motionState);
+ final DecimalType motionCount = new DecimalType(motionState);
logger.debug("Motion state {} -> count {}", motionState, motionCount);
updateState(CHANNEL_MOTION_COUNT, motionCount);
} else {
@@ -512,9 +563,9 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_LUMINANCESENSOR:
- Double luminanceState = c.getCapabilityState().getLuminanceSensorState();
+ final Double luminanceState = c.getCapabilityState().getLuminanceSensorState();
if (luminanceState != null) {
- DecimalType luminance = new DecimalType(luminanceState);
+ final DecimalType luminance = new DecimalType(luminanceState);
updateState(CHANNEL_LUMINANCE, luminance);
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -522,37 +573,32 @@ public void onDeviceStateChanged(Device device) {
}
break;
case Capability.TYPE_PUSHBUTTONSENSOR:
- Double pushCountState = c.getCapabilityState().getPushButtonSensorCounterState();
- Double buttonIndexState = c.getCapabilityState().getPushButtonSensorButtonIndexState();
+ final Integer pushCountState = c.getCapabilityState().getPushButtonSensorCounterState();
+ final Integer buttonIndexState = c.getCapabilityState().getPushButtonSensorButtonIndexState();
logger.debug("Pushbutton index {} count {}", buttonIndexState, pushCountState);
if (pushCountState != null) {
- DecimalType pushCount = new DecimalType(pushCountState);
- if (buttonIndexState.equals(0.0)) {
- triggerChannel(CHANNEL_BUTTON1, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON1_COUNT, pushCount);
- } else if (buttonIndexState.equals(1.0)) {
- triggerChannel(CHANNEL_BUTTON2, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON2_COUNT, pushCount);
- } else if (buttonIndexState.equals(2.0)) {
- triggerChannel(CHANNEL_BUTTON3, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON3_COUNT, pushCount);
- } else if (buttonIndexState.equals(3.0)) {
- triggerChannel(CHANNEL_BUTTON4, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON4_COUNT, pushCount);
- } else if (buttonIndexState.equals(4.0)) {
- triggerChannel(CHANNEL_BUTTON5, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON5_COUNT, pushCount);
- } else if (buttonIndexState.equals(5.0)) {
- triggerChannel(CHANNEL_BUTTON6, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON6_COUNT, pushCount);
- } else if (buttonIndexState.equals(6.0)) {
- triggerChannel(CHANNEL_BUTTON7, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON7_COUNT, pushCount);
- } else if (buttonIndexState.equals(7.0)) {
- triggerChannel(CHANNEL_BUTTON8, CommonTriggerEvents.PRESSED);
- updateState(CHANNEL_BUTTON8_COUNT, pushCount);
+ final DecimalType pushCount = new DecimalType(pushCountState);
+ // prevent error when buttonIndexState is null
+ if (buttonIndexState != null) {
+ if (buttonIndexState >= 0 && buttonIndexState <= 7) {
+ final int channelIndex = buttonIndexState + 1;
+ final String type = c.getCapabilityState().getPushButtonSensorButtonIndexType();
+ final String triggerEvent = SHORT_PRESS.equals(type)
+ ? CommonTriggerEvents.SHORT_PRESSED
+ : (LONG_PRESS.equals(type) ? CommonTriggerEvents.LONG_PRESSED
+ : CommonTriggerEvents.PRESSED);
+
+ triggerChannel(CHANNEL_BUTTON + channelIndex, triggerEvent);
+ updateState(String.format(CHANNEL_BUTTON_COUNT, channelIndex), pushCount);
+ } else {
+ logger.debug("Button index {} not supported.", buttonIndexState);
+ }
+ // Button handled so remove state to avoid re-trigger.
+ c.getCapabilityState().setPushButtonSensorButtonIndexState(null);
+ c.getCapabilityState().setPushButtonSensorButtonIndexType(null);
} else {
- logger.debug("Button index {} not supported.", buttonIndexState);
+ logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
+ c.getCapabilityState().getId(), c.getId());
}
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", c.getType(),
@@ -600,6 +646,9 @@ public void onDeviceStateChanged(Device device) {
updateStateForEnergyChannel(CHANNEL_ENERGY_MONTH_EURO,
c.getCapabilityState().getTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState(),
c);
+ updateStateForEnergyChannel(CHANNEL_ENERGY_DAY_EURO,
+ c.getCapabilityState().getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState(),
+ c);
updateStateForEnergyChannel(CHANNEL_ENERGY_DAY_KWH,
c.getCapabilityState().getTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState(),
c);
@@ -626,6 +675,7 @@ public void onDeviceStateChanged(Device device) {
}
}
}
+
}
/**
@@ -635,9 +685,10 @@ public void onDeviceStateChanged(Device device) {
* @param state
* @param capability
*/
- private void updateStateForEnergyChannel(String channelId, Double state, Capability capability) {
+ private void updateStateForEnergyChannel(final String channelId, @Nullable final Double state,
+ final Capability capability) {
if (state != null) {
- DecimalType newValue = new DecimalType(state);
+ final DecimalType newValue = new DecimalType(state);
updateState(channelId, newValue);
} else {
logger.debug("State for {} is STILL NULL!! cstate-id: {}, c-id: {}", capability.getType(),
@@ -646,11 +697,10 @@ private void updateStateForEnergyChannel(String channelId, Double state, Capabil
}
@Override
- public void onDeviceStateChanged(Device device, Event event) {
+ public void onDeviceStateChanged(final Device changedDevice, final Event event) {
synchronized (this.lock) {
+ Device device = changedDevice;
if (!deviceId.equals(device.getId())) {
- logger.trace("DeviceId {} not relevant for this handler (responsible for id {})", device.getId(),
- deviceId);
return;
}
@@ -658,327 +708,240 @@ public void onDeviceStateChanged(Device device, Event event) {
if (event.isLinkedtoCapability()) {
boolean deviceChanged = false;
- String linkId = event.getLinkId();
- for (Property p : event.getPropertyList()) {
- logger.debug("State changed {} to {}.", p.getName(), p.getValue());
- HashMap capabilityMap = device.getCapabilityMap();
- Capability capability = capabilityMap.get(linkId);
- logger.trace("Loaded Capability {}, {} with id {}, device {} from device id {}",
- capability.getType(), capability.getName(), capability.getId(),
- capability.getDeviceLink().get(0).getValue(), device.getId());
-
- CapabilityState capabilityState;
- if (capability.hasState()) {
- capabilityState = capability.getCapabilityState();
- } else {
- logger.debug("Capability {} has no state (yet?) - refreshing device.", capability.getName());
- device = getInnogyBridgeHandler().refreshDevice(deviceId);
+ final String linkedCapabilityId = event.getSourceId();
- capabilityMap = device.getCapabilityMap();
- capability = capabilityMap.get(linkId);
- if (capability.hasState()) {
- capabilityState = capability.getCapabilityState();
- } else {
- continue;
- }
- }
+ HashMap capabilityMap = device.getCapabilityMap();
+ Capability capability = capabilityMap.get(linkedCapabilityId);
+ logger.trace("Loaded Capability {}, {} with id {}, device {} from device id {}", capability.getType(),
+ capability.getName(), capability.getId(), capability.getDeviceLink(), device.getId());
+
+ CapabilityState capabilityState;
+ if (capability.hasState()) {
+ capabilityState = capability.getCapabilityState();
- // TODO: ADD DEVICES
// VariableActuator
if (capability.isTypeVariableActuator()) {
- capabilityState.setVariableActuatorState((boolean) p.getValue());
+ capabilityState.setVariableActuatorState(event.getProperties().getValue());
deviceChanged = true;
// SwitchActuator
} else if (capability.isTypeSwitchActuator()) {
- capabilityState.setSwitchActuatorState((boolean) p.getValue());
+ capabilityState.setSwitchActuatorState(event.getProperties().getOnState());
deviceChanged = true;
// DimmerActuator
} else if (capability.isTypeDimmerActuator()) {
- capabilityState.setDimmerActuatorState((double) p.getValue());
+ capabilityState.setDimmerActuatorState(event.getProperties().getDimLevel());
deviceChanged = true;
// RollerShutterActuator
} else if (capability.isTypeRollerShutterActuator()) {
- capabilityState.setRollerShutterActuatorState((double) p.getValue());
+ capabilityState.setRollerShutterActuatorState(event.getProperties().getShutterLevel());
deviceChanged = true;
// TemperatureSensor
} else if (capability.isTypeTemperatureSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_TEMPERATURE_SENSOR_TEMPERATURE)) {
- capabilityState.setTemperatureSensorTemperatureState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(CapabilityState.STATE_NAME_TEMPERATURE_SENSOR_FROST_WARNING)) {
- capabilityState.setTemperatureSensorFrostWarningState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
+ // when values are changed, they come with separate events
+ // values should only updated when they are not null
+ final Double tmpTemperatureState = event.getProperties().getTemperature();
+ final Boolean tmpFrostWarningState = event.getProperties().getFrostWarning();
+ if (tmpTemperatureState != null) {
+ capabilityState.setTemperatureSensorTemperatureState(tmpTemperatureState);
+ }
+ if (tmpFrostWarningState != null) {
+ capabilityState.setTemperatureSensorFrostWarningState(tmpFrostWarningState);
}
+ deviceChanged = true;
// ThermostatActuator
} else if (capability.isTypeThermostatActuator()) {
- // point temperature
- if (p.getName().equals(CapabilityState.STATE_NAME_THERMOSTAT_ACTUATOR_POINT_TEMPERATURE)) {
- capabilityState.setThermostatActuatorPointTemperatureState((double) p.getValue());
- deviceChanged = true;
- logger.debug("ThermostatActuator PointTemperature State: {}",
- capabilityState.getThermostatActuatorPointTemperatureState());
- logger.debug("ThermostatActuator PointTemperature State from device: {}",
- device.getCapabilityMap().get(linkId).getCapabilityState()
- .getThermostatActuatorPointTemperatureState());
-
- // operation mode
- } else if (p.getName().equals(CapabilityState.STATE_NAME_THERMOSTAT_ACTUATOR_OPERATION_MODE)) {
- capabilityState.setThermostatActuatorOperationModeState((String) p.getValue());
- deviceChanged = true;
- logger.debug("ThermostatActuator OperationMode State: {}",
- capabilityState.getThermostatActuatorOperationModeState());
+ // when values are changed, they come with separate events
+ // values should only updated when they are not null
- // window reduction active
- } else if (p.getName()
- .equals(CapabilityState.STATE_NAME_THERMOSTAT_ACTUATOR_WINDOW_REDUCTION_ACTIVE)) {
- capabilityState.setThermostatActuatorWindowReductionActiveState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
+ final Double tmpPointTemperatureState = event.getProperties().getPointTemperature();
+ final String tmpOperationModeState = event.getProperties().getOperationMode();
+ final Boolean tmpWindowReductionActiveState = event.getProperties().getWindowReductionActive();
+
+ if (tmpPointTemperatureState != null) {
+ capabilityState.setThermostatActuatorPointTemperatureState(tmpPointTemperatureState);
+ }
+ if (tmpOperationModeState != null) {
+ capabilityState.setThermostatActuatorOperationModeState(tmpOperationModeState);
}
+ if (tmpWindowReductionActiveState != null) {
+ capabilityState
+ .setThermostatActuatorWindowReductionActiveState(tmpWindowReductionActiveState);
+ }
+ deviceChanged = true;
// HumiditySensor
} else if (capability.isTypeHumiditySensor()) {
- // humidity
- if (p.getName().equals(CapabilityState.STATE_NAME_HUMIDITY_SENSOR_HUMIDITY)) {
- capabilityState.setHumiditySensorHumidityState((double) p.getValue());
- deviceChanged = true;
-
- // mold warning
- } else if (p.getName().equals(CapabilityState.STATE_NAME_HUMIDITY_SENSOR_MOLD_WARNING)) {
- capabilityState.setHumiditySensorMoldWarningState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
+ // when values are changed, they come with separate events
+ // values should only updated when they are not null
+ final Double tmpHumidityState = event.getProperties().getHumidity();
+ final Boolean tmpMoldWarningState = event.getProperties().getMoldWarning();
+ if (tmpHumidityState != null) {
+ capabilityState.setHumiditySensorHumidityState(tmpHumidityState);
}
+ if (tmpMoldWarningState != null) {
+ capabilityState.setHumiditySensorMoldWarningState(tmpMoldWarningState);
+ }
+ deviceChanged = true;
// WindowDoorSensor
} else if (capability.isTypeWindowDoorSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_WINDOW_DOOR_SENSOR)) {
- capabilityState.setWindowDoorSensorState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
- }
+ capabilityState.setWindowDoorSensorState(event.getProperties().getIsOpen());
+ deviceChanged = true;
// SmokeDetectorSensor
} else if (capability.isTypeSmokeDetectorSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_SMOKE_DETECTOR_SENSOR)) {
- capabilityState.setSmokeDetectorSensorState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
- }
+ capabilityState.setSmokeDetectorSensorState(event.getProperties().getIsSmokeAlarm());
+ deviceChanged = true;
// AlarmActuator
} else if (capability.isTypeAlarmActuator()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_ALARM_ACTUATOR)) {
- capabilityState.setAlarmActuatorState((boolean) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
- }
+ capabilityState.setAlarmActuatorState(event.getProperties().getOnState());
+ deviceChanged = true;
// MotionDetectionSensor
} else if (capability.isTypeMotionDetectionSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_MOTION_DETECTION_SENSOR)) {
- capabilityState.setMotionDetectionSensorState((double) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
- }
+ capabilityState.setMotionDetectionSensorState(event.getProperties().getMotionDetectedCount());
+ deviceChanged = true;
// LuminanceSensor
} else if (capability.isTypeLuminanceSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_LUMINANCE_SENSOR)) {
- capabilityState.setLuminanceSensorState((double) p.getValue());
- deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
- }
+ capabilityState.setLuminanceSensorState(event.getProperties().getLuminance());
+ deviceChanged = true;
// PushButtonSensor
} else if (capability.isTypePushButtonSensor()) {
- if (p.getName().equals(CapabilityState.STATE_NAME_PUSH_BUTTON_SENSOR_BUTTON_INDEX)) {
- capabilityState.setPushButtonSensorButtonIndexState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(CapabilityState.STATE_NAME_PUSH_BUTTON_SENSOR_COUNTER)) {
- capabilityState.setPushButtonSensorCounterState((double) p.getValue());
+ // Some devices send both StateChanged and ButtonPressed. But only one should be handled.
+ // If ButtonPressed is send lastPressedButtonIndex is not set in StateChanged so ignore
+ // StateChanged.
+ // type is also not always present if null will be interpreted as a normal key press.
+ final Integer tmpButtonIndex = event.getProperties().getLastPressedButtonIndex();
+
+ if (tmpButtonIndex != null) {
+ capabilityState.setPushButtonSensorButtonIndexState(tmpButtonIndex);
+ capabilityState
+ .setPushButtonSensorButtonIndexType(event.getProperties().getLastKeyPressType());
+
+ final Integer tmpLastKeyPressCounter = event.getProperties().getLastKeyPressCounter();
+
+ if (tmpLastKeyPressCounter != null) {
+ capabilityState.setPushButtonSensorCounterState(tmpLastKeyPressCounter);
+ }
deviceChanged = true;
- } else {
- logger.debug("Capability-property {} not yet supported.", p.getName());
}
// EnergyConsumptionSensor
} else if (capability.isTypeEnergyConsumptionSensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_KWH)) {
- capabilityState
- .setEnergyConsumptionSensorEnergyConsumptionMonthKWhState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ABSOLUTE_ENERGY_CONSUMPTION)) {
- capabilityState
- .setEnergyConsumptionSensorAbsoluteEnergyConsumptionState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_MONTH_EURO)) {
- capabilityState
- .setEnergyConsumptionSensorEnergyConsumptionMonthEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_EURO)) {
- capabilityState
- .setEnergyConsumptionSensorEnergyConsumptionDayEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_ENERGY_CONSUMPTION_SENSOR_ENERGY_CONSUMPTION_DAY_KWH)) {
- capabilityState
- .setEnergyConsumptionSensorEnergyConsumptionDayKWhState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setEnergyConsumptionSensorEnergyConsumptionMonthKWhState(
+ event.getProperties().getEnergyConsumptionMonthKWh());
+ capabilityState.setEnergyConsumptionSensorAbsoluteEnergyConsumptionState(
+ event.getProperties().getAbsoluteEnergyConsumption());
+ capabilityState.setEnergyConsumptionSensorEnergyConsumptionMonthEuroState(
+ event.getProperties().getEnergyConsumptionMonthEuro());
+ capabilityState.setEnergyConsumptionSensorEnergyConsumptionDayEuroState(
+ event.getProperties().getEnergyConsumptionDayEuro());
+ capabilityState.setEnergyConsumptionSensorEnergyConsumptionDayKWhState(
+ event.getProperties().getEnergyConsumptionDayKWh());
+ deviceChanged = true;
// PowerConsumptionSensor
} else if (capability.isTypePowerConsumptionSensor()) {
- if (p.getName()
- .equals(CapabilityState.STATE_NAME_POWER_CONSUMPTION_SENSOR_POWER_CONSUMPTION_WATT)) {
- capabilityState.setPowerConsumptionSensorPowerConsumptionWattState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setPowerConsumptionSensorPowerConsumptionWattState(
+ event.getProperties().getPowerConsumptionWatt());
+ deviceChanged = true;
// GenerationMeterEnergySensor
} else if (capability.isTypeGenerationMeterEnergySensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_KWH)) {
- capabilityState
- .setGenerationMeterEnergySensorEnergyPerMonthInKWhState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName()
- .equals(CapabilityState.STATE_NAME_GENERATION_METER_ENERGY_SENSOR_TOTAL_ENERGY)) {
- capabilityState.setGenerationMeterEnergySensorTotalEnergyState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_MONTH_IN_EURO)) {
- capabilityState
- .setGenerationMeterEnergySensorEnergyPerMonthInEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_EURO)) {
- capabilityState
- .setGenerationMeterEnergySensorEnergyPerDayInEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_GENERATION_METER_ENERGY_SENSOR_ENERGY_PER_DAY_IN_KWH)) {
- capabilityState.setGenerationMeterEnergySensorEnergyPerDayInKWhState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setGenerationMeterEnergySensorEnergyPerMonthInKWhState(
+ event.getProperties().getEnergyPerMonthInKWh());
+ capabilityState
+ .setGenerationMeterEnergySensorTotalEnergyState(event.getProperties().getTotalEnergy());
+ capabilityState.setGenerationMeterEnergySensorEnergyPerMonthInEuroState(
+ event.getProperties().getEnergyPerMonthInEuro());
+ capabilityState.setGenerationMeterEnergySensorEnergyPerDayInEuroState(
+ event.getProperties().getEnergyPerDayInEuro());
+ capabilityState.setGenerationMeterEnergySensorEnergyPerDayInKWhState(
+ event.getProperties().getEnergyPerDayInKWh());
+ deviceChanged = true;
// GenerationMeterPowerConsumptionSensor
} else if (capability.isTypeGenerationMeterPowerConsumptionSensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_GENERATION_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT)) {
- capabilityState
- .setGenerationMeterPowerConsumptionSensorPowerInWattState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setGenerationMeterPowerConsumptionSensorPowerInWattState(
+ event.getProperties().getPowerInWatt());
+ deviceChanged = true;
// TwoWayMeterEnergyConsumptionSensor
} else if (capability.isTypeTwoWayMeterEnergyConsumptionSensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_KWH)) {
- capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState(
- (double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_TOTAL_ENERGY)) {
- capabilityState
- .setTwoWayMeterEnergyConsumptionSensorTotalEnergyState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_MONTH_IN_EURO)) {
- capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState(
- (double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_EURO)) {
- capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState(
- (double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_CONSUMPTION_SENSOR_ENERGY_PER_DAY_IN_KWH)) {
- capabilityState
- .setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInKWhState(
+ event.getProperties().getEnergyPerMonthInKWh());
+ capabilityState.setTwoWayMeterEnergyConsumptionSensorTotalEnergyState(
+ event.getProperties().getTotalEnergy());
+ capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerMonthInEuroState(
+ event.getProperties().getEnergyPerMonthInEuro());
+ capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInEuroState(
+ event.getProperties().getEnergyPerDayInEuro());
+ capabilityState.setTwoWayMeterEnergyConsumptionSensorEnergyPerDayInKWhState(
+ event.getProperties().getEnergyPerDayInKWh());
+ deviceChanged = true;
// TwoWayMeterEnergyFeedSensor
} else if (capability.isTypeTwoWayMeterEnergyFeedSensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_KWH)) {
- capabilityState
- .setTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName()
- .equals(CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_TOTAL_ENERGY)) {
- capabilityState.setTwoWayMeterEnergyFeedSensorTotalEnergyState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_MONTH_IN_EURO)) {
- capabilityState
- .setTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_EURO)) {
- capabilityState
- .setTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState((double) p.getValue());
- deviceChanged = true;
- } else if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_ENERGY_FEED_SENSOR_ENERGY_PER_DAY_IN_KWH)) {
- capabilityState.setTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setTwoWayMeterEnergyFeedSensorEnergyPerMonthInKWhState(
+ event.getProperties().getEnergyPerMonthInKWh());
+ capabilityState
+ .setTwoWayMeterEnergyFeedSensorTotalEnergyState(event.getProperties().getTotalEnergy());
+ capabilityState.setTwoWayMeterEnergyFeedSensorEnergyPerMonthInEuroState(
+ event.getProperties().getEnergyPerMonthInEuro());
+ capabilityState.setTwoWayMeterEnergyFeedSensorEnergyPerDayInEuroState(
+ event.getProperties().getEnergyPerDayInEuro());
+ capabilityState.setTwoWayMeterEnergyFeedSensorEnergyPerDayInKWhState(
+ event.getProperties().getEnergyPerDayInKWh());
+ deviceChanged = true;
// TwoWayMeterPowerConsumptionSensor
} else if (capability.isTypeTwoWayMeterPowerConsumptionSensor()) {
- if (p.getName().equals(
- CapabilityState.STATE_NAME_TWO_WAY_METER_POWER_CONSUMPTION_SENSOR_POWER_IN_WATT)) {
- capabilityState.setTwoWayMeterPowerConsumptionSensorPowerInWattState((double) p.getValue());
- deviceChanged = true;
- }
+ capabilityState.setTwoWayMeterPowerConsumptionSensorPowerInWattState(
+ event.getProperties().getPowerInWatt());
+ deviceChanged = true;
+
} else {
logger.debug("Unsupported capability type {}.", capability.getType());
- continue;
}
- }
+ } else { // capability.hasState()
+ logger.debug("Capability {} has no state (yet?) - refreshing device.", capability.getName());
+ final InnogyBridgeHandler innogyBridgeHandler = getInnogyBridgeHandler();
- if (deviceChanged) {
+ if (innogyBridgeHandler != null) {
+ device = innogyBridgeHandler.refreshDevice(deviceId);
+ }
+ if (device != null) {
+ capabilityMap = device.getCapabilityMap();
+ capability = capabilityMap.get(linkedCapabilityId);
+ if (capability.hasState()) {
+ capabilityState = capability.getCapabilityState();
+ deviceChanged = true;
+ }
+ }
+ }
+ if (deviceChanged && device != null) {
onDeviceStateChanged(device);
}
} else if (event.isLinkedtoDevice()) {
- if (device.hasState()) {
- Map stateMap = device.getDeviceState().getStateMap();
- for (Property p : event.getPropertyList()) {
- logger.debug("State changed {} to {}.", p.getName(), p.getValue());
-
- stateMap.get(p.getName()).setValue(p.getValue());
- stateMap.get(p.getName()).setLastchanged((p.getLastchanged()));
- }
+ if (device.hasDeviceState()) {
onDeviceStateChanged(device);
} else {
- logger.debug("Device {}/{} has no state.", device.getName(), device.getId());
+ logger.debug("Device {}/{} has no state.", device.getConfig().getName(), device.getId());
return;
}
}
}
+
}
/**
@@ -987,18 +950,18 @@ public void onDeviceStateChanged(Device device, Event event) {
* @param value
* @return the value or the inverted value
*/
- private int invertValueIfConfigured(String channelId, int value) {
+ private int invertValueIfConfigured(final String channelId, final int value) {
if (!CHANNEL_ROLLERSHUTTER.equals(channelId)) {
logger.debug("Channel {} cannot be inverted.", channelId);
return value;
}
+ final Channel channel = getThing().getChannel(channelId);
- Channel channel = getThing().getChannel(channelId);
if (channel == null) {
logger.debug("Channel {} was null! Value not inverted.", channelId);
return value;
}
-
- return 100 - value;
+ final Boolean invert = (Boolean) channel.getConfiguration().get("invert");
+ return invert != null && invert ? value : (100 - value);
}
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/DeviceStatusListener.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/DeviceStatusListener.java
index c9aa22c6218f3..f9ceb9617dfed 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/DeviceStatusListener.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/DeviceStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,6 +12,7 @@
*/
package org.openhab.binding.innogysmarthome.internal.listener;
+import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
import org.openhab.binding.innogysmarthome.internal.client.entity.event.Event;
@@ -20,6 +21,7 @@
*
* @author Oliver Kuhl - Initial contribution
*/
+@NonNullByDefault
public interface DeviceStatusListener {
/**
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/EventListener.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/EventListener.java
index 954a63cd7aa86..c7c3363227845 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/EventListener.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/listener/EventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -12,6 +12,7 @@
*/
package org.openhab.binding.innogysmarthome.internal.listener;
+import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.innogysmarthome.internal.InnogyWebSocket;
/**
@@ -20,6 +21,7 @@
*
* @author Oliver Kuhl - Initial contribution
*/
+@NonNullByDefault
public interface EventListener {
/**
@@ -27,10 +29,17 @@ public interface EventListener {
*
* @param msg
*/
- public void onEvent(String msg);
+ void onEvent(String msg);
+
+ /**
+ * This method is called when the innogy websocket services throws an onError.
+ *
+ * @param cause
+ */
+ void onError(Throwable cause);
/**
* This method is called, when the evenRunner stops abnormally (statuscode <> 1000).
*/
- public void connectionClosed();
+ void connectionClosed();
}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/manager/DeviceStructureManager.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/manager/DeviceStructureManager.java
index b35be01d2b679..8cb1641b2e64a 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/manager/DeviceStructureManager.java
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/manager/DeviceStructureManager.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -18,15 +18,19 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.innogysmarthome.internal.InnogyBindingConstants;
import org.openhab.binding.innogysmarthome.internal.client.InnogyClient;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Message;
-import org.openhab.binding.innogysmarthome.internal.client.entity.Property;
import org.openhab.binding.innogysmarthome.internal.client.entity.capability.Capability;
+import org.openhab.binding.innogysmarthome.internal.client.entity.capability.State;
import org.openhab.binding.innogysmarthome.internal.client.entity.device.Device;
-import org.openhab.binding.innogysmarthome.internal.client.entity.link.CapabilityLink;
+import org.openhab.binding.innogysmarthome.internal.client.entity.link.Link;
+import org.openhab.binding.innogysmarthome.internal.client.entity.message.Message;
import org.openhab.binding.innogysmarthome.internal.client.exception.ApiException;
+import org.openhab.binding.innogysmarthome.internal.client.exception.AuthenticationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,14 +41,15 @@
* @author Oliver Kuhl - Initial contribution
*
*/
+@NonNullByDefault
public class DeviceStructureManager {
private final Logger logger = LoggerFactory.getLogger(DeviceStructureManager.class);
private final InnogyClient client;
private final Map deviceMap;
- private final Map capabilityToDeviceMap;
- private String bridgeDeviceId;
+ private final Map capabilityIdToDeviceMap;
+ private String bridgeDeviceId = "";
/**
* Constructs the {@link DeviceStructureManager}.
@@ -54,20 +59,7 @@ public class DeviceStructureManager {
public DeviceStructureManager(InnogyClient client) {
this.client = client;
deviceMap = Collections.synchronizedMap(new HashMap<>());
- capabilityToDeviceMap = Collections.synchronizedMap(new HashMap<>());
- }
-
- /**
- * Starts the {@link DeviceStructureManager} by building the device structure.
- *
- * @throws IOException
- * @throws ApiException
- */
- public synchronized void start() throws IOException, ApiException {
- logger.debug("Starting device structure manager.");
-
- refreshDevices();
- logger.debug("Devices loaded. Device structure manager ready.");
+ capabilityIdToDeviceMap = new ConcurrentHashMap<>();
}
/**
@@ -85,8 +77,11 @@ public Map getDeviceMap() {
*
* @throws IOException
* @throws ApiException
+ * @throws AuthenticationException
*/
- private void refreshDevices() throws IOException, ApiException {
+ public void refreshDevices() throws IOException, ApiException, AuthenticationException {
+ deviceMap.clear();
+ capabilityIdToDeviceMap.clear();
List devices = client.getFullDevices();
for (Device d : devices) {
handleRefreshedDevice(d);
@@ -99,8 +94,10 @@ private void refreshDevices() throws IOException, ApiException {
* @param deviceId
* @throws IOException
* @throws ApiException
+ * @throws AuthenticationException
*/
- public void refreshDevice(String deviceId) throws IOException, ApiException {
+ public void refreshDevice(String deviceId) throws IOException, ApiException, AuthenticationException {
+ logger.trace("Refreshing Device with id '{}'", deviceId);
Device d = client.getFullDeviceById(deviceId);
handleRefreshedDevice(d);
}
@@ -115,7 +112,7 @@ private void handleRefreshedDevice(Device d) {
if (InnogyBindingConstants.SUPPORTED_DEVICES.contains(d.getType())) {
addDeviceToStructure(d);
} else {
- logger.debug("Device {}:'{}' by {} ({}) ignored - UNSUPPORTED.", d.getType(), d.getName(),
+ logger.debug("Device {}:'{}' by {} ({}) ignored - UNSUPPORTED.", d.getType(), d.getConfig().getName(),
d.getManufacturer(), d.getId());
logger.debug("====================================");
return;
@@ -127,25 +124,22 @@ private void handleRefreshedDevice(Device d) {
if (logger.isDebugEnabled()) {
try {
- logger.debug("Device {}:'{}' by {} ({}) loaded.", d.getType(), d.getName(), d.getManufacturer(),
- d.getId());
+ logger.debug("Device {}:'{}@{}' by {} ({}) loaded.", d.getType(), d.getConfig().getName(),
+ d.getLocation() != null ? d.getLocation().getName() : "", d.getManufacturer(), d.getId());
for (Capability c : d.getCapabilityMap().values()) {
logger.debug("> CAP: {}/{} ({})", c.getType(), c.getName(), c.getId());
if (d.isRadioDevice() && !d.isReachable()) {
logger.debug(">> CAP-State: unknown (device NOT REACHABLE).");
} else {
- if (c.getCapabilityState() != null) {
- for (Property p : c.getCapabilityState().getStateMap().values()) {
- logger.debug(">> CAP-State: {} -> {} ({})", p.getName(), p.getValue(),
- p.getLastchanged());
- }
+ if (c.hasState()) {
+ final State state = c.getCapabilityState().getState();
} else {
logger.debug(">> CAP-State: unknown (NULL)");
}
}
}
- } catch (Exception e) {
- logger.error("EX: ", e);
+ } catch (RuntimeException e) {
+ logger.debug("Error during logging: ", e);
}
logger.debug("====================================");
}
@@ -161,8 +155,8 @@ public void addDeviceToStructure(Device device) {
getDeviceMap().put(device.getId(), device);
}
- for (CapabilityLink cl : device.getCapabilityLinkList()) {
- capabilityToDeviceMap.put(cl.getValue(), device);
+ for (String cl : device.getCapabilityLinkList()) {
+ capabilityIdToDeviceMap.put(Link.getId(cl), device);
}
}
@@ -180,11 +174,11 @@ public Device getDeviceById(String id) {
/**
* Returns the {@link Device}, that provides the given capability.
*
- * @param capabilityLink
+ * @param capabilityId
* @return {@link Device} or null
*/
- public Device getDeviceByCapabilityLink(String capabilityLink) {
- return capabilityToDeviceMap.get(capabilityLink);
+ public Device getDeviceByCapabilityId(String capabilityId) {
+ return capabilityIdToDeviceMap.get(capabilityId);
}
/**
@@ -211,7 +205,8 @@ public Collection getDeviceList() {
* @param messageId the id of the {@link Message}
* @return the {@link Device} or null if none found
*/
- public Device getDeviceWithMessageId(String messageId) {
+ public @Nullable Device getDeviceWithMessageId(String messageId) {
+ logger.trace("Getting Device with MessageId '{}'", messageId);
for (Device d : getDeviceMap().values()) {
if (d.hasMessages()) {
for (Message m : d.getMessageList()) {
@@ -231,7 +226,7 @@ public Device getDeviceWithMessageId(String messageId) {
* @param capabilityType
* @return the id of the found {@link Capability} or null
*/
- public String getCapabilityId(String deviceId, String capabilityType) {
+ public @Nullable String getCapabilityId(String deviceId, String capabilityType) {
Device device = getDeviceMap().get(deviceId);
for (Capability c : device.getCapabilityMap().values()) {
if (c.getType().equals(capabilityType)) {
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/config/config.xml
index 171a65909d1fe..144312b14ba18 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/config/config.xml
@@ -1,5 +1,6 @@
-
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/i18n/innogysmarthome_de_DE.properties b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/i18n/innogysmarthome_de_DE.properties
index 8f94b5fed3253..d19b4c3c1bac1 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/i18n/innogysmarthome_de_DE.properties
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/i18n/innogysmarthome_de_DE.properties
@@ -10,7 +10,7 @@ thing-type.config.innogysmarthome.bridge.connection.description = Parameter zur
thing-type.config.innogysmarthome.bridge.brand.label = Marke
thing-type.config.innogysmarthome.bridge.brand.description = Wähle die Marke Deiner innogy SmartHome Lösung.
thing-type.config.innogysmarthome.bridge.authcode.label = Autorisierungscode
-thing-type.config.innogysmarthome.bridge.authcode.description = Der Autorisierungscode ist ein einmaliger Code, um die notwendigen Zugangscodes vom innogy SmartHome Dienst zu erhalten. Bitte gehe je nach Marke zum...
SmartHome Austria Portal: https://api.services-smarthome.de/AUTH/authorize?response_type=code&client_id=24635749&redirect_uri=https%3A%2F%2Fwww.openhab.org%2Foauth%2Finnogy%2Fsmarthome-austria.html&scope&lang=de-DE
... um einen Autorisierungscode zu erstellen und kopiere ihn hier hinein.. Nach der einmaligen Autorisierung verfällt der Code und wird nicht mehr benötigt.
+thing-type.config.innogysmarthome.bridge.authcode.description = Der Autorisierungscode ist ein einmaliger Code, um die notwendigen Zugangscodes vom innogy SmartHome Dienst zu erhalten. Bitte gehe je nach Marke zum...
SmartHome Austria Portal: https://api.services-smarthome.de/AUTH/authorize?response_type=code&client_id=24635749&redirect_uri=https%3A%2F%2Fwww.openhab.org%2Foauth%2Finnogy%2Fsmarthome-austria.html&scope&lang=de-DE
... to generate an auth-code and paste it here. After initial authorization, this code is not needed anymore.]]>falseseconds
-
+
The WebSocket is the connection to the innogy service that listens to status updates.
If no data is received over the websocket connection for the given time,
the websocket will reconnect. 0 will disable the idle timeout. Default is 900 seconds (15 minutes).900true
-
-
- The refresh token is used to create a valid access token. It is automatically
- pulled from innogy SmartHome backend with the initial auth-code.
- true
- password
-
-
-
- The access token is used to access the innogy SmartHome backend. Is is automatically
- pulled from innogy SmartHome backend.
- true
- password
-
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/thing/channels.xml b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/thing/channels.xml
index 5c936aecf48ff..8b05d61ccc22a 100644
--- a/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/thing/channels.xml
+++ b/bundles/org.openhab.binding.innogysmarthome/src/main/resources/ESH-INF/thing/channels.xml
@@ -1,5 +1,6 @@
-
@@ -22,9 +23,15 @@
Rollershutter
-
+
Controls the blindsBlinds
+
+
+
+ When invert is true than 0 on innogy is UP and 100 is DOWN
+
+
@@ -58,7 +65,7 @@
Switch
-
+
Thermostat temperature reduced, if window is open.Temperature
@@ -127,7 +134,7 @@
Number
-
+
The count of detected motionsCount
@@ -145,7 +152,7 @@
Number
-
+
The count of button pushes.Count
@@ -163,7 +170,7 @@
Number
-
+
The absolute Energy consumptionEnergy
@@ -172,7 +179,7 @@
Number
-
+
The energy consumption per month in EuroEnergy
@@ -181,7 +188,7 @@
Number
-
+
The energy consumption per day in EuroEnergy
@@ -217,7 +224,7 @@
Number
-
+
The total Energy generationEnergy
@@ -226,7 +233,7 @@
Number
-
+
The energy generation per month in EuroEnergy
@@ -235,7 +242,7 @@
Number
-
+
The energy generation per day in EuroEnergy
@@ -253,7 +260,7 @@
Number
-
+
The current power generation in WattEnergy
@@ -262,7 +269,7 @@
Number
-
+
The total Energy consumptionEnergy
@@ -280,7 +287,7 @@
Number
-
+
The total Energy fedEnergy
@@ -289,7 +296,7 @@
Number
-
+
The energy feed per month in EuroEnergy
@@ -298,7 +305,7 @@
Number
-
+
The energy feed per day in EuroEnergy
@@ -313,4 +320,31 @@
+
+
+ Number
+
+ The CPU usage of SHC-A, updated every 5 minutes
+ System
+
+
+
+
+
+ Number
+
+ The disk usage of SHC-A, updated every 5 minutes
+ System
+
+
+
+
+
+ Number
+
+ The memory usage of SHC-A, updated every 5 minutes
+ System
+
+
+
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHC2state.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHC2state.json
new file mode 100644
index 0000000000000..673855eda6390
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHC2state.json
@@ -0,0 +1,84 @@
+{
+ "configVersion": {
+ "value": 38,
+ "lastChanged": "2019-07-13T08:34:35.627766Z"
+ },
+ "cpuUsage": {
+ "value": 0.80912222750515084,
+ "lastChanged": "2019-07-22T19:35:06.080964Z"
+ },
+ "currentUtcOffset": {
+ "value": 120,
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "deviceConfigurationState": {
+ "value": "Complete",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "deviceInclusionState": {
+ "value": "Included",
+ "lastChanged": "2019-02-07T19:47:50.2148Z"
+ },
+ "discoveryActive": {
+ "value": false,
+ "lastChanged": "2019-07-13T07:19:47.187338Z"
+ },
+ "diskUsage": {
+ "value": 57.358010125846029,
+ "lastChanged": "2019-07-22T19:35:06.081238Z"
+ },
+ "ethIpAddress": {
+ "value": "192.168.0.42",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "ethMacAddress": {
+ "value": "94:c6:91:a1:93:b2",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "inUseAdapter": {
+ "value": "eth",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "innogyLayerAttached": {
+ "value": true,
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "isReachable": {
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "lastReboot": {
+ "value": "2019-07-11T22:15:02Z",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "lbDongleAttached": {
+ "value": false,
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "memoryUsage": {
+ "value": 29.485105729836945,
+ "lastChanged": "2019-07-22T19:35:06.081461Z"
+ },
+ "operationStatus": {
+ "value": "active",
+ "lastChanged": "2019-07-11T22:15:35.284088Z"
+ },
+ "updateAvailable": {
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "wMBusDongleAttached": {
+ "value": false,
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "wifiIpAddress": {
+ "value": "",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "wifiMacAddress": {
+ "value": "40:9f:38:3d:b5:7d",
+ "lastChanged": "1970-01-01T00:00:00Z"
+ },
+ "wifiSignalStrength": {
+ "value": 0,
+ "lastChanged": "1970-01-01T00:00:00Z"
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHCstate.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHCstate.json
new file mode 100644
index 0000000000000..4636e109bee1a
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/SHCstate.json
@@ -0,0 +1,34 @@
+{
+ "updateAvailable": {
+ "value": "",
+ "lastChanged": "2019-06-20T00:15:32.766Z"
+ },
+ "lastReboot": {
+ "value": "2019-06-20T00:14:10.477Z",
+ "lastChanged": "2019-06-20T00:15:32.767Z"
+ },
+ "MBusDongleAttached": {
+ "value": false,
+ "lastChanged": "2019-06-20T00:15:32.875Z"
+ },
+ "LBDongleAttached": {
+ "value": false,
+ "lastChanged": "2019-06-20T00:15:32.876Z"
+ },
+ "configVersion": {
+ "value": 294,
+ "lastChanged": "2019-07-16T16:30:14.498Z"
+ },
+ "OSState": {
+ "value": "Normal",
+ "lastChanged": "2019-06-20T01:15:32.961Z"
+ },
+ "memoryLoad": {
+ "value": 63,
+ "lastChanged": "2019-07-22T19:47:43.737Z"
+ },
+ "CPULoad": {
+ "value": 12,
+ "lastChanged": "2019-07-22T19:47:43.737Z"
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/debug.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/debug.json
new file mode 100644
index 0000000000000..af15df93e5dc3
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/device/debug.json
@@ -0,0 +1,15 @@
+{
+ "sequenceNumber": -1,
+ "type": "StateChanged",
+ "desc": "/desc/event/StateChanged",
+ "namespace": "core.RWE",
+ "timestamp": "2019-06-29T21:16:05.1550000Z",
+ "source": "/device/72e753b09fd44a118997bc615351cabd",
+ "properties": {
+ "isReachable": false,
+ "deviceConfigurationState": "Complete",
+ "deviceInclusionState": "Included",
+ "updateState": "UpToDate",
+ "firmwareVersion": "1.6"
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageCreatedEventBatteryLow.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageCreatedEventBatteryLow.json
new file mode 100644
index 0000000000000..5871d2108637a
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageCreatedEventBatteryLow.json
@@ -0,0 +1,46 @@
+{
+ "sequenceNumber": -1,
+ "type": "MessageCreated",
+ "desc": "/desc/event/MessageCreated",
+ "namespace": "core.RWE",
+ "timestamp": "2019-07-07T18:44:07.6280000Z",
+ "source": "/desc/device/SHC.RWE/1.0",
+ "data": {
+ "id": "c5c3128810524820b6071b00e80dfd23",
+ "type": "DeviceLowBattery",
+ "read": false,
+ "class": "Alert",
+ "timestamp": "2019-07-07T18:44:07.583Z",
+ "devices": ["/device/1b77a62c18c9423f871251704faec45f"],
+ "properties": {
+ "deviceName": "Fernbedienung",
+ "serialNumber": "914140024103",
+ "locationName": "Arbeitszimmer"
+ },
+ "namespace": "core.RWE"
+ }
+}
+
+{
+ "sequenceNumber": -1,
+ "type": "MessageCreated",
+ "desc": "/desc/event/MessageCreated",
+ "namespace": "core.RWE",
+ "timestamp": "2019-07-07T18:41:47.2970000Z",
+ "source": "/desc/device/SHC.RWE/1.0",
+ "data": {
+ "id": "6e5ce2290cd247208f95a5b53736958b",
+ "type": "DeviceLowBattery",
+ "read": false,
+ "class": "Alert",
+ "timestamp": "2019-07-07T18:41:47.232Z",
+ "devices": ["/device/fe51785319854f36a621d0b4f8ea0e25"],
+ "properties": {
+ "deviceName": "Heizkörperthermostat",
+ "serialNumber": "914110165056",
+ "locationName": "Bad"
+ },
+ "namespace": "core.RWE"
+ }
+}
+
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageDeletedEvent.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageDeletedEvent.json
new file mode 100644
index 0000000000000..bbfb544524246
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/event/MessageDeletedEvent.json
@@ -0,0 +1,8 @@
+{
+ "sequenceNumber": -1,
+ "type": "MessageDeleted",
+ "desc": "/desc/event/MessageDeleted",
+ "namespace": "core.RWE",
+ "timestamp": "2019-07-07T19:15:39.2100000Z",
+ "data": { "id": "6e5ce2290cd247208f95a5b53736958b" }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventCapabilityChanged.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventCapabilityChanged.json
new file mode 100644
index 0000000000000..447ac9475063e
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventCapabilityChanged.json
@@ -0,0 +1,11 @@
+{
+ "sequenceNumber": -1,
+ "type": "StateChanged",
+ "desc": "/desc/event/StateChanged",
+ "namespace": "core.RWE",
+ "timestamp": "2019-03-10T17:34:56.2400000Z",
+ "source": "/capability/3f268584b95c40df93b67d6c64957846",
+ "properties": {
+ "onState": true
+ }
+}
\ No newline at end of file
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventStateChangedDevice.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventStateChangedDevice.json
new file mode 100644
index 0000000000000..b0c4fd7208d4b
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventStateChangedDevice.json
@@ -0,0 +1,11 @@
+{
+ "sequenceNumber": -1,
+ "type": "StateChanged",
+ "desc": "/desc/event/StateChanged",
+ "namespace": "core.RWE",
+ "timestamp": "2019-03-10T20:49:25.4940000Z",
+ "source": "/device/b487e440f3e743649477fbbb64f8d55a",
+ "properties": {
+ "deviceInclusionState": "Included"
+ }
+}
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventUserDataChanged.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventUserDataChanged.json
new file mode 100644
index 0000000000000..8dc5979dc0d35
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/eventUserDataChanged.json
@@ -0,0 +1,15 @@
+{
+ "sequenceNumber": 0,
+ "type": "/event/UserDataChanged",
+ "timestamp": "2019-02-25T20:18:20.5600109Z",
+ "data": [
+ {
+ "key": "StatesId",
+ "partition": "HomepageDeviceVisibility"
+ },
+ {
+ "key": "UserData",
+ "partition": "Version"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/getdevices.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/getdevices.json
new file mode 100644
index 0000000000000..e59f80853c192
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/getdevices.json
@@ -0,0 +1,632 @@
+[
+ {
+ "id": "b0f441a410f8465fbede93a7363a4339",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914100007996",
+ "type": "SHC",
+ "config": {
+ "name": "Smart Home Controller",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-07-11T10:55:52.3863424Z",
+ "timeOfDiscovery": "2016-07-11T10:55:52.3863424Z",
+ "hardwareVersion": "00.02",
+ "softwareVersion": "2.1.0.66",
+ "firmwareVersion": "1.913",
+ "hostName": "SMARTHOME06",
+ "activityLogEnabled": true,
+ "configurationState": "Complete",
+ "geoLocation": "50.8301066,6.901272800000015",
+ "timeZone": "W. Europe Standard Time",
+ "currentUTCOffset": 60.0,
+ "IPAddress": "192.168.0.125",
+ "MACAddress": "00-1a-22-00-46-ae",
+ "shcType": "0",
+ "backendConnectionMonitored": true,
+ "RFCommFailureNotification": false,
+ "postCode": "50321",
+ "city": "Brühl",
+ "street": "Hermannstraße",
+ "houseNumber": "13",
+ "country": "Deutschland",
+ "householdType": "House",
+ "numberOfPersons": 0.0,
+ "numberOfFloors": 0.0,
+ "livingArea": 0.0,
+ "registrationTime": "2016-07-11T10:55:52.3863424Z"
+ },
+ "capabilities": [
+ "/capability/d43d0a536110445fa040f06d25d25254",
+ "/capability/edfd5fa4d18e4c4994935bf5905a262e"
+ ]
+ },
+ {
+ "id": "970da72e3d5847ac941b889e5e6e8b3a",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "",
+ "type": "NotificationSender",
+ "config": {
+ "name": "Notification Sender",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-07-11T10:55:52.3863424Z",
+ "timeOfDiscovery": "2016-07-11T10:55:52.3863424Z"
+ },
+ "capabilities": [
+ "/capability/fab663ad6dba4e0b92888bfb17dc3c1e",
+ "/capability/84e766ad0f99445f99c810c47547cbb6",
+ "/capability/098c77c87e5c42db9d39b616dcf6203d"
+ ]
+ },
+ {
+ "id": "155f38e4ee2047c0b2246133b1de96a0",
+ "manufacturer": "RWE",
+ "version": "2.0",
+ "product": "VariableActuator.RWE",
+ "serialNumber": "155f38e4ee2047c0b2246133b1de96a0",
+ "type": "VariableActuator",
+ "config": {
+ "name": "Zuhause",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-07-11T10:59:57.844Z",
+ "timeOfDiscovery": "2016-07-11T10:56:19.262Z"
+ },
+ "tags": {
+ "internalStateId": "HomeAway"
+ },
+ "capabilities": [
+ "/capability/2d7e58bca7fc40148e77cb4df6daef90"
+ ]
+ },
+ {
+ "id": "b19d0f5794ee4a2b8ecadbf2ea470c31",
+ "manufacturer": "RWE",
+ "version": "2.0",
+ "product": "VariableActuator.RWE",
+ "serialNumber": "b19d0f5794ee4a2b8ecadbf2ea470c31",
+ "type": "VariableActuator",
+ "config": {
+ "name": "Urlaub",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-07-11T11:00:02.191Z",
+ "timeOfDiscovery": "2016-07-11T11:00:00.039Z"
+ },
+ "tags": {
+ "internalStateId": "Vacation"
+ },
+ "capabilities": [
+ "/capability/aeda6003eb124b19be5ff644ca59fe40"
+ ]
+ },
+ {
+ "id": "32214feb11a74949b573346f1a380729",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914130092370",
+ "type": "WSC2",
+ "config": {
+ "name": "Wandsender Test",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-07-11T11:22:18.087Z",
+ "timeOfDiscovery": "2016-07-11T11:20:49.192Z"
+ },
+ "tags": {
+ "typeCategory": "TCSwitchIdTag",
+ "type": "TTwoButtonSwitchIdTag"
+ },
+ "capabilities": [
+ "/capability/2dca5b6a3e5a419d8f6f4a8f05ed8310"
+ ],
+ "location": "/location/bd67af2ca266487bb97b7d08b3468c2f"
+ },
+ {
+ "id": "d68abf56664c4607a2e01d66be1fb727",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914120076611",
+ "type": "PSS",
+ "config": {
+ "name": "Fernseher",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-08-21T13:28:58.508Z",
+ "timeOfDiscovery": "2016-08-21T13:28:34.606Z"
+ },
+ "tags": {
+ "typeCategory": "TCEntertainmentId",
+ "type": "TTVId"
+ },
+ "capabilities": [
+ "/capability/3f268584b95c40df93b67d6c64957846"
+ ],
+ "location": "/location/30858fcbea3f4833b4e7b3143ea872f7"
+ },
+ {
+ "id": "18b546218e90484796e3d8e0786d0256",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914130043917",
+ "type": "WSC2",
+ "config": {
+ "name": "Wandsender Bett",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-09-04T11:32:50.85Z",
+ "timeOfDiscovery": "2016-09-04T11:32:26.982Z"
+ },
+ "tags": {
+ "typeCategory": "TCSwitchIdTag",
+ "type": "TTwoButtonSwitchIdTag"
+ },
+ "capabilities": [
+ "/capability/4110238f56cb4cb7ba211b0d8c9b6557"
+ ],
+ "location": "/location/30858fcbea3f4833b4e7b3143ea872f7"
+ },
+ {
+ "id": "e9b272c83d9a488abccb0d404771b6c6",
+ "manufacturer": "RWE",
+ "version": "1.1",
+ "product": "core.RWE",
+ "serialNumber": "914110059496",
+ "type": "RST",
+ "config": {
+ "name": "Heizkörperthermostat",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-09-29T18:27:38.094Z",
+ "timeOfDiscovery": "2016-09-29T18:27:11.102Z",
+ "displayCurrentTemperature": "TargetTemperature"
+ },
+ "tags": {
+ "typeCategory": "TCHeatingId",
+ "type": "TRadiatorThermostateIdTag"
+ },
+ "capabilities": [
+ "/capability/4afde71507ba4144bb81fbdc82a5fe7e",
+ "/capability/a29a7a77fc05484780eae1f8b47e62b3",
+ "/capability/a4e1d52096c54a2ebd018e9a1338f392"
+ ],
+ "location": "/location/b09e4978ce8c4be9ad4afcdf6cc09005"
+ },
+ {
+ "id": "07332bf0dd0e42508c66c846e1e1a8ad",
+ "manufacturer": "RWE",
+ "version": "2.0",
+ "product": "SunriseSunsetSensor.RWE",
+ "serialNumber": "07332bf0dd0e42508c66c846e1e1a8ad",
+ "type": "SunriseSunsetSensor",
+ "config": {
+ "name": "Sunrise Sunset Sensor",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-09-29T21:51:39.553Z",
+ "timeOfDiscovery": "2016-09-29T21:51:33.965Z"
+ },
+ "capabilities": [
+ "/capability/64bf06b56b5e4fc49292985c6bb48bea"
+ ]
+ },
+ {
+ "id": "6de7890d580649aeafd66043b2102a12",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430037295",
+ "type": "WDS",
+ "config": {
+ "name": "Balkon",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-11-20T21:19:41.098Z",
+ "timeOfDiscovery": "2016-11-20T21:19:25.775Z"
+ },
+ "tags": {
+ "typeCategory": "TCDoorId",
+ "type": "TBalconyDoorId"
+ },
+ "capabilities": [
+ "/capability/3655816c7413451db58b9c07e473540b"
+ ],
+ "location": "/location/e397695c607846379c76068beac379af"
+ },
+ {
+ "id": "0f16337ac685415986a274376b601450",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914150006603",
+ "type": "WMD",
+ "config": {
+ "name": "Bewegungsmelder",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-11-04T22:13:28.403Z",
+ "timeOfDiscovery": "2016-11-04T22:12:54.536Z"
+ },
+ "tags": {
+ "typeCategory": "TCMotionIdTag",
+ "type": "TMotionDetectorIdTag"
+ },
+ "capabilities": [
+ "/capability/5d41af178a664418ad8ee10b5d906d98",
+ "/capability/2684a9d13ac9410b94eae134ed39826f"
+ ],
+ "location": "/location/26f2f33fbe7a4e6abddfc1512a65e4e0"
+ },
+ {
+ "id": "baed452016404d1f8c7d6bf5525fc224",
+ "manufacturer": "RWE",
+ "version": "1.1",
+ "product": "core.RWE",
+ "serialNumber": "914210002474",
+ "type": "ISS2",
+ "config": {
+ "name": "Deckenleuchte",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-11-04T23:33:57.461Z",
+ "timeOfDiscovery": "2016-11-04T23:33:25.954Z"
+ },
+ "tags": {
+ "typeCategory": "TCLightId",
+ "type": "TCeilingLightId"
+ },
+ "capabilities": [
+ "/capability/7efeaa246c704713beda52abdd741d45",
+ "/capability/fb8a5e34c3c54ef998579d44bb57b198"
+ ],
+ "location": "/location/26f2f33fbe7a4e6abddfc1512a65e4e0"
+ },
+ {
+ "id": "76e68e066e874b9da3403223cbf4b048",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "IRW0020883",
+ "type": "WSD",
+ "config": {
+ "name": "Rauchmelder",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-11-20T21:34:39.905Z",
+ "timeOfDiscovery": "2016-11-20T21:34:34.388Z"
+ },
+ "tags": {
+ "typeCategory": "TSmokeDetectorIdTag",
+ "type": "TOpticalSmokeDetectorIdTag"
+ },
+ "capabilities": [
+ "/capability/aa25dfc37fee4b11978a7c6f76fd2c19",
+ "/capability/56ba36531e4a485ea68a12539fb4cf5e"
+ ],
+ "location": "/location/e397695c607846379c76068beac379af"
+ },
+ {
+ "id": "fd6830f0066f4283b5fc7ba1c8f43071",
+ "manufacturer": "RWE",
+ "version": "1.1",
+ "product": "core.RWE",
+ "serialNumber": "914210010378",
+ "type": "ISS2",
+ "config": {
+ "name": "Balkon",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-07T07:37:21.649Z",
+ "timeOfDiscovery": "2016-12-07T07:36:46.033Z"
+ },
+ "tags": {
+ "typeCategory": "TCLightId",
+ "type": "TOutsideLightId"
+ },
+ "capabilities": [
+ "/capability/3f2bb031cc1c447aa849e930c7bd4c02",
+ "/capability/5af9f6896e114051b9e3423cf0aa7f20"
+ ],
+ "location": "/location/e397695c607846379c76068beac379af"
+ },
+ {
+ "id": "a8282a7de8ff4b19958051814f8d8ad6",
+ "manufacturer": "RWE",
+ "version": "1.1",
+ "product": "core.RWE",
+ "serialNumber": "914110012419",
+ "type": "RST",
+ "config": {
+ "name": "Heizkörperthermostat",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-07T21:36:41.022Z",
+ "timeOfDiscovery": "2016-12-07T21:36:16.215Z",
+ "displayCurrentTemperature": "TargetTemperature"
+ },
+ "tags": {
+ "typeCategory": "TCHeatingId",
+ "type": "TRadiatorThermostateIdTag"
+ },
+ "capabilities": [
+ "/capability/00a711783dbc4ea0960f923af5c45ad5",
+ "/capability/c8baa78d382649b3995c1eb504469ff4",
+ "/capability/2594a0af3293424e82e19ca64bc84f01"
+ ],
+ "location": "/location/fb7593aa398a47508f2072d593cd1bfa"
+ },
+ {
+ "id": "728baded2f4445a6926e7512cd03e6d3",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "fb7593aa398a47508f2072d593cd1bfa",
+ "type": "VRCC",
+ "config": {
+ "name": "Raumklima",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-12-07T21:36:41.372Z",
+ "timeOfDiscovery": "2016-12-07T21:36:41.372Z",
+ "underlyingDeviceIds": "a8282a7de8ff4b19958051814f8d8ad6"
+ },
+ "capabilities": [
+ "/capability/37a02890ab9f44bb97b403fb01326a46",
+ "/capability/27afb854c4074ecbace3857380ef2a95",
+ "/capability/b636bed0634044428e29c4a768425798"
+ ],
+ "location": "/location/fb7593aa398a47508f2072d593cd1bfa"
+ },
+ {
+ "id": "4337389c9c4a416dbeacd826f85edc2a",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430017792",
+ "type": "WDS",
+ "config": {
+ "name": "Dachfenster",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-07T21:41:08.229Z",
+ "timeOfDiscovery": "2016-12-07T21:40:44.48Z"
+ },
+ "tags": {
+ "typeCategory": "TCWindowId",
+ "type": "TRoofWindowId"
+ },
+ "capabilities": [
+ "/capability/e60a20b2287d4aa690aaffae6d08aa20"
+ ],
+ "location": "/location/fb7593aa398a47508f2072d593cd1bfa"
+ },
+ {
+ "id": "452b3515364d45c49285b99484acde28",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "b09e4978ce8c4be9ad4afcdf6cc09005",
+ "type": "VRCC",
+ "config": {
+ "name": "Raumklima",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-12-07T21:48:09.505Z",
+ "timeOfDiscovery": "2016-12-07T21:48:09.505Z",
+ "underlyingDeviceIds": "e9b272c83d9a488abccb0d404771b6c6"
+ },
+ "capabilities": [
+ "/capability/a50fba7718ef4fc4be89869e1ce129be",
+ "/capability/67b3bf1bf0da46ca8833debba71a375d",
+ "/capability/1f9a66910ee24b3085e53aeda7e5a4cd"
+ ],
+ "location": "/location/b09e4978ce8c4be9ad4afcdf6cc09005"
+ },
+ {
+ "id": "72e753b09fd44a118997bc615351cabd",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914120073945",
+ "type": "PSS",
+ "config": {
+ "name": "Fernseher",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T19:47:03.674Z",
+ "timeOfDiscovery": "2016-12-14T19:46:46.387Z"
+ },
+ "tags": {
+ "typeCategory": "TCEntertainmentId",
+ "type": "TTVId"
+ },
+ "capabilities": [
+ "/capability/43e345ee14e94996a04972267b5d0489"
+ ],
+ "location": "/location/fb7593aa398a47508f2072d593cd1bfa"
+ },
+ {
+ "id": "cb8f20e7dfa34f76956e4c797dc4c96a",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914130043726",
+ "type": "WSC2",
+ "config": {
+ "name": "Wandsender",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T20:06:16.502Z",
+ "timeOfDiscovery": "2016-12-14T20:06:03.372Z"
+ },
+ "tags": {
+ "typeCategory": "TCSwitchIdTag",
+ "type": "TTwoButtonSwitchIdTag"
+ },
+ "capabilities": [
+ "/capability/41468ab7824b443ea493f12bd87653e0"
+ ],
+ "location": "/location/fb7593aa398a47508f2072d593cd1bfa"
+ },
+ {
+ "id": "4e79eb7a18cf4a3a94d6b26c6ebdb8cb",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430016160",
+ "type": "WDS",
+ "config": {
+ "name": "Dachfenster",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T20:14:56.433Z",
+ "timeOfDiscovery": "2016-12-14T20:14:34.906Z"
+ },
+ "tags": {
+ "typeCategory": "TCWindowId",
+ "type": "TRoofWindowId"
+ },
+ "capabilities": [
+ "/capability/3bb24f7906c043d2ae77bb2ec9f7d2fe"
+ ],
+ "location": "/location/24442676b2ea406ea671df22068cc02c"
+ },
+ {
+ "id": "fe51785319854f36a621d0b4f8ea0e25",
+ "manufacturer": "RWE",
+ "version": "1.1",
+ "product": "core.RWE",
+ "serialNumber": "914110165056",
+ "type": "RST",
+ "config": {
+ "name": "Heizkörperthermostat",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T20:22:41.463Z",
+ "timeOfDiscovery": "2016-12-14T20:21:49.681Z",
+ "displayCurrentTemperature": "TargetTemperature"
+ },
+ "tags": {
+ "typeCategory": "TCHeatingId",
+ "type": "TRadiatorThermostateIdTag"
+ },
+ "capabilities": [
+ "/capability/5a0f2df3f7064cdbb71c2d6340c985ad",
+ "/capability/8ff9ea5c3233434ba87426e0a23b245e",
+ "/capability/7b98d33e5a15404686b2cbc99f725d01"
+ ],
+ "location": "/location/24442676b2ea406ea671df22068cc02c"
+ },
+ {
+ "id": "9756c6b4dcb14fa391e1748d35e286fb",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "24442676b2ea406ea671df22068cc02c",
+ "type": "VRCC",
+ "config": {
+ "name": "Raumklima",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2016-12-14T20:22:41.776Z",
+ "timeOfDiscovery": "2016-12-14T20:22:41.777Z",
+ "underlyingDeviceIds": "fe51785319854f36a621d0b4f8ea0e25"
+ },
+ "capabilities": [
+ "/capability/f8d4593186694df4a86c325fc914596b",
+ "/capability/0949f28423864bebb6f0ab64a99fa8a1",
+ "/capability/6db429654212467a8661c1dea714c942"
+ ],
+ "location": "/location/24442676b2ea406ea671df22068cc02c"
+ },
+ {
+ "id": "9fdeb547d2ca4dd0b28631985d525131",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430019747",
+ "type": "WDS",
+ "config": {
+ "name": "Dachfenster",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T20:27:14.769Z",
+ "timeOfDiscovery": "2016-12-14T20:27:07.685Z"
+ },
+ "tags": {
+ "typeCategory": "TCWindowId",
+ "type": "TRoofWindowId"
+ },
+ "capabilities": [
+ "/capability/8f0e726da08e438fa2a7b8d479ffb37d"
+ ],
+ "location": "/location/30858fcbea3f4833b4e7b3143ea872f7"
+ },
+ {
+ "id": "e28b3b1d02db474aaf1fd910ce67e67e",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430037338",
+ "type": "WDS",
+ "config": {
+ "name": "Dachfenster",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-14T20:29:34.071Z",
+ "timeOfDiscovery": "2016-12-14T20:29:08.665Z"
+ },
+ "tags": {
+ "typeCategory": "TCWindowId",
+ "type": "TRoofWindowId"
+ },
+ "capabilities": [
+ "/capability/a665756005e849c6abb8061d4a848eb8"
+ ],
+ "location": "/location/b09e4978ce8c4be9ad4afcdf6cc09005"
+ },
+ {
+ "id": "5b1fe837a6fa4e6587fab1b260adc288",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "914220020108",
+ "type": "ISD2",
+ "config": {
+ "name": "Deckenleuchte",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2016-12-28T18:46:59.916Z",
+ "timeOfDiscovery": "2016-12-28T18:46:39.096Z"
+ },
+ "tags": {
+ "typeCategory": "TCLightId",
+ "type": "TCeilingLightId"
+ },
+ "capabilities": [
+ "/capability/0fbb96bde9e24517b5d37d9932b4e24e",
+ "/capability/9a97159073f94470bcb30e4706c0a441"
+ ],
+ "location": "/location/26f2f33fbe7a4e6abddfc1512a65e4e0"
+ },
+ {
+ "id": "f78e30ef7098480cbfa096d363085825",
+ "manufacturer": "RWE",
+ "version": "1.0",
+ "product": "core.RWE",
+ "serialNumber": "921430037314",
+ "type": "WDS",
+ "config": {
+ "name": "Dachfenster",
+ "protocolId": "Cosip",
+ "timeOfAcceptance": "2017-05-13T10:16:54.232Z",
+ "timeOfDiscovery": "2017-05-13T10:16:35.025Z"
+ },
+ "tags": {
+ "typeCategory": "TCWindowId",
+ "type": "TRoofWindowId"
+ },
+ "capabilities": [
+ "/capability/7bc3e21536e64f2d847a09d00b1f28ce"
+ ],
+ "location": "/location/d4a54173ba104bec9734e822e303f4a2"
+ },
+ {
+ "id": "949a1b6b254b49e0a1ba593ce7e88f36",
+ "manufacturer": "RWE",
+ "version": "2.0",
+ "product": "VariableActuator.RWE",
+ "serialNumber": "949a1b6b254b49e0a1ba593ce7e88f36",
+ "type": "VariableActuator",
+ "config": {
+ "name": "Sex",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2017-08-28T20:01:49.095Z",
+ "timeOfDiscovery": "2017-08-20T13:39:53.963Z"
+ },
+ "capabilities": [
+ "/capability/a38daa9e72084ca9950c1f353aeb8ef3"
+ ]
+ }
+]
diff --git a/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/message_configChanged.json b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/message_configChanged.json
new file mode 100644
index 0000000000000..3eddae6649fd9
--- /dev/null
+++ b/bundles/org.openhab.binding.innogysmarthome/src/test/resources/org/openhab/binding/innogysmarthome/internal/client/entity/message_configChanged.json
@@ -0,0 +1,45 @@
+{
+ "sequenceNumber": -1,
+ "type": "ConfigurationChanged",
+ "desc": "/desc/event/ConfigurationChanged",
+ "namespace": "core.RWE",
+ "timestamp": "2019-02-25T19:53:17.1960000Z",
+ "source": "/desc/device/SHC.RWE/1.0",
+ "data": {
+ "devices": [
+ {
+ "id": "0ba965875d37416a935b6552cd6929d9",
+ "manufacturer": "RWE",
+ "version": "2.0",
+ "product": "VariableActuator.RWE",
+ "serialNumber": "0ba965875d37416a935b6552cd6929d9",
+ "type": "VariableActuator",
+ "config": {
+ "name": "Test",
+ "protocolId": "Virtual",
+ "timeOfAcceptance": "2019-02-25T19:53:16.183Z",
+ "timeOfDiscovery": "2019-01-30T01:59:52.451Z"
+ },
+ "capabilities": [
+ "/capability/692d923c583346e2a358db8e32b3c505"
+ ]
+ }
+ ],
+ "locations": [],
+ "capabilities": [
+ {
+ "id": "692d923c583346e2a358db8e32b3c505",
+ "type": "BooleanStateActuator",
+ "device": "/device/0ba965875d37416a935b6552cd6929d9",
+ "config": {
+ "name": "Boolean State Actuator",
+ "activityLogActive": true
+ }
+ }
+ ],
+ "interactions": [],
+ "homeSetups": [],
+ "deleted": [],
+ "configVersion": 246
+ }
+}
\ No newline at end of file
diff --git a/bundles/org.openhab.binding.ipp/NOTICE b/bundles/org.openhab.binding.ipp/NOTICE
index 5d11530621c2a..39142ca77f781 100644
--- a/bundles/org.openhab.binding.ipp/NOTICE
+++ b/bundles/org.openhab.binding.ipp/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.ipp/pom.xml b/bundles/org.openhab.binding.ipp/pom.xml
index e2eb11d1f912f..a026a967d4faf 100644
--- a/bundles/org.openhab.binding.ipp/pom.xml
+++ b/bundles/org.openhab.binding.ipp/pom.xml
@@ -1,24 +1,56 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.ippopenHAB Add-ons :: Bundles :: IPP Binding
+
+ !org.simpleframework.xml.*,!org.cups4j,!net.sf.ehcache.*,!net.spy.*
+
+
- org.openhab.osgiify
- org.cups4j.cups4j
+ org.cups4j
+ cups4j0.7.6
- provided
+ compile
+
+
+ org.simpleframework
+ simple-xml
+ 2.7.1
+ compile
+
+
+ xmlpull
+ xmlpull
+ 1.1.3.1
+
+
+ commons-io
+ commons-io
+ 1.4
+ compile
+
+
+ org.apache.httpcomponents
+ httpcore-osgi
+ 4.4.4
+ compile
+
+
+ org.apache.httpcomponents
+ httpclient-osgi
+ 4.5.3
+ compile
diff --git a/bundles/org.openhab.binding.ipp/src/main/feature/feature.xml b/bundles/org.openhab.binding.ipp/src/main/feature/feature.xml
index f61734a2a0a26..d6f3bf93935e1 100644
--- a/bundles/org.openhab.binding.ipp/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.ipp/src/main/feature/feature.xml
@@ -1,13 +1,10 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab-transport-mdns
- mvn:org.openhab.osgiify/org.cups4j.cups4j/0.7.6
- mvn:org.apache.httpcomponents/httpcore-osgi/4.4.4
- mvn:org.apache.httpcomponents/httpclient-osgi/4.5.2mvn:org.openhab.addons.bundles/org.openhab.binding.ipp/${project.version}
diff --git a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppBindingConstants.java b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppBindingConstants.java
index ca741002c5be8..a973fb64f0e66 100644
--- a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppBindingConstants.java
+++ b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppHandlerFactory.java b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppHandlerFactory.java
index e14d4585a3a15..6ccc80b4ad9b8 100644
--- a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppHandlerFactory.java
+++ b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/IppHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/discovery/IppPrinterDiscoveryParticipant.java b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/discovery/IppPrinterDiscoveryParticipant.java
index 718f202b63179..6780df16a04b8 100644
--- a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/discovery/IppPrinterDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/discovery/IppPrinterDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/handler/IppPrinterHandler.java b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/handler/IppPrinterHandler.java
index 45d2d67efa4df..33c514054bae4 100644
--- a/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/handler/IppPrinterHandler.java
+++ b/bundles/org.openhab.binding.ipp/src/main/java/org/openhab/binding/ipp/internal/handler/IppPrinterHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.ipp/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.ipp/src/main/resources/ESH-INF/thing/thing-types.xml
index 0c78f7e7cef41..f0661f3d59492 100644
--- a/bundles/org.openhab.binding.ipp/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.ipp/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -22,7 +22,7 @@
The URL of the printer
-
+
Specifies the refresh interval in seconds60
@@ -31,19 +31,19 @@
Number
-
+
Total number of print jobs on the printerNumber
-
+
Number of waiting print jobs on the printerNumber
-
+
Number of completed print jobs on the printer
diff --git a/bundles/org.openhab.binding.irtrans/NOTICE b/bundles/org.openhab.binding.irtrans/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.irtrans/NOTICE
+++ b/bundles/org.openhab.binding.irtrans/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.irtrans/README.md b/bundles/org.openhab.binding.irtrans/README.md
index 31dfe226548c9..23948c1da21ab 100644
--- a/bundles/org.openhab.binding.irtrans/README.md
+++ b/bundles/org.openhab.binding.irtrans/README.md
@@ -31,8 +31,8 @@ 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 |
+| 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).
@@ -57,6 +57,8 @@ Type 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.
+The led can be "E"-External, "I"-Internal, "B"-Both, and a numeric for a selected led.
+Depending on the number of remotes, the bufferSize must be adjusted. E.g. for 7 remotes and 47 commands a bufferSize of 2048 is needed.
```
Bridge irtrans:ethernet:technicalfacilities [ ipAddress="192.168.0.58", portNumber=21000, bufferSize=1024, responseTimeOut=100, pingTimeOut=2000, reconnectInterval=10 ]
@@ -69,7 +71,7 @@ Type 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.
+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:
diff --git a/bundles/org.openhab.binding.irtrans/pom.xml b/bundles/org.openhab.binding.irtrans/pom.xml
index 55a30423a8c0a..5945529841a12 100644
--- a/bundles/org.openhab.binding.irtrans/pom.xml
+++ b/bundles/org.openhab.binding.irtrans/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.irtrans
diff --git a/bundles/org.openhab.binding.irtrans/src/main/feature/feature.xml b/bundles/org.openhab.binding.irtrans/src/main/feature/feature.xml
index ca9949621b006..babf7b7bf1a41 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.irtrans/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransBindingConstants.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransBindingConstants.java
index 0ac6dee392d63..f34ce2dac1fe5 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransBindingConstants.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransHandlerFactory.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransHandlerFactory.java
index fff555c3139a0..02e4c2c9b91bb 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransHandlerFactory.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IRtransHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IrCommand.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IrCommand.java
index f4969a24ced4c..022c831cee623 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IrCommand.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/IrCommand.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java
index 4ab6b6389586c..082cdc2670cfd 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/BlasterHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java
index 63c37cf7c7c91..ebfabed7d71c9 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/EthernetBridgeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/TransceiverStatusListener.java b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/TransceiverStatusListener.java
index 28aca5d50495a..ba36ac4ab1e85 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/TransceiverStatusListener.java
+++ b/bundles/org.openhab.binding.irtrans/src/main/java/org/openhab/binding/irtrans/internal/handler/TransceiverStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.irtrans/src/main/resources/ESH-INF/thing/ethernetbridge.xml b/bundles/org.openhab.binding.irtrans/src/main/resources/ESH-INF/thing/ethernetbridge.xml
index 5613d9a16a89d..f1bc118ae4ec2 100644
--- a/bundles/org.openhab.binding.irtrans/src/main/resources/ESH-INF/thing/ethernetbridge.xml
+++ b/bundles/org.openhab.binding.irtrans/src/main/resources/ESH-INF/thing/ethernetbridge.xml
@@ -10,31 +10,31 @@
-
+
Network address of the ethernet transceivernetwork-address
-
+
TCP port number of the transceiver service
-
+
Buffer size used by the TCP socket when sending and receiving commands to the transceiver1024
-
+
Specifies the time milliseconds to wait for a response from the transceiver when sending a command.100
-
+
Specifies the time milliseconds to wait for a response from the transceiver when pinging the device1000
-
+
Specifies the time seconds to wait before reconnecting to a transceiver after a communication failure10
diff --git a/bundles/org.openhab.binding.jeelink/NOTICE b/bundles/org.openhab.binding.jeelink/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.jeelink/NOTICE
+++ b/bundles/org.openhab.binding.jeelink/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.jeelink/pom.xml b/bundles/org.openhab.binding.jeelink/pom.xml
index ea920cc309342..29c517a40a6e0 100644
--- a/bundles/org.openhab.binding.jeelink/pom.xml
+++ b/bundles/org.openhab.binding.jeelink/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.jeelink
diff --git a/bundles/org.openhab.binding.jeelink/src/main/feature/feature.xml b/bundles/org.openhab.binding.jeelink/src/main/feature/feature.xml
index 67d3161329de1..2af682e8814fe 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.jeelink/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/IgnoringConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/IgnoringConverter.java
index 6573840220d27..80585eb6c5dc0 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/IgnoringConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/IgnoringConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkBindingConstants.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkBindingConstants.java
index 8bc66854628dd..91cfb6dd28e06 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkBindingConstants.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandler.java
index a7436612b9804..6175ea2d52424 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandlerFactory.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandlerFactory.java
index de2639ef9bc33..93703fca23613 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandlerFactory.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkReadingConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkReadingConverter.java
index 6202e2f8bc04a..a3ad230bc8788 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkReadingConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkReadingConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkSensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkSensorHandler.java
index 9cf46175588cc..a6b37980035fd 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkSensorHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/Reading.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/Reading.java
index a43927658f906..9ca7720ee9f79 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/Reading.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/Reading.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingHandler.java
index e4e20ad49c300..68ccb4fce3213 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingPublisher.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingPublisher.java
index b5c059a1f7cb7..c6aeadffbebc1 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingPublisher.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ReadingPublisher.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingAveragePublisher.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingAveragePublisher.java
index 9c917aa3d389d..b35befa4c12a4 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingAveragePublisher.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingAveragePublisher.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingReadingAverage.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingReadingAverage.java
index 9553c9c8a56a5..8d49130c6e7af 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingReadingAverage.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/RollingReadingAverage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/SensorDefinition.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/SensorDefinition.java
index 970e0f58d30dc..818868f62146d 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/SensorDefinition.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/SensorDefinition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkConfig.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkConfig.java
index f8a6a6ed074a0..c8ae3894bc8d9 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkConfig.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkSensorConfig.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkSensorConfig.java
index 59c502ccfbfd1..67c1f79da2807 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkSensorConfig.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/JeeLinkSensorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/LaCrosseTemperatureSensorConfig.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/LaCrosseTemperatureSensorConfig.java
index 92eaf84a590d9..c3377b0a8c8c7 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/LaCrosseTemperatureSensorConfig.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/LaCrosseTemperatureSensorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/Pca301SensorConfig.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/Pca301SensorConfig.java
index 31de5b25a4ef6..ba1bc0c906833 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/Pca301SensorConfig.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/config/Pca301SensorConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/AbstractJeeLinkConnection.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/AbstractJeeLinkConnection.java
index c0c06a90dab18..2f262376033cb 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/AbstractJeeLinkConnection.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/AbstractJeeLinkConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/ConnectionListener.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/ConnectionListener.java
index d119b1fd191e3..5f8bb42b66d99 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/ConnectionListener.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/ConnectionListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkConnection.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkConnection.java
index e741dc5d5d5dc..7bcd2e9592ebe 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkConnection.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkSerialConnection.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkSerialConnection.java
index cbd393731f4f4..b889338bece9a 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkSerialConnection.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkSerialConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkTcpConnection.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkTcpConnection.java
index e8803e6627cee..89ba3a46a71f6 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkTcpConnection.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/connection/JeeLinkTcpConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/discovery/SensorDiscoveryService.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/discovery/SensorDiscoveryService.java
index 116f90db6e3e0..af00b89f2bd19 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/discovery/SensorDiscoveryService.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/discovery/SensorDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReading.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReading.java
index ff84b471c0f6e..e934a901cd2fb 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReading.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReading.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReadingConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReadingConverter.java
index c5151ec996248..e4be25bd847e4 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReadingConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kReadingConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kRollingReadingAverage.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kRollingReadingAverage.java
index 0ca443e0f3e2f..e9d6606a09485 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kRollingReadingAverage.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kRollingReadingAverage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorDefinition.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorDefinition.java
index 7124fdaef3c19..15fcf7692b2c0 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorDefinition.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorDefinition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorHandler.java
index fcaf43890844b..0a843c2346d7e 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/ec3k/Ec3kSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/BoundsCheckingPublisher.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/BoundsCheckingPublisher.java
index 01f8fbc738fa4..d4250e3bd5916 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/BoundsCheckingPublisher.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/BoundsCheckingPublisher.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/DifferenceCheckingPublisher.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/DifferenceCheckingPublisher.java
index 5695937f5047d..698627d71672b 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/DifferenceCheckingPublisher.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/DifferenceCheckingPublisher.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseRollingReadingAverage.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseRollingReadingAverage.java
index b9ea929cdc239..32195d8585cb4 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseRollingReadingAverage.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseRollingReadingAverage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseSensorDefinition.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseSensorDefinition.java
index 79c527ecd1c51..051928fc43fdd 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseSensorDefinition.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseSensorDefinition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReading.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReading.java
index 9ebfd07e86ca3..740f783b2b729 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReading.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReading.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReadingConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReadingConverter.java
index cf3a31c3de797..ab83cdfb9b51d 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReadingConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureReadingConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java
index 5592749c564bd..ddf379ca84abc 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/LaCrosseTemperatureSensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22Reading.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22Reading.java
index d45b6a1016b71..71d3ca8f44b34 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22Reading.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22Reading.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22ReadingConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22ReadingConverter.java
index 804f1aa81fb1e..181b1ac22d224 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22ReadingConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22ReadingConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorDefinition.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorDefinition.java
index 9ee496799eb93..c4259d3be8fa2 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorDefinition.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorDefinition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorHandler.java
index 546accf479a37..7ccdf64de972e 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/lacrosse/Tx22SensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301Reading.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301Reading.java
index dbc6ffb7d094f..71891916a2f55 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301Reading.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301Reading.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301ReadingConverter.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301ReadingConverter.java
index 9938d8957bd1b..1ac232215ae9c 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301ReadingConverter.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301ReadingConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorDefinition.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorDefinition.java
index 286ed11ebfce7..74401af8aeb2e 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorDefinition.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorDefinition.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorHandler.java b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorHandler.java
index a45f7c0e5d017..a130b722ce5e0 100644
--- a/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorHandler.java
+++ b/bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/pca301/Pca301SensorHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.keba/NOTICE b/bundles/org.openhab.binding.keba/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.keba/NOTICE
+++ b/bundles/org.openhab.binding.keba/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.keba/README.md b/bundles/org.openhab.binding.keba/README.md
index bfd64b9a21879..2c1c5bae994b5 100644
--- a/bundles/org.openhab.binding.keba/README.md
+++ b/bundles/org.openhab.binding.keba/README.md
@@ -1,6 +1,6 @@
# Keba Binding
-This binding integrates the [Keba KeContact EV Charging Stations](http://www.keba.com).
+This binding integrates the [Keba KeContact EV Charging Stations](https://www.keba.com).
## Supported Things
diff --git a/bundles/org.openhab.binding.keba/pom.xml b/bundles/org.openhab.binding.keba/pom.xml
index f2b0a4da1a21a..cf254e821a944 100644
--- a/bundles/org.openhab.binding.keba/pom.xml
+++ b/bundles/org.openhab.binding.keba/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.keba
diff --git a/bundles/org.openhab.binding.keba/src/main/feature/feature.xml b/bundles/org.openhab.binding.keba/src/main/feature/feature.xml
index 4862ccc3a2067..be67517836124 100644
--- a/bundles/org.openhab.binding.keba/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.keba/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java
index 1b27fe8399ec2..601e09054b730 100644
--- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java
+++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaHandlerFactory.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaHandlerFactory.java
index cbd04a81acd19..cf017a695e105 100644
--- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaHandlerFactory.java
+++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/KebaHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java
index aa4e1d2a1601a..28d7b6d55f46a 100644
--- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java
+++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactTransceiver.java b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactTransceiver.java
index c944621206a52..f3241bb7371f0 100644
--- a/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactTransceiver.java
+++ b/bundles/org.openhab.binding.keba/src/main/java/org/openhab/binding/keba/internal/handler/KeContactTransceiver.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -236,7 +236,7 @@ protected ByteBuffer send(String message, KeContactHandler handler) {
boolean error = false;
for (KeContactHandler handler : handlers) {
- if (datagramChannels.get(handler).equals(theChannel)) {
+ if (theChannel.equals(datagramChannels.get(handler))) {
theHandler = handler;
break;
}
diff --git a/bundles/org.openhab.binding.keba/src/main/resources/ESH-INF/thing/kecontact.xml b/bundles/org.openhab.binding.keba/src/main/resources/ESH-INF/thing/kecontact.xml
index a1ea6c3fb5da6..17786a3238f97 100644
--- a/bundles/org.openhab.binding.keba/src/main/resources/ESH-INF/thing/kecontact.xml
+++ b/bundles/org.openhab.binding.keba/src/main/resources/ESH-INF/thing/kecontact.xml
@@ -63,7 +63,7 @@
Network address of the wallbox
-
+
Specifies the refresh interval in seconds.15
@@ -218,13 +218,13 @@
- Number
+ SwitchAuthentication required
- Number
+ SwitchAuthentication enabled
@@ -237,7 +237,7 @@
String
-
+
RFID Tag class used for the last charging session
@@ -249,7 +249,7 @@
Number
-
+
An energy limit for an already running or the next charging session.
diff --git a/bundles/org.openhab.binding.km200/NOTICE b/bundles/org.openhab.binding.km200/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.km200/NOTICE
+++ b/bundles/org.openhab.binding.km200/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.km200/README.md b/bundles/org.openhab.binding.km200/README.md
index f5219a354862d..7ccb8bed0f667 100644
--- a/bundles/org.openhab.binding.km200/README.md
+++ b/bundles/org.openhab.binding.km200/README.md
@@ -3,23 +3,23 @@
The KM200 Binding is communicating with a [Buderus Logamatic web KM200 / KM100 / KM50](https://www.buderus.de/de/produkte/catalogue/alle-produkte/7719_gateway-logamatic-web-km200-km100-km50).
It is possible to receive and send parameters like string or float values.
-**Important**: If the communication is not working and you see in the logfile errors like "illegal key size" then you have to change the [Java Cryptography Extension to the Unlimited Strength Jurisdiction](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html).
+**Important**: If the communication is not working and you see in the logfile errors like "illegal key size" then you have to change the [Java Cryptography Extension to the Unlimited Strength Jurisdiction](https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html).
## Supported Things
This binding supports 11 different things types
-| Thing | Paper UI Only | Description |
-| ------------------ | ------------ |----------------------------------------------------------- |
-| `appliance` | | The appliance (The heater inside of this heating system). |
-| `dhwCircuit` | | A hot water circuit. |
-| `gateway` | | The gateway. (The connected KM200/100/50 device). |
+| Thing | Paper UI Only | Description |
+| ---------------- | ------------- |---------------------------------------------------------- |
+| `appliance` | | The appliance (The heater inside of this heating system). |
+| `dhwCircuit` | | A hot water circuit. |
+| `gateway` | | The gateway. (The connected KM200/100/50 device). |
| `heatingCircuit` | | A heating circuit. |
| `heatSource` | | The heat source. |
| `holidayMode` | | The holiday modes configuration. |
-| `sensor` | | The sensors. |
+| `sensor` | | The sensors. |
| `solarCircuit` | | A solar circuit. |
-| `system` | | The system without sensors and appliance. |
+| `system` | | The system without sensors and appliance. |
| `notification` | | The notifications. |
| `switchProgram` | X | A switch program. |
diff --git a/bundles/org.openhab.binding.km200/pom.xml b/bundles/org.openhab.binding.km200/pom.xml
index 410cf7ab576e4..be449fb5c333d 100644
--- a/bundles/org.openhab.binding.km200/pom.xml
+++ b/bundles/org.openhab.binding.km200/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.km200
diff --git a/bundles/org.openhab.binding.km200/src/main/feature/feature.xml b/bundles/org.openhab.binding.km200/src/main/feature/feature.xml
index 7e53eff71c628..31c128009bdb6 100644
--- a/bundles/org.openhab.binding.km200/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.km200/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200BindingConstants.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200BindingConstants.java
index 75ec724baa28e..5fe4a90ab2201 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200BindingConstants.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200BindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ChannelTypeProvider.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ChannelTypeProvider.java
index a1f31cc9f63cc..4f1d6e88d99e8 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ChannelTypeProvider.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ChannelTypeProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Comm.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Comm.java
index 8debaeb8cc3dd..20b192880f5fb 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Comm.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Comm.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java
index 9dfe5e178d82e..c29a552205809 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Cryption.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -93,7 +93,7 @@ public String decodeMessage(byte[] encoded) {
byte[] decryptedDataWOZP = removeZeroPadding(decryptedData);
return (new String(decryptedDataWOZP, remoteDevice.getCharSet()));
} catch (UnsupportedEncodingException | GeneralSecurityException e) {
- logger.debug("Exception on encoding: {}", e);
+ logger.debug("Exception on encoding", e);
return null;
}
}
@@ -117,7 +117,7 @@ public byte[] encodeMessage(String data) {
logger.info("Base64encoding not possible: {}", e.getMessage());
}
} catch (UnsupportedEncodingException | GeneralSecurityException e) {
- logger.error("Exception on encoding: {}", e);
+ logger.error("Exception on encoding", e);
}
return null;
}
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java
index be557bff24bdf..f6d4848dc21fa 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Device.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200HandlerFactory.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200HandlerFactory.java
index 9dad5e9d5ad86..4d8bb1aa04510 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200HandlerFactory.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200HandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ServiceObject.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ServiceObject.java
index b5467ef1722a3..1c8d0653aab27 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ServiceObject.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ServiceObject.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ThingType.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ThingType.java
index ef09d20ba0659..79ef8e881b6e9 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ThingType.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200ThingType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Utils.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Utils.java
index 84161a6ad7718..abc725173c54c 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Utils.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/KM200Utils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryParticipant.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryParticipant.java
index 19351e4411ebc..726d42b42d59e 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryService.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryService.java
index 8e9451f38f4b4..45a54322d0c86 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryService.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/discovery/KM200GatewayDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200DataHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200DataHandler.java
index 762f7df72c91a..1a4e400907df6 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200DataHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200DataHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ErrorServiceHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ErrorServiceHandler.java
index 5bda61c77756f..43062460989f4 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ErrorServiceHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ErrorServiceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java
index 557cad0b2a4ed..9fd46e393e4fe 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -368,7 +368,7 @@ && getDevice().getServiceObject(service).getVirtual() == 1) {
try {
updateState(tmpChannel.getUID(), state);
} catch (IllegalStateException e) {
- logger.error("Could not get updated item state, Error: {}", e);
+ logger.error("Could not get updated item state", e);
}
}
}
@@ -422,7 +422,7 @@ private void updateChildren(Map sendMap, KM200GatewayHandle
try {
gatewayHandler.updateState(actChannel.getUID(), state);
} catch (IllegalStateException e) {
- logger.error("Could not get updated item state, Error: {}", e);
+ logger.error("Could not get updated item state", e);
}
}
}
@@ -527,7 +527,7 @@ public void run() {
try {
gatewayHandler.updateState(channel.getUID(), state);
} catch (IllegalStateException e) {
- logger.error("Could not get updated item state, Error: {}", e);
+ logger.error("Could not get updated item state", e);
}
}
}
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayStatusListener.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayStatusListener.java
index 983afe3bf3b0c..637665acafa1e 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayStatusListener.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200GatewayStatusListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ServiceHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ServiceHandler.java
index 3ab6c8a895e99..e179a85bd161f 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ServiceHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ServiceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200SwitchProgramServiceHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200SwitchProgramServiceHandler.java
index c78d8ac316682..4899eb5c875d8 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200SwitchProgramServiceHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200SwitchProgramServiceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ThingHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ThingHandler.java
index a35bfcc558fc4..9614ae84a486d 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ThingHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200ThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200VirtualServiceHandler.java b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200VirtualServiceHandler.java
index 6686428c6f61d..7cac4934175f5 100644
--- a/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200VirtualServiceHandler.java
+++ b/bundles/org.openhab.binding.km200/src/main/java/org/openhab/binding/km200/internal/handler/KM200VirtualServiceHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/device.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/device.xml
index 2f69078389423..c68a4d2b06278 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/device.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/device.xml
@@ -30,7 +30,7 @@
100
-
+
Maximum number of repeats in case of a communication error (like HTTP 500 error)10
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/dhwCircuit.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/dhwCircuit.xml
index 837238a08a785..60dfb1941c3e8 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/dhwCircuit.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/dhwCircuit.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing a hot water circuit.#dhwCircuits
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatSource.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatSource.xml
index e63a50ebc3fa1..b6d706ca1d5cf 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatSource.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatSource.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing the heat source.#heatSources
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatingCircuit.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatingCircuit.xml
index efa68688c70d2..0b7230b35de7c 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatingCircuit.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/heatingCircuit.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing a heating circuit.#heatingCircuits
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/holidayMode.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/holidayMode.xml
index b1662f0dd6417..be7dfd404a6f9 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/holidayMode.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/holidayMode.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing the holiday modes configuration.#system#holidayModes
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/solarCircuit.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/solarCircuit.xml
index 44f9803f40097..05df815cd2b0d 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/solarCircuit.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/solarCircuit.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing a solar circuit.#solarCircuits
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/switchProgram.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/switchProgram.xml
index 8937b23fa9bce..9257318ddfcd5 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/switchProgram.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/switchProgram.xml
@@ -8,7 +8,7 @@
-
+
This thing is representing a switch program.
diff --git a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/systemStates.xml b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/systemStates.xml
index 6ac912b939ff4..f9a7965eca61a 100644
--- a/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/systemStates.xml
+++ b/bundles/org.openhab.binding.km200/src/main/resources/ESH-INF/thing/systemStates.xml
@@ -1,14 +1,14 @@
+ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
+ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
This thing is representing the systems states.#systemStates
diff --git a/bundles/org.openhab.binding.knx/NOTICE b/bundles/org.openhab.binding.knx/NOTICE
index c42f2e9cacc24..9da145223c82a 100644
--- a/bundles/org.openhab.binding.knx/NOTICE
+++ b/bundles/org.openhab.binding.knx/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.knx/README.md b/bundles/org.openhab.binding.knx/README.md
index fd2ec6128d57a..8b4cba730bde1 100644
--- a/bundles/org.openhab.binding.knx/README.md
+++ b/bundles/org.openhab.binding.knx/README.md
@@ -1,13 +1,19 @@
# KNX Binding
-The openHAB KNX binding allows to connect to [KNX Home Automation](http://www.knx.org/) installations. Switching lights on and off, activating your roller shutters or changing room temperatures are only some examples.
+The openHAB KNX binding allows to connect to [KNX Home Automation](https://www.knx.org/) installations.
+Switching lights on and off, activating your roller shutters or changing room temperatures are only some examples.
-To access your KNX bus you either need a gateway device which is connected to the KNX bus and allows computers to access the bus communication. This can be either an Ethernet (as a Router or a Tunnel type) or a serial gateway. The KNX binding then can communicate directly with this gateway. Alternatively a PC running [KNXD](https://github.com/knxd/knxd) (free open source component sofware) can be put in between which then acts as a broker allowing multiple client to connect to the same gateway. Since the protocol is identical, the KNX binding can also communicate with it transparently.
+To access your KNX bus you either need a gateway device which is connected to the KNX bus and allows computers to access the bus communication.
+This can be either an Ethernet (as a Router or a Tunnel type) or a serial gateway.
+The KNX binding then can communicate directly with this gateway.
+Alternatively a PC running [KNXD](https://github.com/knxd/knxd) (free open source component sofware) can be put in between which then acts as a broker allowing multiple client to connect to the same gateway.
+Since the protocol is identical, the KNX binding can also communicate with it transparently.
## Supported Things
-The KNX binding supports two types of bridges, and one type of things to access the KNX bus. There is an *ip* bridge to connect to KNX IP Gateways, and a *serial* bridge for connection over a serial port to a host-attached gateway.
+The KNX binding supports two types of bridges, and one type of things to access the KNX bus.
+There is an *ip* bridge to connect to KNX IP Gateways, and a *serial* bridge for connection over a serial port to a host-attached gateway.
## Binding Configuration
@@ -24,7 +30,7 @@ The IP Gateway is the most commonly used way to connect to the KNX bus. At its b
| Name | Required | Description | Default value |
|---------------------|--------------|--------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| type | Yes | The IP connection type for connecting to the KNX bus (`TUNNEL` or `ROUTER`) | - |
-| ipAddress | for `TUNNEL` | Network address of the KNX/IP gateway. If type `ROUTER` is set, the IPv4 Multicast Address can be set. | for `TUNNEL`: \, for `ROUTER`: 224.0.23.12 |
+| ipAddress | for `TUNNEL` | Network address of the KNX/IP gateway. If type `ROUTER` is set, the IPv4 Multicast Address can be set. | for `TUNNEL`: \, for `ROUTER`: 224.0.23.12 |
| portNumber | for `TUNNEL` | Port number of the KNX/IP gateway | 3671 |
| localIp | No | Network address of the local host to be used to set up the connection to the KNX/IP gateway | the system-wide configured primary interface address |
| localSourceAddr | No | The (virtual) individual address for identification of this KNX/IP gateway within the KNX bus
Note: Use a free adress, not the one of the interface. Or leave it at `0.0.0` and let openHAB decide which address to use. | 0.0.0 |
@@ -51,7 +57,11 @@ The *serial* bridge accepts the following configuration parameters:
### *device* Things
-*basic* Things are wrappers around an arbitrary group addresses on the KNX bus. They have no specific function in the KNX binding, except that if the *address* is defined the binding will actively poll the Individual Address on the KNX bus to detect that the KNX actuator is reachable. Under normal real world circumstances, either all devices on a bus are reachable, or the entire bus is down. When *fetch* is set to true, the binding will read-out the memory of the KNX actuator in order to detect configuration data and so forth. This is however an experimental feature very prone to the actual on the KNX bus.
+*basic* Things are wrappers around an arbitrary group addresses on the KNX bus.
+They have no specific function in the KNX binding, except that if the *address* is defined the binding will actively poll the Individual Address on the KNX bus to detect that the KNX actuator is reachable.
+Under normal real world circumstances, either all devices on a bus are reachable, or the entire bus is down.
+When *fetch* is set to true, the binding will read-out the memory of the KNX actuator in order to detect configuration data and so forth.
+This is however an experimental feature very prone to the actual on the KNX bus.
| Name | Required | Description | Default value |
|--------------|----------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
@@ -60,11 +70,14 @@ The *serial* bridge accepts the following configuration parameters:
| pingInterval | N | Interval (in seconds) to contact the device and set the thing status based on the result (requires the address) | 600 |
| readInterval | N | Interval (in seconds) to actively request reading of values from the bus (0 if they should only be read once at startup) | 0 |
-Different kinds of channels are defined and can be used to group together Group Addresses. All channel types share two configuration parameters: *read*, an optional parameter to indicate if the 'readable' group addresses of that Channel should be read at startup (default: false), and *interval*, an optional parameter that defines an interval between attempts to read the status group address on the bus, in seconds. When defined and set to 0, the interval is ignored (default: 0)
+Different kinds of channels are defined and can be used to group together Group Addresses.
+All channel types share two configuration parameters: *read*, an optional parameter to indicate if the 'readable' group addresses of that Channel should be read at startup (default: false), and *interval*, an optional parameter that defines an interval between attempts to read the status group address on the bus, in seconds.
+When defined and set to 0, the interval is ignored (default: 0)
#### Standard Channel Types
-Standard channels are used most of the time. They are used in the common case where the physical state is owned by a decive within the KNX bus, e.g. by a switch actuator who "knows" whether the light is turned on or of or by a temperature sensor which reports the room temperature regularly.
+Standard channels are used most of the time.
+They are used in the common case where the physical state is owned by a decive within the KNX bus, e.g. by a switch actuator who "knows" whether the light is turned on or of or by a temperature sensor which reports the room temperature regularly.
Note: After changing the DPT of already existing Channels, openHAB needs to be restarted for the changes to become effective.
@@ -118,7 +131,9 @@ Note: After changing the DPT of already existing Channels, openHAB needs to be r
#### Control Channel Types
-In contrast to the standard channels above, the control channel types are used for cases where the KNX bus does not own the physical state of a device. This could be the case if e.g. a lamp from another binding should be controlled by a KNX wall switch. If from the KNX bus a `GroupValueRead` telegram is sent to a *-control Channel, the bridge responds with a `GroupValueResponse` telegram to the KNX bus.
+In contrast to the standard channels above, the control channel types are used for cases where the KNX bus does not own the physical state of a device.
+This could be the case if e.g. a lamp from another binding should be controlled by a KNX wall switch.
+If from the KNX bus a `GroupValueRead` telegram is sent to a *-control Channel, the bridge responds with a `GroupValueResponse` telegram to the KNX bus.
##### Channel Type "switch-control"
@@ -185,9 +200,14 @@ The `dpt` element is optional. If ommitted, the corresponding default value will
## Examples
-The following two templates are sufficient for almost all purposes. Only add parameters to the Bridge and Thing configuration if you know exactly what functionality it is needed for.
+
+The following two templates are sufficient for almost all purposes.
+Only add parameters to the Bridge and Thing configuration if you know exactly what functionality it is needed for.
+
### Type ROUTER mode configuration Template
+
knx.things:
+
```xtend
Bridge knx:ip:bridge [
type="ROUTER",
@@ -200,8 +220,11 @@ Bridge knx:ip:bridge [
}
}
```
+
### Type TUNNEL mode configuration Template
+
knx.things:
+
```xtend
Bridge knx:ip:bridge [
type="TUNNEL",
@@ -215,7 +238,9 @@ Bridge knx:ip:bridge [
}
}
```
+
### Full Example
+
```xtend
//TUNNEL
Bridge knx:ip:bridge [
@@ -290,7 +315,6 @@ sitemap knx label="KNX Demo Sitemap" {
### Control Example
-
control.things:
```xtend
diff --git a/bundles/org.openhab.binding.knx/pom.xml b/bundles/org.openhab.binding.knx/pom.xml
index 1c122758d11b9..3263065fe103d 100644
--- a/bundles/org.openhab.binding.knx/pom.xml
+++ b/bundles/org.openhab.binding.knx/pom.xml
@@ -1,24 +1,27 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.knxopenHAB Add-ons :: Bundles :: KNX Binding
+
+ javax.microedition.io.*;resolution:="optional",javax.usb.*;resolution:="optional",org.usb4java.*;resolution:="optional"
+
+
- org.openhab.osgiify
- com.github.calimero.calimero-core
+ com.github.calimero
+ calimero-core2.4
- provided
+ compileorg.slf4j
@@ -27,10 +30,10 @@
- org.openhab.osgiify
- com.github.calimero.calimero-device
+ com.github.calimero
+ calimero-device2.4
- provided
+ compileorg.slf4j
@@ -39,10 +42,10 @@
- org.openhab.osgiify
- com.github.calimero.calimero-rxtx
+ com.github.calimero
+ calimero-rxtx2.4
- provided
+ compileorg.slf4j
diff --git a/bundles/org.openhab.binding.knx/src/main/feature/feature.xml b/bundles/org.openhab.binding.knx/src/main/feature/feature.xml
index a38f9be53b9e0..e004818d86b39 100644
--- a/bundles/org.openhab.binding.knx/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.knx/src/main/feature/feature.xml
@@ -1,13 +1,10 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab-transport-serial
- mvn:org.openhab.osgiify/com.github.calimero.calimero-core/2.4
- mvn:org.openhab.osgiify/com.github.calimero.calimero-device/2.4
- mvn:org.openhab.osgiify/com.github.calimero.calimero-rxtx/2.4mvn:org.openhab.addons.bundles/org.openhab.binding.knx/${project.version}
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXBindingConstants.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXBindingConstants.java
index 8670a5aab92eb..8ade2ed862250 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXBindingConstants.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXTypeMapper.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXTypeMapper.java
index f3daea59ad27d..378cb3e7b4a62 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXTypeMapper.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXTypeMapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/AbstractSpec.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/AbstractSpec.java
index e361404f10ad6..318b887908aa8 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/AbstractSpec.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/AbstractSpec.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ChannelConfiguration.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ChannelConfiguration.java
index fc040c0eac3f9..8c8a6d48b6c70 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ChannelConfiguration.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ChannelConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/GroupAddressConfiguration.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/GroupAddressConfiguration.java
index 6bcdfd7235128..61e59356bd04b 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/GroupAddressConfiguration.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/GroupAddressConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelType.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelType.java
index 81e40b2b82e6b..169258249476f 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelType.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelTypes.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelTypes.java
index ec0117ab1373d..c74db5674bb1c 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelTypes.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/KNXChannelTypes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ListenSpecImpl.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ListenSpecImpl.java
index 9790e003d5d6a..d5743438171b9 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ListenSpecImpl.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ListenSpecImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadRequestSpecImpl.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadRequestSpecImpl.java
index a3d14cbffa72c..12ff69ad25b3e 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadRequestSpecImpl.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadRequestSpecImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadResponseSpecImpl.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadResponseSpecImpl.java
index 3f7fbb0111a77..70c599ebeef26 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadResponseSpecImpl.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/ReadResponseSpecImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeColor.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeColor.java
index e2e0e1e311d71..5c367796972a5 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeColor.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeColor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeContact.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeContact.java
index dcfaa2c8aab1b..b36926522a605 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeContact.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeContact.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDateTime.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDateTime.java
index 23330897ce162..0dcb7ea605711 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDateTime.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDateTime.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDimmer.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDimmer.java
index 6b6c5be8f483c..0e4392b6fe079 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDimmer.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeDimmer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeNumber.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeNumber.java
index b88ca4215a20d..1ee1eae73c070 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeNumber.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeNumber.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeRollershutter.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeRollershutter.java
index 387d95485e161..fcb26012ff0ff 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeRollershutter.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeRollershutter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeString.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeString.java
index b47df5adf1e7d..ad7267a753b8f 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeString.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeString.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeSwitch.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeSwitch.java
index 88832e6e4d707..1e97dee1cb813 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeSwitch.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/TypeSwitch.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/WriteSpecImpl.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/WriteSpecImpl.java
index 6f7191ae75e5f..07b3fd97f1373 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/WriteSpecImpl.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/channel/WriteSpecImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/AbstractKNXClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/AbstractKNXClient.java
index 2d5828ad88a1c..435cbfd15f810 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/AbstractKNXClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/AbstractKNXClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/BusMessageListener.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/BusMessageListener.java
index 04730e9cd75cc..d9543ff09508f 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/BusMessageListener.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/BusMessageListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/CustomKNXNetworkLinkIP.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/CustomKNXNetworkLinkIP.java
index 6a9b2f99f4fbb..87a4debc28cc3 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/CustomKNXNetworkLinkIP.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/CustomKNXNetworkLinkIP.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClient.java
index 15030843e2c66..976df0823382e 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClientImpl.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClientImpl.java
index 7e9d117d492ee..e0cf6b499ae23 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClientImpl.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInfoClientImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInspector.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInspector.java
index 726c28606d7cd..8a80ed03e20bb 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInspector.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInspector.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/IPClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/IPClient.java
index d6b8885620afa..26c9b22aab979 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/IPClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/IPClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/InboundSpec.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/InboundSpec.java
index 048be8f19e670..4de85a22626f1 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/InboundSpec.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/InboundSpec.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/KNXClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/KNXClient.java
index ac9896dfe3967..845509a95b114 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/KNXClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/KNXClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/NoOpClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/NoOpClient.java
index 670416128d105..26794830bfd11 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/NoOpClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/NoOpClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/OutboundSpec.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/OutboundSpec.java
index 127be391ea166..57876eb902a0c 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/OutboundSpec.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/OutboundSpec.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/ReadDatapoint.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/ReadDatapoint.java
index cefe149fdf1cb..9334132fc4b1e 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/ReadDatapoint.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/ReadDatapoint.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/SerialClient.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/SerialClient.java
index 7757305b7255a..924b458b4686c 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/SerialClient.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/SerialClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/StatusUpdateCallback.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/StatusUpdateCallback.java
index c183451abd72b..df8c4046c4843 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/StatusUpdateCallback.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/StatusUpdateCallback.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/BridgeConfiguration.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/BridgeConfiguration.java
index 164fd6abbe5c9..36166cae57980 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/BridgeConfiguration.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/BridgeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/DeviceConfig.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/DeviceConfig.java
index edf91424ab668..d7a0003ec131f 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/DeviceConfig.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/DeviceConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/IPBridgeConfiguration.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/IPBridgeConfiguration.java
index a31106793b13e..ed36e5faf1ad9 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/IPBridgeConfiguration.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/IPBridgeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/SerialBridgeConfiguration.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/SerialBridgeConfiguration.java
index 0536aa480fe4e..0ce69d146b1d7 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/SerialBridgeConfiguration.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/config/SerialBridgeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapper.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapper.java
index f07b6065d2021..c8893eca1f08d 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapper.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/factory/KNXHandlerFactory.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/factory/KNXHandlerFactory.java
index a9d61858d0147..8ed3b027470e4 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/factory/KNXHandlerFactory.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/factory/KNXHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/AbstractKNXThingHandler.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/AbstractKNXThingHandler.java
index 73440fcd961d2..2221842f715c4 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/AbstractKNXThingHandler.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/AbstractKNXThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceConstants.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceConstants.java
index fb74d07b0a4e7..f9873503fbe95 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceConstants.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceThingHandler.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceThingHandler.java
index 94ac30ef21668..ba6b0abea116a 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceThingHandler.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/DeviceThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Firmware.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Firmware.java
index 1b5e461cd7e96..705a2d333da8b 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Firmware.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Firmware.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/GroupAddressListener.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/GroupAddressListener.java
index d706f43d90d70..590165206cf42 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/GroupAddressListener.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/GroupAddressListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/IPBridgeThingHandler.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/IPBridgeThingHandler.java
index 8a1a0cad56c44..04514512b9a42 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/IPBridgeThingHandler.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/IPBridgeThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/KNXBridgeBaseThingHandler.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/KNXBridgeBaseThingHandler.java
index d725c312ecbf8..42c0d681f3950 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/KNXBridgeBaseThingHandler.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/KNXBridgeBaseThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java
index 5a219219621a2..00c83716e6593 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/SerialBridgeThingHandler.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/SerialBridgeThingHandler.java
index a8a8156e90949..19292521319ea 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/SerialBridgeThingHandler.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/SerialBridgeThingHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/profiles/KNXProfileAdvisor.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/profiles/KNXProfileAdvisor.java
index 4bb91b546a7b5..4cc49ea40bb1a 100644
--- a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/profiles/KNXProfileAdvisor.java
+++ b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/profiles/KNXProfileAdvisor.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/main/resources/ESH-INF/config/channelConfig.xml b/bundles/org.openhab.binding.knx/src/main/resources/ESH-INF/config/channelConfig.xml
index 0b1d94163da33..94f4a2aaffaa2 100644
--- a/bundles/org.openhab.binding.knx/src/main/resources/ESH-INF/config/channelConfig.xml
+++ b/bundles/org.openhab.binding.knx/src/main/resources/ESH-INF/config/channelConfig.xml
@@ -48,7 +48,7 @@
-
+
The group address(es) in Group Address Notation for the color valuefalse
@@ -70,7 +70,7 @@
-
+
The group address(es) in Group Address Notation for the color valuefalse
diff --git a/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/channel/KNXChannelTypeTest.java b/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/channel/KNXChannelTypeTest.java
index 0a1307cde850e..3de771c22bb9b 100644
--- a/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/channel/KNXChannelTypeTest.java
+++ b/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/channel/KNXChannelTypeTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapperTest.java b/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapperTest.java
index 289086ac47aa8..c69fff45f0b5a 100644
--- a/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapperTest.java
+++ b/bundles/org.openhab.binding.knx/src/test/java/org/openhab/binding/knx/internal/dpt/KNXCoreTypeMapperTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/NOTICE b/bundles/org.openhab.binding.kodi/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.kodi/NOTICE
+++ b/bundles/org.openhab.binding.kodi/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.kodi/README.md b/bundles/org.openhab.binding.kodi/README.md
index e9eaaf2894d0b..5cf912208ef5f 100644
--- a/bundles/org.openhab.binding.kodi/README.md
+++ b/bundles/org.openhab.binding.kodi/README.md
@@ -4,13 +4,13 @@
Kodi runs on Linux, OS X, BSD, Windows, iOS, and Android.
It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet.
-The Kodi Binding integrated Kodi media center support with openHAB, allowing both controlling the player as well as retrieving player status data like the currently played movie title.
+The Kodi Binding integrates Kodi media center support with openHAB, allowing both controlling the player as well as retrieving player status data like the currently played movie title.
The Kodi binding is the successor to the openHAB 1.x xbmc binding.
## Preparation
-In order to allow control of Kodi by this binding, you need to enable the Kodi application remote control feature.
+In order to allow Kodi to be controlled through this binding, you need to enable the Kodi application remote control feature.
Please enable "Allow remote control from applications on this/other systems" in the Kodi settings menu under:
* Settings âž” Services âž” Control âž”
@@ -26,7 +26,7 @@ To make use of the auto-discovery feature, you additionally need to enable "Allo
This binding provides only one thing type: The Kodi media center.
Create one Kodi thing per Kodi instance available in your home automation system.
-All Kodi devices are registered as an audio sink in the ESH/openHAB2 framework.
+All Kodi devices are registered as an audio sink in openHAB.
## Discovery
@@ -87,12 +87,12 @@ The Kodi thing supports the following channels:
| mediatype | String | The media type of the current file. Valid return values are: `unknown`, `channel`, `episode`, `movie`, `musicvideo`, `picture`, `radio`, `song`, `video` |
| mediaid | Number | The media_id in database of Kodi |
| mediafile | String | Full path and file name of the current file |
-| uniqueid-imdb | String | IMDB link ID of currently playing media **Advanced** |
-| uniqueid-tmdb | String | TheMovieDB link ID of currently playing media **Advanced** |
-| uniqueid-douban | String | Douban link ID of currently playing media **Advanced** |
-| uniqueid-imdbtvshow | String | IMDB link ID of the season of currently playing tv episode **Advanced** |
-| uniqueid-tmdbtvshow | String | IMDB link ID of the season of currently playing tv episode **Advanced** |
-| uniqueid-tmdbepisode | String | IMDB link ID of single episode of currently playing tv episode **Advanced** |
+| uniqueid-imdb | String | IMDB link ID of currently playing media **(Advanced)** |
+| uniqueid-tmdb | String | TheMovieDB link ID of currently playing media **(Advanced)** |
+| uniqueid-douban | String | Douban link ID of currently playing media **(Advanced)** |
+| uniqueid-imdbtvshow | String | IMDB link ID of the season of currently playing tv episode **(Advanced)** |
+| uniqueid-tmdbtvshow | String | IMDB link ID of the season of currently playing tv episode **(Advanced)** |
+| uniqueid-tmdbepisode | String | IMDB link ID of single episode of currently playing tv episode **(Advanced)** |
| season | Number | Season number if currently playing tv episode |
| episode | Number | Episode number if currently playing tv episode |
| genreList | String | A comma-separated list of genres of the current file |
@@ -104,21 +104,21 @@ The Kodi thing supports the following channels:
| subtitle-language | String | Display subtitle language of currently playing media |
| subtitle-name | String | Display subtitle title of currently playing media |
| audio-index | Number | Audio stream index of currently playing media |
-| audio-codec | String | Audio codec of currently playing media **Advanced** |
-| audio-language | String | Display language of currently playing audio stream **Advanced** |
-| audio-name | String | Display title of currently playing audio stream **Advanced** |
-| audio-channels | Number | Display channels of currently playing audio stream **Advanced** |
-| video-codec | String | Video codec of currently playing media **Advanced** |
-| video-index | Number | Index of currently playing multi stream video **Advanced** |
-| video-height | Number | Height of currently playing video **Advanced** |
-| video-weight | Number | Width of currently playing video **Advanced** |
+| audio-codec | String | Audio codec of currently playing media **(Advanced)** |
+| audio-language | String | Display language of currently playing audio stream **(Advanced)** |
+| audio-name | String | Display title of currently playing audio stream **(Advanced)** |
+| audio-channels | Number | Display channels of currently playing audio stream **(Advanced)** |
+| video-codec | String | Video codec of currently playing media **(Advanced)** |
+| video-index | Number | Index of currently playing multi stream video **(Advanced)** |
+| video-height | Number | Height of currently playing video **(Advanced)** |
+| video-weight | Number | Width of currently playing video **(Advanced)** |
| currenttime | Number:Time | Current time of currently playing media |
| currenttimepercentage | Number:Dimensionless | Current time of currently playing media |
| duration | Number:Time | Length of currently playing media |
-| rating | Number | rating of currently playing media **Advanced** |
-| mpaa | String | MPAA rating of currently playing media **Advanced** |
-| userrating | Number | personal rating of currently playing media **Advanced** |
-| profile | String | Current profile **Advanced** |
+| rating | Number | rating of currently playing media **(Advanced)** |
+| mpaa | String | MPAA rating of currently playing media **(Advanced)** |
+| userrating | Number | personal rating of currently playing media **(Advanced)** |
+| profile | String | Current profile **(Advanced)** |
Kodi things are extensible by channels of type `shownotification`, so that different notification pop-ups can be configured for different use cases.
@@ -133,13 +133,13 @@ You have to adjust this configuration to use the `pvr-open-tv` and `pvr-open-rad
You can optionally configure an user-defined PVR channel group.
The PVR channels from Kodi will be populated during runtime into the state options of the `pvr-open-tv` and `pvr-open-radio` channels.
-**shownotification** The `shownotification` channel type has three configuration parameters through which it can be customised:
+**shownotification** The `shownotification` channel type has three configuration parameters through which it can be customized:
-| Parameter | Type | Default | Description |
-|-----------------|-----------------|----------|------------------------------------------------------------|
-| title | Text | openHAB | Title of the notification |
-| displayTime | Integer | 5000 | Time in ms the notification is shown |
-| icon | Text | | Icon to use (e.g. "alarm"), which must be available as png |
+| Parameter | Type | Default | Description |
+|-------------|---------|---------|------------------------------------------------------------------------|
+| title | Text | openHAB | Title of the notification |
+| displayTime | Integer | 5000 | Time the notification is shown (in ms) |
+| icon | Text | | Icon to use (e.g. "alarm"). One of the openHAB icons (as listed [here](https://www.openhab.org/docs/configuration/iconsets/classic/)). |
## Audio Support
@@ -159,6 +159,14 @@ Thing kodi:kodi:myKodi "Kodi" @ "Living Room" [ipAddress="192.168.1.100", port=9
Type pvr-open-tv : pvr-open-tv [
group="All channels"
]
+ Type shownotification : error-notification [
+ title="openHAB - Error",
+ icon="error"
+ ]
+ Type shownotification : weather-notification [
+ title="openHAB - Weather",
+ icon="sun_clouds"
+ ]
}
```
@@ -181,6 +189,8 @@ String myKodi_pvropentv "Play PVR TV channel" { channel="kodi:
String myKodi_pvropenradio "Play PVR Radio channel" { channel="kodi:kodi:myKodi:pvr-open-radio" }
String myKodi_pvrchannel "PVR channel [%s]" { channel="kodi:kodi:myKodi:pvr-channel" }
String myKodi_notification "Notification" { channel="kodi:kodi:myKodi:shownotification" }
+String myKodi_error-notification "Error Notification" { channel="kodi:kodi:myKodi:error-notification" }
+String myKodi_weather-notification "Weather Notification" { channel="kodi:kodi:myKodi:weather-notification" }
String myKodi_input "Input" { channel="kodi:kodi:myKodi:input" }
String myKodi_inputtext "Inputtext" { channel="kodi:kodi:myKodi:inputtext" }
String myKodi_systemcommand "Systemcommand" { channel="kodi:kodi:myKodi:systemcommand" }
diff --git a/bundles/org.openhab.binding.kodi/pom.xml b/bundles/org.openhab.binding.kodi/pom.xml
index 3d5bcfee4c317..6cdf522dea423 100644
--- a/bundles/org.openhab.binding.kodi/pom.xml
+++ b/bundles/org.openhab.binding.kodi/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.kodi
diff --git a/bundles/org.openhab.binding.kodi/src/main/feature/feature.xml b/bundles/org.openhab.binding.kodi/src/main/feature/feature.xml
index c7c592477ff17..a483c6b1c465c 100644
--- a/bundles/org.openhab.binding.kodi/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.kodi/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiAudioSink.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiAudioSink.java
index b994f23fd24c9..ab8bea095028f 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiAudioSink.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiAudioSink.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiBindingConstants.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiBindingConstants.java
index b70b02bd99a94..f546aeefaa04a 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiBindingConstants.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiDynamicStateDescriptionProvider.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiDynamicStateDescriptionProvider.java
index c1aa97e4f859f..b2457864d23aa 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiDynamicStateDescriptionProvider.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiDynamicStateDescriptionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiEventListener.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiEventListener.java
index a2f904797fff5..deaa0dd1887d9 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiEventListener.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiHandlerFactory.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiHandlerFactory.java
index 3263227560108..b52ce0ccfa6fe 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiHandlerFactory.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiPlayerState.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiPlayerState.java
index 87c4630321c39..31b9d2390c0f2 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiPlayerState.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/KodiPlayerState.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiChannelConfig.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiChannelConfig.java
index f2b023cbfa2aa..f31faea5ed503 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiChannelConfig.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiChannelConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiConfig.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiConfig.java
index e291a5e49dd49..0200f0f425abf 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiConfig.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/config/KodiConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/discovery/KodiUpnpDiscoveryParticipant.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/discovery/KodiUpnpDiscoveryParticipant.java
index d3ba84d557142..3a3a55d45bd3a 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/discovery/KodiUpnpDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/discovery/KodiUpnpDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/handler/KodiHandler.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/handler/KodiHandler.java
index e7c23e8b44753..2f9d63f4bbc55 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/handler/KodiHandler.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/handler/KodiHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -89,6 +89,8 @@ public class KodiHandler extends BaseThingHandler implements KodiEventListener {
private final KodiConnection connection;
private final KodiDynamicStateDescriptionProvider stateDescriptionProvider;
+ private final ChannelUID profileChannelUID;
+
private ScheduledFuture> connectionCheckerFuture;
private ScheduledFuture> statusUpdaterFuture;
@@ -98,6 +100,8 @@ public KodiHandler(Thing thing, KodiDynamicStateDescriptionProvider stateDescrip
connection = new KodiConnection(this, webSocketClient, callbackUrl);
this.stateDescriptionProvider = stateDescriptionProvider;
+
+ profileChannelUID = new ChannelUID(getThing().getUID(), CHANNEL_PROFILE);
}
@Override
@@ -297,7 +301,7 @@ public void handleCommand(ChannelUID channelUID, Command command) {
break;
case CHANNEL_CURRENTTIME:
if (command instanceof QuantityType) {
- connection.setTime(((QuantityType) command).intValue());
+ connection.setTime(((QuantityType>) command).intValue());
}
break;
case CHANNEL_CURRENTTIMEPERCENTAGE:
@@ -615,7 +619,7 @@ public void initialize() {
updateFavoriteChannelStateDescription();
updatePVRChannelStateDescription(PVR_TV, CHANNEL_PVR_OPEN_TV);
updatePVRChannelStateDescription(PVR_RADIO, CHANNEL_PVR_OPEN_RADIO);
- updateProfileStateDescription(CHANNEL_PROFILE);
+ updateProfileStateDescription();
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
"No connection established");
@@ -656,13 +660,13 @@ private void updatePVRChannelStateDescription(final String pvrChannelType, final
}
}
- private void updateProfileStateDescription(final String channelId) {
- if (isLinked(channelId)) {
+ private void updateProfileStateDescription() {
+ if (isLinked(profileChannelUID)) {
List options = new ArrayList<>();
for (KodiProfile profile : connection.getProfiles()) {
options.add(new StateOption(profile.getLabel(), profile.getLabel()));
}
- stateDescriptionProvider.setStateOptions(new ChannelUID(getThing().getUID(), channelId), options);
+ stateDescriptionProvider.setStateOptions(profileChannelUID, options);
}
}
@@ -699,7 +703,9 @@ public void updateConnectionState(boolean connected) {
updateStatus(ThingStatus.ONLINE);
scheduler.schedule(() -> connection.getSystemProperties(), 1, TimeUnit.SECONDS);
scheduler.schedule(() -> connection.updateVolume(), 1, TimeUnit.SECONDS);
- scheduler.schedule(() -> connection.updateCurrentProfile(), 1, TimeUnit.SECONDS);
+ if (isLinked(profileChannelUID)) {
+ scheduler.schedule(() -> connection.updateCurrentProfile(), 1, TimeUnit.SECONDS);
+ }
try {
String version = connection.getVersion();
thing.setProperty(PROPERTY_VERSION, version);
@@ -807,7 +813,7 @@ public void updateRating(double rating) {
@Override
public void updateUserRating(double rating) {
- updateState(CHANNEL_RATING, new DecimalType(rating));
+ updateState(CHANNEL_USERRATING, new DecimalType(rating));
}
@Override
@@ -961,7 +967,7 @@ public void updateDuration(long duration) {
@Override
public void updateCurrentProfile(String profile) {
- updateState(CHANNEL_PROFILE, new StringType(profile));
+ updateState(profileChannelUID, new StringType(profile));
}
@Override
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiAudioStream.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiAudioStream.java
index 3fc95f8f1e3be..3f6ec24086f74 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiAudioStream.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiAudioStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiBaseItem.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiBaseItem.java
index 03ccd06afcce3..96a5c1f214b47 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiBaseItem.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiBaseItem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiDuration.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiDuration.java
index 798ca883bf3b7..e61005f2ca973 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiDuration.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiDuration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiFavorite.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiFavorite.java
index c7a4d7f210105..0c23e1f21ee47 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiFavorite.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiFavorite.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannel.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannel.java
index 926ecc51739eb..8605e81ae7df4 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannel.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannelGroup.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannelGroup.java
index 4a1b81feb2b20..8da55bb378612 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannelGroup.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiPVRChannelGroup.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiProfile.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiProfile.java
index 8e1f4b7084c47..42b5e15e96bb0 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiProfile.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSubtitle.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSubtitle.java
index 5f3a95e63d9b8..9b5a6e78e8475 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSubtitle.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSubtitle.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSystemProperties.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSystemProperties.java
index bff7496d71f24..1c2a7a59e0422 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSystemProperties.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiSystemProperties.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiUniqueID.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiUniqueID.java
index 534736b3b9c2a..7f16cf2d392b5 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiUniqueID.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiUniqueID.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiVideoStream.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiVideoStream.java
index ed97477f2f631..c6f81494411d0 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiVideoStream.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/model/KodiVideoStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocket.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocket.java
index 86c2d94ca1791..e1c071151a3b9 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocket.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocket.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocketEventListener.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocketEventListener.java
index bb1ea6550e77c..bb6e8661ab8ad 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocketEventListener.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiClientSocketEventListener.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiConnection.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiConnection.java
index 9255f772dee28..e8e6216c66efd 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiConnection.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/protocol/KodiConnection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -80,8 +80,6 @@ public class KodiConnection implements KodiClientSocketEventListener {
private static final String PROPERTY_CURRENTAUDIOSTREAM = "currentaudiostream";
private static final String PROPERTY_SUBTITLES = "subtitles";
private static final String PROPERTY_AUDIOSTREAMS = "audiostreams";
- private static final String PROPERTY_VIDEOSTREAMS = "videostreams";
- private static final String PROPERTY_STREAMDETAILS = "streamdetails";
private static final String PROPERTY_CANHIBERNATE = "canhibernate";
private static final String PROPERTY_CANREBOOT = "canreboot";
private static final String PROPERTY_CANSHUTDOWN = "canshutdown";
@@ -1115,7 +1113,10 @@ public void updateCurrentProfile() {
JsonElement response = socket.callMethod("Profiles.GetCurrentProfile");
try {
- listener.updateCurrentProfile(gson.fromJson(response, KodiProfile.class).getLabel());
+ final KodiProfile profile = gson.fromJson(response, KodiProfile.class);
+ if (profile != null) {
+ listener.updateCurrentProfile(profile.getLabel());
+ }
} catch (JsonSyntaxException e) {
logger.debug("Json syntax exception occurred: {}", e.getMessage(), e);
}
diff --git a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCache.java b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCache.java
index 8927251e14122..fa8cbddcbb3ae 100644
--- a/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCache.java
+++ b/bundles/org.openhab.binding.kodi/src/main/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCache.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -277,7 +277,7 @@ File getUniqueFile(String key) {
String getFileExtension(String fileName) {
int extensionPos = fileName.lastIndexOf(EXTENSION_SEPARATOR);
int lastSeparatorPos = Math.max(fileName.lastIndexOf(UNIX_SEPARATOR), fileName.lastIndexOf(WINDOWS_SEPARATOR));
- return lastSeparatorPos > extensionPos ? null : fileName.substring(extensionPos + 1);
+ return lastSeparatorPos > extensionPos ? null : fileName.substring(extensionPos + 1).replaceFirst("\\?.*$", "");
}
/**
@@ -293,7 +293,7 @@ String getUniqueFileName(String key) {
byte[] md5Hash = md.digest(bytesOfKey);
BigInteger bigInt = new BigInteger(1, md5Hash);
String fileNameHash = bigInt.toString(16);
- // Now we need to zero pad it if you actually want the full 32 chars
+ // We need to zero pad it if you actually want the full 32 chars
while (fileNameHash.length() < 32) {
fileNameHash = "0" + fileNameHash;
}
diff --git a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/config/config.xml
index 4001816b2dc13..d77aa238aa714 100644
--- a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/config/config.xml
@@ -22,13 +22,13 @@
The IP or host name of the Kodinetwork-address
-
-
+
+
Port for the web socket service9090
-
-
+
+
Port for the HTTP service.8080true
@@ -65,9 +65,26 @@
-
+
The PVR channel group name used to identify the channel id.All channels
+
+
+
+
+ Title to show for the notification.
+ openHAB
+
+
+
+ Time the notification is displayed.
+ 5000
+
+
+
+ Icon name to show with the notification.
+
+
diff --git a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/i18n/kodi_de.properties b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/i18n/kodi_de.properties
index 89c6c96c3fa28..9820d4bd8b189 100644
--- a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/i18n/kodi_de.properties
+++ b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/i18n/kodi_de.properties
@@ -105,3 +105,10 @@ channel-type.kodi.duration.description = Zeigt die Dauer des aktuellen St
# channel types config
channel-type.config.kodi.pvr-channel.group.label = PVR Kanal Gruppe
channel-type.config.kodi.pvr-channel.group.description = Gruppe der verwendbaren PVR Kanäle.
+
+channel-type.config.kodi.shownotification.title.label = Titel
+channel-type.config.kodi.shownotification.title.description = Titel der Nachricht.
+channel-type.config.kodi.shownotification.displayTime.label = Anzeigezeit
+channel-type.config.kodi.shownotification.displayTime.description = Anzeigezeit der Nachricht.
+channel-type.config.kodi.shownotification.icon.label = Icon
+channel-type.config.kodi.shownotification.icon.description = Icon der Nachricht.
diff --git a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/thing/thing-types.xml
index b368244ecd616..7266484f0afa4 100644
--- a/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.kodi/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -34,7 +34,7 @@
-
+
@@ -45,7 +45,7 @@
-
+
@@ -133,19 +133,19 @@
String
-
+
Play or open the given favorite by sending a command with the favorite's titleString
-
+
Play the given PVR TV channel by sending a command with the channel's nameString
-
+
Play the given PVR Radio channel by sending a command with the channel's name
@@ -154,23 +154,7 @@
StringShows a notification on the UI
-
-
-
- Title to show for the notification
- openHAB
-
-
-
- Time the notification is displayed in milliseconds.
- 5000
- ms
-
-
-
- Icon name to show with the notification
-
-
+ String
@@ -179,7 +163,7 @@
String
-
+
Sends a key stroke to Kodi to navigate in the UI
@@ -200,12 +184,12 @@
String
-
+
Sends a generic input (unicode) text to KodiString
-
+
Sends a predefined action to Kodi to control the UI and/or perform other tasks
@@ -413,7 +397,7 @@
String
-
+
Sends a system command to Kodi. This allows to shutdown/suspend/hibernate/reboot/quit Kodi
@@ -429,7 +413,7 @@
String
-
+
Title of the current PVR channel
@@ -483,7 +467,7 @@
Number:Dimensionless
-
+
Current time of currently playing media
@@ -556,7 +540,7 @@
NumberRating
-
+ String
diff --git a/bundles/org.openhab.binding.kodi/src/test/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCacheTest.java b/bundles/org.openhab.binding.kodi/src/test/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCacheTest.java
index 6c83de13e6ba2..cddb1e5c0d4b2 100644
--- a/bundles/org.openhab.binding.kodi/src/test/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCacheTest.java
+++ b/bundles/org.openhab.binding.kodi/src/test/java/org/openhab/binding/kodi/internal/utils/ByteArrayFileCacheTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@@ -76,10 +76,12 @@ public void testGetFileExtension() {
assertThat(subject.getFileExtension(".hidden"), is(equalTo("hidden")));
assertThat(subject.getFileExtension("C:\\Program Files (x86)\\java\\bin\\javaw.exe"), is(equalTo("exe")));
assertThat(subject.getFileExtension("https://www.youtube.com/watch?v=qYrpPrLY868"), is(nullValue()));
+ assertThat(subject.getFileExtension(
+ "a52fc16cca77ab2bf6abe51e463ce501.jpg?response-content-type=image%2Fjpeg&test=1"), is("jpg"));
}
@Test
- public void testGetUniqueFileName() {
+ public void testGetUniqueFileNameIsUnique() {
String mp3UniqueFileName = subject.getUniqueFileName(MP3_FILE_NAME);
assertThat(mp3UniqueFileName, is(equalTo(subject.getUniqueFileName(MP3_FILE_NAME))));
diff --git a/bundles/org.openhab.binding.konnected/NOTICE b/bundles/org.openhab.binding.konnected/NOTICE
index 4c20ef446c1e4..38d625e349232 100644
--- a/bundles/org.openhab.binding.konnected/NOTICE
+++ b/bundles/org.openhab.binding.konnected/NOTICE
@@ -10,4 +10,4 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
diff --git a/bundles/org.openhab.binding.konnected/README.md b/bundles/org.openhab.binding.konnected/README.md
index ad81b0399f2fa..121403f1c7b84 100644
--- a/bundles/org.openhab.binding.konnected/README.md
+++ b/bundles/org.openhab.binding.konnected/README.md
@@ -18,7 +18,7 @@ The binding will then create things for each module discovered which can be adde
The binding attempts to discover The Konnected Alarm Panels via the UPnP service.
The auto-discovery service of the binding will detect the ip address and port of the Konnected Alarm Panel.
-The binding will attempt to obtain the ip address of your openHAB server as configured in the OSGI framework.
+The binding will attempt to obtain the ip address of your openHAB server as configured in the OSGi framework.
However, if it is unable to determine the ip address it will also attempt to use the network address service to obtain the ip address and port.
In addition you can also turn off discovery which when this setting is synced to the module will cause the device to no longer respond to UPnP requests as documented.
https://help.konnected.io/support/solutions/articles/32000023968-disabling-device-discovery
@@ -55,7 +55,7 @@ These parameters will tell the module to pulse the actuator for certain time per
A momentary switch actuates a switch for a specified time (in milliseconds) and then reverts it back to the off state.
This is commonly used with a relay module to actuate a garage door opener, or with a door bell to send a momentary trigger to sound the door bell.
A beep/blink switch is like a momentary switch that repeats either a specified number of times or indefinitely.
-This is commonly used with a a piezo buzzer to make a "beep beep" sound when a door is opened, or to make a repeating beep pattern for an alarm or audible warning.
+This is commonly used with a piezo buzzer to make a "beep beep" sound when a door is opened, or to make a repeating beep pattern for an alarm or audible warning.
It can also be used to blink lights.
DSB1820 temperature probes.
diff --git a/bundles/org.openhab.binding.konnected/pom.xml b/bundles/org.openhab.binding.konnected/pom.xml
index eb2aea20e61b9..8d87f5e2dd914 100644
--- a/bundles/org.openhab.binding.konnected/pom.xml
+++ b/bundles/org.openhab.binding.konnected/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.konnected
diff --git a/bundles/org.openhab.binding.konnected/src/main/feature/feature.xml b/bundles/org.openhab.binding.konnected/src/main/feature/feature.xml
index 2697c1f590c83..ce6d9a129ff7f 100644
--- a/bundles/org.openhab.binding.konnected/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.konnected/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedBindingConstants.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedBindingConstants.java
index 90d771421a67b..7c85e78bbbb26 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedBindingConstants.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedConfiguration.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedConfiguration.java
index b568ff1999ab8..45359f2aa28e5 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedConfiguration.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHTTPUtils.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHTTPUtils.java
index a6462d901a3f5..f8bb67a340674 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHTTPUtils.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHTTPUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHandlerFactory.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHandlerFactory.java
index 7b4cdc2d7da1c..0a2c2fbe30af8 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHandlerFactory.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHttpRetryExceeded.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHttpRetryExceeded.java
index f1ede107940c3..552cf77f24a35 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHttpRetryExceeded.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/KonnectedHttpRetryExceeded.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/discovery/KonnectedUPnPServer.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/discovery/KonnectedUPnPServer.java
index c6b9bb24a5368..c74ff5ab94e9a 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/discovery/KonnectedUPnPServer.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/discovery/KonnectedUPnPServer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModuleGson.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModuleGson.java
index 2e59cb08d1152..4abcbd6d951b7 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModuleGson.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModuleGson.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModulePayload.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModulePayload.java
index b95783fe7f0c4..85f52ad7b206c 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModulePayload.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/gson/KonnectedModulePayload.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/handler/KonnectedHandler.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/handler/KonnectedHandler.java
index eaa72c2dd54b9..6f1be0343b7f5 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/handler/KonnectedHandler.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/handler/KonnectedHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedHTTPServlet.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedHTTPServlet.java
index 966cfc52a2cb3..09e7f83d5a480 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedHTTPServlet.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedHTTPServlet.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedWebHookFail.java b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedWebHookFail.java
index 733b5214378e9..f2059db3a6967 100644
--- a/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedWebHookFail.java
+++ b/bundles/org.openhab.binding.konnected/src/main/java/org/openhab/binding/konnected/internal/servlet/KonnectedWebHookFail.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/config/config.xml b/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/config/config.xml
index 94a6bfacca459..5451820b401a2 100644
--- a/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/config/config.xml
+++ b/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/config/config.xml
@@ -10,13 +10,13 @@
-
+
When set to false the Led on the device won't blink during transmission.truetrue
-
+
If set to false the device will not respond to discovery requests via UPnP. Make sure you have statically assigned an IP address to the module before turning this setting off. See https://help.konnected.io/support/solutions/articles/32000023968-disabling-device-discoverytruetrue
diff --git a/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/thing/thing-types.xml
index 53407d6da7ace..8ea88a9992c89 100644
--- a/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/thing/thing-types.xml
+++ b/bundles/org.openhab.binding.konnected/src/main/resources/ESH-INF/thing/thing-types.xml
@@ -13,7 +13,7 @@
Zone 6 Sensor
-
+
diff --git a/bundles/org.openhab.binding.kostalinverter/NOTICE b/bundles/org.openhab.binding.kostalinverter/NOTICE
index 0c13fa7419c02..0ca708bef198a 100644
--- a/bundles/org.openhab.binding.kostalinverter/NOTICE
+++ b/bundles/org.openhab.binding.kostalinverter/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.kostalinverter/README.md b/bundles/org.openhab.binding.kostalinverter/README.md
index 9ef47dba72684..8d01c6ab51f2b 100644
--- a/bundles/org.openhab.binding.kostalinverter/README.md
+++ b/bundles/org.openhab.binding.kostalinverter/README.md
@@ -155,7 +155,9 @@ All third generation inverters require to define 3 mandatory configuration param
| refreshInternalInSeconds | Defines how often the device is polled for new values | Integer | Seconds | 30 | 30 |
If you are using the hostname instead of the IP address, please make sure your DNS is configuration correctly!
-The refresh interval should be chosen wisely. To small interval may led to high workload for the inverter. From my testing I recommend a interval of 30 seconds.
+The refresh interval should be chosen wisely.
+To small interval may led to high workload for the inverter.
+It is recommended to use an interval of 30 seconds.
Full sample of thing configuration:
diff --git a/bundles/org.openhab.binding.kostalinverter/pom.xml b/bundles/org.openhab.binding.kostalinverter/pom.xml
index 11901e244af55..f2384cfbbdf98 100644
--- a/bundles/org.openhab.binding.kostalinverter/pom.xml
+++ b/bundles/org.openhab.binding.kostalinverter/pom.xml
@@ -1,12 +1,11 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.kostalinverter
@@ -18,7 +17,7 @@
org.jsoupjsoup1.8.3
- provided
+ compile
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/feature/feature.xml b/bundles/org.openhab.binding.kostalinverter/src/main/feature/feature.xml
index 3f0f939c68cc1..de27f2842de5d 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/feature/feature.xml
@@ -1,10 +1,9 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
- mvn:org.jsoup/jsoup/1.8.3mvn:org.openhab.addons.bundles/org.openhab.binding.kostalinverter/${project.version}
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/KostalInverterFactory.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/KostalInverterFactory.java
index b1c9abb1ebf40..0706235229006 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/KostalInverterFactory.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/KostalInverterFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/ChannelConfig.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/ChannelConfig.java
index 3630c3dab8bab..1265c900e6175 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/ChannelConfig.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/ChannelConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/SourceConfig.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/SourceConfig.java
index d81ad9430deb9..baac41c012708 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/SourceConfig.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/SourceConfig.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/WebscrapeHandler.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/WebscrapeHandler.java
index 8c497f67abfec..37fcfb8864240 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/WebscrapeHandler.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/firstgeneration/WebscrapeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationBindingConstants.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationBindingConstants.java
index 6acf5deb2bdf9..f797cfc5a27c4 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationBindingConstants.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelDatatypes.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelDatatypes.java
index 51b57e88df851..fbec9a00430d0 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelDatatypes.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelDatatypes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelMappingToWebApi.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelMappingToWebApi.java
index 790ab493e6aa7..dd4579570074b 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelMappingToWebApi.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationChannelMappingToWebApi.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationConfiguration.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationConfiguration.java
index 7a50d3eb8fd4d..2c9de7f80c876 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationConfiguration.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationEncryptionHelper.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationEncryptionHelper.java
index ffc7fcf19620f..63ab7feb3658d 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationEncryptionHelper.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationEncryptionHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHandler.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHandler.java
index 047a1868930f7..caf13463817af 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHandler.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHttpHelper.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHttpHelper.java
index aa41a7886d4b7..f8ef554bef911 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHttpHelper.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationHttpHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationInverterTypes.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationInverterTypes.java
index 5f122c357ae26..985e191b70010 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationInverterTypes.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationInverterTypes.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationMappingInverterToChannel.java b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationMappingInverterToChannel.java
index dd445b956a86e..a9d4bbf768eab 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationMappingInverterToChannel.java
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/internal/kostal/inverter/thirdgeneration/ThirdGenerationMappingInverterToChannel.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/config/ThirdGeneration.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/config/ThirdGeneration.xml
index 9692a695be144..33e55d0be29d0 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/config/ThirdGeneration.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/config/ThirdGeneration.xml
@@ -5,7 +5,7 @@ xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https:
network-address
-
+
Enter the IP address or the hostname of the inverter. Note that DNS resolution must work properly to identify the inverter by its name
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/Channels.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/Channels.xml
index 790b358734fc9..b55b96c61e8dc 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/Channels.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/Channels.xml
@@ -10,7 +10,7 @@
Number:Energy
-
+
Current DC power of the inverterEnergy
@@ -135,7 +135,7 @@
Number:Energy
-
+
Current AC power of the inverterEnergy
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PIKOIQ85.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PIKOIQ85.xml
index a08fdc3d3d29d..52732f0d11ba3 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PIKOIQ85.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PIKOIQ85.xml
@@ -71,4 +71,4 @@
-
\ No newline at end of file
+
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHBATTERY.xml
index 69a1a28a307fd..33e4199b8365d 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 10.0 solar inverter (with battery attached on PV string 3)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHOUTBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHOUTBATTERY.xml
index 0ea29cfef9113..e4fabd5dbf4ef 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHOUTBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS100WITHOUTBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 10.0 solar inverter (no battery attached)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHBATTERY.xml
index bb824755354ca..b3171753a6edc 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 4.2 solar inverter (with battery attached on PV string 3)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHOUTBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHOUTBATTERY.xml
index ad0d293beed6f..8c3042bd83f61 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHOUTBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS42WITHOUTBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 4.2 solar inverter (no battery attached)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHBATTERY.xml
index 65d8708441e07..4ded8b0ce1282 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 5.5 solar inverter (with battery attached on PV string 3)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHOUTBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHOUTBATTERY.xml
index e7ab8f956a260..052e795a3466d 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHOUTBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS55WITHOUTBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 5.5 solar inverter (no battery attached)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHBATTERY.xml
index 66382c3915788..c96783309b61d 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 7.0 solar inverter (with battery attached on PV string 3)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHOUTBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHOUTBATTERY.xml
index 7dcc8a67ab8ad..6e73eed746c66 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHOUTBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS70WITHOUTBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 7.0 solar inverter (no battery attached)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHBATTERY.xml
index ad987eb3419f0..957ef414cc23a 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 8.5 solar inverter (with battery attached on PV string 3)Inverter
diff --git a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHOUTBATTERY.xml b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHOUTBATTERY.xml
index 459eb6ff67037..31483ab8aabef 100644
--- a/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHOUTBATTERY.xml
+++ b/bundles/org.openhab.binding.kostalinverter/src/main/resources/ESH-INF/thing/PLENTICOREPLUS85WITHOUTBATTERY.xml
@@ -4,7 +4,7 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
-
+
Bindings for the KOSTAL PIKO PLENTICORE plus 8.5 solar inverter (no battery attached)Inverter
diff --git a/bundles/org.openhab.binding.lametrictime/NOTICE b/bundles/org.openhab.binding.lametrictime/NOTICE
index e983197d63d27..6e0a5bb9c3454 100644
--- a/bundles/org.openhab.binding.lametrictime/NOTICE
+++ b/bundles/org.openhab.binding.lametrictime/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.lametrictime/README.md b/bundles/org.openhab.binding.lametrictime/README.md
index c73f8791f3fd0..53f58ecaef27e 100644
--- a/bundles/org.openhab.binding.lametrictime/README.md
+++ b/bundles/org.openhab.binding.lametrictime/README.md
@@ -1,6 +1,6 @@
# LaMetric Binding
-The LaMetric binding allows to connect openHab to LaMetric Time connected clock devices, providing following features:
+The LaMetric binding allows to connect openHAB to LaMetric Time connected clock devices, providing following features:
* Control the LaMetric Time Device
* Control Display Brightness
@@ -16,13 +16,13 @@ The device acts as a bridge and is exposed as "LaMetric Time" Thing.
The "LaMetric Time" Thing is directly responsible for device operations which include the display, audio, bluetooth, and notifications.
All apps are implemented as separate things under the bridge.
-| App | Thing Type | Description |
-|-------------------|--------------|---------------------------------------------------------------|
-| Clock | clockApp | Clock that dispays time and date |
-| Timer | countdownApp | A countdown timer that counts by seconds |
-| Radio | radioApp | Streaming radio player |
-| Stopwatch | stopwatchApp | Stopwatch that counts up by seconds |
-| Weather | weatherApp | Current weather conditions as well as a forecast |
+| App | Thing Type | Description |
+|-------------------|--------------|--------------------------------------------------|
+| Clock | clockApp | Clock that dispays time and date |
+| Timer | countdownApp | A countdown timer that counts by seconds |
+| Radio | radioApp | Streaming radio player |
+| Stopwatch | stopwatchApp | Stopwatch that counts up by seconds |
+| Weather | weatherApp | Current weather conditions as well as a forecast |
## Discovery
@@ -125,7 +125,7 @@ They exist as one-way communication only.
## How Tos
The following configuration examples assume the device was added with the thing id `lametrictime:device:demo`.
-Replace the thing id in all the configurations with your real thing id which can be looked up via paper UI.
+Replace the thing id in all the configurations with your real thing id which can be looked up via Paper UI.
### Notifications
diff --git a/bundles/org.openhab.binding.lametrictime/pom.xml b/bundles/org.openhab.binding.lametrictime/pom.xml
index ce2b9db8e409f..0ddf434e8ebe6 100644
--- a/bundles/org.openhab.binding.lametrictime/pom.xml
+++ b/bundles/org.openhab.binding.lametrictime/pom.xml
@@ -1,24 +1,33 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.lametrictimeopenHAB Add-ons :: Bundles :: LaMetric Time Binding
+
+ provider-gson
+
+
org.syphrlametrictime-api0.1.0
- provided
+ compile
+
+
+ com.eclipsesource.jaxrs
+ provider-gson
+ 2.3
+ compile
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/feature/feature.xml b/bundles/org.openhab.binding.lametrictime/src/main/feature/feature.xml
index 7cc27d619766a..d6f4b6aa4f2aa 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.lametrictime/src/main/feature/feature.xml
@@ -1,12 +1,11 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-baseopenhab-transport-upnpmvn:com.eclipsesource.jaxrs/provider-gson/2.3
- mvn:org.syphr/lametrictime-api/0.1.0mvn:org.openhab.addons.bundles/org.openhab.binding.lametrictime/${project.version}
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeBindingConstants.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeBindingConstants.java
index e134a64468182..0901a248ffc48 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeBindingConstants.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeConfigStatusMessage.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeConfigStatusMessage.java
index 84ba963215d66..07eb93f05cedd 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeConfigStatusMessage.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeConfigStatusMessage.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeHandlerFactory.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeHandlerFactory.java
index 1fa5b7ba66fb6..b2ed287b0929f 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeHandlerFactory.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeUtil.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeUtil.java
index a991c50303eda..0c06fcb02502c 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeUtil.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/LaMetricTimeUtil.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/StateDescriptionOptionsProvider.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/StateDescriptionOptionsProvider.java
index 73f368fd57b06..0fcac81d43475 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/StateDescriptionOptionsProvider.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/StateDescriptionOptionsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/WidgetRef.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/WidgetRef.java
index 79a6795a28bd0..9683bfe715555 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/WidgetRef.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/WidgetRef.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeAppConfiguration.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeAppConfiguration.java
index 53afab381b7e8..dc5d2d6ed3809 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeAppConfiguration.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeAppConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeConfiguration.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeConfiguration.java
index 515ce55181893..85f1793655560 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeConfiguration.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/config/LaMetricTimeConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeAppDiscoveryService.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeAppDiscoveryService.java
index ba96c82b45467..ef0c74b44e2c1 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeAppDiscoveryService.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeAppDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeDiscoveryParticipant.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeDiscoveryParticipant.java
index 0804e4dc0ce1e..ceff442cdbccd 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeDiscoveryParticipant.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/discovery/LaMetricTimeDiscoveryParticipant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/AbstractLaMetricTimeAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/AbstractLaMetricTimeAppHandler.java
index 26b406ac937ef..caa0670b2bb34 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/AbstractLaMetricTimeAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/AbstractLaMetricTimeAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/ClockAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/ClockAppHandler.java
index 9a2c1997135ed..bef143bfa56e3 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/ClockAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/ClockAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/CountdownAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/CountdownAppHandler.java
index be1b387e22d84..fd47e0b0e9f58 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/CountdownAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/CountdownAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeAppHandler.java
index b23ad4dedaaf4..eb9a9b5e3069f 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java
index ab07a06b65152..4a027d3d6e1b2 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/LaMetricTimeHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/RadioAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/RadioAppHandler.java
index 46313361ae8be..2d8e9913a307c 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/RadioAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/RadioAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/StopwatchAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/StopwatchAppHandler.java
index 6fe5c9aced7ec..14ad85240a8f1 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/StopwatchAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/StopwatchAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/WeatherAppHandler.java b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/WeatherAppHandler.java
index 55fe43e5f7cbe..b8b9127c5d0f2 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/WeatherAppHandler.java
+++ b/bundles/org.openhab.binding.lametrictime/src/main/java/org/openhab/binding/lametrictime/internal/handler/WeatherAppHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lametrictime/src/main/resources/ESH-INF/thing/device.xml b/bundles/org.openhab.binding.lametrictime/src/main/resources/ESH-INF/thing/device.xml
index c692adb1fbe5d..82b128e5e73d9 100644
--- a/bundles/org.openhab.binding.lametrictime/src/main/resources/ESH-INF/thing/device.xml
+++ b/bundles/org.openhab.binding.lametrictime/src/main/resources/ESH-INF/thing/device.xml
@@ -31,7 +31,7 @@
Host name or network address of the LaMetric Time
-
+
API key to access LaMetric Timepassword
diff --git a/bundles/org.openhab.binding.leapmotion/.classpath b/bundles/org.openhab.binding.leapmotion/.classpath
index bf682f222d418..cd04a794bfd47 100644
--- a/bundles/org.openhab.binding.leapmotion/.classpath
+++ b/bundles/org.openhab.binding.leapmotion/.classpath
@@ -11,7 +11,6 @@
-
diff --git a/bundles/org.openhab.binding.leapmotion/NOTICE b/bundles/org.openhab.binding.leapmotion/NOTICE
index c5c4f5a3dafb3..f66c50218f1b7 100644
--- a/bundles/org.openhab.binding.leapmotion/NOTICE
+++ b/bundles/org.openhab.binding.leapmotion/NOTICE
@@ -10,7 +10,7 @@ https://www.eclipse.org/legal/epl-2.0/.
== Source Code
-https://github.com/openhab/openhab2-addons
+https://github.com/openhab/openhab-addons
== Third-party Content
diff --git a/bundles/org.openhab.binding.leapmotion/README.md b/bundles/org.openhab.binding.leapmotion/README.md
index 7c3343dee2d16..05248bab468ca 100644
--- a/bundles/org.openhab.binding.leapmotion/README.md
+++ b/bundles/org.openhab.binding.leapmotion/README.md
@@ -2,7 +2,7 @@
The [Leap Motion](https://www.leapmotion.com/) controller is a gesture sensoring device that uses stereoscopic cameras and is connected through USB.
As all processing is done in software, it requires quite some powerful computer, such that it unfortunately does not work on single-board computers such as the Raspberry Pi.
-In fact, the binding is currently only working on MacOS computers with Intel x86 processors.
+In fact, the binding is currently only working on macOS computers with Intel x86 processors.
## Supported Things
diff --git a/bundles/org.openhab.binding.leapmotion/lib/LeapJava.jar b/bundles/org.openhab.binding.leapmotion/lib/LeapJava.jar
deleted file mode 100644
index c6bebfda18d6e..0000000000000
Binary files a/bundles/org.openhab.binding.leapmotion/lib/LeapJava.jar and /dev/null differ
diff --git a/bundles/org.openhab.binding.leapmotion/pom.xml b/bundles/org.openhab.binding.leapmotion/pom.xml
index 59b4e85f0e88d..61a7f1f8fa04a 100644
--- a/bundles/org.openhab.binding.leapmotion/pom.xml
+++ b/bundles/org.openhab.binding.leapmotion/pom.xml
@@ -1,16 +1,23 @@
-
-
+4.0.0org.openhab.addons.bundlesorg.openhab.addons.reactor.bundles
- 2.5.0-SNAPSHOT
+ 2.5.2-SNAPSHOTorg.openhab.binding.leapmotionopenHAB Add-ons :: Bundles :: Leap Motion Binding
+
+
+ com.leapmotion.leap
+ leap-java
+ 2.0.0
+ compile
+
+
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/feature/feature.xml b/bundles/org.openhab.binding.leapmotion/src/main/feature/feature.xml
index c81cccde16324..f5f9059438ee4 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/feature/feature.xml
+++ b/bundles/org.openhab.binding.leapmotion/src/main/feature/feature.xml
@@ -1,6 +1,6 @@
- mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${project.version}/xml/features
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/featuresopenhab-runtime-base
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionBindingConstants.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionBindingConstants.java
index 62efa5cd4d586..cdf0485080da9 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionBindingConstants.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionBindingConstants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionColorProfile.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionColorProfile.java
index 9a669403837c5..4e64e028a5420 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionColorProfile.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionColorProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionDimmerProfile.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionDimmerProfile.java
index 942a007a98e94..25fba73fcb0ba 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionDimmerProfile.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionDimmerProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionHandlerFactory.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionHandlerFactory.java
index 9e034ef80b005..94a9e45fca359 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionHandlerFactory.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionHandlerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionProfileFactory.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionProfileFactory.java
index ed9853a21bf3b..0559433f614a9 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionProfileFactory.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionProfileFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionSwitchProfile.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionSwitchProfile.java
index 78d1b4b74e8d2..b650c2933657f 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionSwitchProfile.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/LeapMotionSwitchProfile.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/discovery/LeapMotionDiscoveryService.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/discovery/LeapMotionDiscoveryService.java
index cf4095f96d50b..0c2807d5d0576 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/discovery/LeapMotionDiscoveryService.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/discovery/LeapMotionDiscoveryService.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/handler/LeapMotionHandler.java b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/handler/LeapMotionHandler.java
index c312dc079a824..8659ecf37bf00 100644
--- a/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/handler/LeapMotionHandler.java
+++ b/bundles/org.openhab.binding.leapmotion/src/main/java/org/openhab/binding/leapmotion/internal/handler/LeapMotionHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2010-2019 Contributors to the openHAB project
+ * Copyright (c) 2010-2020 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
diff --git a/bundles/org.openhab.binding.lghombot/.classpath b/bundles/org.openhab.binding.lghombot/.classpath
new file mode 100644
index 0000000000000..a5d95095ccaaf
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/.classpath
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.binding.lghombot/.project b/bundles/org.openhab.binding.lghombot/.project
new file mode 100644
index 0000000000000..d69b7494b89f2
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.binding.lghombot
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.binding.lghombot/NOTICE b/bundles/org.openhab.binding.lghombot/NOTICE
new file mode 100644
index 0000000000000..38d625e349232
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/NOTICE
@@ -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
diff --git a/bundles/org.openhab.binding.lghombot/README.md b/bundles/org.openhab.binding.lghombot/README.md
new file mode 100644
index 0000000000000..6bf73bc9bb18b
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/README.md
@@ -0,0 +1,111 @@
+# LG HomBot Binding
+
+The binding integrates a modified LG HomBot VR6260 based vacuum robots.
+Details on how to modify your HomBot can be found at [roboter-forum.com](https://www.roboter-forum.com/index.php?thread/10009-lg-hombot-3-0-wlan-kamera-steuerung-per-weboberfläche/).
+The binding uses the HTTP service on port 6260 right now.
+Please take care when modifying your HomBot! This binding is a complement to a modified HomBot not an excuse to do the modification.
+Remember, You are responsible if You brick Your HomBot.
+
+## Supported Things
+
+Hacked LG HomBot series 62XX are supported.
+
+The service that the binding connects to is actually lg.srv found at [sourceforge.net](https://sourceforge.net/projects/lgsrv/) running on a HomBot.
+
+## Discovery
+
+The auto-discovery should hopefully find your HomBot, be aware that it will try to connect to port 6260 on all IP-addresses on your subnet.
+If you already know the IP-address of your HomBot you might as well just configure it.
+
+## Thing Configuration
+
+The thing only requires an IP-address to function, this could also be found using the discovery method.
+The parameter is called "ipAdress".
+
+You can also configure the polling interval in seconds by setting "pollingPeriod", and the network port of the server by using "port".
+
+## Channels
+
+
+| Channel Type ID | Item Type | Description | Read/Write |
+|-----------------|-----------|--------------------------------------------------------------------------|------------|
+| state | String | Current state of the HomBot. | R |
+| battery | Number | Current battery charge. | R |
+| cpuLoad | Number | Current CPU load. | R |
+| srvMem | Number | Current server memory load. | R |
+| clean | Switch | Start cleaning / return home. | RW |
+| start | Switch | Start cleaning. | RW |
+| home | Switch | Send HomBot home. | RW |
+| pause | Switch | Pause current activity. | RW |
+| turbo | Switch | Turn turbo on/off. | RW |
+| repeat | Switch | Turn repeat cleaning on/off. | RW |
+| mode | String | Current cleaning mode. | RW |
+| nickname | String | Nickname of the HomBot. | R |
+| move | String | Manually control the HomBot. | RW |
+| camera | Image | Image from the top camera. | R |
+| lastClean | DateTime | Date of last clean. | R |
+| map | Image | Image of clean area. | R |
+| monday | DateTime | Time when cleaning is on Mondays. | R |
+| tuesday | DateTime | Time when cleaning is on Tuesdays. | R |
+| wednsday | DateTime | Time when cleaning is on Wednsdays. | R |
+| thursday | DateTime | Time when cleaning is on Thursdays. | R |
+| friday | DateTime | Time when cleaning is on Fridays. | R |
+| saturday | DateTime | Time when cleaning is on Saturdays. | R |
+| sunday | DateTime | Time when cleaning is on Sundays. | R |
+
+## Full Example
+
+Example of how to configure a thing.
+
+demo.thing
+
+```
+Thing lghombot:LGHomBot:mycleanerbot "LGHomBot" @ "Living Room" [ ipAdress="192.168.0.2", pollingPeriod="3", port="6260" ]
+```
+
+Here are some examples on how to map the channels to items.
+
+demo.items:
+
+```
+String HomBot_State "State [%s]" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:state" }
+Number HomBot_Battery "Battery [%d%%]" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:battery" }
+Switch HomBot_Clean "Clean" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:clean" }
+Switch HomBot_Start "Start" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:start" }
+Switch HomBot_Home "Home" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:home" }
+Switch HomBot_Pause "Pause" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:pause" }
+Switch HomBot_Turbo "Turbo" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:turbo" }
+Switch HomBot_Repeat "Repeat" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:repeat" }
+String HomBot_CleanMode "Clean mode [%s]" { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:mode" }
+String HomBot_Nickname { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:nickname" }
+Image HomBot_Camera { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:camera" }
+DateTime HomBot_LastClean { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:lastClean" }
+Image HomBot_Map { channel="lghombot:LGHomBot:a4_24_56_8f_2c_5b:map" }
+```
+
+demo.sitemap:
+
+```
+sitemap demo label="Main Menu"
+{
+ Frame label="HomBot" {
+ Text item=HomBot_State
+ Text item=HomBot_Battery
+ Switch item=HomBot_Clean
+ Switch item=HomBot_Start
+ Switch item=HomBot_Home
+ Switch item=HomBot_Pause
+ Switch item=HomBot_Turbo
+ Switch item=HomBot_Repeat
+ Selection item=HomBot_CleanMode mappings=[
+ "ZZ"="Zigzag mode",
+ "SB"="Cell by cell mode",
+ "SPOT"="Spiral spot mode",
+ "MACRO_SECTOR" = "My space mode" ]
+ Text item=HomBot_Nickname
+ Image item=HomBot_Camera
+ DateTime item=HomBot_LastClean
+ Image item=HomBot_Map
+ }
+}
+```
diff --git a/bundles/org.openhab.binding.lghombot/pom.xml b/bundles/org.openhab.binding.lghombot/pom.xml
new file mode 100644
index 0000000000000..21c32179cbe3c
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+
+ org.openhab.addons.bundles
+ org.openhab.addons.reactor.bundles
+ 2.5.2-SNAPSHOT
+
+
+ org.openhab.binding.lghombot
+
+ openHAB Add-ons :: Bundles :: LG HomBot Binding
+
+
diff --git a/bundles/org.openhab.binding.lghombot/src/main/feature/feature.xml b/bundles/org.openhab.binding.lghombot/src/main/feature/feature.xml
new file mode 100644
index 0000000000000..82e20407ed8f9
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/feature/feature.xml
@@ -0,0 +1,9 @@
+
+
+ mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features
+
+
+ openhab-runtime-base
+ mvn:org.openhab.addons.bundles/org.openhab.binding.lghombot/${project.version}
+
+
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/CameraUtil.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/CameraUtil.java
new file mode 100644
index 0000000000000..e8dc949d98cfc
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/CameraUtil.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal;
+
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import javax.imageio.ImageIO;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.core.library.types.RawType;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link CameraUtil} is responsible for parsing the raw yuv 422 image from a LG HomBot.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+public class CameraUtil {
+
+ private static final Logger logger = LoggerFactory.getLogger(CameraUtil.class);
+
+ private CameraUtil() {
+ // No need to instance this class.
+ }
+
+ /**
+ * This converts a non-interleaved YUV-422 image to a JPEG image.
+ *
+ * @param yuvData The uncompressed YUV data
+ * @param width The width of image.
+ * @param height The height of the image.
+ * @return A JPEG image as a State
+ */
+ static State parseImageFromBytes(byte[] yuvData, int width, int height) {
+ final int size = width * height;
+
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+
+ for (int i = 0; i < size; i++) {
+ double y = yuvData[i] & 0xFF;
+ double u = yuvData[size + i / 2] & 0xFF;
+ double v = yuvData[(int) (size * 1.5 + i / 2.0)] & 0xFF;
+
+ int r = Math.min(Math.max((int) (y + 1.371 * (v - 128)), 0), 255); // red
+ int g = Math.min(Math.max((int) (y - 0.336 * (u - 128) - 0.698 * (v - 128)), 0), 255); // green
+ int b = Math.min(Math.max((int) (y + 1.732 * (u - 128)), 0), 255); // blue
+
+ int p = (r << 16) | (g << 8) | b; // pixel
+ image.setRGB(i % width, i / width, p);
+ }
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ if (!ImageIO.write(image, "jpg", baos)) {
+ logger.debug("Couldn't find JPEG writer.");
+ }
+ } catch (IOException e) {
+ logger.info("IOException creating JPEG image.", e);
+ }
+ byte[] byteArray = baos.toByteArray();
+ if (byteArray != null && byteArray.length > 0) {
+ return new RawType(byteArray, "image/jpeg");
+ } else {
+ return UnDefType.UNDEF;
+ }
+ }
+
+}
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotBindingConstants.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotBindingConstants.java
new file mode 100644
index 0000000000000..bdfd0dc19ce93
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotBindingConstants.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+
+/**
+ * The {@link LGHomBotBindingConstants} class defines common constants, which are
+ * used across the whole binding.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+public final class LGHomBotBindingConstants {
+
+ private static final String BINDING_ID = "lghombot";
+
+ // List of all Thing Type UIDs
+ public static final ThingTypeUID THING_TYPE_LGHOMBOT = new ThingTypeUID(BINDING_ID, "LGHomBot");
+
+ public static final Set SUPPORTED_THING_TYPES_UIDS = Collections.singleton(THING_TYPE_LGHOMBOT);
+
+ // List of all Channel ids
+ static final String CHANNEL_STATE = "state";
+ static final String CHANNEL_BATTERY = "battery";
+ static final String CHANNEL_CPU_LOAD = "cpuLoad";
+ static final String CHANNEL_SRV_MEM = "srvMem";
+ static final String CHANNEL_CLEAN = "clean";
+ static final String CHANNEL_START = "start";
+ static final String CHANNEL_HOME = "home";
+ static final String CHANNEL_PAUSE = "pause";
+ static final String CHANNEL_MODE = "mode";
+ static final String CHANNEL_TURBO = "turbo";
+ static final String CHANNEL_REPEAT = "repeat";
+ static final String CHANNEL_NICKNAME = "nickname";
+ static final String CHANNEL_MOVE = "move";
+ static final String CHANNEL_CAMERA = "camera";
+ static final String CHANNEL_LAST_CLEAN = "lastClean";
+ static final String CHANNEL_MAP = "map";
+ static final String CHANNEL_MONDAY = "monday";
+ static final String CHANNEL_TUESDAY = "tuesday";
+ static final String CHANNEL_WEDNESDAY = "wednesday";
+ static final String CHANNEL_THURSDAY = "thursday";
+ static final String CHANNEL_FRIDAY = "friday";
+ static final String CHANNEL_SATURDAY = "saturday";
+ static final String CHANNEL_SUNDAY = "sunday";
+
+ // List of all HomBot states
+ static final String HBSTATE_UNKNOWN = "UNKNOWN";
+ static final String HBSTATE_WORKING = "WORKING";
+ static final String HBSTATE_BACKMOVING = "BACKMOVING";
+ static final String HBSTATE_BACKMOVING_INIT = "BACKMOVING_INIT";
+ static final String HBSTATE_BACKMOVING_JOY = "BACKMOVING_JOY";
+ static final String HBSTATE_PAUSE = "PAUSE";
+ static final String HBSTATE_STANDBY = "STANDBY";
+ static final String HBSTATE_HOMING = "HOMING";
+ static final String HBSTATE_DOCKING = "DOCKING";
+ static final String HBSTATE_CHARGING = "CHARGING";
+ static final String HBSTATE_DIAGNOSIS = "DIAGNOSIS";
+ static final String HBSTATE_RESERVATION = "RESERVATION";
+ static final String HBSTATE_ERROR = "ERROR";
+
+ /**
+ * Default port number HomBot uses.
+ */
+ public static final int DEFAULT_HOMBOT_PORT = 6260;
+
+ private LGHomBotBindingConstants() {
+ // No need to instance this class.
+ }
+
+}
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotConfiguration.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotConfiguration.java
new file mode 100644
index 0000000000000..eded25ef2e42d
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotConfiguration.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.openhab.binding.lghombot.internal.discovery.LGHomBotDiscovery;
+
+/**
+ * The {@link LGHomBotConfiguration} class contains fields mapping thing configuration parameters.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+public class LGHomBotConfiguration {
+
+ /**
+ * Constant field used in {@link LGHomBotDiscovery} to set the configuration property during discovery. Value of
+ * this field needs to match {@link #ipAddress}
+ */
+ public static final String IP_ADDRESS = "ipAddress";
+
+ /**
+ * IP Address (or host name) of HomBot
+ */
+ public String ipAddress = "";
+
+ /**
+ * Port used by the HomBot
+ */
+ public int port = LGHomBotBindingConstants.DEFAULT_HOMBOT_PORT;
+
+ /**
+ * Polling time (in seconds) to refresh state from the HomBot itself.
+ */
+ public int pollingPeriod = 3;
+
+}
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandler.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandler.java
new file mode 100644
index 0000000000000..478a3d06134d2
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandler.java
@@ -0,0 +1,662 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal;
+
+import static org.openhab.binding.lghombot.internal.LGHomBotBindingConstants.*;
+
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.time.DateTimeException;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import javax.imageio.ImageIO;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jetty.util.UrlEncoded;
+import org.eclipse.smarthome.core.library.types.DateTimeType;
+import org.eclipse.smarthome.core.library.types.DecimalType;
+import org.eclipse.smarthome.core.library.types.OnOffType;
+import org.eclipse.smarthome.core.library.types.RawType;
+import org.eclipse.smarthome.core.library.types.StringType;
+import org.eclipse.smarthome.core.thing.ChannelUID;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingStatus;
+import org.eclipse.smarthome.core.thing.ThingStatusDetail;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandler;
+import org.eclipse.smarthome.core.types.Command;
+import org.eclipse.smarthome.core.types.RefreshType;
+import org.eclipse.smarthome.core.types.State;
+import org.eclipse.smarthome.core.types.UnDefType;
+import org.eclipse.smarthome.io.net.http.HttpUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The {@link LGHomBotHandler} is responsible for handling commands, which are
+ * sent to one of the channels.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+public class LGHomBotHandler extends BaseThingHandler {
+
+ private final Logger logger = LoggerFactory.getLogger(LGHomBotHandler.class);
+
+ // This is setup in initialize().
+ private LGHomBotConfiguration config = new LGHomBotConfiguration();
+
+ private @Nullable ScheduledFuture> refreshTimer;
+
+ // State of HomBot
+ private String currentState = "";
+ private String currentMode = "";
+ private String currentNickname = "";
+ private String currentSrvMem = "";
+ private DecimalType currentBattery = DecimalType.ZERO;
+ private DecimalType currentCPULoad = DecimalType.ZERO;
+ private OnOffType currentCleanState = OnOffType.OFF;
+ private OnOffType currentStartState = OnOffType.OFF;
+ private OnOffType currentHomeState = OnOffType.OFF;
+ private OnOffType currentTurbo = OnOffType.OFF;
+ private OnOffType currentRepeat = OnOffType.OFF;
+ private State currentImage = UnDefType.UNDEF;
+ private State currentMap = UnDefType.UNDEF;
+ private DateTimeType currentLastClean = new DateTimeType();
+ private String currentMonday = "";
+ private String currentTuesday = "";
+ private String currentWednesday = "";
+ private String currentThursday = "";
+ private String currentFriday = "";
+ private String currentSaturday = "";
+ private String currentSunday = "";
+
+ private final DateTimeFormatter formatterLG = DateTimeFormatter.ofPattern("yyyy/MM/dd/HH/mm/ss");
+ private boolean disposed = false;
+ private boolean refreshSchedule = false;
+
+ public LGHomBotHandler(Thing thing) {
+ super(thing);
+ }
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ disposed = true;
+ }
+
+ @Override
+ public void handleCommand(ChannelUID channelUID, Command command) {
+ if (command.equals(RefreshType.REFRESH)) {
+ refreshFromState(channelUID);
+ } else {
+ switch (channelUID.getId()) {
+ case CHANNEL_CLEAN:
+ if (command == OnOffType.ON) {
+ if (currentState.equals(HBSTATE_HOMING)) {
+ sendHomBotCommand("PAUSE");
+ }
+ sendHomBotCommand("CLEAN_START");
+ } else if (command == OnOffType.OFF) {
+ sendHomBotCommand("HOMING");
+ }
+ break;
+ case CHANNEL_START:
+ if (command == OnOffType.ON) {
+ sendHomBotCommand("CLEAN_START");
+ }
+ break;
+ case CHANNEL_HOME:
+ if (command == OnOffType.ON) {
+ sendHomBotCommand("HOMING");
+ }
+ break;
+ case CHANNEL_PAUSE:
+ if (command instanceof OnOffType) {
+ sendHomBotCommand("PAUSE");
+ }
+ break;
+ case CHANNEL_TURBO:
+ if (command == OnOffType.ON) {
+ sendHomBotCommand("TURBO", "true");
+ } else if (command == OnOffType.OFF) {
+ sendHomBotCommand("TURBO", "false");
+ }
+ break;
+ case CHANNEL_REPEAT:
+ if (command == OnOffType.ON) {
+ sendHomBotCommand("REPEAT", "true");
+ } else if (command == OnOffType.OFF) {
+ sendHomBotCommand("REPEAT", "false");
+ }
+ break;
+ case CHANNEL_MODE:
+ if (command instanceof StringType) {
+ switch (command.toString()) {
+ case "SB":
+ sendHomBotCommand("CLEAN_MODE", "CLEAN_SB");
+ break;
+ case "ZZ":
+ sendHomBotCommand("CLEAN_MODE", "CLEAN_ZZ");
+ break;
+ case "SPOT":
+ sendHomBotCommand("CLEAN_MODE", "CLEAN_SPOT");
+ break;
+ case "MACRO_SECTOR":
+ sendHomBotCommand("CLEAN_MODE", "CLEAN_MACRO_SECTOR");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case CHANNEL_MOVE:
+ if (command instanceof StringType) {
+ String commandString = command.toString();
+ switch (commandString) {
+ case "FORWARD":
+ case "FORWARD_LEFT":
+ case "FORWARD_RIGHT":
+ case "LEFT":
+ case "RIGHT":
+ case "BACKWARD":
+ case "BACKWARD_LEFT":
+ case "BACKWARD_RIGHT":
+ case "RELEASE":
+ sendHomBotJoystick(commandString);
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ default:
+ logger.debug("Command received for unknown channel {}: {}", channelUID.getId(), command);
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void initialize() {
+ disposed = false;
+ logger.debug("Initializing handler for LG HomBot");
+ config = getConfigAs(LGHomBotConfiguration.class);
+
+ setupRefreshTimer(0);
+ }
+
+ /**
+ * Sets up a refresh timer (using the scheduler) with the given interval.
+ *
+ * @param initialWaitTime The delay before the first refresh. Maybe 0 to immediately
+ * initiate a refresh.
+ */
+ private void setupRefreshTimer(int initialWaitTime) {
+ ScheduledFuture> localTimer = refreshTimer;
+ if (localTimer != null) {
+ localTimer.cancel(false);
+ }
+ refreshTimer = scheduler.scheduleWithFixedDelay(this::updateAllChannels, initialWaitTime, config.pollingPeriod,
+ TimeUnit.SECONDS);
+ }
+
+ private String buildHttpAddress(String path) {
+ return "http://" + config.ipAddress + ":" + config.port + path;
+ }
+
+ private void sendHomBotCommand(String command) {
+ String fullCmd = "/json.cgi?" + UrlEncoded.encodeString("{\"COMMAND\":\"" + command + "\"}");
+ sendCommand(fullCmd);
+ }
+
+ private void sendHomBotCommand(String command, String argument) {
+ String fullCmd = "/json.cgi?"
+ + UrlEncoded.encodeString("{\"COMMAND\":{\"" + command + "\":\"" + argument + "\"}}");
+ sendCommand(fullCmd);
+ }
+
+ private void sendHomBotJoystick(String command) {
+ String fullCmd = "/json.cgi?" + UrlEncoded.encodeString("{\"JOY\":\"" + command + "\"}");
+ sendCommand(fullCmd);
+ }
+
+ private @Nullable String sendCommand(String path) {
+ String url = buildHttpAddress(path);
+ String status = null;
+ try {
+ status = HttpUtil.executeUrl("GET", url, 1000);
+ if (getThing().getStatus() != ThingStatus.ONLINE) {
+ updateStatus(ThingStatus.ONLINE);
+ }
+ } catch (IOException e) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e.getMessage());
+ }
+ logger.trace("Status received: {}", status);
+ return status;
+ }
+
+ private void refreshFromState(ChannelUID channelUID) {
+ switch (channelUID.getId()) {
+ case CHANNEL_STATE:
+ updateState(channelUID, StringType.valueOf(currentState));
+ break;
+ case CHANNEL_CLEAN:
+ updateState(channelUID, currentCleanState);
+ break;
+ case CHANNEL_START:
+ updateState(channelUID, currentStartState);
+ break;
+ case CHANNEL_HOME:
+ updateState(channelUID, currentHomeState);
+ break;
+ case CHANNEL_BATTERY:
+ updateState(channelUID, currentBattery);
+ break;
+ case CHANNEL_CPU_LOAD:
+ updateState(channelUID, currentCPULoad);
+ break;
+ case CHANNEL_SRV_MEM:
+ updateState(channelUID, StringType.valueOf(currentSrvMem));
+ break;
+ case CHANNEL_TURBO:
+ updateState(channelUID, currentTurbo);
+ break;
+ case CHANNEL_REPEAT:
+ updateState(channelUID, currentRepeat);
+ break;
+ case CHANNEL_MODE:
+ updateState(channelUID, StringType.valueOf(currentMode));
+ break;
+ case CHANNEL_NICKNAME:
+ updateState(channelUID, StringType.valueOf(currentNickname));
+ break;
+ case CHANNEL_CAMERA:
+ parseImage();
+ updateState(channelUID, currentImage);
+ break;
+ case CHANNEL_LAST_CLEAN:
+ updateState(channelUID, currentLastClean);
+ break;
+ case CHANNEL_MAP:
+ parseMap();
+ updateState(channelUID, currentMap);
+ break;
+ case CHANNEL_MONDAY:
+ updateState(channelUID, StringType.valueOf(currentMonday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_TUESDAY:
+ updateState(channelUID, StringType.valueOf(currentTuesday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_WEDNESDAY:
+ updateState(channelUID, StringType.valueOf(currentWednesday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_THURSDAY:
+ updateState(channelUID, StringType.valueOf(currentThursday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_FRIDAY:
+ updateState(channelUID, StringType.valueOf(currentFriday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_SATURDAY:
+ updateState(channelUID, StringType.valueOf(currentSaturday));
+ refreshSchedule = true;
+ break;
+ case CHANNEL_SUNDAY:
+ updateState(channelUID, StringType.valueOf(currentSunday));
+ refreshSchedule = true;
+ break;
+ default:
+ logger.warn("Channel refresh for {} not implemented!", channelUID.getId());
+ }
+ }
+
+ private void updateAllChannels() {
+ if (disposed) {
+ return;
+ }
+ if (refreshSchedule) {
+ refreshSchedule = false;
+ fetchSchedule();
+ return;
+ }
+
+ String status = sendCommand("/status.txt");
+ if (status != null && !status.isEmpty()) {
+ boolean parsingOk = true;
+ String[] rows = status.split("\\r?\\n");
+ for (String row : rows) {
+ int idx = row.indexOf('=');
+ if (idx == -1) {
+ continue;
+ }
+ final String key = row.substring(0, idx);
+ String value = row.substring(idx + 1).replace("\"", "");
+ switch (key) {
+ case "JSON_ROBOT_STATE":
+ if (value.isEmpty()) {
+ value = HBSTATE_UNKNOWN;
+ }
+ if (!value.equals(currentState)) {
+ currentState = value;
+ updateState(CHANNEL_STATE, StringType.valueOf(value));
+
+ switch (value) {
+ case HBSTATE_WORKING:
+ case HBSTATE_BACKMOVING:
+ case HBSTATE_BACKMOVING_INIT:
+ currentCleanState = OnOffType.ON;
+ currentStartState = OnOffType.ON;
+ currentHomeState = OnOffType.OFF;
+ break;
+ case HBSTATE_HOMING:
+ case HBSTATE_DOCKING:
+ currentCleanState = OnOffType.OFF;
+ currentStartState = OnOffType.OFF;
+ currentHomeState = OnOffType.ON;
+ break;
+ default:
+ currentCleanState = OnOffType.OFF;
+ currentStartState = OnOffType.OFF;
+ currentHomeState = OnOffType.OFF;
+ break;
+ }
+ updateState(CHANNEL_CLEAN, currentCleanState);
+ updateState(CHANNEL_START, currentStartState);
+ updateState(CHANNEL_HOME, currentHomeState);
+ }
+ break;
+ case "JSON_BATTPERC":
+ try {
+ DecimalType battery = DecimalType.valueOf(value);
+ if (!battery.equals(currentBattery)) {
+ currentBattery = battery;
+ updateState(CHANNEL_BATTERY, battery);
+ }
+ } catch (NumberFormatException e) {
+ logger.debug("Couldn't parse Battery Percent.");
+ parsingOk = false;
+ }
+ break;
+ case "CPU_IDLE":
+ if (isLinked(CHANNEL_CPU_LOAD)) {
+ try {
+ DecimalType cpuLoad = new DecimalType(100 - Double.valueOf(value).longValue());
+ if (!cpuLoad.equals(currentCPULoad)) {
+ currentCPULoad = cpuLoad;
+ updateState(CHANNEL_CPU_LOAD, cpuLoad);
+ }
+ } catch (NumberFormatException e) {
+ logger.debug("Couldn't parse CPU Idle.");
+ parsingOk = false;
+ }
+ }
+ break;
+ case "LGSRV_MEMUSAGE":
+ if (!value.equals(currentSrvMem)) {
+ currentSrvMem = value;
+ updateState(CHANNEL_SRV_MEM, StringType.valueOf(value));
+ }
+ break;
+ case "JSON_TURBO":
+ OnOffType turbo = OnOffType.from("true".equalsIgnoreCase(value));
+ if (!turbo.equals(currentTurbo)) {
+ currentTurbo = turbo;
+ updateState(CHANNEL_TURBO, turbo);
+ }
+ break;
+ case "JSON_REPEAT":
+ OnOffType repeat = OnOffType.from("true".equalsIgnoreCase(value));
+ if (!repeat.equals(currentRepeat)) {
+ currentRepeat = repeat;
+ updateState(CHANNEL_REPEAT, repeat);
+ }
+ break;
+ case "JSON_MODE":
+ if (!value.equals(currentMode)) {
+ currentMode = value;
+ updateState(CHANNEL_MODE, StringType.valueOf(value));
+ }
+ break;
+ case "JSON_NICKNAME":
+ if (!value.equals(currentNickname)) {
+ currentNickname = value;
+ updateState(CHANNEL_NICKNAME, StringType.valueOf(value));
+ }
+ break;
+ case "CLREC_LAST_CLEAN":
+ if (value.length() < 19) {
+ logger.debug("Couldn't parse Last Clean from: String length: {}", value.length());
+ parsingOk = false;
+ break;
+ }
+ final String stringDate = value.substring(0, 19);
+ try {
+ LocalDateTime localDateTime = LocalDateTime.parse(stringDate, formatterLG);
+ ZonedDateTime date = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());
+ DateTimeType lastClean = new DateTimeType(date);
+ if (!lastClean.equals(currentLastClean)) {
+ currentLastClean = lastClean;
+ updateState(CHANNEL_LAST_CLEAN, lastClean);
+ }
+ } catch (DateTimeException e) {
+ logger.debug("Couldn't parse Last Clean from: {}", stringDate);
+ parsingOk = false;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ if (!parsingOk) {
+ logger.debug("Couldn't parse status response;\n {}", status);
+ }
+ }
+ }
+
+ private void fetchSchedule() {
+ String status = sendCommand("/.../usr/data/htdocs/timer.txt");
+
+ if (status != null && !status.isEmpty()) {
+ String monday = "";
+ String tuesday = "";
+ String wednesday = "";
+ String thursday = "";
+ String friday = "";
+ String saturday = "";
+ String sunday = "";
+ String[] rows = status.split("\\r?\\n");
+ for (String row : rows) {
+ int idx = row.indexOf('=');
+ String name = row.substring(0, idx);
+ String state = row.substring(idx + 1);
+ switch (name) {
+ case "MONDAY":
+ monday = state;
+ break;
+ case "TUESDAY":
+ tuesday = state;
+ break;
+ case "WEDNESDAY":
+ wednesday = state;
+ break;
+ case "THURSDAY":
+ thursday = state;
+ break;
+ case "FRIDAY":
+ friday = state;
+ break;
+ case "SATURDAY":
+ saturday = state;
+ break;
+ case "SUNDAY":
+ sunday = state;
+ break;
+ default:
+ break;
+ }
+
+ }
+ if (!currentMonday.equals(monday)) {
+ currentMonday = monday;
+ updateState(CHANNEL_MONDAY, StringType.valueOf(monday));
+ }
+ if (!currentTuesday.equals(tuesday)) {
+ currentTuesday = tuesday;
+ updateState(CHANNEL_TUESDAY, StringType.valueOf(tuesday));
+ }
+ if (!currentWednesday.equals(wednesday)) {
+ currentWednesday = wednesday;
+ updateState(CHANNEL_WEDNESDAY, StringType.valueOf(wednesday));
+ }
+ if (!currentThursday.equals(thursday)) {
+ currentThursday = thursday;
+ updateState(CHANNEL_THURSDAY, StringType.valueOf(thursday));
+ }
+ if (!currentFriday.equals(friday)) {
+ currentFriday = friday;
+ updateState(CHANNEL_FRIDAY, StringType.valueOf(friday));
+ }
+ if (!currentSaturday.equals(saturday)) {
+ currentSaturday = saturday;
+ updateState(CHANNEL_SATURDAY, StringType.valueOf(saturday));
+ }
+ if (!currentSunday.equals(sunday)) {
+ currentSunday = sunday;
+ updateState(CHANNEL_SUNDAY, StringType.valueOf(sunday));
+ }
+ }
+ }
+
+ private void parseImage() {
+ if (!isLinked(CHANNEL_CAMERA)) {
+ return;
+ }
+ final int width = 320;
+ final int height = 240;
+ final int size = width * height;
+ String url = buildHttpAddress("/images/snapshot.yuv");
+ byte[] yuvData = HttpUtil.downloadData(url, null, false, size * 2).getBytes();
+
+ currentImage = CameraUtil.parseImageFromBytes(yuvData, width, height);
+ }
+
+ /** Parse the maps.html file to find the black-box filename. */
+ private String findBlackBoxFile() {
+ String url = buildHttpAddress("/sites/maps.html");
+ try {
+ String htmlString = HttpUtil.executeUrl("GET", url, 1000);
+ int idx = htmlString.indexOf("blkfiles");
+ return "/.../usr/data/blackbox/" + htmlString.substring(idx + 13, idx + 50);
+ } catch (IOException e1) {
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, e1.getMessage());
+ }
+ return "";
+ }
+
+ private void parseMap() {
+ if (!isLinked(CHANNEL_MAP)) {
+ return;
+ }
+ final int tileSize = 10;
+ final int tileArea = tileSize * tileSize;
+ final int rowLength = 100;
+ final int scale = 1;
+
+ String blackBox = findBlackBoxFile();
+ String url = buildHttpAddress(blackBox);
+ RawType dlData = HttpUtil.downloadData(url, null, false, -1);
+ if (dlData == null) {
+ return;
+ }
+ byte[] mapData = dlData.getBytes();
+
+ final int tileCount = mapData[32];
+ int maxX = 0;
+ int maxY = 0;
+ int minX = 0x10000;
+ int minY = 0x10000;
+ int pixPos;
+
+ for (int i = 0; i < tileCount; i++) {
+ pixPos = (mapData[52 + i * 16] & 0xFF) + (mapData[52 + 1 + i * 16] << 8);
+ int xPos = (pixPos % rowLength) * tileSize;
+ int yPos = (pixPos / rowLength) * tileSize;
+ if (xPos < minX) {
+ minX = xPos;
+ }
+ if (xPos > maxX) {
+ maxX = xPos;
+ }
+ if (yPos > maxY) {
+ maxY = yPos;
+ }
+ if (yPos < minY) {
+ minY = yPos;
+ }
+ }
+
+ final int width = (tileSize + maxX - minX) * scale;
+ final int height = (tileSize + maxY - minY) * scale;
+
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ for (int i = 0; i < height; i++) {
+ for (int j = 0; j < width; j++) {
+ image.setRGB(j, i, 0xFFFFFF);
+ }
+ }
+ for (int i = 0; i < tileCount; i++) {
+ pixPos = (mapData[52 + i * 16] & 0xFF) + (mapData[52 + 1 + i * 16] << 8);
+ int xPos = ((pixPos % rowLength) * tileSize - minX) * scale;
+ int yPos = (maxY - (pixPos / rowLength) * tileSize) * scale;
+ int indexTab = 16044 + i * tileArea;
+ for (int j = 0; j < tileSize; j++) {
+ for (int k = 0; k < tileSize; k++) {
+ int p = 0xFFFFFF;
+ if ((mapData[indexTab] & 0xF0) != 0) {
+ p = 0xFF0000;
+ } else if (mapData[indexTab] != 0) {
+ p = 0xBFBFBF;
+ }
+ image.setRGB(xPos + k * scale, yPos + (9 - j) * scale, p);
+ indexTab++;
+ }
+ }
+ }
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try {
+ if (!ImageIO.write(image, "png", baos)) {
+ logger.debug("Couldn't find PNG writer.");
+ }
+ } catch (IOException e) {
+ logger.info("IOException creating PNG image.", e);
+ }
+ byte[] byteArray = baos.toByteArray();
+ if (byteArray != null && byteArray.length > 0) {
+ currentMap = new RawType(byteArray, "image/png");
+ } else {
+ currentMap = UnDefType.UNDEF;
+ }
+ }
+}
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandlerFactory.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandlerFactory.java
new file mode 100644
index 0000000000000..e306b805088dc
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/LGHomBotHandlerFactory.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal;
+
+import static org.openhab.binding.lghombot.internal.LGHomBotBindingConstants.THING_TYPE_LGHOMBOT;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+import org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory;
+import org.eclipse.smarthome.core.thing.binding.ThingHandler;
+import org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * The {@link LGHomBotHandlerFactory} is responsible for creating things and thing
+ * handlers.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+@Component(configurationPid = "binding.lghombot", service = ThingHandlerFactory.class)
+public class LGHomBotHandlerFactory extends BaseThingHandlerFactory {
+
+ private static final Set SUPPORTED_THING_TYPES_UIDS = Collections.singleton(THING_TYPE_LGHOMBOT);
+
+ @Override
+ public boolean supportsThingType(ThingTypeUID thingTypeUID) {
+ return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
+ }
+
+ @Override
+ protected @Nullable ThingHandler createHandler(Thing thing) {
+ ThingTypeUID thingTypeUID = thing.getThingTypeUID();
+
+ if (THING_TYPE_LGHOMBOT.equals(thingTypeUID)) {
+ return new LGHomBotHandler(thing);
+ }
+
+ return null;
+ }
+}
diff --git a/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/discovery/LGHomBotDiscovery.java b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/discovery/LGHomBotDiscovery.java
new file mode 100644
index 0000000000000..fefb90439747e
--- /dev/null
+++ b/bundles/org.openhab.binding.lghombot/src/main/java/org/openhab/binding/lghombot/internal/discovery/LGHomBotDiscovery.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (c) 2010-2020 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.lghombot.internal.discovery;
+
+import java.io.IOException;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
+import org.eclipse.smarthome.config.discovery.DiscoveryResult;
+import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
+import org.eclipse.smarthome.config.discovery.DiscoveryService;
+import org.eclipse.smarthome.core.net.CidrAddress;
+import org.eclipse.smarthome.core.net.NetUtil;
+import org.eclipse.smarthome.core.thing.Thing;
+import org.eclipse.smarthome.core.thing.ThingTypeUID;
+import org.eclipse.smarthome.core.thing.ThingUID;
+import org.eclipse.smarthome.io.net.http.HttpUtil;
+import org.openhab.binding.lghombot.internal.LGHomBotBindingConstants;
+import org.openhab.binding.lghombot.internal.LGHomBotConfiguration;
+import org.osgi.service.component.annotations.Component;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Discovery class for the LG HomBot line. Right now we try to do http requests to all IPs on port 6260.
+ * If we get a connection and correct answer we set the IP as result.
+ *
+ * @author Fredrik Ahlström - Initial contribution
+ */
+@NonNullByDefault
+@Component(service = { DiscoveryService.class, LGHomBotDiscovery.class }, configurationPid = "discovery.lghombot")
+public class LGHomBotDiscovery extends AbstractDiscoveryService {
+
+ private final Logger logger = LoggerFactory.getLogger(LGHomBotDiscovery.class);
+
+ /**
+ * HTTP read timeout (in milliseconds) - allows us to shutdown the listening every TIMEOUT
+ */
+ private static final int TIMEOUT_MS = 500;
+
+ /**
+ * Timeout in seconds of the complete scan
+ */
+ private static final int FULL_SCAN_TIMEOUT_SECONDS = 30;
+
+ /**
+ * Total number of concurrent threads during scanning.
+ */
+ private static final int SCAN_THREADS = 10;
+
+ /**
+ * Whether we are currently scanning or not
+ */
+ private boolean scanning;
+
+ private int octet;
+ private int ipMask;
+ private int addressCount;
+ private @Nullable CidrAddress baseIp;
+
+ /**
+ * The {@link ExecutorService} to run the listening threads on.
+ */
+ private @Nullable ExecutorService executorService;
+
+ /**
+ * Constructs the discovery class using the thing IDs that we can discover.
+ */
+ public LGHomBotDiscovery() {
+ super(LGHomBotBindingConstants.SUPPORTED_THING_TYPES_UIDS, FULL_SCAN_TIMEOUT_SECONDS, false);
+ }
+
+ private void setupBaseIp(CidrAddress adr) {
+ byte[] octets = adr.getAddress().getAddress();
+ addressCount = (1 << (32 - adr.getPrefix())) - 2;
+ ipMask = 0xFFFFFFFF << (32 - adr.getPrefix());
+ octets[0] &= ipMask >> 24;
+ octets[1] &= ipMask >> 16;
+ octets[2] &= ipMask >> 8;
+ octets[3] &= ipMask;
+ try {
+ InetAddress iAdr = InetAddress.getByAddress(octets);
+ baseIp = new CidrAddress(iAdr, (short) adr.getPrefix());
+ } catch (UnknownHostException e) {
+ logger.debug("Could not build net ip address.", e);
+ }
+ octet = 0;
+ }
+
+ private synchronized String getNextIPAddress(CidrAddress adr) {
+ octet++;
+ octet &= ~ipMask;
+ byte[] octets = adr.getAddress().getAddress();
+ octets[2] += (octet >> 8);
+ octets[3] += octet;
+ String address = "";
+ try {
+ InetAddress iAdr = null;
+ iAdr = InetAddress.getByAddress(octets);
+ address = iAdr.getHostAddress();
+ } catch (UnknownHostException e) {
+ logger.debug("Could not find next ip address.", e);
+ }
+ return address;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * Starts the scan. This discovery will:
+ *
+ *
Request this hosts first IPV4 address.
+ *
Send a HTTP request on port 6260 to all IPs on the subnet.
+ *
The response is then investigated to see if is an answer from a HomBot lg.srv
+ *
+ * The process will continue until all addresses are checked, timeout or {@link #stopScan()} is called.
+ */
+ @Override
+ protected void startScan() {
+ if (executorService != null) {
+ stopScan();
+ }
+
+ CidrAddress localAdr = getLocalIP4Address();
+ if (localAdr == null) {
+ stopScan();
+ return;
+ }
+ setupBaseIp(localAdr);
+ CidrAddress baseAdr = baseIp;
+ scanning = true;
+ ExecutorService localExecutorService = Executors.newFixedThreadPool(SCAN_THREADS);
+ executorService = localExecutorService;
+ for (int i = 0; i < addressCount; i++) {
+
+ localExecutorService.execute(() -> {
+ if (scanning && baseAdr != null) {
+ String ipAdd = getNextIPAddress(baseAdr);
+ String url = "http://" + ipAdd + ":" + LGHomBotBindingConstants.DEFAULT_HOMBOT_PORT + "/status.txt";
+
+ try {
+ String message = HttpUtil.executeUrl("GET", url, TIMEOUT_MS);
+ if (message != null && !message.isEmpty()) {
+ messageReceive(message, ipAdd);
+ }
+ } catch (IOException e) {
+ // Ignore, this is the expected behavior.
+ }
+ }
+
+ });
+ }
+ }
+
+ /**
+ * Tries to find valid IP4 address.
+ *
+ * @return An IP4 address or null if none is found.
+ */
+ private @Nullable CidrAddress getLocalIP4Address() {
+ List adrList = NetUtil.getAllInterfaceAddresses().stream()
+ .filter(a -> a.getAddress() instanceof Inet4Address).collect(Collectors.toList());
+
+ for (CidrAddress adr : adrList) {
+ // Don't return a "fake" DHCP lease.
+ if (!adr.toString().startsWith("169.254.")) {
+ return adr;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * lgsrv message has the following format
+ *
+ *