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!