Forum added

I thought I would make it easier to share answers to questions I get, and also have a place where other users can comment, so I have added a forum to to the site. I have been asked about this before and had actually prepared a forum plugin on the site for a while, but now I went for phpBB instead. The forum is available at http://forum.opennethome.org, welcome!


Nethome is listening

It is now possible to send messages to Nethome and trigger actions and responses. In the new MessageInteractor-Item you can specify trigger strings, and if Nethome receives a chat message containing the trigger string the MessageInteractor-Item can trigger any action and also generate an answer which may contain attribute values from other Items.

In the example above, the trigger string of one Item is "whats" and the configured reply string is: "Nothing much... Outside temperature is ${Balcony.Temperature} degrees and the fridge is at ${Freezer.Temperature} degrees. The bedroom window lamp is ${Bedroomwindow.State}."

One advantage with using an xmpp chat client to access Nethome is that you do not have to open up your firewall to access it from the outside. The xmpp-client item can connect out through firewalls. In the XmppClient-item you can also specify from which senders you accept messages.

The MessageInteractor-item is available in the nightly build.


Nethome Sending Messages

Nethome now have the ability to send messages! I have been wanting to add this for quite some time, but now it is done. I have been looking at a number of ways of communication, but I finally chose XMPP (Jabber). First I looked at ordinary mail, but messages from Nethome would typically be more of real time messages. Then I looked at SMS, but the problem is that you need to have payed accounts to have reliable service for that. XMPP is an instant messaging protocol, and there are a number of free XMPP (Jabber) servers available where you can get an account. There are also a number of clients for IPhone and Android. Messages pop up in your phone just like SMS (provided that you have internet connection).

There are two new Items added for this: XmppClient, which has the configuration for the connection to the server and Message which holds a message and has the send-action.

The message text may refer to attribute values of other Home Items, so the text in the picture above is really: "Freezer is too warm, currently at ${Freezer.Temperature} degrees"

I am using the excellent Babbler-library by Christian Schudt for the xmpp-communication.

So all you need to do is to create one account for your Nethome-server and one account for yourself at one of the jabber servers and then your nethome server can start sending messages to you.


Give your home a REST

OpenNetHome have always had a TCP/IP interface for integration in the TCPCommandPort-Item. But it is time to add a more modern interface to my home. I have now implemented a REST-interface with json encoding to OpenNetHome which exposes HomeItems as REST-resources. Since basically everything in OpenNetHome is HomeItems (lamps, thermometers, timers, web-server and so on) this means that most of the features in the server can be reached via this interface. The URL to turn off the lamp in my bedroom window is for example:

POST http://ssgserver2:8020/rest/items/108/actions/off/invoke

and to get the temperature on the balcony i do a get on the URL:

GET http://ssgserver2:8020/rest/items/52

The "108" and "52" are the identities of the corresponding HomeItems, and you can get the identities by listing all HomeItems in the server with:

GET http://ssgserver2:8020/rest/items

This kind of interface works well with modern WEB-frameworks like ember.js and AngularJS but also for integration with phone apps and other home control systems.

The full documentation of the interface is available here on the OpenNethome-site. The implementation is as usual available in the nightly build. Note that details of the interface my still change and feedback on the interface is welcome!


Raspberry Pi Installation

Since the majority of the OpenNetHome users are using raspberry pi as platform, I have made it easier to install and upgrade on that platform.
I have now added a plug&play installation script for Raspberry Pi which installs the files in the appropriate locations in the file system, configures serial drivers and installs the OpenNetHome server as a daemon that runs in the background with its own user account. All you have to do is to run this script and then you can plug in a TellstickDuo and start controlling your home!

A complete installation instruction including download of the release is:

wget http://wiki.nethome.nu/lib/exe/fetch.php/nethomeservernightly.zip
unzip nethomeservernightly.zip
cd nethomeservernightly/install/raspbian/
chmod +x *.sh
sudo ./install.sh

Included is also an automated upgrade script, which will download the current nightly build and upgrade the installation to that. This script should be copied to your home directory and run whenever you want to upgrade your installation:

sudo ./upgrade_nethome_nightly.sh

The daemon installation is built on the earlier nhs installation contributed by Peter Lagerhem, but is modified quite a bit, so if you are using that you have to uninstall it according to the instructions in the readme-file before you can do this installation.

The installation scripts are available in the nightly build


Lamp Repeater

Since the common remote switches on the 433MHz band only have one way communication, we never know if the command was really received. There are a lot of different products using this frequency band so it is not uncommon that the command is not received by the switch due to interference. This can be very annoying if the lamp was controlled by a timer in NetHome, since the lamp is not turned on/off as expected.

