Der Webserver

... 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 Heizungsanlage - Wunscheigenschaften / Erwartungen

Betrieb im Sommer

- 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.

Betrieb in der Übergangszeit (es ist noch nicht so kalt oder schon wieder etwas wärmer)

- 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.

 

Betrieb im Winter

- 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.


Die Zusammenstellung der Heizungsanlage

Ölbrenner Buderus S115 (Buderus)

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.

Wasserführender Kaminofen Hark 17 WWGT

2x20 Röhrenkollektor Solarthermie (Hark)

750L Pufferspeicher Thermopower 750 (Hark)

Elektronik Komponenten

Öltank Füllstandsanzeige

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.

Protokoll der Arbeiten am Webserver "Heizungsanlage"

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.

Ventil geschlossen:    Ventil geöffnet:   Fehler Status:

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:

 
Tankinhalt
_? Liter
Eingabe Füllstand ( 0 ... 150cm ): cm

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.

aus
5%
90%
100%

... ist noch nicht vollständig

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.

 
 
 
_? °C

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:


Es gibt das zentrale Steuerprogramm Lurchon (C++). Dieses enthält jetzt die gesamte Funktionalität. Das Programm wird über Webbrowser bedient. Wird auf dem Webbrowser eine Funktion angeklickt (z.B. Zonenventil öffnen), dann wird das Kommando an den Webserver geschickt, der es mit einem PHP-Skript empfängt (ein XMLHttpRequest). Das PHP-Skript hat aber keine eigenen Steueraufgaben, es dient nur dazu, das Kommando per TCP/IP an das zentrale Steuerprogramm Lurchon weiter zu leiten. Wurde das Kommando dort erfolgreich ausgeführt, wird ein einfaches "ok" zurückgesendet (als Antwort auf den XMLHttpRequests). Im Fehlerfall wird eine Fehlermeldung übertragen, die auf dem Browser als Javaskript Meldungsfenster angezeigt wird. Nicht eingeloggte Gäste bekommen auf diese Weise bei Steuerversuchen die "Kein Login vorhanden"-Meldung direkt vom Lurchon Programm. Alle Sensordaten und aktuelle Schaltzustände werden von Lurchon in XML-Dateien abgelegt. Die auf dem Webbrowser laufende Javascript-Oberfläche fordert diese XML-Dateien periodisch (1 x pro Sekunde) an und stellt sie grafisch dar.

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.

Kommentare

Hier können Kommentare zu meinem Heizungs-Projekt abgegeben werden.

erstellt: 02.07.2011
geändert: 31.08.2017