Dokumentation zur Temperaturmessung an der Heizung

Version mit Linux und Adaption an die NSLU2 Box

Zur Modernisierung (Vereinfachung) wurden jetzt busfähige digitale Temperatur Sensoren DS18S20 eingesetzt, mit einem passiven RS232-1-wire Wandler (DS9097). Das Python Programm wurde angepasst (heizung16.py -> heizung20.py).

  1. Messstellen:
    1. Vorlauf Heizung
    2. Ruecklauf Heizung
    3. Warm-Wasser Speicher
    4. Raumtemperatur Dachboden
    5. Aussen + Basis (zur Vererechnung)
    6. Aussen-Basis (zur Verrechnung)
    7. Aussen (Berechnet wegen Minus Temp.)
    8. Pumpenaktivität zur Laufzeitauswertung

  2. RS232
    Der DB25S Stecker am M232 Modul hat eine DCE (Data Terminal Equipment) Beschaltung und passt somit 1:1 auf den PC-Anschluss, mit 25-9 Pin Adapter. Am Steckernetzteil für das M232 Modul ist die 9V Einstellung passend (+12V).

  3. Test unter Linux Ubuntu 0804

Programmablauf Graph GraphViz

Es mussten ein paar Tricks eingebaut werden, damit der GraphViz Graph gut aussah. Zum Beispiel weight=8, damit die vertikale Linie gerade blieb, und { rank=same; "restart_moin"; "moin_run"; } um beide Elemente auf eine Ebene zu bekommen.
Die Graphen Beschreibung kann man sehen, wenn man die Wiki-Seite im raw Modus ansieht. Die Aktion GraphVizCleanup wird leider im Thema Explorer nicht angezeigt. Damit könnte man die Versuchs-Graphen (attachment:graphviz-SomeGraph-...) komfortabel in einer Maske löschen. Es geht aber auch mit der Attachment-Verwaltung, speziell da man dort zur besseren Orientierung auch das File Datum sehen kann.

graphviz-SomeGraph-d0d99f36f0e00acb8d9118807fd819ab964ec738.png

/etc/init.d/moin.sh

Damit wird zuerst der Ordner /var/volatile/www (RAM Disk) erzeugt und dann der Standalone Web Server des MoinMoin Wikis gestartet. Die RAM Disk wird für die häufig wechselnden Daten benutzt, damit der USB-Stick entlastet ist. Im Einzelfall werden in anderen Ordnern Symlinks davon gemacht. Folgende Files werden hier vorgehalten:

heizdata.csv     - Ein Minuten Messwert für die aktuelle Anzeige auf der Web Seite.
heizdata300s.txt - Die Messwerte der letzten 300 Minuten (5 Stunden).
                   Im Ordner /home/rudi/heizung gibt es ein Symlink davon für gnuplot.
moin_rot.log     - Rollierender Log File des moin Web Servers (maximal 32 KB groß).
moin_rot.log.1   - letzter Log File.
shot.jpg         - Aktuelles WebCam Bild. 
                   Im Attachment der Wiki Seite HeizungWebCam ist ein Symlink davon.
cam.jpg          - Temporäres WebCam Bild, wird nach Fertigstellung in shot.jpg umbenannt.
TemperaturM.png  - 5-Stunden Diagramm von gnuplot.
                   Im Attachment der Wiki Seite HeizungWebCam ist ein Symlink davon.

/etc/init.d/heizung.sh

Damit werden die Prozesse heizung20.py und webcam3.sh gestartet.

/home/rudi/heizung/heizung16.py

Das ist der Prozess zur Datenerfassung und Protokollierung der Temperaturen und des Pumpenlaufs im Zyklus von einer Minute. Er ist an einer Analog/Digital Wandler Schaltung (RS232 Gehäuse von Firma ELV) angebunden. Die Messdaten werden in einem File heizdata.txt gesammelt. Wenn eine Laufzeit von 2 Wochen erreicht ist, benennt das Programm ihn um in hdYYMMTT.txt und erzeugt einen neuen Datenfile heizdata.txt. Ebenso alle 2 Wochen, nach einem Wechsel, sollte man die Daten abholen, um sie zu sichern und weiter zu verarbeiten (Jahres Statistik).

/home/rudi/heizung/heizung20.py

Das ist der Prozess zur Datenerfassung und Protokollierung der Temperaturen und des Pumpenlaufs im Zyklus von einer Minute. Er ist an 1-wire Sensoren DS18S20 über ein RS232 Anschluss Modul DS9097 (Clone, DB9) angebunden. Das Pumpensignal wird über RS232 DSR Signal eingelesen.

/home/rudi/heizung/webcam3.sh

Dieser Prozess löscht zuerst ein eventuell übrig gebliebenes temporäres Bild (cam.jpg) der Webcam. Dann wird ein neues temporäres Bild mit der Webcam erzeugt und in den www Ordner kopiert (shot.jpg). Als nächstes werden die letzten 300 Zeilen (= 5 Stunden, File=heizdata300s.txt) des Temperatur Datenfiles in den www Ordner kopiert, und die aktuelle, letzte Zeile (heizdata.csv). Jetzt wird mit gnuplot ein Diagramm der letzten 5 Stunden erzeugt (temperaturM.png). Zuletzt wird geprüft, ob die Prozesse moin und heizung noch laufen, und gegebenenfalls neu gestartet. Bei einer Überlastung des Wikis kann der Prozess moin abstürzen.
Nach einer Pause von 28 Sekunden wird wieder von vorne angefangen.

