Seite 1 von 1

Anbindung Homematic CCU3 funktioniert nicht

Verfasst: 5. Aug 2020 18:39
von asthoreth
Hallo zusammen,

ich habe ein Problem meine Homematic Komponenten an openHAB anzubinden. Google und Foren-Suche waren bisher leider erfolglos.

Folgende Konfiguration:
  • OpenHAB 2.5.5 als Docker auf einem Synology-NAS
  • CCU3 3.51.6 inkl. XML-API
  • Beide Systeme mit festen IPs und im selben Netzwerksegment (keine Firewall dazwischen)
  • Firewall auf CCU3 gemäß Binding-Manual eingestellt (Vollzugriff)
CCU3 wird mittels thing-Datei ohne optionale Paramter angelegt:

Code: Alles auswählen

Bridge homematic:bridge:ccu_neu [ gatewayAddress="10.X.X.X"]
Danach wird die Bridge kurzzeitig als "online" in der PaperUI angezeigt und die angebundenen Komponenten erscheinen auch im Posteingang.
Nachdem diese aber eingebunden werden, geht die CCU3 auf offline.

OpenHAB-Log:

Code: Alles auswählen

2020-08-05 15:01:27.844 [WARN ] [ommunicator.AbstractHomematicGateway] - Connection lost on gateway 'ccu_neu', cause: "No Pong received!"
Bei meinem vorherigen Versuchen gab es auch folgende Meldungen:

Code: Alles auswählen

2020-08-05 14:01:10.217 [ERROR] [ternal.handler.HomematicThingHandler] - java.util.concurrent.TimeoutException: Total timeout 15000 ms elapsed
java.io.IOException: java.util.concurrent.TimeoutException: Total timeout 15000 ms elapsed
	at org.openhab.binding.homematic.internal.communicator.client.XmlRpcClient.send(XmlRpcClient.java:144) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.communicator.client.XmlRpcClient.sendMessage(XmlRpcClient.java:81) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.communicator.client.RpcClient.setDatapointValue(RpcClient.java:335) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway$1.execute(AbstractHomematicGateway.java:686) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.misc.DelayedExecuter.start(DelayedExecuter.java:65) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.sendDatapoint(AbstractHomematicGateway.java:665) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.sendDatapoint(AbstractHomematicGateway.java:644) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.handler.HomematicThingHandler.sendDatapoint(HomematicThingHandler.java:306) ~[bundleFile:?]
	at org.openhab.binding.homematic.internal.handler.HomematicThingHandler.handleCommand(HomematicThingHandler.java:282) [bundleFile:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_232]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_232]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]
	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [bundleFile:?]
	at com.sun.proxy.$Proxy304.handleCommand(Unknown Source) [?:?]
	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:74) [bundleFile:?]
	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:48) [bundleFile:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_232]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_232]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_232]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_232]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_232]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]
Caused by: java.util.concurrent.TimeoutException: Total timeout 15000 ms elapsed
	at org.eclipse.jetty.client.TimeoutCompleteListener.onTimeoutExpired(TimeoutCompleteListener.java:51) ~[?:?]
	at org.eclipse.jetty.io.CyclicTimeout$Wakeup.run(CyclicTimeout.java:282) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_232]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_232]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_232]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_232]
	... 3 more
events.log

Code: Alles auswählen

2020-08-05 15:01:27.845 [hingStatusInfoChangedEvent] - 'homematic:bridge:ccu_neu' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Connection lost
Log der CCU:

Code: Alles auswählen

Aug 5 18:06:28 de.eq3.ccu.virtualdevice.service.internal.rega.VirtualDeviceHandlerRega INFO  [vert.x-eventloop-thread-5] Added InterfaceId: GROUP-ccu_neu 
Aug 5 18:06:51 de.eq3.cbcs.legacy.bidcos.rpc.internal.InterfaceInitializer ERROR [vert.x-worker-thread-0] IO Exception: Could not add interface: HMIP-ccu_neu 
de.eq3.cbcs.legacy.communication.rpc.RpcIOException: java.net.ConnectException: Connection timed out (Connection timed out)
	at de.eq3.cbcs.legacy.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:110)
	at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:94)
	at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:82)
	at com.sun.proxy.$Proxy22.listDevices(Unknown Source)
	at de.eq3.cbcs.legacy.bidcos.rpc.internal.LegacyBackendClient.listDevices(LegacyBackendClient.java:139)
	at de.eq3.cbcs.legacy.bidcos.rpc.internal.DeviceUtil.synchronizedBackendDevices(DeviceUtil.java:142)
	at de.eq3.cbcs.legacy.bidcos.rpc.internal.InterfaceInitializer.handle(InterfaceInitializer.java:109)
	at de.eq3.cbcs.legacy.bidcos.rpc.internal.InterfaceInitializer.handle(InterfaceInitializer.java:26)
	at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:212)
	at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:191)
	at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$3(EventBusImpl.java:505)
	at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:337)
	at io.vertx.core.impl.TaskQueue.lambda$new$0(TaskQueue.java:60)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)
	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)
	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
	at de.eq3.cbcs.legacy.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:106)
	... 15 more
Sowie die Anbindung in openHAB aktiviert wird, bricht zudem die Performance der CCU komplett ein. Es ist dann bspw. kein Zugriff mehr auf die Einstellungen der Geräte möglich.

Folgende Punkte habe ich bereits ausprobiert:
  • Andere CCU (Zentrale Charly) - mit noch schlechterer Performance
  • Things per PaperUI
  • Things per things-file
  • Unterschiedlichste Firewall-Einstellungen auf der CCU
  • Neuinstallation des Homematic Bindings
Mir gehen leider die Ideen aus. Hat einer eine gute Idee, wo der Fehler liegen könnte?

Re: Anbindung Homematic CCU3 funktioniert nicht

Verfasst: 6. Aug 2020 00:09
von peter-pan
...eigentlich hast du ja schon fast alles ausprobiert.
Ich bin zwar auch ein Freund textbasierender SetUps, aber bei Homematic habe ich das aufgegeben, das hab ich das per PaperUi und Autodiscovery gemacht- Bridge/Extras und Things. Lediglich die Items habe ich dann per VSCode-Edior als Text-File angelegt.
Ich habe eine ccu3(3.51.6 - XML-Api 1.20) mit diversen Sensoren und einen normalen RasPi4(OH2.5.7-1). Du solltest aer auch immer, nachdem du ein Binding installiert hast bzw. ein thing angelegt oder geändert hast, einen Neustart machen. Das hilft manchmal auch schon. Mehr weiss ich leider auch nicht.

Re: Anbindung Homematic CCU3 funktioniert nicht

Verfasst: 6. Aug 2020 19:20
von asthoreth
Hallo zusammen,

ich habe zwar nicht den ursächlichen Fehler gefunden, aber es scheint auf alle Fälle mit der Docker-Instanz zu tun zu haben:

In einer eigenständingen openHAB Instanz auf meinem ESXi funktioniert es jetzt anstandslos.

Sollte es jemanden über eine Suchmaschine hierhin verschlagen, hilft das hoffentlich bei der Fehleranalyse.
Ich habe jetzt die Konfigs auf die neue Instanz umgezogen, und werde den Fehler nicht weiter eingrenzen.