Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't change Default Jetty Ports? #84

Closed
nagarashish opened this issue Dec 23, 2014 · 0 comments
Closed

Can't change Default Jetty Ports? #84

nagarashish opened this issue Dec 23, 2014 · 0 comments

Comments

@nagarashish
Copy link

I updated HTTP_PORT=8080, HTTPS_PORT=8443 specified in start.sh to custom ports. When I start the openhab 2, i get error - Address already in use.

WARN o.e.j.u.c.AbstractLifeCycle[:210] - FAILED ServerConnector@51e6cda2{SSL-http/1.1}{0.0.0.0:8443}: java.net.BindException: Address already in use
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:444)
at sun.nio.ch.Net.bind(Net.java:436)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:279)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:218)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:336)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
07:02:24.739 WARN o.e.j.u.c.AbstractLifeCycle[:210] - FAILED org.eclipse.jetty.server.Server@3e1356e: java.net.BindException: Address already in use
java.net.BindException: Address already in use

at sun.nio.ch.Net.bind0(Native Method)

Also changed ports in following two files but it didn't change to new ports:

https://github.com/openhab/openhab2/blob/master/bundles/io/org.openhab.io.jetty/jettyhome/etc/jetty-selector.xml#L25
https://github.com/openhab/openhab2/blob/master/bundles/io/org.openhab.io.jetty/jettyhome/etc/jetty-https.xml#L42

peuter added a commit to peuter/openhab2-addons that referenced this issue Mar 24, 2015
commit 5a5911a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:52:44 2015 +0100

    removed properties field

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 549886a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:15:14 2015 +0100

    code formatting

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 489be9e
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:44:02 2015 +0100

    marrytts bundle removed

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit a099699
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a59e819
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:35:25 2015 +0100

    removed marrytts bundle from launch

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit b0cee0b
Merge: 06e8bd2 2816811
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:31:52 2015 +0100

    Merge branch 'master' into marytts-bundle

    Conflicts:
    	bundles/core/org.openhab.core.compat1x/build.properties

commit 06e8bd2
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 12:47:03 2015 +0100

    fixed method name

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 2816811
Merge: deffae8 8fce0f9
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 18:54:41 2015 +0100

    Merge pull request #3 from openhab/master

    Merge with master

commit 8fce0f9
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:55 2015 +0100

    Adapted code to latest stable ESH release

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit b3463ea
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:19 2015 +0100

    Improved default sitemap provider and demo files to make the Classic UI behave nice again.
    Also adapted AutoApproveService and removed ThingItemProvider as it was superceded by the ThingSetupManager of ESH.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit fcd7715
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:29:48 2015 +0100

    break added

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 43cba52
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:27:51 2015 +0100

    removed marytts bundle from build path

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 8c77b5b
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:24:49 2015 +0100

    augmented the compbalility layer to support the TTSService interface
    (needed for all text-to-speech engines)

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit ff2e51c
Author: Kai Kreuzer <[email protected]>
Date:   Sun Mar 15 09:44:16 2015 -0700

    added info about Milight and Energenie

commit 67af79a
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:15:45 2015 -0700

    updated information about rrd4j

commit 60c3b88
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:16:36 2015 -0700

    Implemented ItemRegistry, ItemUIRegistry and ChartProvider support for the compatibility layer. This fixes openhab#146.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 791e777
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 07:36:56 2015 -0700

    Added  InsteonPLM 1.7 binding

commit cb3fa7d
Merge: cc7fa1d d0798b5
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 06:50:40 2015 -0700

    Merge pull request openhab#160 from sja/format-start-scripts

    Format start scripts and add check for not found equinox launcher

commit d0798b5
Author: Sebastian Janzen <[email protected]>
Date:   Tue Mar 10 13:45:45 2015 +0100

    Format start scripts and add check for not found equinox launcher

    If the equinox launcher jar is not present, there was no error message.

    Signed-off-by: Sebastian Janzen <[email protected]>

commit cc7fa1d
Merge: 743bc6c fcfdefe
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 10 23:37:39 2015 +0100

    Merge pull request openhab#157 from maggu2810/fix-resource-leak

    Resource leak: 'socket' never closed

commit fcfdefe
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:15:07 2015 +0100

    Resource leak: 'socket' never closed

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 743bc6c
Merge: 07ada5e fec6647
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 23:22:24 2015 +0100

    Merge pull request openhab#158 from kgoderis/sonos

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHa...

commit fec6647
Author: Karel Goderis <[email protected]>
Date:   Mon Mar 9 19:56:26 2015 +0100

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHandler

    Note for other binding developers: DiscoveryListeners get called on the discovery of any Thing, e.g. there is no selectivity, and it is up to the DiscoveryListener implementor to check if the ThingUID is valid or not

    Signed-off-by: Karel Goderis <[email protected]>

commit 07ada5e
Merge: 1780131 906b836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 18:03:08 2015 +0100

    Merge pull request openhab#156 from maggu2810/fix-classpath-vs-exec-env

    classpath's JRE container and execution enviroment's one does not fit

commit 906b836
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:05:32 2015 +0100

    classpath's JRE container and execution enviroment's one does not fit

    Fix "The JRE container on the classpath is not a perfect match to the
    'J2SE-1.5' execution environment" for org.openhab.io.transport.serial.

    Fix "The JRE container on the classpath is not a perfect match to the
    'JavaSE-1.7' execution environment" for org.openhab.core.init and
    org.openhab.core.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 1780131
Merge: 8a6f1a8 86a8ed1
Author: Kai Kreuzer <[email protected]>
Date:   Wed Mar 4 18:37:49 2015 +0100

    Merge pull request openhab#154 from maggu2810/launch-cfg-stop-auto-add

    stop add workspace plugins automatically to launch config

commit 86a8ed1
Author: Markus Rathgeb <[email protected]>
Date:   Wed Mar 4 17:37:00 2015 +0100

    stop add workspace plugins automatically to launch config

    It is very annoying if every bundle I added to my workspace is also
    added to the launch configuration and must be deactivated manually.
    A launch configuration should represent a configuration that is changed
    manually if additional bundles should be added.

    If the automatically addition of plugins is deactivated, we could stop
    adding plugins to deselected_workspace_plugins.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 8a6f1a8
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 23:00:32 2015 +0100

    updated launch config for new target platform

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 42ad9c1
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit d34492b
Merge: 18e7ae4 a292008
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:34:27 2015 +0100

    Merge pull request openhab#145 from cdjackson/dev

    Update compatability

commit a292008
Merge: 8c5f668 18e7ae4
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:24:54 2015 +0000

    Merge branch 'master' of https://github.com/openhab/openhab2 into dev

    Conflicts:
    	docs/sources/installation/compatibility.md

commit 18e7ae4
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:17:42 2015 +0100

    removed 2.0 alpha compat info

commit 8c5f668
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:16:00 2015 +0000

    Update compatability
    Add OW-Server, MySQL, Heatmiser, SNMP
    Signed-off-by: Chris Jackson <[email protected]> (github: cdjackson)

commit c1fc6df
Merge: df79093 8892836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:07:23 2015 +0100

    Merge pull request openhab#144 from isigmund/master

    changed compatibility.md

commit 8892836
Author: Ingo Sigmund <[email protected]>
Date:   Mon Feb 23 21:44:17 2015 +0100

    changed comaptibility.md to reflect sucessful testing of openhab 1.6.0 bindings
    Fs20 and CUL on openhab2 snapshot

commit df79093
Merge: 232b275 491f7f2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 21 11:33:25 2015 +0100

    Merge pull request openhab#141 from kgoderis/sonos

    Sonos : implementation of new commands

commit 491f7f2
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:40:35 2015 +0100

    Implementation of the playTrack functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 195f846
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:03:56 2015 +0100

    Implement playQueue functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 232b275
Merge: ddaf474 e5fc3eb
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 20 20:42:32 2015 +0100

    Merge pull request openhab#140 from kgoderis/sonos

    Further improvement of Metadata methods

commit e5fc3eb
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 20:37:30 2015 +0100

    Further improvement of Metadata methods

    Signed-off-by: Karel Goderis <[email protected]>

commit ddaf474
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:02:58 2015 +0100

    Update compatibility.md

commit cd465fb
Merge: d618223 65a5094
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:01:59 2015 +0100

    Merge pull request openhab#136 from mdbergmann/patch-1

    Update compatibility.md

commit d618223
Merge: 7e2bb61 dd7c484
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:51:36 2015 +0100

    Merge pull request openhab#138 from maggu2810/remove-missing-deactivate-call

    ThingItemProvider: prevent call of missing deactive function

commit 7e2bb61
Merge: 25cc1b3 ab114f7
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:48:43 2015 +0100

    Merge pull request openhab#137 from maggu2810/compat1x-fix-import

    add missing import for javax.sound.sampled

