diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
index 20756ec1df83ec7c0d199c8c7b3ee2003878e66b..1c095abf9a2849879931caa7e3a9fb70565a4ca1 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
@@ -34,6 +34,8 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
 		connectionStateIcon = new FontIcon(FontAwesomeType.CLOUD);
 		connectionStateIcon.setSize(20);
 
+		connectionStateIcon.setOnMouseClicked(this::onIconClicked);
+
 		connectedProperty = new SimpleIntegerProperty(0);
 		connectedProperty.addListener((observable, oldValue, newValue) -> {
 			Platform.runLater(() -> {
@@ -70,6 +72,19 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
 		);
 	}
 
+	private void onIconClicked(MouseEvent event) {
+		WebApiPlugin$.MODULE$.connections().values().stream()
+				.filter(client -> client.getPlayPadConnectionState() != WebSocketState.OPEN)
+				.forEach(client -> Worker.runLater(() -> {
+					try {
+						client.disconnect();
+						client.connect(1);
+					} catch (IOException | WebSocketException e) {
+						Logger.error(e);
+					}
+				}));
+	}
+
 	@Override
 	public void onInit(IMainViewController mainViewController) {
 		mainViewController.performLayoutDependedAction((oldToolbar, newToolbar) -> {