KNX binding with Raspberry Pi 3 and b+b EIB Medientechnik Gateway IP

Hello everybody,
I’m a new user of Openhab: I recently knew about this fantastic system and so I just started to design, implement and organize my system. I installed Openhab on a Raspberry Pi 3 and tried some bindings, after have successfully configured items and sitemap files everything works fine. But I started to have some troubles when I tried to use the knx binding.

I have a knx system that have worked fine since a couple of years, until now I supervised it with a Crestron system (and the relative Android App) connected to the house ethernet LAN through a b+b EIB Medientechnik Gateway IP. I copied the knx binding in the addons folder and modified the openhab.cfg in the following way:

knx:type=ROUTER

After that I changed the item and sitemaps file adding some switches linked to the knx devices, and I changed the configuration of the EIB/IP gateway setting the use of UDP mode and the port 3671.
When I start Openhab with the command start.sh I can read in the terminal, among other things, the following text:

2016-05-12 00:02:46.368 [INFO ] [b.k.i.connection.KNXConnection] - Established connection to KNX bus on 224.0.23.12:3671 in mode ROUTER.

So, it seems that everything works fine (but in the wiki is written that you can have troubles even if it seems that all is connected correctly) but it doesn’t:

  • when I try to switch ON or OFF a light with the Openhab App for Android, nothing happens in the house and nothing happens in the busevent;

  • when I push a (physical) button to switch ON or OFF a light in my house the real light switch ON or OFF but in the Openhab App for Android nothing changes and in the busevent appears (always twice) a message like this:

    2016-05-12 00:14:21.594 [WARN ] [tuwien.auto.calimero ] - [KNXnet/IP receiver] KNXnet/IP Routing 224.0.23.12:3671: received invalid frame, item 0x3e
    tuwien.auto.calimero.exception.KNXFormatException: unsupported header size, expected 6
    at tuwien.auto.calimero.knxnetip.servicetype.KNXnetIPHeader.(KNXnetIPHeader.java:185) ~[na:na]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:61) ~[na:na]
    at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:117) ~[na:na]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:50) ~[na:na]
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_65]
    2016-05-12 00:14:21.606 [WARN ] [tuwien.auto.calimero ] - [KNXnet/IP receiver] KNXnet/IP Routing 224.0.23.12:3671: received invalid frame, item 0x3e
    tuwien.auto.calimero.exception.KNXFormatException: unsupported header size, expected 6
    at tuwien.auto.calimero.knxnetip.servicetype.KNXnetIPHeader.(KNXnetIPHeader.java:185) ~[na:na]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:61) ~[na:na]
    at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:117) ~[na:na]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:50) ~[na:na]
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_65]

I already tried to change the openhab.cfg file configuring the TUNNEL mode and the IPs of the Raspberry Pi 3 and of the b+b EIB Medientechnik Gateway IP, but with this last configuration it doesn’t seem to be any sign of connection between openhab and the knx system (no event appear in the busevent when I push a physical button or when I try to switch ON or OFF a light from the Openhab App for Androd, even more: when I start Openhab in the busevent appear an error message about the impossibility to establish a knx connection in tunnel mode).

I would be happy to understand what I do wrong because I’m really interested in developping my house system with the Openhab software, but knx binding is crucially to use the system in an effective way. I see that everybody can use this binding with success and so I think it’s just a matter of configuration or a matter of compatibiity of my gateway EIB(KNX)/IP.

I would be really happy to have your hel to try to understand the reason why my system can’t work properly.
Thank you in advance.

Please be aware that for router mode, you have to setup only

knx:busaddr=15.15.248
knx:type=ROUTER

where busaddr is the knx bus address from openHAB, this has to be unique in knx.
Maybe knx:localIp can/has to be set, but this should not be necessary. Don’t set a port!

On the other hand, for tunnel mode, you have to setup only

knx:type=TUNNEL #optional as it is the default
knx:port=3671 #optional as it is the default
knx:ip=192.168.1.2 #the unicast ip address of the knx gateway, NOT the multicast ip
knx:localIp=192.168.1.3 #the ip address of the openHAB server, not 127.0.0.1

I’ve heard from installations, where localIp mustn’t be set at all, in my case (debian) it doesn’t work without localIp.

All other parameters can be set later, when successfully established a working connection.

Hello Udo, thank you for your answer.
I tried to configure my openhab.cfg file following your tips but I can’t move any step forward.
In router mode I used the configuration I wrote in the previous message because the wiki page doesn’t explained to write the bus address, anyway I added the new row with the bus address and after that it appeared like this:

knx:busaddr=1.2.100
knx:type=ROUTER

(no other device use the 1.2.100 knx address in my system) but my house automation system can’t work properly, in the bus event I saw the same errors as before:

2016-05-12 23:47:05.161 [WARN ] [tuwien.auto.calimero ] - [KNXnet/IP receiver] KNXnet/IP Routing 224.0.23.12:3671: received invalid frame, item 0x3e
tuwien.auto.calimero.exception.KNXFormatException: unsupported header size, expected 6
at tuwien.auto.calimero.knxnetip.servicetype.KNXnetIPHeader.(KNXnetIPHeader.java:185) ~[na:na]
at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:61) ~[na:na]
at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:117) ~[na:na]
at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:50) ~[na:na]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_65]
2016-05-12 23:47:05.205 [WARN ] [tuwien.auto.calimero ] - [KNXnet/IP receiver] KNXnet/IP Routing 224.0.23.12:3671: received invalid frame, item 0x3e
tuwien.auto.calimero.exception.KNXFormatException: unsupported header size, expected 6
at tuwien.auto.calimero.knxnetip.servicetype.KNXnetIPHeader.(KNXnetIPHeader.java:185) ~[na:na]
at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:61) ~[na:na]
at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:117) ~[na:na]
at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:50) ~[na:na]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_65]

If I set the IP address of the Raspberry Pi 3 (with the Raspbian OS), nothing changes and I get the same error in the bus event.

In tunnel mode I used the configuration I found in the wiki page, and it appears like this:

knx:ip=192.168.9.9 (gateway EIB/IP IP address)
knx:type=TUNNEL
knx:port=3671 (maybe it’s not necessary because it’s the default port)
knx:localIp=192.168.9.11 (Raspberry Pi 3 IP address)

but, as I wrote in the previous message the connection doesn’t succeed and I get the error I wrote there. Moreover, with the tunnel mode, when I push a physical button I can’t see any change in the bus event.

About the port, I setted the 3671 port just in the b+b EIB Medientechnik Gateway IP configuration software, with the same program I setted the IP address, the UDP-server mode and the IP address of the Raspberry Pi 3 as the only IP address to which the gateway has to communicate all the knx messages in the knx bus.

So, I can’t find a lot of information about the b+b gateway IP as a knx router in English and my German is not that good. I hope it’s a good device for this use and I would be happy to know if anyone uses it as a knx/IP router.

So, I hope to receive other ideas to try to go ahead with the Openhab implementation.

Ah, it seems that the b+b EIB Medientechnik Gateway IP does not support EIBnet/IP, this is the protocol for connecting knx to openHAB, sorry for not mentioning this…

Hi Udo, thank you again even if it’s not really a good news for me! Anyway, I was imaging that maybe this device could have some issues about compatibility: before I started this discussion I have been trying a lot to make it work and I’ve seen that other people haven’t had many or difficult problems with this knx binding.
So, it seems that I have to buy a device with the right characteristics to connect my knx system with openhab, I’ve seen that in the wiki it’s written that the Gira KNX IP Router is a gateway that could work for my purposes. Are there others similar devices I could evaluate or this is the best option? And, one last question: if I buy this device, to make it work with my knx system would I need to configure it before with the official knx software (ETS, in that case I should buy this software too) or is it possible to use it to connect knx and openhab just pluggin it into the bus and into the lan net?

For communication with the knx bus over ethernet you will need a knx ip gateway, not necessarily a knx ip router (which makes a difference of ~ 400EUR), you can use e.G. a Weinzierl 730 IP Gateway with tunnel mode. If you have a DHCP server, there is no need for ETS, just plug in the gateway and lookup the ip address. Most ip gateways are PoE, so you won’t even need a power supply if using PoE.

Hi Udo, this is a better news for me! I’ve readen a little bit about the Weinzierl 730 IP Gateway and I’ve seen that it’s cheaper than a router. And it seems to me a gateway is enought for my actual purposes.
I’ve a Fritz Box 7390 that work as a router in my home lan, and - as first option - I can configure it in DHCP mode to give to the knx gateway a IP address, but I think I will decide soon anyway to buy the ETS software to expand and configure my knx system. In the Weinzierl webpage it’s written that the 730 IP gateway is a good device to connect the computer with ETS to the knx bus, but they speak about the version 3 and 4, they don’t speak about the compatibility of the version 5 of the software (the last one, that it’s possible to buy now in the webpage). I’ve found a discussion about this (in Dutch) where I think they said it’s possible to use ETS5 with the Weinzierl 730 IP Gateway, but I’m not sure I understood everything.
Do you think is it possible to use ETS5 with the Weinzierl 730 IP Gateway, and with Weinzierl 750 IP Router?

Hi,

i’m using the MDT (www.mdt.de) SCN-IP000.02 with ETS 5 and OH 1.8.

MDT is the “cheapest” IP-Gateway i know. The actors (heating, shutter, dimmer etc.) working very well for me.
DHCP-Server: Fritz.box (7490)

If you plan to buy the ETS5-Software, I would give you an advice to do the online tutorial. Then you will get a voucher for the ETS5. The tutorial is for free. :slight_smile:

Regrads,
Tucca

1 Like

Weinzierl IP 730 should be able to be used with ETS5, I’m pretty sure there are no heavy differences in question of bus communication, ETS5 is able to program very old knx units, it has to use a common protocol through a common gateway :wink:
I think it’s only because the documents about the gateway are too old to know about ETS5…

Thank you Udo, thank you tucca,
I think I have now a more clear idea about what to do to connect the openhab running on my Raspberry Pi 3 with the knx system.
I hope that this discussion will help other people that have the B+B Medientechnik Gateway IP and don’t understand why they can’t connect their runtime with the knx binding.
This was my first help request in the Openhab forum and it was wonderful to see that if I’m in trouble I can have good advices by other people to keep on designing and building my home automation system.
Bye.