commit dd7c484
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 18:34:50 2015 +0100

    ThingItemProvider: prevent call of missing deactive function

    Signed-off-by: Markus Rathgeb <[email protected]>

commit ab114f7
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 17:31:19 2015 +0100

    add missing import for javax.sound.sampled

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 65a5094
Author: mdbergmann <[email protected]>
Date:   Wed Feb 18 13:27:10 2015 +0100

    Update compatibility.md

commit 25cc1b3
Merge: 54b135c ad957f8
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 17:26:28 2015 +0100

    Merge pull request openhab#134 from kgoderis/sonos

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

commit ad957f8
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 17:11:19 2015 +0100

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

    Signed-off-by: Karel Goderis <[email protected]>

commit 54b135c
Merge: fed8c5c 9f107a3
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 13:30:52 2015 +0100

    Merge pull request openhab#131 from kgoderis/sonos

    Improve track meta data handling

commit 9f107a3
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 13:09:45 2015 +0100

    Improve track meta data handling

    Signed-off-by: Karel Goderis <[email protected]>

commit fed8c5c
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 08:59:11 2015 +0100

    Updated to JAX-RS connector 4.2.0
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 8f97322
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 14 00:37:23 2015 +0100

    Updated AUTHORS

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f84b1b2
Author: Thomas Eichstädt-Engelen <[email protected]>
Date:   Fri Feb 13 17:18:25 2015 +0100

    Fixes openhab#84 - Let openhab2 take SystemProperties into Account

    Signed-off-by: Thomas Eichstädt-Engelen <[email protected]>

commit 5e55ac0
Merge: 3a024bb 6bc91d6
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 16:22:18 2015 +0100

    Merge branch 'maxcube-test' of https://github.com/marcelrv/openhab2 into marcelrv-maxcube-test

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 3a024bb
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 14:13:13 2015 +0100

    updated dependency to renamed mdns bundle
    fixes openhab#128

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 91b9294
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:21:07 2015 +0100

    Update compatibility.md

commit 09f159d
Merge: 3a00a6d e3bda3d
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:19:58 2015 +0100

    Merge pull request openhab#126 from kgoderis/patch-2

    Update compatibility.md

commit e3bda3d
Author: kgoderis <[email protected]>
Date:   Mon Feb 9 20:06:13 2015 +0100

    Update compatibility.md

commit 3a00a6d
Merge: 0795c8d a866116
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 8 20:44:13 2015 +0100

    Merge pull request openhab#125 from kgoderis/sonos

    Fix bug in updateCurrentURIFormatted()

commit a866116
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 16:44:52 2015 +0100

    Fix bug in updateCurrentURIFormatted()

    Signed-off-by: Karel Goderis <[email protected]>

commit 0795c8d
Merge: 21c6ea6 b490af2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 7 12:28:25 2015 +0100

    Merge pull request openhab#123 from kgoderis/sonos

    Fix bugs in playLineIn()

commit b490af2
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:33:23 2015 +0100

    Improve error handling in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 69a755e
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:32:06 2015 +0100

    Fix bug in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 21c6ea6
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 6 17:04:49 2015 +0100

    fixed rrd4j compat info

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 883f718
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:22 2015 +0100

    added info about screencast

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5cf303b
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:01 2015 +0100

    updated copyright

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ef60ae0
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:48:38 2015 +0100

    added headers

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24f624a
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:46:31 2015 +0100

    added info about Paper UI and a screencast for binding skeleton creation

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 527b51f
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:52:34 2015 +0100

    set auto-start to true - this will avoid many problems where people forget to do this manually

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24950b1
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:47:03 2015 +0100

    adding new workspace bundles automatically to the launch config

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 780b229
Merge: 9c5c046 3180c83
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 4 23:09:58 2015 +0100

    Merge pull request openhab#122 from kgoderis/sonos

    Fix bug in saveState() and restoreState() + improve error handling

commit 3180c83
Author: Karel Goderis <[email protected]>
Date:   Wed Feb 4 19:18:30 2015 +0100

    Fix bug in saveState() and restoreState() + improve error handling

    Signed-off-by: Karel Goderis <[email protected]>

commit 9c5c046
Merge: 58ec087 1194776
Author: Kai Kreuzer <[email protected]>
Date:   Tue Feb 3 10:52:19 2015 +0100

    Merge pull request openhab#121 from kgoderis/master

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

commit 1194776
Author: Karel Goderis <[email protected]>
Date:   Tue Feb 3 09:32:04 2015 +0100

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

    Signed-off-by: Karel Goderis <[email protected]>

commit 58ec087
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 1 14:56:32 2015 +0100

    added sources of jUPnP to target platform - see jupnp/jupnp#16

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ca25009
Author: Kai Kreuzer <[email protected]>
Date:   Fri Jan 30 17:05:44 2015 +0100

    updated archetype version

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1def393
Merge: aba7037 bb8a1c7
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 29 10:28:58 2015 +0100

    Merge pull request openhab#120 from maggu2810/sonos-fix-imports

    sonos: fix missing import-package

commit bb8a1c7
Author: Markus Rathgeb <[email protected]>
Date:   Thu Jan 29 10:18:33 2015 +0100

    fix missing import-package

    The file SonosXMLParser.java is using the following imports:
    - org.xml.sax.Attributes;
    - org.xml.sax.InputSource;
    - org.xml.sax.SAXException;
    - org.xml.sax.XMLReader;
    - org.xml.sax.helpers.DefaultHandler;
    - org.xml.sax.helpers.XMLReaderFactory;

    The OSGi specification mandates that a bundle declare all package
    depenencies using either Import-Package or Require-Bundle. The one
    exception to this rule is the java.* packages which is always delegated
    to the boot classpath. All other packages dependencies must be declared
    in the bundle's manifest file.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 6bc91d6
Author: Marcel Verpaalen <[email protected]>
Date:   Wed Jan 28 18:25:13 2015 +0100

    Updated with cleaned target

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit aba7037
Merge: 4048ac9 0a6aab5
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 18:18:16 2015 +0100

    Merge pull request openhab#119 from kgoderis/patch-1

    Update logback_debug.xml

commit 0a6aab5
Author: kgoderis <[email protected]>
Date:   Wed Jan 28 18:12:48 2015 +0100

    Update logback_debug.xml

    Fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=458180

    Signed-off-by: Karel Goderis <[email protected]>

commit 4048ac9
Merge: a60baaa f41b4ea
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 13:22:57 2015 +0100

    Merge pull request openhab#118 from maggu2810/ui-dashboard-fix-imports

    fix version requirements of service.component import

commit f41b4ea
Author: Markus Rathgeb <[email protected]>
Date:   Wed Jan 28 13:10:19 2015 +0100

    fix version requirements of service.component import

    The version of the service component package for OSGi Release 4 is using
    the version 1.2.
    The JavaDoc API states, that consumer of the API should use
    version="[1.2,2.0)" for the version of the import.
    I cannot find an implementation of the fixed version 1.2.2, perhaps this
    is only supported by equinox.
    Source: http://www.osgi.org/javadoc/r4v43/residential/org/osgi/service/component/package-summary.html
    Signed-off-by: Markus Rathgeb <[email protected]>

commit a60baaa
Author: Kai Kreuzer <[email protected]>
Date:   Tue Jan 27 12:21:38 2015 +0100

    fixes openhab#117

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a7284cc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:36:16 2015 +0100

    reverted accidential commit

commit 19dee90
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:34:47 2015 +0100

    added DSC alarm info

commit f678dfc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:33:44 2015 +0100

    added Z-Wave info

commit efb303c
Author: Marcel Verpaalen <[email protected]>
Date:   Fri Jan 23 01:47:28 2015 +0100

    Initial contribution MAX! Binding Tests

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit c4c9962
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 22 19:02:18 2015 +0100

    Added new url for Classic UI with sitemap

commit 7cacee6
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 20:00:51 2015 +0100

    changed http port definitions to OSGi params

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5173ecd
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 19:47:35 2015 +0100

    updated thing item provider and default sitemap provider to work with home-groups

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f1345f0
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:46 2015 +0100

    worked around current bugs in configuration handling

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1ec7579
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:04 2015 +0100

    adding advanced property to most channels

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)
peuter added a commit to peuter/openhab2-addons that referenced this issue Mar 25, 2015
commit 5a5911a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:52:44 2015 +0100

    removed properties field

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 549886a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:15:14 2015 +0100

    code formatting

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 489be9e
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:44:02 2015 +0100

    marrytts bundle removed

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit a099699
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a59e819
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:35:25 2015 +0100

    removed marrytts bundle from launch

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit b0cee0b
Merge: 06e8bd2 2816811
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:31:52 2015 +0100

    Merge branch 'master' into marytts-bundle

    Conflicts:
    	bundles/core/org.openhab.core.compat1x/build.properties

