Busch-Jaeger Free@Home

I am not sure how I can find the scene by this ID. My scenes in openhab have ID’s similar to this “FFFF48000008”.

Yes I activate scenes for rollershutters via rules. E.g. close rollshuter when enter the bathroom or open rollersthutter for wakeup. But this rules should be used at least once a day.

Thank you for your great work kjoglums!

Why don’t wireless components actually work?

Not sure why you would see this issue. My OH / F@H instance is running without issues.

Have you tried setting up the scene(s) in OH, rather than triggering a F@H scene? I.e to set items triggering from OH rather than scene triggering. At least to check if it is the scene causing the crash.

The binding is created based on reverse engineering, and the creators of the binding do not have any wireless devices to use for reference.

The binding use device types (as could be seen from PaperUI inbox) to categorize the devices as OH things (switch, dimmer, screen actuator etc). The binding then enable operation of the devices based on category/standard channels in use.

As per now, there is little information of device type/channels in use for the wireless devices.

I got this Exceptions when changing my thermostat from off to on. But it is not always only sometimes. I’m not shure if the exception is realy usefull but maybe you can use it:

2020-03-02 17:52:39.625 [ERROR] [rnal.handler.FreeAtHomeBridgeHandler] - Ops!
java.lang.NumberFormatException: null
        at java.math.BigDecimal.<init>(BigDecimal.java:497) ~[?:1.8.0_212]
        at java.math.BigDecimal.<init>(BigDecimal.java:383) ~[?:1.8.0_212]
        at java.math.BigDecimal.<init>(BigDecimal.java:809) ~[?:1.8.0_212]
        at java.math.BigDecimal.valueOf(BigDecimal.java:1277) ~[?:1.8.0_212]
        at org.eclipse.smarthome.core.library.types.DecimalType.<init>(DecimalType.java:52) ~[?:?]
        at org.openhab.binding.freeathome.internal.handler.FreeAtHomeThermostatHandler$1TargetTempDecimalTypeConverter.convert(FreeAtHomeThermostatHandler.java:133) ~[?:?]
        at org.openhab.binding.freeathome.internal.FreeAtHomeUpdateHandler.NotifyThing(FreeAtHomeUpdateHandler.java:87) ~[?:?]
        at org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler.onMessageEvent(FreeAtHomeBridgeHandler.java:397) ~[?:?]
        at org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler.lambda$0(FreeAtHomeBridgeHandler.java:206) ~[?:?]
        at rocks.xmpp.util.XmppUtils.lambda$notifyEventListeners$1(XmppUtils.java:177) ~[?:?]
        at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891) ~[?:1.8.0_212]
        at java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:404) ~[?:1.8.0_212]
        at rocks.xmpp.util.XmppUtils.notifyEventListeners(XmppUtils.java:175) ~[?:?]
        at rocks.xmpp.core.session.XmppSession.lambda$handleElement$16(XmppSession.java:1208) ~[?:?]
        at rocks.xmpp.util.concurrent.QueuedExecutorService.doExecute(QueuedExecutorService.java:154) ~[?:?]
        at rocks.xmpp.util.concurrent.QueuedExecutorService.lambda$poll$0(QueuedExecutorService.java:126) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_212]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_212]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]
2020-03-02 17:52:39.635 [ERROR] [rnal.handler.FreeAtHomeBridgeHandler] - Exception null

Hello,

I’m trying to connect my free@home to openhab.
In my first tests with a windows based system (OH 2.4) and F@H 2.1.x it worked fine.

But now with my “productive” system, I have problems to connect to the bridge.

OH 2.5 on a raspberry (openHABian)
Free@home with latest FW V 2.4.0
The Binding is the latest one from here: Free@Home 2.5.2

When I try to add the bridge as thing, I get: OFFLINE - COMMUNICATION_ERROR

Can you please help me ?


Logfile:
(Sorry for the strange format, how can I coppy the log better ?)

2020-03-08 19:48:37.314 [INFO ] [rnal.handler.FreeAtHomeBridgeHandler] - Connecting to XMPP Client

2020-03-08 19:48:37.316 [WARN ] [ent.WebSocketConnectionConfiguration] - Websocket session being created: ws://192.168.1.9:5280/xmpp-websocket/

2020-03-08 19:48:37.342 [WARN ] [ent.WebSocketConnectionConfiguration] - Handshake response received from server

2020-03-08 19:48:37.343 [WARN ] [ent.WebSocketConnectionConfiguration] - Handshake succeded: Sec-Websocket-Protocol = XMPP

2020-03-08 19:48:42.269 [WARN ] [core.thing.internal.ThingManagerImpl] - Initializing handler for thing ‘freeathome:bridge:b203d317’ takes more than 5000ms.

==> /var/log/openhab2/events.log <==

2020-03-08 19:48:47.337 [hingStatusInfoChangedEvent] - ‘freeathome:bridge:b203d317’ changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE): XMPP connection lost

==> /var/log/openhab2/openhab.log <==

2020-03-08 19:48:47.333 [WARN ] [rnal.handler.FreeAtHomeBridgeHandler] - Problems connecting to SysAp:

rocks.xmpp.core.XmppException: javax.websocket.SessionException: CloseReason[1006,Closed abnormally.]

at rocks.xmpp.core.session.XmppSession.throwAsXmppExceptionIfNotNull(XmppSession.java:280) ~[xmpp-core-client-0.9.0-SNAPSHOT.jar:?]

at rocks.xmpp.core.session.XmppClient.connect(XmppClient.java:225) ~[xmpp-core-client-0.9.0-SNAPSHOT.jar:?]

at org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler.connectGateway(FreeAtHomeBridgeHandler.java:233) [bundleFile:?]

at org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler.initialize(FreeAtHomeBridgeHandler.java:114) [bundleFile:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

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_222]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Caused by: javax.websocket.SessionException: CloseReason[1006,Closed abnormally.]

at rocks.xmpp.websocket.net.client.WebSocketConnectionConfiguration$2.onClose(WebSocketConnectionConfiguration.java:271) ~[?:?]

at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:1235) ~[?:?]

at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:106) ~[?:?]

at org.glassfish.tyrus.core.ProtocolHandler.close(ProtocolHandler.java:445) ~[?:?]

at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:240) ~[?:?]

at org.glassfish.tyrus.client.TyrusClientEngine$2$1.close(TyrusClientEngine.java:612) ~[?:?]

at org.glassfish.tyrus.container.jdk.client.ClientFilter.processConnectionClosed(ClientFilter.java:218) ~[?:?]

at org.glassfish.tyrus.container.jdk.client.Filter.onConnectionClosed(Filter.java:124) ~[?:?]

at org.glassfish.tyrus.container.jdk.client.Filter.onConnectionClosed(Filter.java:128) ~[?:?]

at org.glassfish.tyrus.container.jdk.client.TransportFilter$4.completed(TransportFilter.java:276) ~[?:?]

at org.glassfish.tyrus.container.jdk.client.TransportFilter$4.completed(TransportFilter.java:266) ~[?:?]

at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) ~[?:1.8.0_222]

at sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishRead(UnixAsynchronousSocketChannelImpl.java:430) ~[?:1.8.0_222]

at sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:191) ~[?:1.8.0_222]

at sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:213) ~[?:1.8.0_222]

at sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:293) ~[?:1.8.0_222]

at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) ~[?:1.8.0_222]

... 3 more

Suppressed: java.lang.IllegalStateException: The connection has been closed.

	at org.glassfish.tyrus.core.TyrusSession.checkConnectionState(TyrusSession.java:507) ~[?:?]

	at org.glassfish.tyrus.core.TyrusSession.getAsyncRemote(TyrusSession.java:183) ~[?:?]

	at rocks.xmpp.websocket.net.WebSocketConnection.write(WebSocketConnection.java:129) ~[?:?]

	at rocks.xmpp.websocket.net.client.WebSocketClientConnection.send(WebSocketClientConnection.java:129) ~[?:?]

	at rocks.xmpp.websocket.net.WebSocketConnection.closeStream(WebSocketConnection.java:100) ~[?:?]

	at rocks.xmpp.core.net.AbstractConnection.closeAsync(AbstractConnection.java:111) ~[?:?]

	at rocks.xmpp.core.net.AbstractConnection.close(AbstractConnection.java:136) ~[?:?]

	at rocks.xmpp.core.session.XmppSession.closeAndNullifyConnection(XmppSession.java:1332) ~[?:?]

	at rocks.xmpp.core.session.XmppSession.notifyException(XmppSession.java:1356) ~[?:?]

	at rocks.xmpp.websocket.net.client.WebSocketClientConnection.lambda$new$2(WebSocketClientConnection.java:118) ~[?:?]

	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_222]

	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) ~[?:1.8.0_222]

	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_222]

	at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977) ~[?:1.8.0_222]

	at rocks.xmpp.websocket.net.client.WebSocketConnectionConfiguration$2.onClose(WebSocketConnectionConfiguration.java:271) ~[?:?]

	at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:1235) ~[?:?]

	at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:106) ~[?:?]

	at org.glassfish.tyrus.core.ProtocolHandler.close(ProtocolHandler.java:445) ~[?:?]

	at org.glassfish.tyrus.core.TyrusWebSocket.close(TyrusWebSocket.java:240) ~[?:?]

	at org.glassfish.tyrus.client.TyrusClientEngine$2$1.close(TyrusClientEngine.java:612) ~[?:?]

	at org.glassfish.tyrus.container.jdk.client.ClientFilter.processConnectionClosed(ClientFilter.java:218) ~[?:?]

	at org.glassfish.tyrus.container.jdk.client.Filter.onConnectionClosed(Filter.java:124) ~[?:?]

	at org.glassfish.tyrus.container.jdk.client.Filter.onConnectionClosed(Filter.java:128) ~[?:?]

	at org.glassfish.tyrus.container.jdk.client.TransportFilter$4.completed(TransportFilter.java:276) ~[?:?]

	at org.glassfish.tyrus.container.jdk.client.TransportFilter$4.completed(TransportFilter.java:266) ~[?:?]

	at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) ~[?:1.8.0_222]

	at sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishRead(UnixAsynchronousSocketChannelImpl.java:430) ~[?:1.8.0_222]

	at sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:191) ~[?:1.8.0_222]

	at sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:213) ~[?:1.8.0_222]

	at sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:293) ~[?:1.8.0_222]

	at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) ~[?:1.8.0_222]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

