From 08126e9d3b7abcf42e0a40e4d6c7d278446a5f39 Mon Sep 17 00:00:00 2001 From: MichaelN0815 <68965895+MichaelN0815@users.noreply.github.com> Date: Mon, 2 Nov 2026 14:22:25 +0100 Subject: [PATCH 1/6] Add files via upload --- hmip-keyserver-check.patch | 83 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 hmip-keyserver-check.patch diff --git a/hmip-keyserver-check.patch b/hmip-keyserver-check.patch new file mode 100644 index 00000000..0d6f8f12 --- /dev/null +++ b/hmip-keyserver-check.patch @@ -0,0 +1,83 @@ +diff --git a/www/config/cp_add_device.cgi b/www/config/cp_add_device.cgi +--- a/www/config/cp_add_device.cgi ++++ b/www/config/cp_add_device.cgi +@@ -21,2 +21,5 @@ + set HS485D_URL "bin://127.0.0.1:$portnumber" ++ ++set KEYSERVER_HOST "secgtw.homematic.com" ++set KEYSERVER_PORT 8443 + +@@ -204,3 +207,3 @@ + append html "
\${dialogNewDevicesBidCosRFFetchmodeNotActive} | "
-+ append html "\${dialogNewDevicesBidCosRFFetchmodeNotActive} \${dialogNewDevicesKeyserverChecking} | "
- append html "" -@@ -306,3 +309,3 @@ - append html " |
\${dialogNewDevicesBidCosRFFetchmodeNotActive} | "
-+ append html "\${dialogNewDevicesBidCosRFFetchmodeNotActive} \${dialogNewDevicesKeyserverChecking} | "
- append html "" -@@ -397,2 +400,4 @@ - -+ puts "" -+ - initJavascript -@@ -457,2 +462,24 @@ - puts { -+ checkKeyserver = function() { -+ new Ajax.Request(url, { -+ method: "post", -+ postBody: "action=check_keyserver", -+ onSuccess: function(transport) { -+ var result = transport.responseText.trim(); -+ var key = result === "reachable" ? "dialogNewDevicesKeyserverReachable" : -+ result === "unreachable" ? "dialogNewDevicesKeyserverUnreachable" : -+ "dialogNewDevicesKeyserverCheckFailed"; -+ jQuery(".keyserver-status") -+ .removeClass("keyserver-reachable keyserver-unreachable") -+ .addClass(result === "reachable" ? "keyserver-reachable" : -+ result === "unreachable" ? "keyserver-unreachable" : "") -+ .text(translateKey(key) || key); -+ }, -+ onFailure: function() { -+ jQuery(".keyserver-status") -+ .removeClass("keyserver-reachable keyserver-unreachable") -+ .text(translateKey("dialogNewDevicesKeyserverCheckFailed") || "dialogNewDevicesKeyserverCheckFailed"); -+ } -+ }); -+ }; - update_new_device_count = function() { -@@ -766,2 +793,3 @@ - puts "translatePage('#messagebox');" -+ puts "checkKeyserver();" - puts "dlgPopup.readaptSize();" -@@ -983,2 +1011,11 @@ - -+proc action_check_keyserver {} { -+ global KEYSERVER_HOST KEYSERVER_PORT -+ if {[catch {exec nc -z -w 3 $KEYSERVER_HOST $KEYSERVER_PORT}]} { -+ puts "unreachable" -+ } else { -+ puts "reachable" -+ } -+} -+ - cgi_eval { -diff --git a/www/webui/js/lang/de/translate.lang.js b/www/webui/js/lang/de/translate.lang.js ---- a/www/webui/js/lang/de/translate.lang.js -+++ b/www/webui/js/lang/de/translate.lang.js -@@ -1,1 +1,5 @@ - "commentDialogNewDevices" : "***********************************************", -+ "dialogNewDevicesKeyserverChecking" : "eQ-3-Keyserver: Erreichbarkeit wird gepr%FCft ...", -+ "dialogNewDevicesKeyserverReachable" : "eQ-3-Keyserver: Erreichbar", -+ "dialogNewDevicesKeyserverUnreachable" : "eQ-3-Keyserver: Nicht erreichbar", -+ "dialogNewDevicesKeyserverCheckFailed" : "eQ-3-Keyserver: Pr%FCfung fehlgeschlagen", -diff --git a/www/webui/js/lang/en/translate.lang.js b/www/webui/js/lang/en/translate.lang.js ---- a/www/webui/js/lang/en/translate.lang.js -+++ b/www/webui/js/lang/en/translate.lang.js -@@ -1,1 +1,5 @@ - "commentDialogNewDevices" : "***********************************************", -+ "dialogNewDevicesKeyserverChecking" : "eQ-3 key server: Checking connectivity ...", -+ "dialogNewDevicesKeyserverReachable" : "eQ-3 key server: Reachable", -+ "dialogNewDevicesKeyserverUnreachable" : "eQ-3 key server: Not reachable", -+ "dialogNewDevicesKeyserverCheckFailed" : "eQ-3 key server: Check failed", From 846c56ed0513d32d003be4c4e091d61460fccc75 Mon Sep 17 00:00:00 2001 From: MichaelN0815 <68965895+MichaelN0815@users.noreply.github.com> Date: Mon, 2 Nov 2026 15:21:43 +0100 Subject: [PATCH 6/6] webui: prevent stale keyserver status updates --- www/config/cp_add_device.cgi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/www/config/cp_add_device.cgi b/www/config/cp_add_device.cgi index 0ae5ba19..afe05b61 100755 --- a/www/config/cp_add_device.cgi +++ b/www/config/cp_add_device.cgi @@ -461,6 +461,7 @@ puts "" puts "var installTimerHmIP = 0;" puts { checkKeyserver = function() { + var statusElements = jQuery(".keyserver-status"); new Ajax.Request(url, { method: "post", postBody: "action=check_keyserver", @@ -469,14 +470,14 @@ puts "" var key = result === "reachable" ? "dialogNewDevicesKeyserverReachable" : result === "unreachable" ? "dialogNewDevicesKeyserverUnreachable" : "dialogNewDevicesKeyserverCheckFailed"; - jQuery(".keyserver-status") + statusElements .removeClass("keyserver-reachable keyserver-unreachable") .addClass(result === "reachable" ? "keyserver-reachable" : result === "unreachable" ? "keyserver-unreachable" : "") .text(translateKey(key) || key); }, onFailure: function() { - jQuery(".keyserver-status") + statusElements .removeClass("keyserver-reachable keyserver-unreachable") .text(translateKey("dialogNewDevicesKeyserverCheckFailed") || "dialogNewDevicesKeyserverCheckFailed"); } |