commit 06e8bd2
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 12:47:03 2015 +0100

    fixed method name

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 2816811
Merge: deffae8 8fce0f9
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 18:54:41 2015 +0100

    Merge pull request #3 from openhab/master

    Merge with master

commit 8fce0f9
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:55 2015 +0100

    Adapted code to latest stable ESH release

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit b3463ea
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:19 2015 +0100

    Improved default sitemap provider and demo files to make the Classic UI behave nice again.
    Also adapted AutoApproveService and removed ThingItemProvider as it was superceded by the ThingSetupManager of ESH.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit fcd7715
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:29:48 2015 +0100

    break added

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 43cba52
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:27:51 2015 +0100

    removed marytts bundle from build path

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 8c77b5b
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:24:49 2015 +0100

    augmented the compbalility layer to support the TTSService interface
    (needed for all text-to-speech engines)

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit ff2e51c
Author: Kai Kreuzer <[email protected]>
Date:   Sun Mar 15 09:44:16 2015 -0700

    added info about Milight and Energenie

commit 67af79a
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:15:45 2015 -0700

    updated information about rrd4j

commit 60c3b88
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:16:36 2015 -0700

    Implemented ItemRegistry, ItemUIRegistry and ChartProvider support for the compatibility layer. This fixes openhab#146.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 791e777
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 07:36:56 2015 -0700

    Added  InsteonPLM 1.7 binding

commit cb3fa7d
Merge: cc7fa1d d0798b5
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 06:50:40 2015 -0700

    Merge pull request openhab#160 from sja/format-start-scripts

    Format start scripts and add check for not found equinox launcher

commit d0798b5
Author: Sebastian Janzen <[email protected]>
Date:   Tue Mar 10 13:45:45 2015 +0100

    Format start scripts and add check for not found equinox launcher

    If the equinox launcher jar is not present, there was no error message.

    Signed-off-by: Sebastian Janzen <[email protected]>

commit cc7fa1d
Merge: 743bc6c fcfdefe
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 10 23:37:39 2015 +0100

    Merge pull request openhab#157 from maggu2810/fix-resource-leak

    Resource leak: 'socket' never closed

commit fcfdefe
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:15:07 2015 +0100

    Resource leak: 'socket' never closed

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 743bc6c
Merge: 07ada5e fec6647
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 23:22:24 2015 +0100

    Merge pull request openhab#158 from kgoderis/sonos

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHa...

commit fec6647
Author: Karel Goderis <[email protected]>
Date:   Mon Mar 9 19:56:26 2015 +0100

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHandler

    Note for other binding developers: DiscoveryListeners get called on the discovery of any Thing, e.g. there is no selectivity, and it is up to the DiscoveryListener implementor to check if the ThingUID is valid or not

    Signed-off-by: Karel Goderis <[email protected]>

commit 07ada5e
Merge: 1780131 906b836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 18:03:08 2015 +0100

    Merge pull request openhab#156 from maggu2810/fix-classpath-vs-exec-env

    classpath's JRE container and execution enviroment's one does not fit

commit 906b836
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:05:32 2015 +0100

    classpath's JRE container and execution enviroment's one does not fit

    Fix "The JRE container on the classpath is not a perfect match to the
    'J2SE-1.5' execution environment" for org.openhab.io.transport.serial.

    Fix "The JRE container on the classpath is not a perfect match to the
    'JavaSE-1.7' execution environment" for org.openhab.core.init and
    org.openhab.core.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 1780131
Merge: 8a6f1a8 86a8ed1
Author: Kai Kreuzer <[email protected]>
Date:   Wed Mar 4 18:37:49 2015 +0100

    Merge pull request openhab#154 from maggu2810/launch-cfg-stop-auto-add

    stop add workspace plugins automatically to launch config

commit 86a8ed1
Author: Markus Rathgeb <[email protected]>
Date:   Wed Mar 4 17:37:00 2015 +0100

    stop add workspace plugins automatically to launch config

    It is very annoying if every bundle I added to my workspace is also
    added to the launch configuration and must be deactivated manually.
    A launch configuration should represent a configuration that is changed
    manually if additional bundles should be added.

    If the automatically addition of plugins is deactivated, we could stop
    adding plugins to deselected_workspace_plugins.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 8a6f1a8
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 23:00:32 2015 +0100

    updated launch config for new target platform

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 42ad9c1
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit d34492b
Merge: 18e7ae4 a292008
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:34:27 2015 +0100

    Merge pull request openhab#145 from cdjackson/dev

    Update compatability

commit a292008
Merge: 8c5f668 18e7ae4
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:24:54 2015 +0000

    Merge branch 'master' of https://github.com/openhab/openhab2 into dev

    Conflicts:
    	docs/sources/installation/compatibility.md

commit 18e7ae4
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:17:42 2015 +0100

    removed 2.0 alpha compat info

commit 8c5f668
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:16:00 2015 +0000

    Update compatability
    Add OW-Server, MySQL, Heatmiser, SNMP
    Signed-off-by: Chris Jackson <[email protected]> (github: cdjackson)

commit c1fc6df
Merge: df79093 8892836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:07:23 2015 +0100

    Merge pull request openhab#144 from isigmund/master

    changed compatibility.md

commit 8892836
Author: Ingo Sigmund <[email protected]>
Date:   Mon Feb 23 21:44:17 2015 +0100

    changed comaptibility.md to reflect sucessful testing of openhab 1.6.0 bindings
    Fs20 and CUL on openhab2 snapshot

commit df79093
Merge: 232b275 491f7f2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 21 11:33:25 2015 +0100

    Merge pull request openhab#141 from kgoderis/sonos

    Sonos : implementation of new commands

commit 491f7f2
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:40:35 2015 +0100

    Implementation of the playTrack functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 195f846
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:03:56 2015 +0100

    Implement playQueue functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 232b275
Merge: ddaf474 e5fc3eb
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 20 20:42:32 2015 +0100

    Merge pull request openhab#140 from kgoderis/sonos

    Further improvement of Metadata methods

commit e5fc3eb
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 20:37:30 2015 +0100

    Further improvement of Metadata methods

    Signed-off-by: Karel Goderis <[email protected]>

commit ddaf474
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:02:58 2015 +0100

    Update compatibility.md

commit cd465fb
Merge: d618223 65a5094
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:01:59 2015 +0100

    Merge pull request openhab#136 from mdbergmann/patch-1

    Update compatibility.md

commit d618223
Merge: 7e2bb61 dd7c484
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:51:36 2015 +0100

    Merge pull request openhab#138 from maggu2810/remove-missing-deactivate-call

    ThingItemProvider: prevent call of missing deactive function

commit 7e2bb61
Merge: 25cc1b3 ab114f7
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:48:43 2015 +0100

    Merge pull request openhab#137 from maggu2810/compat1x-fix-import

    add missing import for javax.sound.sampled

commit dd7c484
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 18:34:50 2015 +0100

    ThingItemProvider: prevent call of missing deactive function

    Signed-off-by: Markus Rathgeb <[email protected]>

commit ab114f7
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 17:31:19 2015 +0100

    add missing import for javax.sound.sampled

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 65a5094
Author: mdbergmann <[email protected]>
Date:   Wed Feb 18 13:27:10 2015 +0100

    Update compatibility.md

commit 25cc1b3
Merge: 54b135c ad957f8
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 17:26:28 2015 +0100

    Merge pull request openhab#134 from kgoderis/sonos

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

commit ad957f8
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 17:11:19 2015 +0100

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

    Signed-off-by: Karel Goderis <[email protected]>

commit 54b135c
Merge: fed8c5c 9f107a3
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 13:30:52 2015 +0100

    Merge pull request openhab#131 from kgoderis/sonos

    Improve track meta data handling

commit 9f107a3
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 13:09:45 2015 +0100

    Improve track meta data handling

    Signed-off-by: Karel Goderis <[email protected]>

commit fed8c5c
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 08:59:11 2015 +0100

    Updated to JAX-RS connector 4.2.0
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 8f97322
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 14 00:37:23 2015 +0100

    Updated AUTHORS

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f84b1b2
Author: Thomas Eichstädt-Engelen <[email protected]>
Date:   Fri Feb 13 17:18:25 2015 +0100

    Fixes openhab#84 - Let openhab2 take SystemProperties into Account

    Signed-off-by: Thomas Eichstädt-Engelen <[email protected]>

commit 5e55ac0
Merge: 3a024bb 6bc91d6
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 16:22:18 2015 +0100

    Merge branch 'maxcube-test' of https://github.com/marcelrv/openhab2 into marcelrv-maxcube-test

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 3a024bb
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 14:13:13 2015 +0100

    updated dependency to renamed mdns bundle
    fixes openhab#128

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 91b9294
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:21:07 2015 +0100

    Update compatibility.md

