Solar panel algoritm

The following algoritm was implemented to drive the solar panel circulation pump.
The main mode is to control the speed of the circulation pump so there is a constant temperature difference between de solarpanels and the boiler.


  • The wanted temperature difference and a hysteresis value are configurable. Default these are 5 and 2 degrees Celcius.
  • The minimum speed of the solarpump in configured, most of the time this is about 30% of nominal speed.

Controller (Overview)

Design requirements

  • Standalone. The controller must be able to work autonomously.
  • Interfacable. The controller must interface with my homeautomation system.
  • Comfort. The controller must povide comfort.
  • Harvest as much as possible. The controller must try to harvest as much energy as possible.
  • Ecological. The controller must not consume energy when nog needed.


There are several modes possible.

  • Holiday. Only protection against frozen pipes, stuck valves/pumps, overheating, etc...

Heating system

I do not believe in "single source" heating systems.
Due to very volatile market prices of everything energy related, this is not feasible anymore.
History has also learned us it is never a good idea to bet all on a single horse. (Oil crisis, etc...)

I believe the future will be hybrid systems where the energy for heating a house is taken from whatever source that is available. (Sunlight, earthwarmth, pellets, heat pump, etc...)

Unfortunately, it seems it is very hard to "buy" such a system.
If you want is, you need to create it yourself.

Measurements (Volatile)

Measurements (Volatile)

Sometimes you don't want to store your measurements in a database, but you just want to react on them, ex: Humidity in a bathroom in order to drive the ventilation system.
In this case the procedure described previously is a bit over the top.

For these kind of measurements, where the measured values shouldn't be preserved or volatile measurements, we can use OWFS and xpl-owfs.


OWFS makes the 1-wire sensors and its data available through a filesystem interface.



In order to use 1-wire sensors in the way described here, there are some requirements.


One of the main requirements is OWFS.



This is needed as glue between OWFS and Perl


This is needed to be able to read sensorvalues directly from the filesystem.
This is only needed to use xpl owfs.

xpl owfs

This is optional, but required for volatile measurements.

OWFS compile

New Content!

New content about "the" output modules!


It is quite generic, and the hardware is still being designed, but it gives you a nice overview of what is being done.
The software on the Arduino controller, however, is already functional.

Output Module


The output modules are, just like the input modules, essentially a string of 8-bit modules.
These are attached to the Arduino controller and can be controlled through xPL commands from MisterHouse.

The current hardware is in design phase, and there are several versions:

  • A version with 2 8-bit modules integrated, providing 16 digital outputs.
  • A version with 2 8-bit modules integrated, providing 2 analoge 0-10V outputs to connect to existing dimmers.
  • Possibly version with a single 8-bit module integrated, providing a 230V phase dimmed output.

Homeautomation server (Virtual)

This is the one. ;-)

It is a standard virtual Ubuntu server.
It is setup to be as independant as possible from all other infrastructure, so there is some redundant services. (mySQL, etc...)
The idea is that this machine can be moved quickly to another (hardware) server if needed.


Standard installation.

aptitude install openssh-server nullmailer apticron 

MisterHouse installation

The minimal requirements for Mister House are

aptitude install subversion libaudio-mixer-perl libgd-gd2-perl


What does my home automation system do?
It does whatever I want it to do! ;-)

Well, here is a list, together with a link to the details in case you're interested.
(Please note there is not a link to all details, please see the "Details" section as well.)




TV / Video

Arduino / xPL


Home automation requires off course the connection of various inputs to get information, and outputs to have influence on the behaviour of things.

I use an Arduino with an Ethernet shield to connect Mister House to the real world.
For the communication between the Arduino and Mister House I chose for xPL messages.

From the xPL website:
xPL stands for "eXtremely simPle protocoL" and it is an open protocol intended to permit the control and monitoring of home automation devices.

Syndicate content