Dokumentation zur Temperaturmessung an der Heizung
Version mit Linux und Adaption an die NSLU2 Box
- Betrieb mit Analog Sensoren ab Februar 2009
- Betrieb mit Digital Sensoren ab April 2010 (Redundanter Betrieb)
Hardware
Es werden Termperatur Sensoren LM35 eingesetzt, mit Operationsverstärker TL082 (Schaltplan: heizung_HW.doc) und dem Meßmodul m232 (Schaltplan: ELV_M232_Schaltplan.pdf) von ELV.
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).
- Messstellen:
- Vorlauf Heizung
- Ruecklauf Heizung
- Warm-Wasser Speicher
- Raumtemperatur Dachboden
- Aussen + Basis (zur Vererechnung)
- Aussen-Basis (zur Verrechnung)
- Aussen (Berechnet wegen Minus Temp.)
Pumpenaktivität zur Laufzeitauswertung
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).
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.
/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.
/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.
- 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.
- 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)