commit 09f159d
Merge: 3a00a6d e3bda3d
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:19:58 2015 +0100

    Merge pull request openhab#126 from kgoderis/patch-2

    Update compatibility.md

commit e3bda3d
Author: kgoderis <[email protected]>
Date:   Mon Feb 9 20:06:13 2015 +0100

    Update compatibility.md

commit 3a00a6d
Merge: 0795c8d a866116
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 8 20:44:13 2015 +0100

    Merge pull request openhab#125 from kgoderis/sonos

    Fix bug in updateCurrentURIFormatted()

commit a866116
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 16:44:52 2015 +0100

    Fix bug in updateCurrentURIFormatted()

    Signed-off-by: Karel Goderis <[email protected]>

commit 0795c8d
Merge: 21c6ea6 b490af2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 7 12:28:25 2015 +0100

    Merge pull request openhab#123 from kgoderis/sonos

    Fix bugs in playLineIn()

commit b490af2
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:33:23 2015 +0100

    Improve error handling in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 69a755e
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:32:06 2015 +0100

    Fix bug in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 21c6ea6
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 6 17:04:49 2015 +0100

    fixed rrd4j compat info

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 883f718
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:22 2015 +0100

    added info about screencast

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5cf303b
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:01 2015 +0100

    updated copyright

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ef60ae0
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:48:38 2015 +0100

    added headers

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24f624a
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:46:31 2015 +0100

    added info about Paper UI and a screencast for binding skeleton creation

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 527b51f
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:52:34 2015 +0100

    set auto-start to true - this will avoid many problems where people forget to do this manually

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24950b1
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:47:03 2015 +0100

    adding new workspace bundles automatically to the launch config

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 780b229
Merge: 9c5c046 3180c83
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 4 23:09:58 2015 +0100

    Merge pull request openhab#122 from kgoderis/sonos

    Fix bug in saveState() and restoreState() + improve error handling

commit 3180c83
Author: Karel Goderis <[email protected]>
Date:   Wed Feb 4 19:18:30 2015 +0100

    Fix bug in saveState() and restoreState() + improve error handling

    Signed-off-by: Karel Goderis <[email protected]>

commit 9c5c046
Merge: 58ec087 1194776
Author: Kai Kreuzer <[email protected]>
Date:   Tue Feb 3 10:52:19 2015 +0100

    Merge pull request openhab#121 from kgoderis/master

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

commit 1194776
Author: Karel Goderis <[email protected]>
Date:   Tue Feb 3 09:32:04 2015 +0100

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

    Signed-off-by: Karel Goderis <[email protected]>

commit 58ec087
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 1 14:56:32 2015 +0100

    added sources of jUPnP to target platform - see jupnp/jupnp#16

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ca25009
Author: Kai Kreuzer <[email protected]>
Date:   Fri Jan 30 17:05:44 2015 +0100

    updated archetype version

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1def393
Merge: aba7037 bb8a1c7
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 29 10:28:58 2015 +0100

    Merge pull request openhab#120 from maggu2810/sonos-fix-imports

    sonos: fix missing import-package

commit bb8a1c7
Author: Markus Rathgeb <[email protected]>
Date:   Thu Jan 29 10:18:33 2015 +0100

    fix missing import-package

    The file SonosXMLParser.java is using the following imports:
    - org.xml.sax.Attributes;
    - org.xml.sax.InputSource;
    - org.xml.sax.SAXException;
    - org.xml.sax.XMLReader;
    - org.xml.sax.helpers.DefaultHandler;
    - org.xml.sax.helpers.XMLReaderFactory;

    The OSGi specification mandates that a bundle declare all package
    depenencies using either Import-Package or Require-Bundle. The one
    exception to this rule is the java.* packages which is always delegated
    to the boot classpath. All other packages dependencies must be declared
    in the bundle's manifest file.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 6bc91d6
Author: Marcel Verpaalen <[email protected]>
Date:   Wed Jan 28 18:25:13 2015 +0100

    Updated with cleaned target

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit aba7037
Merge: 4048ac9 0a6aab5
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 18:18:16 2015 +0100

    Merge pull request openhab#119 from kgoderis/patch-1

    Update logback_debug.xml

commit 0a6aab5
Author: kgoderis <[email protected]>
Date:   Wed Jan 28 18:12:48 2015 +0100

    Update logback_debug.xml

    Fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=458180

    Signed-off-by: Karel Goderis <[email protected]>

commit 4048ac9
Merge: a60baaa f41b4ea
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 13:22:57 2015 +0100

    Merge pull request openhab#118 from maggu2810/ui-dashboard-fix-imports

    fix version requirements of service.component import

commit f41b4ea
Author: Markus Rathgeb <[email protected]>
Date:   Wed Jan 28 13:10:19 2015 +0100

    fix version requirements of service.component import

    The version of the service component package for OSGi Release 4 is using
    the version 1.2.
    The JavaDoc API states, that consumer of the API should use
    version="[1.2,2.0)" for the version of the import.
    I cannot find an implementation of the fixed version 1.2.2, perhaps this
    is only supported by equinox.
    Source: http://www.osgi.org/javadoc/r4v43/residential/org/osgi/service/component/package-summary.html
    Signed-off-by: Markus Rathgeb <[email protected]>

commit a60baaa
Author: Kai Kreuzer <[email protected]>
Date:   Tue Jan 27 12:21:38 2015 +0100

    fixes openhab#117

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a7284cc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:36:16 2015 +0100

    reverted accidential commit

commit 19dee90
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:34:47 2015 +0100

    added DSC alarm info

commit f678dfc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:33:44 2015 +0100

    added Z-Wave info

commit efb303c
Author: Marcel Verpaalen <[email protected]>
Date:   Fri Jan 23 01:47:28 2015 +0100

    Initial contribution MAX! Binding Tests

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit c4c9962
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 22 19:02:18 2015 +0100

    Added new url for Classic UI with sitemap

commit 7cacee6
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 20:00:51 2015 +0100

    changed http port definitions to OSGi params

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5173ecd
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 19:47:35 2015 +0100

    updated thing item provider and default sitemap provider to work with home-groups

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f1345f0
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:46 2015 +0100

    worked around current bugs in configuration handling

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1ec7579
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:04 2015 +0100

    adding advanced property to most channels

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)
peuter added a commit to peuter/openhab2-addons that referenced this issue Mar 25, 2015
Signed-off-by: Tobias Bräutigam <[email protected]>

Squashed commit of the following:

commit 5a5911a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:52:44 2015 +0100

    removed properties field

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 549886a
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 14:15:14 2015 +0100

    code formatting

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 489be9e
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:44:02 2015 +0100

    marrytts bundle removed

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit a099699
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a59e819
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:35:25 2015 +0100

    removed marrytts bundle from launch

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit b0cee0b
Merge: 06e8bd2 2816811
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 13:31:52 2015 +0100

    Merge branch 'master' into marytts-bundle

    Conflicts:
    	bundles/core/org.openhab.core.compat1x/build.properties

commit 06e8bd2
Author: Tobias Bräutigam <[email protected]>
Date:   Fri Mar 20 12:47:03 2015 +0100

    fixed method name

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 2816811
Merge: deffae8 8fce0f9
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 18:54:41 2015 +0100

    Merge pull request #3 from openhab/master

    Merge with master

commit 8fce0f9
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:55 2015 +0100

    Adapted code to latest stable ESH release

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit b3463ea
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 19 17:38:19 2015 +0100

    Improved default sitemap provider and demo files to make the Classic UI behave nice again.
    Also adapted AutoApproveService and removed ThingItemProvider as it was superceded by the ThingSetupManager of ESH.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit fcd7715
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:29:48 2015 +0100

    break added

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 43cba52
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:27:51 2015 +0100

    removed marytts bundle from build path

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit 8c77b5b
Author: Tobias Bräutigam <[email protected]>
Date:   Thu Mar 19 09:24:49 2015 +0100

    augmented the compbalility layer to support the TTSService interface
    (needed for all text-to-speech engines)

    Signed-off-by: Tobias Bräutigam <[email protected]>

commit ff2e51c
Author: Kai Kreuzer <[email protected]>
Date:   Sun Mar 15 09:44:16 2015 -0700

    added info about Milight and Energenie

commit 67af79a
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:15:45 2015 -0700

    updated information about rrd4j

commit 60c3b88
Author: Kai Kreuzer <[email protected]>
Date:   Sat Mar 14 15:16:36 2015 -0700

    Implemented ItemRegistry, ItemUIRegistry and ChartProvider support for the compatibility layer. This fixes openhab#146.

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 791e777
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 07:36:56 2015 -0700

    Added  InsteonPLM 1.7 binding

commit cb3fa7d
Merge: cc7fa1d d0798b5
Author: Kai Kreuzer <[email protected]>
Date:   Thu Mar 12 06:50:40 2015 -0700

    Merge pull request openhab#160 from sja/format-start-scripts

    Format start scripts and add check for not found equinox launcher

