Update to Openhab 3.1.0 breaks Homematic Binding

Hi,
i tried to install the new version of the Homematic Binding by following your tutorial:

Uninstall the Homematic binding
Stop openHAB
Clean the cache
Copy the test jar into the addons folder
Start openHAB
if the binding does not start, you may have to install manually two additional bundles via the Karaf console:
feature:install openhab-transport-upnp

I used openhab.3.2.0-snapshot as the version for the system.
I didn’t get the Homematic to show up automatically as described in the Howto.

Can you check the state in the Karaf Console with:

bundle:list | grep omematic

Are there any messages in openhab.log?

It will not appear in the Main UI under bindings.

I only tested my changes with the debugger. Can try it tomorrow in a docker container.

I have tried it in a openHAB docker container and performed the following steps:

  1. removed the installed Homematic binding
  2. copied the jar to the addons folder
  3. restarted the container
  4. execute feature:install ... in the Karaf console
  5. Homematic binding starts immediately (could see it with log:tail)

I do also get a NPE.
All my Homematic wired devices are not found by OH any more. They do still work in the pivCCU UI.
The OH error log only shows a hint to one of the devices.

Is there a way to downgrade the plugin itself as a quick fix ?
I’m on a clock here, the WAF is dropping with WARP2.

2021-07-05 11:52:12.001 [ERROR] [very.HomematicDeviceDiscoveryService] - null

java.lang.NullPointerException: null

at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generateConfigDescription(HomematicTypeGeneratorImpl.java:358) ~[?:?]

at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.createThingType(HomematicTypeGeneratorImpl.java:234) ~[?:?]

at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generate(HomematicTypeGeneratorImpl.java:181) ~[?:?]

at org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler.onDeviceLoaded(HomematicBridgeHandler.java:330) ~[?:?]

at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.loadAllDeviceMetadata(AbstractHomematicGateway.java:415) ~[?:?]

at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:209) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

at java.lang.Thread.run(Thread.java:829) [?:?]

2021-07-05 11:52:12.148 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint 'MEQ0809164:M_-1#CENTRAL_ADDRESS'

Did you install my test version of the binding? It will work with 3.1.

If this does not help you could go back to 3.1 M5.

Hi @MHerbst,
i tried it today again. I can’t get the test version to run.

bundle:list | grep omematic

returns nothing.

Here are my steps in detail:

  1. Take the current running docker container with 3.1.0.M5
  2. Logon via Web and uninstall the Homematic Binding
  3. Download the jar file via wget directly to the addons folder.
  4. Edit the compose file → Change image to 3.1.0
  5. Reboot the container
  6. Logon to the karaf console
  7. execute feature:install openhab-transport-upnp
  8. Check via log:tail and grep omeatic
  9. No luck

I’m I getting here something wrong?

Hmm I changed the image to 3.1.0 before I removed and replaced the binding. Maybe this is the problem.

If bundle:list does not show the binding at all, then it was not loaded from the addons folder. Even before installing the upnp feature it should be visible if you execute bundle:list.

You should also check that the addons folder is correctly mapped and that the rights are correct. Mabe the docker user is not allowed to access the add-on.

Good evening Martin and Jochen

@Martin: For now, many thanks for version 3.1.0 (stable).
In this version my Raspberymatic is now running fine on my RPi4.
However, I have to confirm or report two errors:

  • Can’t set value for datapoint ‘00155BE9A4386E: 0 # UPDATE_PENDING’ (HmIP-SWDM).
    However, I do not see any errors in operation.
  • Unfortunately my CCU2 (original HM 2.59.7) no longer works properly with 3.1.0.
    Perhaps this has a connection with the problem mentioned by [jochenfröhlich] ?
    All components via wire (HMW-LGW-O-DR-GS-EU and several HMW-IO-12-Sw14-DR) as well as my rain sensor (HM-Sen-RD-O) and my (GATEWAY-EXTRAS-CCU2) are no longer recognized by the binding.
    Scanning can no longer find the modules either.

As a layman, I haven’t dared to do your manual update yet.
Nevertheless, I would like to contribute my incompetent part.

Thanks and regards, Urs

Hi Urs,

regarding your first problem: according to the official documentation the HmIP-SWDM does not have an UPDATE_PENDING data point. Only CONFIG_PENDING, which is read only. Can you please attach the error message from openhab.log?

Now to the second problem: please check your openhab.log. Are there any NullPointerException messages? If yes, please post the excerpt from openhab.log. If it is the same position in the code, then the manual update can probably solve the problem.

Cheers
Martin

Aint got time for testing right now… but here is an old log:

2021-06-28 08:57:21.594 [ERROR] [very.HomematicDeviceDiscoveryService] - null
java.lang.NullPointerException: null
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generateConfigDescription(HomematicTypeGeneratorImpl.java:358) ~[?:?]
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.createThingType(HomematicTypeGeneratorImpl.java:234) ~[?:?]
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generate(HomematicTypeGeneratorImpl.java:181) ~[?:?]
	at org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler.onDeviceLoaded(HomematicBridgeHandler.java:330) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.loadAllDeviceMetadata(AbstractHomematicGateway.java:415) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:209) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Hope this helps for the moment…

Yes, that’s exactly the problem that I mentioned. More information are here:

Hi Martin

To the HmIP-SWDM in the Log is:

2021-07-10 15:48:20.552 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 15:54:20.573 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 16:00:20.583 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 16:06:20.550 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 16:12:42.881 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'

After a restart and a scan of the Homematic Binding I get the following log:


2021-07-10 17:09:41.091 [INFO ] [b.core.model.script.*** SECURITY ***] - SECURITY Log: Restart System! - finished
2021-07-10 17:12:20.241 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 17:12:41.602 [WARN ] [very.HomematicDeviceDiscoveryService] - Failed to set Homematic controller in install mode
java.io.IOException: -1 setInstallMode: unknown.method name (sending setInstallMode()
true
60
1
)
	at org.openhab.binding.homematic.internal.communicator.parser.RpcResponseParser.parse(RpcResponseParser.java:50) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:82) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:70) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.RpcClient.setInstallMode(RpcClient.java:396) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.setInstallMode(AbstractHomematicGateway.java:596) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.enableInstallMode(HomematicDeviceDiscoveryService.java:109) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.startScan(HomematicDeviceDiscoveryService.java:90) ~[?:?]
	at org.openhab.core.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:194) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:377) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:353) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:211) ~[?:?]
	at org.openhab.core.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:105) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.4.3]
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.4.3]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.4.3]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.4.3]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.4.3]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.4.3]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217) ~[bundleFile:3.4.3]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[bundleFile:3.1.0]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[bundleFile:3.4.3]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036) [bundleFile:9.4.40.v20210413]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2021-07-10 17:12:41.627 [WARN ] [very.HomematicDeviceDiscoveryService] - Failed to set Homematic controller in install mode
java.io.IOException: Received no data from the Homematic gateway
	at org.openhab.binding.homematic.internal.communicator.client.XmlRpcClient.send(XmlRpcClient.java:115) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.XmlRpcClient.sendMessage(XmlRpcClient.java:77) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.client.RpcClient.setInstallMode(RpcClient.java:396) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.virtual.InstallModeVirtualDatapoint.handleCommand(InstallModeVirtualDatapoint.java:62) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.setInstallMode(AbstractHomematicGateway.java:581) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.enableInstallMode(HomematicDeviceDiscoveryService.java:109) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.startScan(HomematicDeviceDiscoveryService.java:90) ~[?:?]
	at org.openhab.core.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:194) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:377) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:353) ~[?:?]
	at org.openhab.core.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:211) ~[?:?]
	at org.openhab.core.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:105) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.4.3]
	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.4.3]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.4.3]
	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.4.3]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.4.3]
	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.4.3]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[bundleFile:3.4.3]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217) ~[bundleFile:3.4.3]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[bundleFile:3.1.0]
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[bundleFile:3.4.3]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.40.v20210413]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82) ~[bundleFile:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) ~[bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882) [bundleFile:9.4.40.v20210413]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036) [bundleFile:9.4.40.v20210413]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2021-07-10 17:12:41.713 [WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint '00155BE9A4386E:0#UPDATE_PENDING'
2021-07-10 17:12:42.469 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.IllegalArgumentException: Illegal status REMOVED. The thing was in state UNINITIALIZED and not in REMOVING
	at org.openhab.core.thing.internal.ThingManagerImpl$1.ensureValidStatus(ThingManagerImpl.java:229) ~[?:?]
	at org.openhab.core.thing.internal.ThingManagerImpl$1.statusUpdated(ThingManagerImpl.java:193) ~[?:?]
	at org.openhab.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:343) ~[?:?]
	at org.openhab.core.thing.binding.BaseThingHandler.updateStatus(BaseThingHandler.java:367) ~[?:?]
	at org.openhab.core.thing.binding.BaseThingHandler.handleRemoval(BaseThingHandler.java:86) ~[?:?]
	at org.openhab.binding.homematic.internal.handler.HomematicThingHandler.handleRemoval(HomematicThingHandler.java:557) ~[?:?]
	at org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler.setOfflineStatus(HomematicBridgeHandler.java:202) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:215) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2021-07-10 17:12:42.602 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W2' contains invalid characters, new Address 'HU-Hue_Bulb_W2'
2021-07-10 17:12:42.603 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W2' contains invalid characters, new Address 'HU-Hue_Bulb_W2'
2021-07-10 17:12:42.604 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W2' contains invalid characters, new Address 'HU-Hue_Bulb_W2'
2021-07-10 17:12:42.604 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W1' contains invalid characters, new Address 'HU-Hue_Bulb_W1'
2021-07-10 17:12:42.605 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W1' contains invalid characters, new Address 'HU-Hue_Bulb_W1'
2021-07-10 17:12:42.605 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W1' contains invalid characters, new Address 'HU-Hue_Bulb_W1'
2021-07-10 17:12:42.606 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb C1' contains invalid characters, new Address 'HU-Hue_Bulb_C1'
2021-07-10 17:12:42.607 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb C1' contains invalid characters, new Address 'HU-Hue_Bulb_C1'
2021-07-10 17:12:42.607 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb C1' contains invalid characters, new Address 'HU-Hue_Bulb_C1'
2021-07-10 17:12:42.848 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W1' contains invalid characters, new Address 'HU-Hue_Bulb_W1'
2021-07-10 17:12:42.850 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb W2' contains invalid characters, new Address 'HU-Hue_Bulb_W2'
2021-07-10 17:12:42.851 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Address 'HU-Hue Bulb C1' contains invalid characters, new Address 'HU-Hue_Bulb_C1'
2021-07-10 17:12:47.040 [ERROR] [very.HomematicDeviceDiscoveryService] - null
java.lang.NullPointerException: null
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generateConfigDescription(HomematicTypeGeneratorImpl.java:358) ~[?:?]
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.createThingType(HomematicTypeGeneratorImpl.java:234) ~[?:?]
	at org.openhab.binding.homematic.internal.type.HomematicTypeGeneratorImpl.generate(HomematicTypeGeneratorImpl.java:181) ~[?:?]
	at org.openhab.binding.homematic.internal.handler.HomematicBridgeHandler.onDeviceLoaded(HomematicBridgeHandler.java:330) ~[?:?]
	at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.loadAllDeviceMetadata(AbstractHomematicGateway.java:415) ~[?:?]
	at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:209) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Correction of my first message:
The rain sensor is found through the binding.
However, no data change is recognized.
(recognized on the CCU2, but no longer in OpenHAB).

Thanks and regards, Urs

