Heizungsüberwachung mit dem NAS

In meinem Haus habe ich an jeder Heizung programmierbare Thermostate, die Sensoren für Temperatur und Luftfeuchtigkeit besitzen. Die Oberfläche des Herstellers dieser Thermostate ist jedoch alles andere als übersichtlich. Daher wollte ich meine Heizung in einer schönen, übersichtlichen Oberfläche überwachen. Als Basis für dieses System dient mein Synology DS213+ NAS - vor allem deswegen, weil auf dem NAS ein Apache mit PHP und eine Maria DB laufen, die nicht aus dem Internet erreichbar sind. Meine Heizungsdaten sollten nicht im Internet die Runde machen, daher ist das NAS die optimale Plattform.

Die Architektur

Die Systemarchitektur des Systems (mit verwendeten Technologien) sieht wie folgt aus:

Die Funktionsweise

Grundsätzlich funktioniert das System indem die Fetcher-Skripte stündlich die Daten aus den Heizthermostaten auslesen und diese Daten in eine Datenbank schreiben. Aus der Datenbank werden die gespeicherten Daten per REST-API ausgelesen und in einem Web 2.0-Frontend mit der Hilfe von Google Charts dargestellt. Alles in Allem keine komplizierte Sache, aber eine einfache und effektive Möglichkeit die Heizung in einem Haus zu optimieren.

Neben den Raumtemperaturen und den Vorgabewerten ermitteln die Fetcher-Skripte auch die aktuelle Außentemperatur und Luftfeuchtigkeit über eine öffentlich zugängliche Wetter-API. Durch dieses Feature kann man die Raumtemperatur stetig mit der Außentemperatur abgleichen und eventuelle Zusammenhänge erkennen.

Die Komponenten

Die Fetcher-Skripte sind in Python geschrieben und machen nichts anderes, als die Heizungswerte aller Thermostate im Haus einmal pro Stunde auszulesen. Zuerst werden diese Daten als CSV-Dateien abgelegt und dann später in die Datenbank geschrieben.

Die Datenbank (Maria DB) speichert alle Werte, die von den Fetcher-Skripten ermittelt wurden.

Die API auf Basis von PHP mit dem Slim-Framework ist eine einfache REST-API, die die Authentifizierung per HTTP BasicAuth unterstützt. Sie implementiert das Objektmodell, das im GUI verwendet wird und stellt für jeden vom GUI benötigten UseCase die Daten im JSON-Format bereit.

Das GUI zeigt die Daten an, damit man die Heizwerte beobachten kann. Dabei stehen folgende Ansichten zur Verfügung:

  • Aktuelle Werte: Aktuelle Vorgabetemperatur, gemessene Temperatur, Außentemperatur und Luftfeuchtigkeit für alle Räume im Haus als Säulendiagramm.
  • Letzte 24 Stunden: Vorgabetemperatur, gemessene Temperatur, Außentemperatur und Luftfeuchtigkeit für alle Räume in den letzten 24 Stunden.
  • Letzte 7 Tage: Vorgabetemperatur, gemessene Temperatur, Außentemperatur und Luftfeuchtigkeit für alle Räume in den letzten 7 Tagen.
  • Beliebiger Tag: Vorgabetemperatur, gemessene Temperatur, Außentemperatur und Luftfeuchtigkeit für alle Räume an einem beliebigen Tag.
  • Aktuelles Delta: Differenz zwischen gemessener Temperatur und Vorgabetemperatur für alle Räume.
  • 24 Stunden Delta: Differenz zwischen gemessener Temperatur und Vorgabetemperatur für alle Räume in den letzten 24 Stunden.
  • 7 Tage Delta: Differenz zwischen gemessener Temperatur und Vorgabetemperatur für alle Räume in den letzten 7 Tagen.

Das Ergebnis

Das fertige System sieht jetzt so aus:

Unter folgender URL kann ein Demo-System (ohne aktuelle Werte und basierend auf Zufallswerten) betrachtet werden:
URL: Demo-System
Name: demo
Passwort: demo

Die Zukunft

Das System erfüllt schon sehr gut seinen Zweck indem es zeigt, welche Ereignisse (wie Lüften, Kochen, etc.) welche Auswirkungen auf die Raumtemperatur haben. Durch das Wissen um diese Ereignisse kann man die Heizleistung der Heizung optimal anpassen. Darüber hinaus denke ich aber auch schon über folgende Erweiterungen nach:

  • Langzeitauswertungen: Die Auswertungen reichen momentan maximal 7 Tage zurück. Um den Temperaturverlauf über längere Zeiträume zu beobachten müssen die Daten in der Datenbank aggregiert werden und neue Diagramme entworfen werden.
  • Regelung: Über die gewonnenen Informationen lässt sich neben der Heizungsüberwachung auch eine echte Regelung programmieren, die mehr kann, als die Hersteller normalerweise mitliefern. Das System könnte Gewohnheiten lernen und die Heizleistung dann entsprechend derer anpassen. Hierfür ist allerdings noch ein wenig Denkarbeit nötig.

wallpaper-1019588
Wie laut wird eine Wärmepumpe?
wallpaper-1019588
[Comic] Something is killing the children [6]
wallpaper-1019588
Helck: Cover des ersten Volumes und Sammelschubers enthüllt
wallpaper-1019588
AKIBA PASS TV: Erste Simulcasts für Sommer 2024 angekündigt