"Forget Me Not" with openHAB and EnOcean

Posted by Kai Kreuzer on August 9, 2014
You might have heard about the Forget Me Not Design Challenge that has been organised by element14. There were brilliant submissions and the participants for the challenge have been chosen end of July. As openHAB and EclipseIoT are both sponsors, I am personally very much looking forward to the results of this challenge.

As all participants received hardware from EnOcean (who is another sponsor), a major use case is accessing EnOcean devices with openHAB. While there is an EnOcean binding for openHAB since quite a while already, there are a few glitches that you could come across when using it with a Raspberry Pi or even an EnOcean Pi (as the participants do), so I will try to provide some helpful information here.

First of all, setting up the Raspberry Pi and installing openHAB is quite straight forward - Inderpreet has compiled a very good tutorial for this - thanks!

If you then add the EnOcean binding in your addons folder, configure the serial port (which is /dev/ttyAMA0 for any board attached to the GPIO pins (as is the EnOcean Pi module), add some binding configuration to an item and start up openHAB you will see - nothing.

The EnOcean Pi module fits nicely into the openHAB Raspberry Pi case
Now, there are three things to do to make it work:

  1. The first step is to disable the Raspberry Pi's serial console
  2. Next, you need to make sure that the user under which you run openHAB belongs to the group "dialout", otherwise you won't have access to the serial port.
  3. In theory, the EnOcean Pi module can now be accessed. Unfortunately, the RXTX library that is used by openHAB for connecting to serial ports does not consider /dev/ttyAMA0 to be a standard port and thus simply does not recognise it. You therefore have to explicitly declare it through the JVM parameter "-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0" in the start(_debug).sh launch script.
Starting openHAB after making these changes leads to the desired result:

20:13:44.588 INFO  o.o.b.e.i.bus.EnoceanBinding[:290] - Connecting to Enocean [serialPort='/dev/ttyAMA0' ].
20:13:45.951 INFO  org.enocean.java.ESP3Host[:66] - starting receiveRadio.. 

A last remark: EnOcean is a pretty cool technology for sensors and this is what it is mainly used for. Nonetheless there are also actuators available and if you try one of these with openHAB you will notice that the current binding does not bring support for EnOcean actuators. There is hence no official solution for this problem. Still, there is somebody working on another EnOcean binding for openHAB, which also has actuators in the scope. As far as I know, this is still in an early stage, but if you really want to go for actuators, you might want to try it out.