commit d0798b5
Author: Sebastian Janzen <[email protected]>
Date:   Tue Mar 10 13:45:45 2015 +0100

    Format start scripts and add check for not found equinox launcher

    If the equinox launcher jar is not present, there was no error message.

    Signed-off-by: Sebastian Janzen <[email protected]>

commit cc7fa1d
Merge: 743bc6c fcfdefe
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 10 23:37:39 2015 +0100

    Merge pull request openhab#157 from maggu2810/fix-resource-leak

    Resource leak: 'socket' never closed

commit fcfdefe
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:15:07 2015 +0100

    Resource leak: 'socket' never closed

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 743bc6c
Merge: 07ada5e fec6647
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 23:22:24 2015 +0100

    Merge pull request openhab#158 from kgoderis/sonos

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHa...

commit fec6647
Author: Karel Goderis <[email protected]>
Date:   Mon Mar 9 19:56:26 2015 +0100

    Fix a bug in the implementation of DiscoveryListener of the ZonePlayerHandler

    Note for other binding developers: DiscoveryListeners get called on the discovery of any Thing, e.g. there is no selectivity, and it is up to the DiscoveryListener implementor to check if the ThingUID is valid or not

    Signed-off-by: Karel Goderis <[email protected]>

commit 07ada5e
Merge: 1780131 906b836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Mar 9 18:03:08 2015 +0100

    Merge pull request openhab#156 from maggu2810/fix-classpath-vs-exec-env

    classpath's JRE container and execution enviroment's one does not fit

commit 906b836
Author: Markus Rathgeb <[email protected]>
Date:   Mon Mar 9 09:05:32 2015 +0100

    classpath's JRE container and execution enviroment's one does not fit

    Fix "The JRE container on the classpath is not a perfect match to the
    'J2SE-1.5' execution environment" for org.openhab.io.transport.serial.

    Fix "The JRE container on the classpath is not a perfect match to the
    'JavaSE-1.7' execution environment" for org.openhab.core.init and
    org.openhab.core.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 1780131
Merge: 8a6f1a8 86a8ed1
Author: Kai Kreuzer <[email protected]>
Date:   Wed Mar 4 18:37:49 2015 +0100

    Merge pull request openhab#154 from maggu2810/launch-cfg-stop-auto-add

    stop add workspace plugins automatically to launch config

commit 86a8ed1
Author: Markus Rathgeb <[email protected]>
Date:   Wed Mar 4 17:37:00 2015 +0100

    stop add workspace plugins automatically to launch config

    It is very annoying if every bundle I added to my workspace is also
    added to the launch configuration and must be deactivated manually.
    A launch configuration should represent a configuration that is changed
    manually if additional bundles should be added.

    If the automatically addition of plugins is deactivated, we could stop
    adding plugins to deselected_workspace_plugins.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 8a6f1a8
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 23:00:32 2015 +0100

    updated launch config for new target platform

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 42ad9c1
Author: Kai Kreuzer <[email protected]>
Date:   Tue Mar 3 15:49:33 2015 +0100

    upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit d34492b
Merge: 18e7ae4 a292008
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:34:27 2015 +0100

    Merge pull request openhab#145 from cdjackson/dev

    Update compatability

commit a292008
Merge: 8c5f668 18e7ae4
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:24:54 2015 +0000

    Merge branch 'master' of https://github.com/openhab/openhab2 into dev

    Conflicts:
    	docs/sources/installation/compatibility.md

commit 18e7ae4
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:17:42 2015 +0100

    removed 2.0 alpha compat info

commit 8c5f668
Author: Chris Jackson <[email protected]>
Date:   Mon Feb 23 21:16:00 2015 +0000

    Update compatability
    Add OW-Server, MySQL, Heatmiser, SNMP
    Signed-off-by: Chris Jackson <[email protected]> (github: cdjackson)

commit c1fc6df
Merge: df79093 8892836
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 23 22:07:23 2015 +0100

    Merge pull request openhab#144 from isigmund/master

    changed compatibility.md

commit 8892836
Author: Ingo Sigmund <[email protected]>
Date:   Mon Feb 23 21:44:17 2015 +0100

    changed comaptibility.md to reflect sucessful testing of openhab 1.6.0 bindings
    Fs20 and CUL on openhab2 snapshot

commit df79093
Merge: 232b275 491f7f2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 21 11:33:25 2015 +0100

    Merge pull request openhab#141 from kgoderis/sonos

    Sonos : implementation of new commands

commit 491f7f2
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:40:35 2015 +0100

    Implementation of the playTrack functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 195f846
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 23:03:56 2015 +0100

    Implement playQueue functionality

    Signed-off-by: Karel Goderis <[email protected]>

commit 232b275
Merge: ddaf474 e5fc3eb
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 20 20:42:32 2015 +0100

    Merge pull request openhab#140 from kgoderis/sonos

    Further improvement of Metadata methods

commit e5fc3eb
Author: Karel Goderis <[email protected]>
Date:   Fri Feb 20 20:37:30 2015 +0100

    Further improvement of Metadata methods

    Signed-off-by: Karel Goderis <[email protected]>

commit ddaf474
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:02:58 2015 +0100

    Update compatibility.md

commit cd465fb
Merge: d618223 65a5094
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 21:01:59 2015 +0100

    Merge pull request openhab#136 from mdbergmann/patch-1

    Update compatibility.md

commit d618223
Merge: 7e2bb61 dd7c484
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:51:36 2015 +0100

    Merge pull request openhab#138 from maggu2810/remove-missing-deactivate-call

    ThingItemProvider: prevent call of missing deactive function

commit 7e2bb61
Merge: 25cc1b3 ab114f7
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 18 20:48:43 2015 +0100

    Merge pull request openhab#137 from maggu2810/compat1x-fix-import

    add missing import for javax.sound.sampled

commit dd7c484
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 18:34:50 2015 +0100

    ThingItemProvider: prevent call of missing deactive function

    Signed-off-by: Markus Rathgeb <[email protected]>

commit ab114f7
Author: Markus Rathgeb <[email protected]>
Date:   Wed Feb 18 17:31:19 2015 +0100

    add missing import for javax.sound.sampled

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 65a5094
Author: mdbergmann <[email protected]>
Date:   Wed Feb 18 13:27:10 2015 +0100

    Update compatibility.md

commit 25cc1b3
Merge: 54b135c ad957f8
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 17:26:28 2015 +0100

    Merge pull request openhab#134 from kgoderis/sonos

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

commit ad957f8
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 17:11:19 2015 +0100

    Fix small bugs in updateCurrentURIFormatted and updateTrackMetaData

    Signed-off-by: Karel Goderis <[email protected]>

commit 54b135c
Merge: fed8c5c 9f107a3
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 13:30:52 2015 +0100

    Merge pull request openhab#131 from kgoderis/sonos

    Improve track meta data handling

commit 9f107a3
Author: Karel Goderis <[email protected]>
Date:   Mon Feb 16 13:09:45 2015 +0100

    Improve track meta data handling

    Signed-off-by: Karel Goderis <[email protected]>

commit fed8c5c
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 16 08:59:11 2015 +0100

    Updated to JAX-RS connector 4.2.0
    Fixes openhab#38

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 8f97322
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 14 00:37:23 2015 +0100

    Updated AUTHORS

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f84b1b2
Author: Thomas Eichstädt-Engelen <[email protected]>
Date:   Fri Feb 13 17:18:25 2015 +0100

    Fixes openhab#84 - Let openhab2 take SystemProperties into Account

    Signed-off-by: Thomas Eichstädt-Engelen <[email protected]>

commit 5e55ac0
Merge: 3a024bb 6bc91d6
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 16:22:18 2015 +0100

    Merge branch 'maxcube-test' of https://github.com/marcelrv/openhab2 into marcelrv-maxcube-test

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 3a024bb
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 11 14:13:13 2015 +0100

    updated dependency to renamed mdns bundle
    fixes openhab#128

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 91b9294
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:21:07 2015 +0100

    Update compatibility.md

commit 09f159d
Merge: 3a00a6d e3bda3d
Author: Kai Kreuzer <[email protected]>
Date:   Mon Feb 9 20:19:58 2015 +0100

    Merge pull request openhab#126 from kgoderis/patch-2

    Update compatibility.md

commit e3bda3d
Author: kgoderis <[email protected]>
Date:   Mon Feb 9 20:06:13 2015 +0100

    Update compatibility.md

commit 3a00a6d
Merge: 0795c8d a866116
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 8 20:44:13 2015 +0100

    Merge pull request openhab#125 from kgoderis/sonos

    Fix bug in updateCurrentURIFormatted()

commit a866116
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 16:44:52 2015 +0100

    Fix bug in updateCurrentURIFormatted()

    Signed-off-by: Karel Goderis <[email protected]>

