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.

0-10V Analog output

Is PWM output the same as analog output?

This is explained at

With the standard 5V output and a duty cycle of 50%, the output voltage is not 2.5V, but 5V for 50% of the time and 0V for the other 50% of the time. Standard the fequency of these pulses on Arduino is around 500Hz.

Temperature sensor interface


I will use PT1000 sensors to measure several temperatures.
These are resistors where the resistance changes with the temperature, and with 0° C, the resistance is exactly 1000 Ohm.
The resistance change is also more or less linear with temperature change, which makes it easier to compute the actual temperature.

There are several ways of "measuring" the temperature, each with their own advantages and disadvantages.

Controlling underfloor heating


What is needed to control the temperatures in the house:

  • Temperature sensor to measure outside temperature (TS_Outside)
  • Mixing valve to mix water of the correct temperature
  • Output(s) to control mixing valve
  • Temperature sensor to measure the temperature of the mixed water (TS_Floor_)
  • Temperature sensor to measure the temperature of the return water (TS_Floor_Return)
  • Output to control circulation pump (OUT_Circulation_Floor)
  • Temperature sensor(s) to measure inside temperature (TS_Inside)

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...

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.

Slow development

I'm getting a little bit frustrated by writing software for Arduino.

Am not a software developer, but I don't like the language at all.
On the other hand I realy like that a "release" consists of a complete toolchain.

With every new release there is problems: They changed some API's completely and/or some libraries just don't work as described, or the documentation is not complete.

Just by writing, in my opinion, fairly basic software, I'm forced to start and/or contribute to several bug reports for various strange, obscure, unexplainable and apparently random issues.


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