I have added a new Item to overcome this weakness in these protocols - a LampRepeater-Item.

You configure which lamps you want it to guard, and when one of those lamps is turned on or off the Item will repeat the command three times with 15 seconds interval. This increases the likelihood that the lamp really behaves as expected when it is controlled by a timer in a noisy radio environment. The Item is available in the nightly build.



I have now finally added the possibility to specify units of attributes in HomeItems. This has been a request from users for some time. The units are shown on the Plan-page, the Room-page and in Item details as below:
This makes the values easier to read and understand. The feature is available in the nightly build.

Linux Serial Port

I got reports from several users that communication via the serial port to Tellstick stopped working when they upgraded their Linux installations. They saw the errors:

[  146.590245] ftdi_sio: unknown parameter 'vendor' ignored                                      
[  146.590254] ftdi_sio: unknown parameter 'product' ignored

The problem proved to be that in kernel 3.12 the old interface to add custom VID/PID to the ftdi_sio drivers was removed (see commit link).
I have now made new installation scripts using the new official interface, and the installation page on the opennethome site is updated. The new scripts are also in the nightly build.


Power Meter

OpenNetHome now finally has support for a Power Meter that can measure electricity consumption. The new FooGadgetPulse-Item  supports the FooGadget Wireless Pulse Counter from FooGadgets, which can be connected to the standard blinking power meters often used in apartments and houses.

The Item presents the current consumption in kW (average over 1 minute), how much energy has been used so far today in kWh, how much energy has been used so far current week in kWh and the total consumption so far. It also shows the total consumption for yesterday and last week.

It uses the latest version of the FooGadget protocol where it can lose hundreds of the transmissions from the sensor and still get the total consumption right. This is useful when you upgrade the server for example, even if the OpenNetHome is down for a while, the measurements of the energy consumption will still be correct for that period. The old protocol is also supported by the Item FooGadgetLegacy.

The FooGadgetPulse-Item can show a graph of the consumption over time. The graph shows the consumption in kW sampled and averaged over 15 minute periods:

I have also added a new Item called ValueLogger, which can log any attribute value of an Item and present the value as a graph.This is very useful in combination with FooGadgetPulse. You can for example put a log on the EnergyToday-attribute. This will present a graph over the total consumption for each day, and also show how the consumption was distributed over the day:

Both FooGadgetPulse and ValueLogger are available in the nightly build.



I got a tip from a NetHome user about a really interesting site called FooGadgets which sells wireless sensors using standard wireless thermometer protocols. You can for example connect 16 1-wire thermometer sensors to one sensor-card and they will show up as 16 separate thermometers in NetHome.

They also build a wireless pulse counter which can be attached to "blinking" energy meters so you can get data about your energy consumption. I am currently working on a HomeItem for the Wireless Pulse Counter, which will be able to presents graphs and values over the energy consumption in a house.


Fine Offset Rain Gauge

Support for the FineOffset rain gauge is now also included in OpenNetHome. The new FineOffsetRainGauge-Item keeps track of rain fallen the last hour, the last 24 hours, the last week, the last month and the total amount of rain. The graph shows the amount of rain fallen between each log point, which is every 15 minutes. The resolution of the sensor is 0,3 mm.
Unfortunately, the Tellstick does not currently support this sensor, so it will only work if you use the audio interface with OpenNetHome.
It is available in the nightly build.


Fine Offset

Support for the FineOffset protocol for temperature and humidity sensors is now added to OpenNetHome. As usual, the brand names of the products vary between countries, and in Sweden for example they are sold under the name “Viking”. The usage in NetHomeServer is similar to the Oregon Scientific, so there are two new HomeItems: FineOffsetThermometer and FineOffsetHygrometer. As with the Oregon sensor, auto discovery is supported in OpenNetHome, so if there are sensors in range, they will automatically be presented on the Create/Edit-page. Note that not all FineOffset-sensors actually have a humidity sensor included. Graphing of values is of course supported as for the other sensors. Implementation is available in the nightly build. 

I am also working on support for the FineOffset Rain Gauge, but that is not finished yet.


Oregon Scientific

I have now added support for the Oregon Scientific-range of sensors to OpenNetHome. As with the UPM-sensors there are two Home Items available to use them: OregonThermometer and OregonHygrometer. If the sensor model has a humidity sensor, you can connect both items to it. As usual they both support graphing of the values.
As usual I cannot test all variants. I have tested with the THGN132N which is a thermometer/humidity sensor. I have however added code for the THGR122NX, THGN123N, THGR810 and THGR810 temp/hum sensors, the THN132N, THR238NF and THWR800 temp only sensors, the WGR800 wind sensor, the RGR968 rain sensor and the BTHR968 temp/hum/pressure sensor. The support for those is a bit more theoretical, I have implemented it according to specifications, but have not tested them. Oregon Scientific also have three versions of the protocol: 1.0, 2.1 and 3.0. I have now implemented the 2.1 version. 3.0 would be possible to add, but again I don't have any sensors so, that would be a bit too theoretical implementation and I don't know how commonly used it is. Implementation is available in the nightly build.


OpenNetHome in the media

I have now seen two articles about OpenNetHome online! One in the german Linux-Magazin and one in the greek site osarena.net. It is fun to see that the interest for home automation seems to be growing.



Since NetHome now officially support the Telldus Tellstick, the project now also has its own page on Telldus site for 3:rd party applications - check it out on here. Currently I am slowly moving documentation to the new site - a bit boring, but I guess it has to be done...


NetHomeServer 2.0

I have now finally released NetHomeServer 2.0! Release notes are available here. The final struggle was to get the drivers for Tellstick to work on Windows 8, but with great help from Telldus support we got that working. They signed the VCP-drivers needed for NetHomeServer - thanks!

For those who have been using the nightly builds, there are no other new things in there, instead there are two other things that have changed: The first is that NetHomeServer is now also open source, distributed under GPL V3. It is available on GitHub. Previously I have opened my private repository for those who have wanted to contribute, but now I can just say: Clone us on GitHub!

The second thing is that NetHomeServer now has a new site. Since it is an open source project, I thought a .org-address would be more appropriate, so www.opennethome.org is the new home - please visit and have a look. The old wiki will still be there for a while, I have not moved everything over yet.


New Items

I have now completed two new HomeItems that are quite useful. The first is a more advanced version of the Remap button for the Nexa Learning Code-system. It allows you to map remote control and wall switch buttons to actions in NetHome. What is new is that you can map separate actions for when you press the button, release the button and release after having pressed for a longer time. Action on release is useful when you want the action to send commands using the same radio band as the button uses. The item is called NexaLCAdvancedRemapButton.

The other item is the LampGroup. In the lamp group you can specify a number of lamps which belong to the group, and via the group item you can treat them all as one lamp. The group has actions to turn on, off, toggle and also dim to four preset levels. Lamps that does not support dim will simply be turned on. When you call the off-action on the group, it will remember which lamps were actually on at that time and the recall-action turns those lamps on again. As usual you can mix any kind of lamps: Philips Hue, Nexa, FS20 and so on.

Both items are in the nightly build.


Philips Hue

So, now I have added support for Philips Hue in NetHomeServer. It is one HomeItem for the bridge and one HomeItem per lamp. The new auto configure feature is also supported, so you only have to create the bridge item manually. After that all available lamps will automatically present themselves on the create screen, so you do not have to configure any parameters for them.
The really nice thing is that you can as usual mix them with any other of the supported systems. I control my hue lamps with a Nexa wall switch and a FS-20 wall switch. That way I can trigger different scenarios (colors and dim levels) from wall switches or other events (like timers, temperature and so on). Hue actually works particularly well with Nexa-switches since they use different RF-frequencies, so the signal from the switch does not interfere with the signals sent to control the lamps.
These are the first lamps with bi-directional communication that I have added support for, so if the lamps change state outside of NetHomeServer's control, this will still be reflected in the NetHomeServer GUI.
I am still trying to figure out the best way of specifying the color of the lamp in the Item, currently one integer is interpreted as color temperature, and two integers separated by a comma as hue and saturation.
The feature is available in the nightly build.


Auto Configure

So, now I have finally completed a feature that I have wanted to add for a long time - automatically configured Home Items. This means that based on a received event, NetHomeServer can automatically configure a Home Item to respond to that event.
A typical use case is when you add a new lamp to your system. You would first program your lamp module to respond to the native remote control of the lamp module. When you press the remote control, this will show up as an event in NetHomeServer. If you select that event, you will be presented with a list of HomeItems that can respond to that event, typically a lamp-Item and a remap button Item. When you select the lamp Item, a new Home Item is created which is configured with the lamp's address so the only additional configuration needed is to give the lamp a meaningful name!
If you would install a new temperature sensor, this will automatically show up as a new event, and you can get a thermometer Home Item automatically configured to handle the new sensor. As usual, this feature works with all supported receivers: Tellstick Duo, Audio-input based and FS20 (FHZ 1000). This feature is now available in the nightly build.