Mit den Programm sed kann man das Zeitraster einfach gröber machen, siehe.

# Extrahiere jede 5te Zeile
$ sed -n '0~5p' filename1 > filename2

/home/rudi/heizung/webcam4.py

Als Erweiterung zur Version 3 wurde noch eine Warte-Synchronisation zu dem Prozess heizung20.py eingefügt. Damit wird erreicht, dass nur entweder die Temperaturmessung oder Diagrammerstellung und Webcam Schnappschuss Erstellung laufen.

/home/rudi/heizung/digitemp_5s.py

Das ist ein Test Programm, um den Aufruf von digitemp mit 5 Sensoren zu testen. Dazu muss vorher ein Resource File erzeugt werden .digitemprc:

TTY /dev/ttyUSB0
READ_TIME 1000
LOG_TYPE 2
LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 5
ROM 0 0x10 0x50 0x0B 0x6D 0x01 0x08 0x00 0x75 
ROM 1 0x10 0xCC 0x10 0x6D 0x01 0x08 0x00 0xB5 
ROM 2 0x10 0xA1 0xF9 0x6C 0x01 0x08 0x00 0x9A 
ROM 3 0x10 0xC7 0x19 0x6D 0x01 0x08 0x00 0xBE 
ROM 4 0x10 0x37 0x2A 0x6D 0x01 0x08 0x00 0x06 

/home/rudi/heizung/test_dsr.py

Das ist ein Testprogramm, um den RS232 DSR Anschluss zu testen, der das Pumpen Lauf Signal weiter reicht.

Server Wartung

Um Änderungen oder Fehlersuche zu machen muss man sich auf den Server einloggen:

# Mac Os X: Application iTerm
$ ssh root@192.168.17.81  (Digital Sensoren, LKG300DB0) oder
$ ssh root@192.168.17.82  (Analog  Sensoren, LKG95AC9E)
Passwort eingeben

$ dfu  # /bin/dfu = date;free;uptime;uname -a

rudi@192.168.17.81's password: 
Last login: Sun Jul  1 06:40:34 2012 from rudis-mac-pro.fritz.box
rudi@LKG300DB0:~$ dfu
Sun Jul  1 08:56:58 CEST 2012
              total         used         free       shared      buffers
  Mem:        30376        28008         2368            0         2152
 Swap:        94664           40        94624
Total:       125040        28048        96992
 08:56:59 up  2:36, load average: 0.10, 0.15, 0.10
Linux LKG300DB0 2.6.21.7 #1 PREEMPT Mon Dec 24 23:12:24 UTC 2007 armv5teb unknown

root@LKG95AC9E:/home/rudi/heizung$ dfu
Sun Jul  1 08:54:17 CEST 2012
              total         used         free       shared      buffers
  Mem:        30376        27492         2884            0         1464
 Swap:       136544         2364       134180
Total:       166920        29856       137064
 08:54:17 up 661 days, 13:21, load average: 0.00, 0.04, 0.01
Linux LKG95AC9E 2.6.21.7 #1 PREEMPT Mon Dec 24 23:12:24 UTC 2007 armv5teb unknown

# Datenfiles sind in:
root@LKG95AC9E:/home/rudi/heizung$ ls -ls /var/volatile/www/
   4 -rw-r--r--    1 rudi     rudi           42 Jul  1 09:01 heizdata.csv
  16 -rw-r--r--    1 rudi     rudi        12600 Jul  1 09:01 heizdata300s.txt
  16 -rw-rw----    1 rudi     www-data    12506 Jul  1 08:27 moin_rot.log
  12 -rw-r--r--    1 rudi     rudi        11718 Jul  1 09:01 shot.jpg
   8 -rw-r--r--    1 rudi     rudi         6335 Jul  1 09:01 temperaturM.png

Fehlersuche

Zum Glück läuft in den meisten Fällen die Datenerfassung (Temperatur) durch, auch wenn die Web Seite nicht aktualisiert wird.

Bei der analogen Datenerfassung ist die Anbindung USB Web Cam das Hauptproblem.

Bei der digitalen Datenerfassung ist ein Speicherleck (memory leak) das Hauptproblem.

Bei Merkwürdigkeiten, die nicht mit einem reboot zu lösen sind, das Netzteil überprüfen. Das Original Netzteil (5V, 2A) geht erfahrungsgemäß nach einem Jahr Dauerbetrieb bei 230 VAC kaputt. Deshalb besser gleich durch ein stärkeres (5V, 3A) ersetzen.

  1. Web Seite oder Kamerabild bleibt im Datum stehen.
    • Im Datenordner /var/volatile/www nachsehen, ob die Datenfiles das aktuelle Datum haben.
      Wenn moin_rot.log das aktuelle Datum hat, ist wahrscheinlich die USB Web Cam steckengeblieben.
      Lösung: USB Stecker der Web Cam ziehen und wieder stecken.

  2. Web Seite bleibt im Datum stehen (Digital Sensoren)
    • Wenn der SWAP Speicher über 10 MB anzeigt (utility free zeigt in KB an), hilft nur ein:

     $ reboot

Liste der Seiten in dieser Category


Go Back to CategoryHeizung or StartSeite ; KontaktEmail (ContactEmail)

HeizungTempMess (last edited 2012-12-12 07:42:57 by dslb-084-058-156-010)