Alte Gastherme visualisieren Junkers ZWR 18-KF

Begonnen von Cihan, 17 Februar 2015, 22:12:48

Vorheriges Thema - Nächstes Thema

Cihan

Hallo liebe Freunde hier möchte ich mal mein aktuelles Projekt vorstellen.




Es geht um eine Kombitherme, die bei mir in der Wohnung ist.
Diese Therme wird mittels der Junkers 1 2 4 Stetigregelung geregelt. Es ist ein Thermostat im Wohnzimmer vorhanden.
Mein Ziel ist es, die Therme in FHEM einzubinden und sie dann auch darüber steuern zu können. Das regeln sollte später kommen.



Als Hardware habe ich momentan folgendes in Gebrauch:

RPi2 mit 8 GB SD
-> Raspian, FHEM 5.6, Samba, VLC
Arduino UNO, Firmata
2 12 V Relais, 1 230v Relais

Digital Input am Arduino:

DI02: Gasbrenner
DI03: Umwälzpumpe

Digital Output:
DQ08: Sperrschalter

Benutzte Module:
FRM für Firmata
HourCounter Laufzeitberechnung

(http://fs2.directupload.net/images/150217/suj9het8.jpg)

Bei der Umwälzpumpe bin ich direkt parallel an die Zuleitung gegangen und steuere damit ein Relais an, welches den Eingang DI03 schaltet.

Bei dem Magnetventil für Gas bin ich auch an die Zuleitung der Spule gegangen und dann auf ein 12V Relais. Es sind Pin MV3 MV4
auf der Steuerplatine von der Therme.

Der Sperrschalter war mit einer Brücke belegt, wenn diese öffnet, geht nur Brauchwasser. Das schalte ich auch mittels Relais.

Der Arduino ist mittels USB mit dem RPi verbunden. Den Gasverbrauch habe ich ausgelitert. Bei mir waren es 10l pro 20 sek. Damit konnte ich arbeiten.

Momentan kann ich die Heizung aus und ein schalten mittels dem Sperrschalter. Ich sehe ob der Brenner und die Pumpe läuft, und kann den Verbrauch sehen.

Geplant ist:
Tages, Monats, Jahresverbrauch Gas und dessen Visualisierung. Kostenanalyse Gas.
Und später die Temperaturregelung über Homematic.
Ich würde mich sehr über weitere Anregungen freuen. Für mich ist alles neu, und was funktioniert ist zum teil nur copy paste. Ich bin aber auch der Meinung nicht jedesmal das Rad neu zu erfinden und Grundlagenforschung zu betreiben.

Code für die Firmata Anbindung:

# IO-Device
define FIRMATA FRM /dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Uno_5533034383135121D002-if00@57600
attr FIRMATA alias Arduino UNO
attr FIRMATA group I/O
attr FIRMATA room System

# Eingang DI02 Gasbrenner
define DI02 FRM_IN 2
attr DI02 IODev FIRMATA
attr DI02 alias Gasbrenner
attr DI02 group Junkers ZWR 18-3 KE
attr DI02 icon sani_boiler_temp
attr DI02 internal-pullup on
attr DI02 room Heizung
attr DI02 stateFormat reading

# Eingang DI03 Umwälzpumpe
define DI03 FRM_IN 3
attr DI03 IODev FIRMATA
attr DI03 alias Umwälzpumpe
attr DI03 group Junkers ZWR 18-3 KE
attr DI03 icon sani_pump
attr DI03 internal-pullup on
attr DI03 room Heizung
attr DI03 stateFormat reading

# Ausgang DQ08 Wärmeanforderung
define DQ08 FRM_OUT 8
attr DQ08 IODev FIRMATA
attr DQ08 alias Wärmeanforderung
attr DQ08 group Junkers ZWR 18-3 KE
attr DQ08 icon sani_heating_temp
attr DQ08 room Heizung
attr DQ08 stateFormat value


Code für die Pumpe und Magnetventil Gas
efine CN.EVENT notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
define CN.Pumpe HourCounter DI03:reading:.on DI03:reading:.off
attr CN.Pumpe alias Pumpenlaufzeit
attr CN.Pumpe group Junkers ZWR 18-3 KE
attr CN.Pumpe icon time_graph
attr CN.Pumpe room Heizung
attr CN.Pumpe stateFormat {sprintf("%.1f",ReadingsVal("CN.Pumpe","pulseTimePerDay",0)/3600)." Std"}
define CN.brenner HourCounter DI02:reading:.on DI02:reading:.off
attr CN.brenner alias Gaszähler
attr CN.brenner group Junkers ZWR 18-3 KE
attr CN.brenner icon time_graph
attr CN.brenner room Heizung
attr CN.brenner stateFormat {sprintf("%.3f",ReadingsVal("CN.brenner","pulseTimeOverall",0)/500000)." m³"}
RPi4 Shelly Zigbee

stenny73

Hallo

Ich habe es ähnlich gelöst. Und habe dazu ein paar kleine Anmerkungen....

Die Ansteuerung des Sperrschalters ist mit vorsicht zu geniessen. Wennaus irgendeinem Grund die Steuerung ausfällt oder hängt wird
ggf gar nicht geheitzt......Der Sperrchalter ist eigentlich auch komplett uninteressant.

Ich Steuere über den Raumthermostat der zur Heizug gehört - hier habe ich einen Anschluß über den ich die Nchtabsenkung einschalten
kann - das heist selbst wenn die Steuerung ausfällt läuft wenigtens noch im ungünstigsten Fall zwar in der Nachtabsenkung aber sie läuft.



stenny
FHEM auf XEN, Ubuntu-Server 14.04   - HM-Lan - Max - ZWave -WS1080 -BlueTooth

FHEM auf Ubuntu-Server 14.04   - HM-LAN

FHEM auf Raspberry Pi   - CSM für Max - HM-USB - WiFi-LED

Cihan

Und warum hast du es nicht mit einem Öffner versucht? Mein Raumthermostat ist ja immer noch angeschlossen und in Betrieb.
Ich muss mir ja noch Stellglieder für die Heizkörper holen und Temperatursensoren.

Aber so wie ich es habe, kann ich das Raumthermostat später ja auch in Betrieb lassen. Muss dann halt eine höhere Temperatur anwählen.
RPi4 Shelly Zigbee

stenny73

Grundsätzlich richtig.

Mit einem Öffner schaltest die die Therme ab - je nach Ausfall fällt der Öffner wieder zurück und dein Thermostat regelt.... Was passiert wenn das System aber nicht komplett ausfällt - das heißt der hängt sich auf wenn der Kontakt geöffnet ist....

Sofern du über das Thermostat steuerst ist in einem solchen Fall mindestens die nachtabsenkung aktiv.
FHEM auf XEN, Ubuntu-Server 14.04   - HM-Lan - Max - ZWave -WS1080 -BlueTooth

FHEM auf Ubuntu-Server 14.04   - HM-LAN

FHEM auf Raspberry Pi   - CSM für Max - HM-USB - WiFi-LED

Cihan

#4
Da magst du recht haben. Vielleicht könnte man dies mit einem Attiny und einem Watchdog lösen. Ich muss auch erstmal gucken wie stabil das läuft.
Aber es gibt jetzt auch ein Update von mir. Meine Temperatursensoren sind gerade angekommen.
10 Stück DS18b20 für 19,90

Auf dem Arduino läuft jetzt das configurableFirmata

Der Code um den Pin für OneWire zu aktivieren

# Pin 7 OW07 Temperaturbus
define DW07 OWX 7
attr DW07 IODev FIRMATA
attr DW07 alias 1 Wire Busmaster
attr DW07 group I/O
attr DW07 room System


Damit sage ich dem System erstmal das der Pin 7 für Onewire ist und das er den Arduino nimmt.

Wenn das Fertig ist gehe ich auf den Busmaster und dann auf get Device oben.
Dann wird der Bus nach neuen Temperatursensoren abgefragt und unter OWX angelegt.

Der Rest sieht dann so aus für einen Tempsensor.

define OWX_28_FFA13C631402 OWTHERM DS18B20 FFA13C631402
attr OWX_28_FFA13C631402 IODev DW07
attr OWX_28_FFA13C631402 alias Temp Rücklauf
attr OWX_28_FFA13C631402 group Temperaturen
attr OWX_28_FFA13C631402 icon temp_temperature
attr OWX_28_FFA13C631402 model DS18B20
attr OWX_28_FFA13C631402 room Heizung
attr OWX_28_FFA13C631402 tempHigh 85
attr OWX_28_FFA13C631402 tempLow 0


So gesehen bin ich mit der Visualisierung fertig. Jetzt muss nur noch alles richtig verkabelt werden, wenn mein Arduino Nano angekommen ist.

RPi4 Shelly Zigbee

Cihan

#5
Hier ein Foto mit den Temperaturplots.
Die Therme ist so jetzt fertig in meinen Augen. Was ich bestimmt noch mal machen werde, ist die Betriebskosten auszurechnen.
Für die Pumpe und das Gas. Aber ich denke mal da muss ich mich in Dummys und userreadings einlesen.
Würde mich über Tips freuen.

RPi4 Shelly Zigbee

kpwg

#6
Hallo cihan,

habe eine recht ähnliche Therme, aber eine andere Lösung benutzt:

Das FHEM-Wiki beschreibt sehr gut die Grundlagen,
Im E6-Wiki ist dann mein Projekt. (Variante 3 mit Schutzdiode und zwei Messpunkten)

Dabei muss ich mich nicht um Pumpe oder Brenner kümmern, sondern regle allein über die Regelspannung eines simulierten Raumtemperaturfühlers. Die Spannung (ca. 3-22V) erzeugt ein D/A-Wandler. Der originale Fühler (TR200) ist noch in Betrieb und fungiert als Rückfallebene. Dieser liefert keine lineare analoge Spannung, sondern unterschiedliche Stufen (glaub' 8 oder 9). Mit dem A/D-Wandler des Atmel messe ich Soll- und Ist-Regelspannung. Drei DS18B20 messen Vorlauf, Rücklauf und Warmwasser. Da der Mega32 noch viel Luft hat, misst das Device zusätzlich Raumklima mit DHT22 und bedient ein Display. Erreichbar ist alles über ECMD / IP. :)

Viele Grüße, Ricardo

ps: anbei mein letzer Stand. Mega32 raus, Mega644 rein; mit extra BMP180, damit ich endlich auch den Luftdruck auswerten kann.

Cihan

Macht es einen Unterschied in der Flammenhöhe? Ich konnte keinen Unterschied mit Regelung bei mir festellen.
RPi4 Shelly Zigbee

kpwg

Zitat von: Cihan am 10 März 2015, 19:50:19
Macht es einen Unterschied in der Flammenhöhe? Ich konnte keinen Unterschied mit Regelung bei mir festellen.

Ja, auch hörbar sind die Unterschiede. 100% klingen schon anders als 25%.

So sieht meine "Visualisierung" aus:
Ist alles etwas gequetscht, aber drin. Die "Regelung" ist der Wert des A/D-Wandlers. Könnte man noch rechnerisch aufhübschen  ;D
Leider strahlt der Vorlauf etwas auf den warmwasser-sensor. Muss ich noch isolieren.

rolando63

Hallo zusammen,
vielleicht seit Ihr so nett und gebt mrt mal Hilfestellung zur Junkers ZWR 18.
Ich habe jetzt keinen Raumthermostat sondern eine Zeitschaltuhr EU 3 T am Stecker 318 (Stecker auf Platine).
Dachte ich könnte die Therme so einfach über ein externes Relais zu-, abschalten indem ich einen Kontakt der Schatuhr unterbreche.
Klappt leider nicht. Da liegen + / - 24V an, jeweils außen und in der Mitte etwas undefiniertes -2,xV.
Vieleicht doch über den Sperrschalter gehen ? Hat jemand eine Idee?