commit 0795c8d
Merge: 21c6ea6 b490af2
Author: Kai Kreuzer <[email protected]>
Date:   Sat Feb 7 12:28:25 2015 +0100

    Merge pull request openhab#123 from kgoderis/sonos

    Fix bugs in playLineIn()

commit b490af2
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:33:23 2015 +0100

    Improve error handling in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 69a755e
Author: Karel Goderis <[email protected]>
Date:   Sat Feb 7 11:32:06 2015 +0100

    Fix bug in playLineIn()

    Signed-off-by: Karel Goderis <[email protected]>

commit 21c6ea6
Author: Kai Kreuzer <[email protected]>
Date:   Fri Feb 6 17:04:49 2015 +0100

    fixed rrd4j compat info

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 883f718
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:22 2015 +0100

    added info about screencast

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5cf303b
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 23:02:01 2015 +0100

    updated copyright

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ef60ae0
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:48:38 2015 +0100

    added headers

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24f624a
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 22:46:31 2015 +0100

    added info about Paper UI and a screencast for binding skeleton creation

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 527b51f
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:52:34 2015 +0100

    set auto-start to true - this will avoid many problems where people forget to do this manually

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 24950b1
Author: Kai Kreuzer <[email protected]>
Date:   Thu Feb 5 21:47:03 2015 +0100

    adding new workspace bundles automatically to the launch config

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 780b229
Merge: 9c5c046 3180c83
Author: Kai Kreuzer <[email protected]>
Date:   Wed Feb 4 23:09:58 2015 +0100

    Merge pull request openhab#122 from kgoderis/sonos

    Fix bug in saveState() and restoreState() + improve error handling

commit 3180c83
Author: Karel Goderis <[email protected]>
Date:   Wed Feb 4 19:18:30 2015 +0100

    Fix bug in saveState() and restoreState() + improve error handling

    Signed-off-by: Karel Goderis <[email protected]>

commit 9c5c046
Merge: 58ec087 1194776
Author: Kai Kreuzer <[email protected]>
Date:   Tue Feb 3 10:52:19 2015 +0100

    Merge pull request openhab#121 from kgoderis/master

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

commit 1194776
Author: Karel Goderis <[email protected]>
Date:   Tue Feb 3 09:32:04 2015 +0100

    Fix FileInputStream path in org.openhab.io.multimedia.actions.audio

    Signed-off-by: Karel Goderis <[email protected]>

commit 58ec087
Author: Kai Kreuzer <[email protected]>
Date:   Sun Feb 1 14:56:32 2015 +0100

    added sources of jUPnP to target platform - see jupnp/jupnp#16

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit ca25009
Author: Kai Kreuzer <[email protected]>
Date:   Fri Jan 30 17:05:44 2015 +0100

    updated archetype version

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1def393
Merge: aba7037 bb8a1c7
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 29 10:28:58 2015 +0100

    Merge pull request openhab#120 from maggu2810/sonos-fix-imports

    sonos: fix missing import-package

commit bb8a1c7
Author: Markus Rathgeb <[email protected]>
Date:   Thu Jan 29 10:18:33 2015 +0100

    fix missing import-package

    The file SonosXMLParser.java is using the following imports:
    - org.xml.sax.Attributes;
    - org.xml.sax.InputSource;
    - org.xml.sax.SAXException;
    - org.xml.sax.XMLReader;
    - org.xml.sax.helpers.DefaultHandler;
    - org.xml.sax.helpers.XMLReaderFactory;

    The OSGi specification mandates that a bundle declare all package
    depenencies using either Import-Package or Require-Bundle. The one
    exception to this rule is the java.* packages which is always delegated
    to the boot classpath. All other packages dependencies must be declared
    in the bundle's manifest file.

    Signed-off-by: Markus Rathgeb <[email protected]>

commit 6bc91d6
Author: Marcel Verpaalen <[email protected]>
Date:   Wed Jan 28 18:25:13 2015 +0100

    Updated with cleaned target

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit aba7037
Merge: 4048ac9 0a6aab5
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 18:18:16 2015 +0100

    Merge pull request openhab#119 from kgoderis/patch-1

    Update logback_debug.xml

commit 0a6aab5
Author: kgoderis <[email protected]>
Date:   Wed Jan 28 18:12:48 2015 +0100

    Update logback_debug.xml

    Fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=458180

    Signed-off-by: Karel Goderis <[email protected]>

commit 4048ac9
Merge: a60baaa f41b4ea
Author: Kai Kreuzer <[email protected]>
Date:   Wed Jan 28 13:22:57 2015 +0100

    Merge pull request openhab#118 from maggu2810/ui-dashboard-fix-imports

    fix version requirements of service.component import

commit f41b4ea
Author: Markus Rathgeb <[email protected]>
Date:   Wed Jan 28 13:10:19 2015 +0100

    fix version requirements of service.component import

    The version of the service component package for OSGi Release 4 is using
    the version 1.2.
    The JavaDoc API states, that consumer of the API should use
    version="[1.2,2.0)" for the version of the import.
    I cannot find an implementation of the fixed version 1.2.2, perhaps this
    is only supported by equinox.
    Source: http://www.osgi.org/javadoc/r4v43/residential/org/osgi/service/component/package-summary.html
    Signed-off-by: Markus Rathgeb <[email protected]>

commit a60baaa
Author: Kai Kreuzer <[email protected]>
Date:   Tue Jan 27 12:21:38 2015 +0100

    fixes openhab#117

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit a7284cc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:36:16 2015 +0100

    reverted accidential commit

commit 19dee90
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:34:47 2015 +0100

    added DSC alarm info

commit f678dfc
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 26 18:33:44 2015 +0100

    added Z-Wave info

commit efb303c
Author: Marcel Verpaalen <[email protected]>
Date:   Fri Jan 23 01:47:28 2015 +0100

    Initial contribution MAX! Binding Tests

    Signed-off-by: Marcel Verpaalen <[email protected]>

commit c4c9962
Author: Kai Kreuzer <[email protected]>
Date:   Thu Jan 22 19:02:18 2015 +0100

    Added new url for Classic UI with sitemap

commit 7cacee6
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 20:00:51 2015 +0100

    changed http port definitions to OSGi params

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 5173ecd
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 19:47:35 2015 +0100

    updated thing item provider and default sitemap provider to work with home-groups

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit f1345f0
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:46 2015 +0100

    worked around current bugs in configuration handling

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

commit 1ec7579
Author: Kai Kreuzer <[email protected]>
Date:   Mon Jan 19 18:30:04 2015 +0100

    adding advanced property to most channels

    Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)

augmented the compbalility layer to support the TTSService interface
(needed for all text-to-speech engines)

Signed-off-by: Tobias Bräutigam <[email protected]>

removed marrytts bundle from launch

Signed-off-by: Tobias Bräutigam <[email protected]>

upgraded Jetty to 9.2.9 and JAX-RS connector to 4.2.2
Fixes openhab#38

