diff --git a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java index 09a87134adb43..ac7862b8dc147 100644 --- a/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java +++ b/bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/InnogyWebSocket.java @@ -12,6 +12,7 @@ */ package org.openhab.binding.innogysmarthome.internal; +import java.io.IOException; import java.net.URI; import org.eclipse.jdt.annotation.NonNullByDefault; @@ -73,7 +74,11 @@ public synchronized void start() throws Exception { if (client == null || client.isStopped()) { client = new WebSocketClient(sslContextFactory); client.setMaxIdleTimeout(this.maxIdleTimeout); - client.start(); + try { + client.start(); + } catch (Exception e) { + throw new IOException("Web socket start failed"); + } } if (session != null) { @@ -97,6 +102,15 @@ public synchronized void stop() { session = null; logger.trace("Stopping websocket ignored - was not running."); } + if (client != null) { + try { + client.stop(); + client.destroy(); + } catch (Exception e) { + logger.debug("Stopping websocket failed", e); + } + client = null; + } } /**