... läuft rund um die Uhr. Warum sollte man ihn nicht auch dazu verwenden, diverse Meßwerte der Haustechnik online anzuzeigen, z.B. aktuelle Anzeigen über den Energieverbrauch des Hauses ? Wir haben unsere Heizungsanlage um einen wasserführenden Kaminofen und eine Solaranlage erweitert, hier bieten sich eine Vielfalt von Messwerten an. In den Unterverteilungen der Hauselektrik wurden digitale Zähler eingebaut, die den Stromverbrauch auf jeder Etage messen ... auch diese Werte können online angezeigt werden. Und warum eigentlich nur Anzeige-Aufgaben für den Webserver? Kann man ihn nicht auch an der Heizungssteuerung bzw. Regelung direkt beteiligen ? Hier ein Projekt dazu ...
Heizungsanlage "Online" | Stromverbrauch "Online" | |
![]() |
![]() |
![]() |
Kommentare |
November 2011: Der Webserver ist noch lange nicht fertig, ein paar Kleinigkeiten funktionieren aber schon ...
- Die Solaranlage versucht immer, das Brauchwasser so warm wie möglich zu bekommen. In der Regel wird sie Brauchwassertemperaturen >45°C zur Verfügung stellen.
- Die Ölheizung ist immer ausgeschaltet, evt. Standby-Betrieb, um eine Mindest-Brauchwassertemperatur von 45°C zu garantieren.
- Die Umwälzpumpe für die Heizkörper ist immer ausgeschaltet und alle Zonenventile sind geschlossen.
- Sollte jemand ggf. heisseres Brauchwasser als 40°C benötigen, kann er dafür die Ölheizung oder den Kaminofen einsetzen.
- Die Solaranlage versucht, dem Pufferspeicher maximal Energie zuzuführen.
- Die Ölheizung ist immer ausgeschaltet, evt. Standby-Betrieb, um eine Mindest-Brauchwassertemperatur von 45°C zu garantieren.
- Die Beheizung des Hauses liegt primär beim Kaminofen. Der zugehörige Pufferspeicher dient dazu, die Energie bedarfsgerecht zur Verfügung zu stellen. Beispielsweise soll morgens das Badezimmer warm sein, abends sollen zu bestimmten Zeiten Kinderzimmer und Schlafzimmer beheizt werden.
- Es gibt einen Zeitplan, nachdem die Ventile der einzelnen Heizkreise automatisch ein- und ausgeschaltet werden. Die Zonenventile sind für die zeitliche Verteilung der vom Kaminofen erzeugten Energie zuständig.
- Es ist klar, das diese Betriebsart Grenzen hat. Es wird davon ausgegangen, dass der Kaminofen den ganzen Abend <= 7kW ( letztendlich ca. 30 kWh = 1 Stunde Ölheizung) in den Pufferspeicher abgibt. Vielleicht noch morgens ein Ofendurchgang beim Frühstück, das muss dann für den Tag reichen. Dabei soll soviel Energie im Speicher gepuffert werden, wie von den automatisch zugeschalteten Heizkreisen über den Tag verbraucht wird. Wenn aber bei brennendem Kaminofen und zugeschalteter Heizzonen eine ständige Absenkung der Vorlauftemperatur eintriit, ist der Energiebedarf nicht mehr gedeckt und die Ölheizung muss zugeschaltet werden.
- Die Solaranlage versucht immer, dem Pufferspeicher maximal Energie zuzuführen
- Der Kaminofen wird so oft wie möglich eingesetzt, um die Ölheizung maximal zu entlasten und damit Heizkosten einzusparen.
- Die Ölheizung ist immer eingeschaltet und ist dafür verantwortlich, dass die Temperatur im oberen Bereich des Pufferspeichers nicht unter einen Minimalwert absinkt.
- Die Umwälzpumpe für die Heizkörper ist immer eingeschaltet.
- Die Zonenventile sind immer eingeschaltet.
- Werktags zwischen 5:00 und 9:00 und zwischen 16:00 und 22:30 sorgt der Heizungsregler für die eingestellte Tagestemperatur (Wochenende ganztägig).
- In den anderen Zeiten sorgt die Anlage für die eingestellte Nachttemperatur.
- Die Brauchwassertemperatur folgt der Tages- und Nachtemperatur. Es wird kein höherer Wert verlangt.
Der Buderus Ölbrenner hat schon einige Jahre alleine Dienst getan. Da sein Zustand aber noch als "sehr gut" zu bezeichnen ist, wurde er noch nicht gegen ein Brennwertgerät ausgetauscht. Es ist im Moment nicht abzusehen, ob eine Umstellung auf Gas-Brennwert evt. sinnvoller ist als Öl-Brennwert. Vielleicht gibt es die Kopplung zwischen Öl- und Gaspreis bald nicht mehr, dann muss das Thema neu aufgegriffen werden.
Ultraschall Sensor von Projet, über einen RS232-TTL-Konverter von KMTronic am PC angeschlossen.
Das preiswerte Gerät ist absolut empfehlenswert! Bei der Inbetriebnahme gab es keinerlei Schwierigkeiten. Die erste Messung zeigte sofort denselben Wert wie die mechanische Füllstandsanzeige an. Die zum Gerät verfügbare PC-Software lief nach Verbindung mit dem RS232-TTL-Konverter auf Anhieb. Die Übernahme der Daten in meine Software war problemlos. Der Messwert steht stabil an, die Ultaschall-Messung liefert überhaupt keine Fehlmessungen.
05.11.2011
- Die Zonenventile sind an einer Steckdosenleiste angeschlossen, die über Netzwerk gesteuert wird (Reichelt,
LAN NETIO230B-SW).
Die Ansteuerung geschieht über ein php-Skript, welches auf dem Windows XP-Server alle 10 Minuten aufgerufen wird. Der Zeitplan für das ein- und ausschalten ist in einzelnen
Textdateien festgelegt
07.11.2011
- Die erste Version des Hintergrundbildes ist fertig. Es stellt den Gesamtplan der Anlage dar.
08.11.2011
- Der Status der Zonenventile wird online angezeigt.
10.11.2011
- Login für die Bedienelemente eingebaut.
12.11.2011
- weitere Arbeiten an der Steuerung der Zonenventile.
13.11.2011
- die Zonenventile sind jetzt steuerbar, incl. Schaltuhr und Timer
16.11.2011
- die Ansteuerung der Steckdosenleiste NETIO230B mit telnet hat sich nicht bewährt. Die Steckdosenleiste wird zwar nur alle 10
Minuten "gepollt", trotzdem stürzt sie regelmäßig ab. Habe im Internet gefunden, dass die telnet-Steuerung unzuverlässig sein soll
und deshalb auf cgi-Zugriff umgestellt. Mal sehen, ob es damit besser läuft ...
22.12.2011
- ... leider nicht! Reichelt hat mir inzwischen eine neue Steckdosenleiste geschickt, doch leider tritt das Problem auch nach dem Umtausch immer noch auf. Der Hersteller Koukaam reagiert schnell und
freundlich auf meine E-Mails. Es wird mir angeboten, das Gerät einzuschicken. Mal sehen, ob das Paket in Prag ankommt ?
30.12.2011
- Der Webserver ist jetzt in den Heizungsraum umgezogen. Damit können endlich USB-Sensoren angeschlossen werden, alles was
gemessen werden soll, ist jetzt in unmittelbarer Nähe. In das leere Plastikgehäuse soll später ein Mikrocontroller eingebaut werden, der für diverse
Messaufgaben eingesetzt werden soll.
5.1.2012
- Heute habe ich die Öltank-Füllstandsanzeige ("Leveljet") in Betrieb genommen. Leider werden RS232 Funktionen in php nicht unterstützt, deshalb
habe ich für das Einlesen der RS232 Daten ein kleines C-Programm geschrieben. Dieses liest die Daten über die serielle Schnittstelle ein und speichert sie in einer XML-Datei.
Die XML-Daten werden dann auf Browser-Anfrage übertragen und so angezeigt:
Der Öl-Spiegel wird mit Javascript massstabsgetreu mitbewegt. Sollten keine Daten verfügbar sein, wird der Öltank rot dargestellt. Sind nur "alte" Daten verfügbar, erfolgt irgendwann eine graue Darstellung.
15.1.2012
Das Feuer im Kaminofen soll vom Webserver "leistungsgetreu" angezeigt werden. Dafür mache ich Videoaufnahmen mit der Digitalkamera von einem Abbrand,
schneide die Einzelbilder aus und füge allers in "animierten" gif-Dateien wieder zusammen. In der folgenden
Abbildung können die verfügbaren Animationen angezeigt werden.
16.1.2012
Die Drehzahl der Pumpen wird vom zuständigen Regler bedarfsgerecht angesteuert. Das soll auch vom Webserver angezeigt werden.
Die Pumpensymbole sollen sich unterschiedlich schnell drehen können. Dafür habe ich gif-Animationen in 10 Abstufungen gebastelt.
Leider verhalten sich Internet-Explorer und Firefox bei "schnellen" Bildfolgen unterschiedlich.
Am schnellsten kann es der Firefox ...
20.1.2012
Das Aussenthermometer soll bei verschiedenen Temperaturen die Farbe ändern. Die Zuordnung der Farben erfolgt im
HSV Farbraum. Die Abbildung unten zeigt, wie die Werte
für Rot, Grün und Blau der Temperatur zugeordnet werden.
Rest Januar 2012
- Die Messung der Analogwerte parallel zu den NTC-5000 Temperaturfühlern erweist sich als unerwartet problematisch. Als AD-Wandler habe ich den preiswerten 8-Kanal
12-Bit Wandler HB 628 der Firma H-Tronic
(Pollin) ausgewählt. Er hat einen Eingangswiderstand von >10 MOhm und kann Spannungen bis ca. 4V messen, ideal für eine Parallelschaltung zu den NTC-Fühlern.
Der Temperaturbereich wird zwar nicht vollständig (TEM kann bis 5V) abgedeckt, was jedoch nur bei der Messung der Sonnenkollektor-Temperatur auffallen dürfte. Dort können
keine Temperaturen < 14.3 °C angezeigt werden.
Für das Einlesen der analogen Daten habe ich das C-Programm, welches auch den Öltank-Füllstand ausliest, erweitert (es hat jetzt sogar einen Namen: "Lurchon").
Zunächst war die Begeisterung groß, als die ersten analogen Werte auf der Webseite angezeigt wurden. Die Abweichungen zu den Anzeigen der TEM-Regler waren nur sehr
gering. Die Freude erhielt jedoch einen Dämpfer, als die Software nach ein paar Stunden einfach abstürzte. Bei der Fehlersuche stelle ich fest, das sich die
COM-Schnittstelle, über die der HB 628 angesprochen wird, nicht mehr öffnen lässt. Nachdem der Port im Windows Gerätemanger zunächst "deaktiviert" und dann wieder
"aktiviert" wird, läuft das Programm wieder. Wer jetzt eigentlich abgestürzt war, PC-Treiberbaustein oder HB 628 Modul, kann ich nicht sagen. Mittlerweile kann ich das Abstürzen
gezielt auslösen, es genügt die Neonröhre im Raum neben dem Heizungskeller ein- und auszuschalten. Ich habe ein EMV-Problem, wie furchtbar!
Ich muss noch erwähnen, dass ich den Wandler auch mit abgezogenem Flachbandkabel ausprobiert habe, also mit offenen Eingängen. Dabei stürzte nichts ab. Ich schloss
daraus, das die Störungen über die analogen Eingänge in das System gelangen. Die Abbildung zeigt den HB 628 mit einer gebastelten "Entstörplatine". Darauf habe ich
für jeden Eingang einen gewaltigen Tiefpass (150 mH und 2.2 uF) spendiert. Brachte aber überhaupt nichts, die Analog-Messung stürzt weiterhin zuverlässig bei
Betätigung der Neonröhre ab. Bin etwas ratlos, denke bereits über den Kauf eines USB-Isolators nach, die werden ja mittlerweile recht preiswert angeboten.
Zunächst habe ich eine Software-Lösung eingebaut. Bei Microsoft kann man das Programm "devcon" herunterladen. Damit
kann man alle Gerätemanger-Aktionen über die Kommadozeile ausführen, also auch einen Port deaktiveren und aktivieren. Es gibt sogar eine "restart"-Funktion. Werden
nun von meinem C-Programm 10 Sekunden lang keine Messwerte empfangen, wird automatisch die COM-Schnittstelle geschlossen, der Port mit devcon "restartet" und die
Schnittstelle wieder geöffnet. Dann geht es zuverlässig weiter. Das ist aber ein böser Work-Arround ... muss mir unbedingt eine bessere Entstörmaßnahme
einfallen lassen.
11. Februar 2012
Ein kleines Meldungssystem für die Steuersoftware ist jetzt fertig. Im "Lurchon-Fenster" auf der Webseite können jetzt
Meldungen übertragen werden. Zum Transport der Meldungen wird die XML-Übertragung der Ölstand-Füllanzeige mitbenutzt.
Diese wird 1x pro Minute angefordert. Als erstes habe ich eine Fehlermeldung eingebaut, die ausgegeben wird, wenn der ADC-Wandler keine Daten
mehr liefert und ein Treiber-Restart mit devcon durchgeführt wird. Habe bei Beobachtung der Zeitpunkte derFehlermeldung noch einen weiteren extremen
Störer entdeckt: Das Schalten des Motors vom Heizkreis-Mischerventil führt auch zuverlässig zu Treiberabstürzen - habe ein dickes Störproblem :-(
15. Februar 2012
Habe für die Ofendarstellung auf der Webeite ein neues anmiertes Gif für das Feuer gebastelt. Habe jetzt 3 verschiedene"Feuerstufen" (siehe oben).
21. Februar 2012
Demnächst soll angezeigt werden, ob der Ölbrenner aktiv ist oder nicht. Das möchte ich auf dem Webserver mit einem animierten Gif-Bild darstellen.
Die Lampe am Brenner soll blinken und der Kessel soll glutrot werden. Die Glut soll "wabern", es soll "heiß" aussehen :-) Erste Versuche mit mehrer Farbverläufen
hintereinander waren nicht überzeugend. Dann habe ich für die Animation ein "Morphing-Programm" eingesetzt, wodurch die Farbverläufe ineinander übergehen.
Das Ergebnis sieht so aus:
Ölbrenner "Aus"
Ölbrenner "Ein" (man beachte den "wabernden" Kessel)
23. Februar 2012
Das ständige Abstürzen des ADC-Wandlers will ich mit einem USB-Port-Isolator verhindern. Dieser ist heute geliefert worden.
Leider konnte ich damit überhaupt nichts bewirken. Solbald ich die Neonröhre im Nebenraum betätige, stürzt der USB-Treiber "zuverlässig" weg
und mein Hilfsprogramm startet ihn neu. Jetzt habe ich einen riesigen Tiefpass am Eingang des Wandlers und einen USB-Isolator
in der Leitung zum PC aber nichts hat geholfen ... bin erstmal ratlos!
23. Februar 2012
Heute habe ich, ohne viel Glauben an Erfolg, den USB-Isolator mit einem kurzen USB-Kabel direkt hinter den ADC gesetzt.
Und siehe da, der Treiber-Absturz ist weg. Hier nochmal alle Kombinationen, die ich ausprobiert habe:
In Schritt 1.) und 2.) habe ich lediglich verschieden lange USB-Kabel ausprobiert. In Schritt 3.) und 4.) habe ich den Tiefpass hinzugefügt, leider ohne Erfolg, die Störung scheint nicht über die analogen Eingänge einzudringen. In Schritt 5.) und 6.) wird der USB-Isolator eingesetzt. Der bringt aber erst Erfolg, wenn er kurz hinter dem ADC positioniert wird. Echt verrückt, über eine technische Erklärung der Art der Störung kann ich nur spekulieren ...
14. Mai 2012
Die Zonenventile werden über die Steckdosenleiste Netio230b von Koukaam geschaltet. Damit hatte es anfänglich Probleme gegeben, Abstürze
ereigneten sich regelmäßig. Ich hatte das bei Koukaam reklamiert und das Gerät eingeschickt. Der Service von Koukaam war ausgesprochen
freundlich und wirklich an meinen Problemen interessiert. Mitte Februar hatte ich die Steckdosenleiste von Koukaam zurückbekommen. Ich weiss
nicht, ob nur ein Softwareupdate durchgeführt wurde, oder auch Enstörmaßnahmen getroffen wurden, Tatsache jedoch ist, dass der Netio230b
bisher nie wieder abgestürzt ist. In diesem Zustand kann ich das Gerät jedem weiterempfehlen!
15. Mai 2012
Ich hatte schon vor geraumer Zeit eine USB-Relaisplatine gekauft, mit der ich den Ölbrenner ein- und ausschalten wollte. Dabei stellte sich die Frage,
wo ich denn die Software dafür einbaue. Die Steckdosenleiste wurde derzeit von 2 verschiedenen PHP-Skripten bedient. Das eine Skript wurde vom Windows-Scheduler
aufgerufen (Schaltuhr), das andere direkt durch den Webserver. Die analogen Sensoren und die Tankanzeige wurden von einem C-Programm
eingelesen. Der Grund dafür lag einfach daran, dass sich eine serielle Schnittstelle in C sehr einfach programmieren lässt, in PHP jedoch nicht.
Andererseits sind TCP/IP-Zugriffe in PHP sehr einfach (fsockopen und los gehts) ... daraus ist Aufräumbedarf entstanden, die Software muss übersichtlicher
werden!
Das neue und teilweise umgesetzte Konzept der Heizungssteuerung sieht folgendermaßen aus:
22. Mai 2012
Es gibt 2 XML-Datensätze, es werden "schnelle" und "langsame" Daten unterschieden (fast.xml und slow.xml). Die Sensor-Daten sollen so schnell wie möglich zur Anzeige
gebracht werden, deswegen wird die Datei "fast.xml" alle 2 Sekunden von allen Browsern angefordert. Der komplette Inhalt des Meldungsfensters muss aber nicht periodisch erneuert werden,
dort sind Änderungen eher selten. Hierfür gibt es den Datensatz "slow.xml". Dieser enthält auch noch weitere "statische" Informationen, wie z.B. den aktuellen
Zustand der Zonenventile und den Füllstand des Tanks. Die Anforderung des langsamen Datensatzes wird mit der "Slow-ID" gesteuert. Jedesmal, wenn sich der Inhalt
der Datei slow.xml ändert, wird die "Slow-ID" incrementiert. Beide xml-Dateien enthalten diese ID. Dadurch wissen alle Browser, ob sie den aktuellen "langsamen"-
Datensatz bereits geladen haben oder nicht und können ggf. nachladen.
Links unten auf der Webseite gibt es jetzt eine "Aktivitätsanzeige". Jede Anforderung von fast.xml und slow.xml bringt eine LED zum Aufleuchten. Während des
Übertragungsvorganges ist die LED eingeschaltet. Da der Vorgang sehr kurz sein kann, sind die LEDs mit einem Nachleuchten ausgestattet. Die Dateien sind
verlinkt, die aktuellen Datensätze können durch Anklicken mit dem Browser angezeigt werden.
Hier können Kommentare zu meinem Heizungs-Projekt abgegeben werden.
erstellt: 02.07.2011
geändert: 31.08.2017