Signed-off-by: Kai Kreuzer <[email protected]> (github: @kaikreuzer)
fwolter added a commit that referenced this issue Oct 30, 2021
…nal refactoring (#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* #16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* #24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* #47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #47 Remove TODO from code and add issue #55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* #14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* #62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* #55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* #72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* #77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* #62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* #62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* #74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* #74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* #76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* #76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* #78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* #75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* #72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* #77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* #62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* #62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* #74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* #74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* #76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* #76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* #78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* #75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* #46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* #46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* #40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* #40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* #40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* #40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* #34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* #34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* #34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* #83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* #84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* #25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* #25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* #66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* #41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* #41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* #101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* #63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* #108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* #109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* #111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* #112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
dschoepel pushed a commit to dschoepel/openhab-addons that referenced this issue Nov 9, 2021
…nal refactoring (openhab#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Remove TODO from code and add issue openhab#55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* openhab#83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* openhab#66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* openhab#101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* openhab#63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* openhab#108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* openhab#111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Dave J Schoepel <[email protected]>
NickWaterton pushed a commit to NickWaterton/openhab-addons that referenced this issue Dec 30, 2021
…nal refactoring (openhab#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Remove TODO from code and add issue openhab#55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* openhab#83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* openhab#66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* openhab#101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* openhab#63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* openhab#108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* openhab#111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Nick Waterton <[email protected]>
nemerdaud pushed a commit to nemerdaud/openhab-addons that referenced this issue Jan 28, 2022
…nal refactoring (openhab#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Remove TODO from code and add issue openhab#55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* openhab#83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* openhab#66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* openhab#101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* openhab#63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* openhab#108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* openhab#111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
marcfischerboschio pushed a commit to bosch-io/openhab-addons that referenced this issue May 5, 2022
…nal refactoring (openhab#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Remove TODO from code and add issue openhab#55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* openhab#83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* openhab#66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* openhab#101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* openhab#63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* openhab#108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* openhab#111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
andan67 pushed a commit to andan67/openhab-addons that referenced this issue Nov 6, 2022
…nal refactoring (openhab#11134)

* Reduce debug output

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added meta information for Bosch binding

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Set binding online only if fetching rooms and devices worked

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Replaced hard-coded IP address with configuration from things file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixes after rebasing on 2.5.x branch

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put keystore where openhab user can access it

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Attempt to get a new subscription ID when the old one is invalidated

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Better install script

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Asynchronously get subscription ID

Otherwise, code would get stuck on requesting second subscription ID
Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Initial steps towards pairing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Doesn't compile because of bouncycastle - compiles if commented out

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Bumped version

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added basic support for multiple devices to support Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Support for power meter in power switches + all values from Twinguard

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add window contact to the list of supported things

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Updated README to indicate new supported devices

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added missing file

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added motion detector thing

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* All devices support RefreshType now

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleanup - removed pairing related stuff that doesn't work

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed a weird bug where InWallSwitchHandler was not an instance of SHCHandler

Signed-off-by: Stefan Kaestle <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Update BoschSHCBridgeHandler.java

fixed HTTP request URL to get rooms from SHC

Signed-off-by: Gerd Zanker <[email protected]>

* Add handler for Bosch Shutter Control to get and set its open level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Auto update of .classpath by IDE

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle PercentType command to set a specific shutter level

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Put service name in constant instead of using it hard coded twice

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Refactor putState method of BoschSHCBridgeHandler

Remove unnecessary parts of the request like Gateway ID and put some general logic into separate methods to reuse them in other functions later

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Send operation state STOPPED to stop shutter from moving

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add shutter control to supported devices in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add null reference check to avoid a NullReferenceException in ShutterControlHandler if device state couldn't be fetched

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add TemperatureLevelService

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add ThermostatHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add valve tappet position channel to thermostat via ValveTappet service

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add service registration for BoschSHCHandler, so the state updates are automatically calling the registered state update callback of the handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add affectedChannels to service registration and handle RefreshType directly in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Cleaned up DeviceStatusUpdate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added Bosch SHC certs

added public certificates from https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/best_practice

Signed-off-by: Gerd Zanker <[email protected]>

* added pairing support

added support for keystore creation and pairing
documented the process in readme
refactoring of httpClient to take care of SSL context

Signed-off-by: Gerd Zanker <[email protected]>

* Add RoomClimateControlService and ClimateControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Handle command to set setpoint temperature and move conversion from service state data to thing states into service state classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove unnecessary imports from ThermostatHandler.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make new service and handler @NonNullByDefault

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added comments for climate control service, handler and base service and handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add missing comments on new classes and their methods

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make registerService method of BoschSHCHandler private and adjust usages

Derived handlers should use createService instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw an error instead of returning null for method getBridgeHandler of BoschSHCHandler

This allows for fewer null checks after the initialization of a handler.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @author tags in JavaDoc of new classes

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Ran mvn spotless:apply to apply correct code formatting

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed missing imports in BoschSHCService.java

This was caused by a too quick merge of me.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed warnings about null annotations

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to all handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added license header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#16 Adjust logger usages to not be too verbose

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#10 Remove obsolete parse-things.py script

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#29 Remove dev scripts install.sh and run.sh scripts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* added author name to each class comment

Added the author(s) and small comment to each class based on the git
history and if necessary created the basis class comment body.

Signed-off-by: Gerd Zanker <[email protected]>

* added license header for new files

Signed-off-by: Gerd Zanker <[email protected]>

* run mvn spotless check/apply

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Catch error response when trying to get state of a service of a device and throw specific error instead of returning invalid state object

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#24 Run mvn spotless:apply and mvn license:format to respect coding guidelines

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#5 Update README.md with up-to-date information about the setup of the binding

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#31 Typo in README.md

Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add detailed description of the system password to provide in README.md

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix non-initialized member of @NonNullByDefault class ValveTappetServiceState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#7 Moved each device to a separate subfolder inside devices folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#44 Adjust version of org.openhab.addons.reactor.bundles to 2.5.9-SNAPSHOT in pom.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Increase year in copyright headers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Remove several obsolete loggers and fix logging of exceptions

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Fixed some code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Ran mvn spotless:apply

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#45 Revert adding @NonNullByDefault to BoschSHCConfiguration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fixed code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* updated text files based on pull request feedback

Signed-off-by: Gerd Zanker <[email protected]>

* Apply suggestions from code review

Applied only suggested string text changes and few trivial code changes

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Improved comments and changed visibility

code review findings improved related to code comments
and public/private visibility of variables
removed example properties file and class path entries

Signed-off-by: Gerd Zanker <[email protected]>

* added @NonNullByDefault annotation where necessary and easy possible

in addition minor improvements like
removed TODO for code refactoring
used BoschSHCException instead of Error in one place
Renamed internal Error class to ErroInfo
ran spotless:apply

Signed-off-by: Gerd Zanker <[email protected]>

* use SIUnits

replaced all Celcius units with eclipse SIUnits

Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* change logging and GSON related code

increased many log levels
avoid creating new GSON instances in derived handler subclasses
changed catch code to avoid stack trace dumps

Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault to BoschSHCConfiguration class and remove obsolete usages of configuration in handlers

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw BoschSHCExceptions instead of generic Errors and handle them during creation of services

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Class::new supplier function instead of deprecated Class.newInstance() method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove @NonNullByDefault from inner classes and unused logger member to remove compile warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use Base64.getEncoder().encodeToString instead of Base64.getEncoder().encode and a manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add @NonNullByDefault annotation to BoschSHCBridgeConfiguration and check for empty password and ip address in configuration

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use try-with-resources to auto-close streams for key store creation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move data transfer objects of bridge into dto folder

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add thing type ids and channel type ids to README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move thing configurations out of thing-types.xml and into configs.xml. Remove deprecated required element and use attribute instead.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Adjust some elements, units, descriptions and labels in configs.xml and thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move url and request creation from BoschSHCBridgeHandler to BoschHttpClient to reuse it inside BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add default timeout to request to smart home controller

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make httpClient of BoschSHCBridgeHandler @nullable and use BoschHttpClient createUrl and createRequest methods where possible

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make gson field in BoschSHCBridgeHandler final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Simplify getDevices method of BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use getContentAsString() instead of getContent() plus manual conversion to String

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use instanceof instead of isInstance(...) in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add registerService method to BoschSHCHandler to register already created services, so they can be created in the constructor of a handler and do not have to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using simpler String.format instead of MessageFormatter in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move ShutterControlState into dto subfolder and remove @NonNullByDefault annotation

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make bridgeHandler and deviceId in BoschSHCService @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move DTOs in dto subfolders and remove @NonNullByDefault annotations from them

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add texts for errors during initialization of bridge

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Migrate PowerSwitch to new service architecture to get rid of BoschSHCBridgeHandler.updateSwitchState

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete null parameter from subscription request

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Removed obsolete TODO about hard-coded data which does not exist anymore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use lambda for response handling of long poll

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Remove obsolete @nonnull annotations in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Throw http exceptions when trying to request state from a device to set the thing to offline

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Add state options for combined-rating, temperature-rating and humidity-rating channels

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix several minor static code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Added migration artifacts

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fix formatting and increase version number

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fix HTTP client issue, improve connection logging, add Developers markdown

the HTTPClient requests were broken
updated exception handling and logging for connection and pairing
describing source of certificates

Signed-off-by: Gerd Zanker <[email protected]>

* Use service for shutter control handling instead of having the logic inside the ShutterControlHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Fix code formatting to remove code analysis warnings

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Fixed pairing

Signed-off-by: Gerd Zanker <[email protected]>

* Fixed long poll

Signed-off-by: Gerd Zanker <[email protected]>

* Move common error handling for parsing responses from BoschHttpClient into sendRequest method to make subscribe request logic clearer

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use scheduler.schedule instead of Thread.sleep during long polling

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Using synchronous request for subscribe request

The initialization is not finished without a successful subscription.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use synchronous long poll request to get it to work

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling asynchronous to not block scheduler threads

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Only scheduling new long polls while bridge is not disposed and aborting long polling on disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Move long polling logic into separate class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Make long polling requests synchronous again, the asynchronous way still does not receive any state updates

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* replaced while loop for pairing with scheduler calls

Pattern from LongPolling reused.
Scheduling new initial access checks including pairing every 15 seconds until it was successful and long polling can be started

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Throw BoschSHCException instead of raw error to avoid code analysis warning

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Remove TODO from code and add issue openhab#55 instead

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Pass non-null httpClient to bridge initialization instead of having to check for null reference

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use one supportsThingTypes mapping to list the supported things with their handler in BoschSHCHandlerFactory

Previously an array plus a big switch was required.

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#47 Starting http client before scheduling initial access

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Use logger.debug instead of logger.info

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* Include cause exception in the PairingFailedException

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields above constructor in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete configuration field from BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move fields and constructor in JsonRpcRequest to top of the class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Log the failure of a long poll as warning instead of error

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use %s instead of {} as placeholder for String.format

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move @nullable annotation in front of field name

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Specify UTF_8 as charset to convert string to byte array

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove spaces from pem files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change ArrayList to List in Device.java

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use QuantityType for power and energy consumption of the in-wall switch handler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Check if StopMoveType is STOP in ShutterControlHandler before setting the device state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make fields of DeviceService final

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Stop http client and cancel scheduled pairing on bridge disposal

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove channel check in BoschTwinguardHandler for Refresh command

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to warning when update in BoschTwinguardHandler and WindowContactHandler returns incorrect state

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add additional information about channels to thing-types.xml and README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove confusing comment from LongPolling.subscribe method

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Removed obsolete error log in LongPolling.subscribe

A warning is already logged in BoschBridgeHandler when an exception occurs

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add detailed description for purity channel

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fix typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change scheduledPairing field in BoschSHCBridgeHandler to be @nullable

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Change type of channel values from DecimalType to QuantityType in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .classpath and .project files

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed typo in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Only log error message instead of whole stack trace in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove exception which is not thrown and typo in BoschSslUtil

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use SmartHomeUnits instead of AbstractUnit in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Added supported-bridge-type-refs to thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove invalid whitespace from thing-types.xml

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Fixed warnings and errors caused by updated Gson library

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update info about auto reload of bundle jar in DEVELOPERS.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Update information about adding items and things via UI, added missing password configuration value and changed headline in README.md

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Execute long polling requests asynchronous to not block a thread

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Refactored WindowContactHandler to use ShutterContactService instead of implementing service logic itself

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove obsolete .gitignore. The ignored files are already ignored by the root .gitignore

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename constant supportsThingTypes to SUPPORTED_THING_TYPES in BoschSHCHandlerFactory

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Use List.of instead of Arrays.asList

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Call super.dispose last in BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add exception message to status when http connection to controller fails

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Handle JsonSyntaxException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Forward InterruptedExceptions to callers, so they have to be handled correctly

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Logging long poll error message and code instead of hash

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Throwing InterruptedException during pairing instead of only logging it

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Move nested class AbortLongPolling to end of LongPolling class

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Make gson instance static final in BoschHttpClient

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Rename gson to GSON and make it static final in BoschSHCHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Remove @nullable annotations from GSON-created objects

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add causing exception to ExecutionException in BoschHttpClient.sendRequest

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* openhab#14 Add JsonSyntaxException to definition of processUpdate in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>
Signed-off-by: Gerd Zanker <[email protected]>

* fixed keyStore creation

Moved PEM files into expected folder according to package

Signed-off-by: Gerd Zanker <[email protected]>

* moved final fields above non-final fields

Signed-off-by: Gerd Zanker <[email protected]>

* updated copyright year in header by executing mvn license:format

Signed-off-by: Gerd Zanker <[email protected]>

* fixed last two pending warnings

added back the removed @nullable annotation in sendRequest()
replaced deprecated SslContextFactory constructor call

Signed-off-by: Gerd Zanker <[email protected]>

* added Bouncy Castle third-party license info into NOTICE

Signed-off-by: Gerd Zanker <[email protected]>

* changed Bouncy Castle version to same version as  currently used in org.openhab.core.io.jetty.certificate to later reduce download size

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Correctly check if long poll response is valid

GSON will not return null if there is no "result" field, but will just set the "result" member to null.

Signed-off-by: Christian Oeing <[email protected]>

* Add @NonNullByDefault annotation to LongPollResultTest class and fix method name

Signed-off-by: Christian Oeing <[email protected]>

* added first unittests for BoschSslUtil class

Signed-off-by: Gerd Zanker <[email protected]>

* added next unittests for BoschHttpClient class

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#55 replaced the password with a fixed one

The changeable SHC system password for the keystore is replaced by a static string in the code.
The keyStore name is now based on SHC ipAddress to support multiple SmartHomeControllers.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#72 changed use units of measure for the twinguard humidity and purity values

all other QuantityTypes in bindingcode are fine

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#77 changed title of binding to Bosch Smart Home

Replaced the SHC occurrences with Smart Home,
to avoid technical names.

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#62 Try to restart long polling when it fails before taking the thing offline

Signed-off-by: Christian Oeing <[email protected]>

* openhab#62 Run subscribe request on a new thread instead of using the thread of the previous long polling http request

This might be the reason why the subscribe request does never finish or finishes with a timeout

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Run the whole long polling response handling in a new thread to not get timeout from HTTP client

Signed-off-by: Christian Oeing <[email protected]>

* openhab#74 Schedule initial access when long polling fails unexpected

We need to try to reconnect again and again (with 15 seconds between the requests) as the controller may have been restarted (update, manual restart,...). This is already done by the initial access, so I reuse that mechanism.

Signed-off-by: Christian Oeing <[email protected]>

* Use direct formatting of logger.trace instead of String.format

Signed-off-by: Christian Oeing <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>

* openhab#76 Use i18n texts instead of raw translations for status messages about failed long polling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#76 Use logger.debug instead of logger.warn for long poll error as it is handled now

Signed-off-by: Christian Oeing <[email protected]>

* openhab#78 defined api-version

each HTTP request will use now the defined "avp-version=2.1" for request to the smart home controller

Signed-off-by: Gerd Zanker <[email protected]>

* logging bundle version

removed the old static version string
access OSGi bundle version information instead

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#75 improved initial access

- added isOnline check and isAccessPossible now failed in case HTTPStatus is an error
- same HTTPStatus check done to all blocking send() request calls
- using i18n strings for all bridge updateStatus calls
- skipped the 'controller' and use only 'Bosch Smart Home' in descriptions
- added more @nullable annotations

Signed-off-by: Gerd Zanker <[email protected]>

* added newline

Signed-off-by: Gerd Zanker <[email protected]>

* openhab#46 Rename BoschInWallSwitchHandler, BoschTwinguardHandler, BoschSHCBridgeConfiguration and BoschSHCBridgeHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#46 Adjust descriptions of things

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use LatestMotionService in MotionDetectorHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Use service instead of custom logic in BoschTwinguardHandler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Add PowerMeterService to use in InWallSwitchHandler instead of having the logic directly in the handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#40 Rename InWallSwitchHandler to LightControlHandler

This is the official name in the Bosch API documentation, so we should use it as well (https://apidocs.bosch-smarthome.com/local)

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Get device info on thing initialization to check if device exists

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Use generic sendRequest method of http client to have consistent error handling

Signed-off-by: Christian Oeing <[email protected]>

* openhab#34 Fix formatting error when logging device info

Signed-off-by: Christian Oeing <[email protected]>

* openhab#83 Add info if a channel is writable to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#84 Adjust/Add descriptions of supported devices

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add humidity level service and wall thermostat handler

Signed-off-by: Christian Oeing <[email protected]>

* openhab#25 Add wall thermostat handler to handler factory

Signed-off-by: Christian Oeing <[email protected]>

* openhab#66 Check type of service state when received by bridge to make sure that it has the expected type

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Add child lock service to Thermostat handler and link its state to a "child-lock" channel

Signed-off-by: Christian Oeing <[email protected]>

* Add null check in BoschSHCServiceState.isValid

Signed-off-by: Christian Oeing <[email protected]>

* openhab#41 Use custom channel type for child-lock. Handle setting child lock state.

Signed-off-by: Christian Oeing <[email protected]>

* openhab#101 Store expected state type inside a member instead of a static variable

The static variable was stored in the base class, so it was only initialized once even for different state types

Signed-off-by: Christian Oeing <[email protected]>

* openhab#63 Use better identifier for thing that is missing a (valid) bridge

Signed-off-by: Christian Oeing <[email protected]>

* openhab#108 Add changelog to README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#109 Catch possible null pointer exception in long poll response handling

Signed-off-by: Christian Oeing <[email protected]>

* Fix potential null pointer access

Signed-off-by: Christian Oeing <[email protected]>

* Fix static code analysis error and 2 warnings

Signed-off-by: Christian Oeing <[email protected]>

* openhab#111 Remove changelog from README.md

Signed-off-by: Christian Oeing <[email protected]>

* openhab#112 Remove JSON from logs

Signed-off-by: Christian Oeing <[email protected]>

Co-authored-by: Stefan Kaestle <[email protected]>
Co-authored-by: Gerd Zanker <[email protected]>
Co-authored-by: Christian Oeing <[email protected]>
Co-authored-by: Hilbrand Bouwkamp <[email protected]>
Co-authored-by: Fabian Wolter <[email protected]>
Co-authored-by: Connor Petty <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant