[homematic]: HMIP, ENOCEAN, CUxD, Systemvariables are not discovered - not working

After upgrading to OH2.5.9 and Zulu “1.8.0_265” the homematic binding is only discovering homematic devices - HMIP, ENOCEAN, CUxD, and systemvariables are not any more discovered.

Furthermore even if the device is “online” actions are not recognised in openhab anymore.

###############################################################################
############### openhab #####################################################
###############################################################################
Ip = 192.168.XXX.XX
Release = Raspbian GNU/Linux 10 (buster)
Kernel = Linux 5.4.51-v7l+
Platform = Raspberry Pi 4 Model B Rev 1.2
Uptime = 2 day(s). 2:45:9
CPU Usage = 1.75% avg over 4 cpu(s) (4 core(s) x 1 socket(s))
CPU Load = 1m: 0.65, 5m: 0.33, 15m: 0.26
Memory = Free: 0.96GB (26%), Used: 2.81GB (74%), Total: 3.78GB
Swap = Free: 2.58GB (100%), Used: 0.00GB (0%), Total: 2.58GB
Root = Free: 6.67GB (48%), Used: 7.03GB (52%), Total: 14.32GB
Updates = 0 apt updates available.
Sessions = 2 session(s)
Processes = 138 running processes of 32768 maximum processes
###############################################################################

When I try to discover things with the homematic binding, i get following error message:

2020-09-30 10:55:03.775 [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:51) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:82) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:94) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.BinRpcClient.sendMessage(BinRpcClient.java:70) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.client.RpcClient.setInstallMode(RpcClient.java:394) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.setInstallMode(AbstractHomematicGateway.java:597) ~[bundleFile:?]
at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.enableInstallMode(HomematicDeviceDiscoveryService.java:109) [bundleFile:?]
at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.startScan(HomematicDeviceDiscoveryService.java:90) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:209) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:382) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:358) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:216) [bundleFile:?]
at org.eclipse.smarthome.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:97) [bundleFile:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_265]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_265]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_265]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_265]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) [bundleFile:?]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [bundleFile:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [bundleFile:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [bundleFile:?]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [bundleFile:?]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [bundleFile:?]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [bundleFile:?]
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [bundleFile:?]
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [bundleFile:?]
at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [bundleFile:?]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]
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.20.v20190813]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]

and

2020-09-30 10:55:08.356 [ERROR] [very.HomematicDeviceDiscoveryService] - null
java.lang.NullPointerException: null
at org.openhab.binding.homematic.internal.communicator.virtual.AbstractVirtualDatapointHandler.addDatapoint(AbstractVirtualDatapointHandler.java:75) ~[?:?]
at org.openhab.binding.homematic.internal.communicator.virtual.AbstractVirtualDatapointHandler.addDatapoint(AbstractVirtualDatapointHandler.java:67) ~[?:?]
at org.openhab.binding.homematic.internal.communicator.virtual.FirmwareVirtualDatapointHandler.initialize(FirmwareVirtualDatapointHandler.java:34) ~[?:?]
at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.prepareDevice(AbstractHomematicGateway.java:823) ~[?:?]
at org.openhab.binding.homematic.internal.communicator.AbstractHomematicGateway.loadAllDeviceMetadata(AbstractHomematicGateway.java:414) ~[?:?]
at org.openhab.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:209) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_265]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_265]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_265]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_265]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_265]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]

Before the upgrade the binding (OH2.5.8) worked without any problems.
Thanks for any help
Georg

Did you restart openHAB twice after the update? On Raspi there is generally a problem if the openHAB cache is cleared. OH will need at least to starts until everything runs perfect again.

If this does not help please perform the following steps:

  1. Enable TRACE log mode for the openHAB binding
  2. Stop openHAB
  3. Delete the existing openhab.log file
  4. Start openHAB again and run a discovery
  5. Post the openhab.log file

What kind of CCU and which firmware version are you using.

I have installed the CUXD Add on on my Raspberrymatic added a device and run a discovery in openHAB. This worked perfectly. So, it does not seem to be a general problem.

Thanks Martin,

I had to install OH 2.5.9 from scratch and restored my backup. (influxDB and SQLite are not yet installed)
I have switched the HomeMatic binding to TRACE - attached you will find the log file.
HomeMatic: Raspberrymatic - 3.53.30.20200919

Will do a complete re-install starting with OH 2.5.9 latest tomorrow - and see if there are differences.

Regards Georg
openhab.log (190.2 KB)

Hi Georg,

I have the feeling the error regarding setInstallMode is caused by the NullPointerException that happens before the setInstallMode call. Unfortunately I can’t see why it happens because it is probably caused by a log output …

But there are quite a log strange error messages in the log file and it seems that something with the installation is not OK.

If the re-install does not solve the problem please enable TRACE log mode for the Homematic binding. Maybe the trace messages can give some hints what’s going wrong. If this does not help I will have to build a new jar file with some additional trace output.

I have tried to reproduce the problem but without success. I am using the same Raspberrymatic version but I have now wired components. But I don’t think that this is reason for the problem.

Hi Martin,
just installed a virgin version roof OPENHAB 2.5.9 - the only active binding is homematic. The bridge was discovered automatically.
Only HM things are discovered: systemvariables, HMIP, CUxD … are not discovered. The log file is too big for uploading - how can i transfer it to you?
Georg

Created a issue:

1 Like

I am encountering the same bug

I have the same problem for my homematic binding and do not see the gateway extras. Thanks for this task so far - is there a solution for this problem?

Hi,
the reason was a faulty Homematic Wired Device - Martin helped to discovered it. Unfortunately there is no easy way to find out.
Martin commented in the attached issue:

HWM-GENERIC is a special device type that has not data points. This causes a NPE and the NPE then breaks the discovery and further devices are not detected. Also GATEWAY-EXTRAS for the system variables is not created.

Maybe this helps to discover the cause in your case.
Kind regards
Georg