Projekt Fußbodenheizung

Heizungssteuerung mit Linux und Raspberry Pi einrichten

Cronjobs konfigurieren

Die Heizungssteuerung muss automatisch jede Minute aktiv werden, um die Temperaturen zu erfassen und gegebenenfalls einzugreifen. Zudem werden Diagramme in einem regelmäßigen Turnus generiert. Dafür wird das auf Linux-Systemen verfügbare Cronjob-Management verwendet. Folgend eine Liste der Cronjobs und deren Aufgaben:

• Watchdog - Prüft ob die Steuerung noch Werte ermitteln kann und startet das System im Fehlerfall neu.

• Cleanup - Beschränkt die in der Datenbank abgelegten gemessenen Werte und löscht Altdaten.

• Temperatur eintragen - Misst aktuelle Temperaturwerte und trägt diese in die Datenbank ein.

• Graphen erstellen - Erstellt mittels RRD-Tool die verschiedenen Temperaturgraphen (für den aktuellen Tag, für die Woche, usw.).

Die genauen Funktionen können im SVN-Quellcode angesehen werden.

Die Cronjobs des Benutzer pi kann man sich mit folgendem Befehl anzeigen lassen "crontab -l". Bearbeitet werden diese Cronjobs mit dem Befehl "crontab -e". Um diese Cronjobs nun auf den Raspberry zu übernehmen, müssen folgende Einträge (mittels "crontab -e") ergänzt werden:

#*/2 * * * * cd /home/pi && ./heating/watchdog.sh --> Inaktiv bis # entfernt wird, dass sollte gemacht werden, wenn alles komplett eingerichtet ist

0 2 * * * cd /home/pi && ./heating/cleanup.sh

* * * * * cd /home/pi && ./heating/insert_new_temp.sh >> /dev/null

*/5 * * * * cd /home/pi && ./heating/create_graph_quick.sh >> /dev/null

5 */2 * * * cd /home/pi && ./heating/create_graph_slow.sh >> /dev/null

Ob die Cronjobs auch aufgerufen werden, kann mit dem Befehl "tail -f /var/log/syslog" geprüft werden. Diese Logdatei zeigt jede Ausführung eines Cronjobs an.

RRD-Tool auf Jahres-, Wochen- und Tagesstatistiken vorbereiten

Um die gemessenen Werte grafisch darzustellen, wird das bekannte RRD-Tool verwendet.

Die Datenbank der Temperaturwerte wird so eingerichtet, dass sie die Werte der letzten zwei Jahre beinhaltet. Die gemessenen Werte werden alle zwei Minuten eingetragen (120*24*365*2=525600 Anzahl der zu speichernden Temperaturwerte für den Zeitraum von zwei Jahren). Das Skript 'init_rrdtool.sh' legt die dafür nötige RRDTool Datenbank an.

cd heating/jobs

./init_rrdtool_db.sh