Homematic binding fails with HmIP only Raspberrymatic

Hi,

I am running a Raspberry PI with Raspberrymatic using the HmIP-RFUSB stick as a radio solution.
This works great as a CCU replacement as I do not have any (non-IP) Homematic devices.
However, the Openhab2 binding fails to work with this as it always requires the rfd daemon running at port 2001 - but as this daemon serves only non-IP Homematic devices and the RFUSB does not support the old BidCos protocol, rfd is not running in my setup. The required functionality is however provided by the HMIPServer daemon, running on port 2010.
In the end I think the Openhab binding should not “exit” when port 2001 is not reachable - instead it should try the HmIP port and simply use that if present?
Or is there a way to change this behaviour through configuration?
Thanks!

see https://github.com/eclipse/smarthome/pull/6409
Once this change is available in openHab you can try it out.

Thanks for providing this enhancement so quickly! I’ll try it as soon as it is available in the openHab Ubuntu package repository.

Hi Gerhard,

thanks again for providing the update - I recently updated to OpebHab 2.4.0 and tried it.
“Basically” it works, but I cannot add any devices which are connected to the Raspberrymatic.
Reading the logs it might be an issue with the “install mode”?

2019-02-24 14:20:39.688 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘RF’ on gateway ‘1f972ab1’ not available, disabling support
2019-02-24 14:20:39.692 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘WIRED’ on gateway ‘1f972ab1’ not available, disabling support
2019-02-24 14:20:39.707 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘CUXD’ on gateway ‘1f972ab1’ not available, disabling support
2019-02-24 14:20:39.721 [INFO ] [ommunicator.AbstractHomematicGateway] - HmGatewayInfo[id=CCU,type=HMIP_CCU2,firmware=2.8.6,address=3014F711A000041709ADFAAC,rf=false,wired=false,hmip=true,cuxd=false,group=true]
2019-02-24 14:20:49.891 [ERROR] [very.HomematicDeviceDiscoveryService] - java.net.ConnectException: Connection refused
java.io.IOException: java.net.ConnectException: Connection refused
at org.eclipse.smarthome.binding.homematic.internal.communicator.CcuGateway.sendScript(CcuGateway.java:218) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.CcuGateway.sendScriptByName(CcuGateway.java:188) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.CcuGateway.sendScriptByName(CcuGateway.java:176) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.CcuGateway.loadDeviceNames(CcuGateway.java:101) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.AbstractHomematicGateway.getDeviceDescriptions(AbstractHomematicGateway.java:452) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.AbstractHomematicGateway.loadAllDeviceMetadata(AbstractHomematicGateway.java:372) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.discovery.HomematicDeviceDiscoveryService.lambda$0(HomematicDeviceDiscoveryService.java:191) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
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.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[?:?]
at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[?:?]
at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:684) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.CcuGateway.sendScript(CcuGateway.java:208) ~[?:?]
… 13 more
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[?:?]
at org.eclipse.jetty.io.SelectorManager.doFinishConnect(SelectorManager.java:351) ~[?:?]
at org.eclipse.jetty.io.ManagedSelector.processConnect(ManagedSelector.java:185) ~[?:?]
at org.eclipse.jetty.io.ManagedSelector.access$1200(ManagedSelector.java:60) ~[?:?]
at org.eclipse.jetty.io.ManagedSelector$SelectorProducer.processSelected(ManagedSelector.java:455) ~[?:?]
at org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:325) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:357) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:181) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[?:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[?:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) ~[?:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) ~[?:?]
… 1 more
2019-02-24 14:21:30.477 [WARN ] [very.HomematicDeviceDiscoveryService] - Failed to set Homematic controller in install mode
java.lang.IllegalStateException: Could not determine install mode because no suitable interface exists

In addition the logs frequently (every 10s or so?) show:
2019-02-24 14:20:39.688 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘RF’ on gateway ‘1f972ab1’ not available, disabling support
2019-02-24 14:20:39.692 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘WIRED’ on gateway ‘1f972ab1’ not available, disabling support
2019-02-24 14:20:39.707 [INFO ] [ternal.communicator.client.RpcClient] - Interface ‘CUXD’ on gateway ‘1f972ab1’ not available, disabling support