openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.86k stars 3.56k forks source link

[homematic] Invalid configuration possible that disables updates from CCU3 #16940

Open soenkekueper opened 6 days ago

soenkekueper commented 6 days ago

Expected Behavior

The configuration values for IP-Adresses and ports should be validated/automatically trimmed, so that an invalid configuration is not possible.

Current Behavior

If the Callback-IP contains one or more blanks at the beginning or the end the thing goes online, but there occours an error on the CCU3 and no values are updated any more in openHAB.

Possible Solution

Steps to Reproduce (for Bugs)

  1. Create CCU Thing
  2. Configure Callback-URL with Whitespace
  3. Thing States will not be updated

Context

I've some homematic components, for example a sensor that shows, if the garage door is closed. But the values for this won't be updated any more, when the configuration is invalid.

Your Environment

`runtimeInfo: version: 4.1.3 buildString: Release Build locale: de-DE systemInfo: configFolder: /etc/openhab userdataFolder: /var/lib/openhab logFolder: /var/log/openhab javaVersion: 17.0.5 javaVendor: Eclipse Adoptium javaVendorVersion: Temurin-17.0.5+8 osName: Linux osVersion: 6.1.39-v7l+ osArchitecture: arm availableProcessors: 4 freeMemory: 58138160 totalMemory: 456130560 uptime: 3261 startLevel: 100 addons:

soenkekueper commented 2 days ago

Stack Trace (in homematic) looks like this

2024-06-26 13:39:03,016 io.vertx.core.impl.ContextImpl ERROR [vert.x-worker-thread-19] Unhandled exception
java.lang.IllegalArgumentException: Illegal character in authority at index 7: http:// 192.168.XXX.XXX:9125
        at java.net.URI.create(Unknown Source) ~[?:?]
        at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:76) ~[HMIPServer.jar:?]
        at de.eq3.cbcs.legacy.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:104) ~[HMIPServer.jar:?]
        at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:94) ~[HMIPServer.jar:?]
        at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:82) ~[HMIPServer.jar:?]
        at com.sun.proxy.$Proxy39.listDevices(Unknown Source) ~[?:?]
        at de.eq3.ccu.virtualdevice.service.internal.rega.BackendUpdateDevicesCommand.updateDevicesForClient(BackendUpdateDevicesCommand.java:34) ~[HMIPServer.jar:?]
        at de.eq3.ccu.virtualdevice.service.internal.rega.BackendUpdateDevicesCommand.run(BackendUpdateDevicesCommand.java:29) ~[HMIPServer.jar:?]
        at de.eq3.ccu.virtualdevice.service.internal.rega.BackendWorker.handle(BackendWorker.java:27) ~[HMIPServer.jar:?]
        at de.eq3.ccu.virtualdevice.service.internal.rega.BackendWorker.handle(BackendWorker.java:11) ~[HMIPServer.jar:?]
        at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100) ~[HMIPServer.jar:?]
        at io.vertx.core.impl.WorkerContext.lambda$emit$0(WorkerContext.java:59) ~[HMIPServer.jar:?]
        at io.vertx.core.impl.WorkerContext.lambda$execute$2(WorkerContext.java:104) ~[HMIPServer.jar:?]
        at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) ~[HMIPServer.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[HMIPServer.jar:?]
        at java.lang.Thread.run(Unknown Source) ~[?:?]
Caused by: java.net.URISyntaxException: Illegal character in authority at index 7: http:// 192.168.XXX.XXX:9125
        at java.net.URI$Parser.fail(Unknown Source) ~[?:?]
        at java.net.URI$Parser.parseAuthority(Unknown Source) ~[?:?]
        at java.net.URI$Parser.parseHierarchical(Unknown Source) ~[?:?]
        at java.net.URI$Parser.parse(Unknown Source) ~[?:?]
        at java.net.URI.<init>(Unknown Source) ~[?:?]
        ... 18 more