==> /var/log/openhab2/events.log <==

2020-03-08 19:48:47.400 [hingStatusInfoChangedEvent] - ‘freeathome:bridge:b203d317’ changed from OFFLINE (BRIDGE_OFFLINE): XMPP connection lost to OFFLINE (COMMUNICATION_ERROR): Can not connect to SysAP with address: 192.168.1.9

What you should do:

  • ssh into the openhab/karaf console
  • bundle:restart org.openhab.binding.freeathome

This will restart the binding and will also restart the websocket connection.

@kjoglums
Thank you so much !! :+1: :+1: :+1:
It worked and I can find the F@H Devices in the Inbox.

I have a full wireless f@h installation. Is there something that I can do to help integrate wireless devices?

Well two things would be required to get the wireless devices implemented:

  1. Device typeid:
    This would be recognised as part of binding discovery (OpenHab inbox). Every device discovered will be associated with an id dictating which device type it belongs to. For each id it would also be required to know the device type, i.e. switch, dimmer etc.

  2. Device channel/idp/odp
    It would be required to know what channel and idp/odp (input/output) each device work under. This would be identified either using ABB Developer Program / Postman software, alternatively use a web inspector while operating your devices from a web browser (F@H SysAp).

Sure, i can you deliver all the data, when you’d like. How do you like to get the data. As text output from the f@h monitor or postman (see screenshot)?

What would be preferred:

  1. Install and run F@H binding (latest jar file from further above) and enable “dummy things”. Run discovery, and you should get a list of your devices as dummy things (for your wireless devices not recognised by the binding) with a default name (name then containing the device type ID, which is used in the binding to automatically associate the device with the correct thing handler).

  2. Then sum up your devices (examples of different device types) from OH inbox in a list similar to:

From the example above, “B001” is the device ID for “Jalousieaktor 4-fach” for a wired setup, and is thus used by the binding to associate the thing with the Raffstore thing handler which for this specific thing operate under ch0001 using idp0000/idp0001/idp0002/odp0001.

Hi Guys,

first off all thanks for your work on the free@home binding. It works under Windows very well. :smile:

But now ich have a problem. I want to switch openhab to linux (ubuntu 18.04.4) The installation went all through, but now I stuck to get the free@home binding working.

I downloaded the latest binding from the one drive.
Than I copied the file to /usr/share/openhab2/addons, but the binding will not appear in PaperUI.

Please can anybody tell me what do I do wrong?

Thanks a lot

A couple of things:

  1. Have you tried rebooting OH? Have you tried rebooting the binding from OH console (bundle:restart)?
  2. What is the status of the binding as shown in the OH console (bundle:list)?
  3. What is the log saying?

I fear that it will be difficult with the wireless devices. All devices have the same ID.

So these are the devices as discovered by the binding? Meaning, listed as “dummy things” in OH inbox?

As you say, as all the different devices have the same DeviceType ID (A039), it will be challenging to implement these devices. The binding use this DeviceType ID to define the device to a specific Thing, thus is also used to define the channel and idp/odp used for the thing. As your devices all have the same DeviceType ID it will be difficult to separate them.

One possible option would be to define a “A039” specific case as part of the discovery service, and then use the retrieved DeviceType Name (e.g. Schaltaktor, Dimmaktor, Jalousieaktor) to define which Thing to create and which channels and idp/odp to set for each Thing.

This will require some time, so will evaluate how to implement this.

Yes, these are the dummy things. According to my understanding, the idp/odp should be the same for the wired and wireless devices.

Thanks for your help Stian, let me know if I can support you.

So, I have made an attempt to update the binding to discover and implement the wireless devices as described (using DeviceTypeID A039), setting channels and Thing type based on DeviceTypeName from your list, assuming idp/odp is the same as for wired devices.

F@H 2.5.4-SNAPSHOT

Note
You might end up having devices recognized/listed as different thing types in OH inbox, so you will need to identify the correct one. Will be interesting to hear if your devices now are recognised as correct Thing type, and not dummy thing.

1 Like

Yes, almost perfect. There is only one problem with the blind actuators. The double actuators (2/2-fach left/right) are recognized as single actuators (1/1-fach) and I can only control one side.

Before the new binding, the double actuator was recognized as 2 single dummy things, see my table in Post 243 “same device”.

Great, and you manage to create operable items for your devices within OH?

The binding is now updated to implement 2/1-fach Jalousieaktor (see you refer to it as 2/2-fach in your previous post, but it appears to be 2/1-fach based on your list as retrieved from PaperUI inbox).

I have replaced the binding in the link in post 246, so you could download the new binding and retry.

1 Like