There seem to be more than one problem :-(. The first ones look like some general communication problems. Are all required ports open in the firewall(s)? Where are you running openHAB (operating system, docker?). If the machine has more than one IP address, you should set the callback address in the bridge configuration.

The last error is definitely caused by a bug introduced in 3.1. This one is solved in the add-on jar, that I have published.

I would recommend to install this jar first, check ports and addresses and then try it again. If the communication problems remain, I would need a more detailed log output.

Hello Martin

I installed the JAR …

Perfect! Almost all of my problems are gone.
The gateway is back, the wired components work and the rain sensor reports reliably.

The only thing left is the log message:
2021-07-10 18:42:20.846 [WARN ] [ommunicator.parser.GetParamsetParser] - Can’t set value for datapoint ‘00155BE9A4386E:0#UPDATE_PENDING’

This is not a problem at all.
My log file can live with it very well.

Thank you for your great commitment.

Greetings, Urs

1 Like

Hi Urs,

good to hear that the problems are solved :-).

I will have a closer look at this UPDATE_PENDING warning. Maybe it is CCU2-specific, because I have never seen it in my environment (CCU3 resp. Raspberrymatic).

Cheers
Martin

Hi Martin

However, the address is clearly from my HmIP SWDM - Shutter-Contact.
This runs on my RaspberryPi4 as CCU3 under Raspberrymatic (V 3.59.6.20210703).
The RPi4 has a antenna HmIP-RFUSB.

I (as a layperson) don’t see any connection with my CCU2.

Thanks and regards, Urs

Hello,

I have the same problem in my log. Did you find out how to fix this?
The device is a HmIP-SWDM

[WARN ] [ommunicator.parser.GetParamsetParser] - Can't set value for datapoint 'XXXXXXXXXXXXXXXXX:0#UPDATE_PENDING'

AFAIK there is no solution available. It probably is caused by wrong metadata received from the CCU. Maybe a solution can be to suppress the warning.

Hi everyone,

First off, thanks for the great discussion and the work on the homematic binding.

I had similar issues as described above and some more, but found a workaround, so here goes.

First the problem itself:
I’ve experienced similar problems with the binding after updating to OH 3.1 (and meanwhile to 3.2), i.e. I got the "device-id “xyz” is not found on gateway-id “abc" error described above by @jochenfroehlich . But in addition some of my homematic things stopped updating their states, at random time intervals and, at least for me, in an unpredictable manner. Especially for door/window contacts, that’s quite problematic and it disrupts graphing and persistence based rules. This made my homematic devices close to useless in openhab, of course.

I’m very new to Openhab and also only have very rudimentary knowledge of Linux based systems, let alone programming in Java or Python.For the same reason I’m a little careful with manually installing addons etc.

I found a workaround in periodically disabling and reenabling the CCU thing via rule. I had been doing the same for weeks via the UI button, whenever I noticed the issue coming up again. This way, it’s much easier and I don’t have to monitor my system several times a day, at least.

I’m aware that manually installing the newer version of the binding is a better solution, but for newbies like me, this rule based workaround may also be a viable option, for a limited time at least. The rule itself is posted here:

Also, enabling and disabling things via rule may in itself be quite useful and I found it pretty hard to find a working solution for this in Openhab 3, since there seem to have been some changes. The REST requests for disabling/enabling things that worked in OH2 don’t work in OH 3 anymore (see above link).

Anyway, I hope this post still fits the topic here. It certainly was a revelation to get the rule running and have this automatic workaround until there is an official new version of the homematic binding available.

Keep up the great work!

RaspberryMatic (3.61.7.20220226) in binding HomeMatic (openHAB 3.3.0.M2) “homematic.things” no longer works.

With the previously used “homematic.things” file, the binding with RaspberryMatic no longer works.
Only the parts “Bridge” and “GATEWAY-EXTRAS” still work correctly.
Error message: Incorrect or missing configuration.

Remedy: Delete all HM components of the CCU3(RaspberryMatic) in the “homematic.things” file and add all components manually (in the inbox) after a first restart of the system.
After another restart everything works again…

I left the bridge and gateway extras portion; so I didn’t have to rename my “HW_HomeMatic.items” file.

PS: All HM components in the CCU2 (original) continue to work without problems.

Despite my little glitch, a big thank you to the development team (Martin) for the constant further development of the system and the HomeMatic connection.

Thanks and regards, Urs

1 Like