Instruction film for IKEA

I have now made a short instruction film for how to configure and control IKEA Trådfri lamps in OpenNetHome. It is available on YouTube on the OpenNetHome.org-channel.

I tried to get approval from IKEA to use the sound track from their instruction films, as it felt more "genuine", but IKEA did not allow it :-(. Maybe just as well, this track is a lot less annoying then theirs...


Support for IKEA Trådfri

IKEA has made a slightly unexpected entry in the Home Automation space with the new product line Trådfri. Currently it includes a variety of different remote controlled LED-bulbs and some interesting LED-surfaces. They can be controlled via a set of different remote controls or via an app (requires a gateway). All of them are very aggressively priced and best of all, the LED-bulbs are very powerful, with a max of 1000lm which is like a 75W incandescent bulb!

I have now added support for controlling the IKEA lamps with OpenNetHome. It requires the Trådfri Gateway to work (as the app do), but no other hardware.

The IkeaGateway-Item supports auto create, so when the gateway is connected in your local network, it shows up in the create-page as a detected device. When you create the IkeaGateway-Item, you have to enter the security code that is printed on the bottom of the Gateway.

Once the Gateway Item is created, all connected lamps will be auto detected and also show up as detected devices.

There are two lamp types supported, IkeaLamp and IkeaColorTemperatureLamp. The IkeaLamp represents the standard dimmable lamp with fixed color temperature where the brightness can be set between 0 and 100%. The IkeaColorTemperatureLamp represents the lamps with variable color temperature and for them the color temperature can be set between 0 and 100%, where 0 represents the coldest light. They both support the standard features with four configurable preset dim levels,

All Items are available in the Nightly build.



I have received a new great contribution to the project - MQTT-support! MQTT is a standard for sending and receiving small messages, or events via an MQTT server. It is being used more and more for IoT (Internet of Things), to send messages from small devices like sensors or thermometers.
Support for MQTT is something that has been asked for by other users, but I have not had the time to learn about it and build the support. Now this contribution solves the problem!

The contribution consists of four new HomeItems:

This is the item which actually listens to MQTT. Here you can specify the address to your MQTT broker, and the topic on which OpenNetHome subscribes.

A moisture sensor, listening on a specific MQTT topic.

A temperaturesensor, listening on a specific MQTT topic.

Listens to a specific topic, and can execute six different actions depending on the message received.

These functions are contributed by Jocke G and Patrik Gustavsson - thanks a lot guys!

The Items are in the nightly build.



The best radio interface available for controlling 433MHz devices is in my opinion the Tellstick Duo. Unfortunately this device is not sold in the US/Canada. So to have something that is possible to use there, I have added support for the JeeLink classic. JeeLink is an Arduino compatible programmable radio transmitter/receiver sold by JeeLabs/Digital Smarties. I have developed a small firmware for JeeLink that allows it to act as a generic 433MHz transmitter for OpenNetHome. It does unfortunately not support reception, but on the other hand it is quite inexpensive (€32.50).
To use it, you have to install the OpenNetHome firmware on it, see this page for more instructions. Support is implemented in the nightly build.


Logging to database

In OpenNethome Items like thermometers can log the values to file, so they can be presented as graphs. The values are stored in flat text files which get quite big after a while, and then the graphs gets slower to present.

Now we have got a great contribution from Peter Lagerhem; He has implemented a database home item (H2DatabaseTCPServer) and the ability to log to the database and generate the graphs from there. Since the database is much more efficient in finding values for a time period, the graphs are generated much faster. It is also easier to access the values from other programs.

The database file can be specified in two ways: either for each Item as you do for log files or one central database file which then is automatically used by all Items that log values. The central database file is configured on the settings page in the GlobalLogger field:

To specify A database log, the log name has the format:


Where /usr/share/data/logs/sqllog.log in this case is the name of the actual file and jdbc:h2:tcp:// is the database connection address which you can see on the H2DatabaseTCPServer-Item.

When specify the database file name as logger, the database with data model is automatically created. You also have to create a H2DatabaseTCPServer-Item which implements the database server.

Peter also included a feature to migrate all existing log data from the text files into the database and this is done with the "UpdateGlobalLogger"-button. Note that if you have a lot of logged data this migration can take a couple of minutes.

The changes are in the nightly build - thanks Peter!


Background Images

In the plan view, it is possible to add your own background image. Up until now that has been a bit messy to do that, since you have had to manually put the background image file in the correct media directory of the OpenNetHome-server and then edit the Plan item to set it.

Now I have added a media image view under settings, where it is easy to upload new background images from the GUI. When you set the Plan-view in edit mode you can select any of the uploaded files from a drop down menu.
The changes are in the nightly build.


The power of open source

I have been a bit lazy with blogging lately, but I will try to make it up...
During the last month, the project has received two contributions of new functions to the server!

  • Jari Särkkä has added an integration with Python script language, so it is possible to write actions and functions in Python for HomeItems
  • Peter Lagerhem has added functions to write log data from HomeItems to an SQL-database instead of text files which speeds up the graphs and makes it easier to process and access log data from other programs.
I will be writing more about both contributions in blogs to come when I have added some more documentation, but this is a real proof of the benefits of open source, when people can share their efforts and features. Thanks a lot both of you!