Druckmessung der Heizungsanlage

Begonnen von Familienpapi, 03 April 2016, 10:58:16

Vorheriges Thema - Nächstes Thema

Familienpapi

Hallo, Zusammen,
nachdem weder Google noch die Forensuche brauchbare Ergebnisse lieferten, stelle ich mal meine Frage als neues Thema:

Wie kann man zuverlässig und günstig den Druck der Heizungsanlage überwachen?

Welche Sensoren könnten dafür in Frage kommen? Es muss dabei nicht um jedes Millibar genau gehen. 100 oder 200 mBar Genauigkeit würden hier vollkommen ausreichen. Ich habe sowohl 1Wire als auch I2C im Heizraum zur Verfügung.

Meine Gedanken dazu:
Ist der Druck zu niedrig wird der obere Stock nicht mehr richtig versorgt und die Anlage zieht Luft über die automatischen Entlüfter und das schadet der Pumpe und ist der Druck zu hoch, dann ist das für alle Komponenten auf die Dauer weniger gut. Ich weiß, ein guter Ausgleichsbehälter sollte das regeln und das Überdruckventil ist ja auch noch da. Gerade der Ausgleichsbehälter hat bei mir nach 10 Jahren eben nicht mehr funktioniert (anderes Thema).
Mit einer guten Überwachung in FHEM hätte man das schnell sehen können.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Reinerlein

Hi Familienpapi,

hast du schon mal solch einen einfachen Drucksensor versucht?
http://s.aliexpress.com/zYZ3qqae
Da brauchst du nur noch den Messwert (0-4,5V) auswerten, vielleicht über einen ESP8266 mit Firmata oder so, hat einen Messbereich bis 2.5 bar und soll für Wasser geeignet sein... Über Genauigkeit steht da allerdings sehr wenig...

Grüße
Reinerlein

Familienpapi

Hallo, Reinerlein,

danke für die schnelle Antwort.

Der Sensor ist in der Tat sehr interessant. Saubere 12V ist derzeit ein Problem für mich - arbeite mit 12,5V bis 14,4V Photovoltaik mit Akkus.
Allerdings ist der Messbereich bis 25 bar (2,5Mpa = 25bar). Da ich nur bis max. 3 bar messen werde und das hoffentlich nie erreichen werde, habe ich einen Spannungsbereich von 0V bis 0,54V. Das sind bei Arduino dann 110 Werteunterscheidungen, also eine Unterscheidung von 36 Werten pro bar. Ich hoffe, ich habe mich nicht verrechnet. Für eine einfach Unter- Überdruckmessung wahrscheinlich ausreichend. Genau ist was anderes.

Einen kleinen Knackpunkt hat der Sensor. Er ist nur bis 85 Grad tauglich. Wenn im Sommer die Sonne richtig auf das Solarfeld bruzzelt, kommen 99 Grad in meinem Puffer zusammen. Das wäre dann sicherlich eine Herausforderung für den Sensor. Ich bestelle mir mal einen und mal sehen, was er so misst. Habe ja noch den analogen Zeiger als Vergleich.

Bin gerne für weitere Vorschläge offen.   ;)
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Familienpapi

wenn man mal weiß nach welchen Begriffen man suchen muss, wird man auch fündig  :D

http://www.ebay.de/itm/G1-4-Drucksensor-0-0-5-MPa-fur-Oil-Fuel-Diesel-Gas-Wasser-Luft-/141819750566

Bleibt aber das Temperaturproblem  :-[
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Reinerlein

Hi Familienpapi,

ja, das mit der Umrechnung stimmt. Ich habe mich um eine Zehnerptenz vertan. Dabei hatte ich welche mit bis zu 0.5MPa ganz oft gefunden, und war halt immer der Meinung, dass die zu klein sind :)

Das mit der Temperatur kannst du vielleicht so in den Griff bekommen:
Mach einfach ein T-Stück in dein System, wo du über ein kurzes Stück Rohr am Ende deinen Druckmesser anbringst.
Da in diesem Druckmessrohr kein Durchfluss herrscht, wird die Temperatur dort auch nicht deine nahezu 100° erreichen. Je nach Länge und Montagerichtung dieses Messrohrs solltest du das hinbekommen können.
Wahrscheinlich befindet sich in dem Stück dann noch nicht mal Wasser, sondern nur zusammengepresste Luft. Der Druck ist aber der gleiche...

Grüße
Reiner

Familienpapi

Die Idee ist gut. Werde das mit dem Zusatzrohr tun und noch einen DS18B20 für rein statistische Zwecke mit ran hängen. Danke.  :)
Bestellung ist erfolgt. Chinaexpress wird wohl 3-4 Wochen brauchen. Werde dann hier berichten.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

eldrik

Zitat von: Familienpapi am 04 April 2016, 12:39:52
Die Idee ist gut. Werde das mit dem Zusatzrohr tun und noch einen DS18B20 für rein statistische Zwecke mit ran hängen. Danke.  :)
Bestellung ist erfolgt. Chinaexpress wird wohl 3-4 Wochen brauchen. Werde dann hier berichten.

Ja bitte ein Feedback hinterlassen und gerne mit Bildern der Umsetzung, ich bin auch an einer solchen Messung interessiert. :)

Greetz
Eldrik

Familienpapi

Der Sensor kam diese Woche. Er hat ein 1/4 Zoll Aussengewinde und macht auch sonst einen sehr guten Eindruck. Als Installationsort habe ich einen freien Anschluss am Rücklauf der Fußbodenheizung gewählt. Da sind nie mehr als 40 Grad. Somit wäre das Temperaturthema erledigt und der DS18B20 zur Überwachung entfällt. Bei einem Defekt kann ich den Kanal zudrehen und den Sensor tauschen.
Auf dem Bild sieht man die Installation (ja, ich arbeite noch mit Hanf, Teflon bekomme ich einfach nicht dicht - ist ja kein Trinkwasser). Ich musste von 1/4 Zoll Aussengewinde auf 3/4 Aussengewinde. Das waren dann drei "Adapter" aus dem örtlichen Baumarkt.

Der Sensor selbst hat drei Kabel:

  • schwarz: 0V
  • rot: +5V
  • gelb: Signal Analog
Das ganze habe ich dann noch mit einem 1µF Folienkondensator direkt am Sensor gepuffert. Ein Folienkondensator filtert auch hohe Frequenzen heraus, was ein ElKo nicht tut.

Hier die Definition per Configurable Firmata 2.08 (wird als 2.06 ausgewiesen) am USB Port eines RPi 2B:
define Hz_Pressure FRM_AD 57
attr Hz_Pressure alias Druck Heizungsanlage
attr Hz_Pressure IODev FRMA1
attr Hz_Pressure room Heizung,Technik
attr Hz_Pressure group 9Druck
attr Hz_Pressure sortby 9Druck1
attr Hz_Pressure userReadings pressure {((ReadingsVal("Hz_Pressure","reading",0)/204.8)-0.5)/0.8}


Wie komme ich auf die Formel für das User Reading?
Eigentlich ganz einfacher Dreisatz für die Bedingungen und der Annahme, dass der Sensor linear misst, was er laut Amazon Antwort wohl auch tut:

  • 0 Bar = 0,5 V
  • 5 Bar = 4,5 V
Daraus ergibt sich die Geradengleichung y (in V) = x (in Bar) * 0,8 V/Bar + 0,5V
Da ich y messe, die Gleichung nach x umstellen und es ergibt sich
x = (y - 0,5) / 0,8 (in Bar)
Da ich für 5V den Wert 1023 als reading erhalten, habe ich noch den Teilungsfaktor 1024/5 = 204,8 einfügen müssen.
Fertig ist die Gleichung. Nun weiß ich, dass mein alter Standard-Manometer einen zu hohen Druck anzeigt, was ich auch schon die ganze Zeit vermutete.

Die pressure-Werte schreibe ich in ein Logfile und mache ein Plot mit folgendem Inhalt (basierend auf dem Luftdruck Plot):
#
# Display the measured pressure.
#

# set terminal png transparent small size <SIZE> crop
set terminal png transparent size <SIZE> crop

set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
#set ytics nomirror
set ytics
#set y2tics
set grid xtics ytics

set title 'Logfile: <TL>'
set ylabel "Druck Heizung in Bar"

#FileLog 4:pressure:0:

plot "< awk $3=="pressure:" {print $1, $4}' <IN>"\
     using 1:1 ls l3fill axes x1y1 title 'Druck Heizung Bar' with lines lw 2


Damit wäre das Thema Druckmessung der Heizungsanlage auch abgehakt.    ;)  8)
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Familienpapi

Nachtrag:
Man kann auch mit einem gerundeten Wert für "pressure" arbeiten:
attr Hz_Pressure userReadings pressure {int(((ReadingsVal("Hz_Pressure","reading",0)/204.8)-0.5)/0.008)/100}
Anmerkung: Auf die Probleme, die perl mit Kommazahlen hat, möchte ich hier nicht eingehen. So genau können wir auch gar nicht messen wie Perl mit Kommazahlen ungenau ist.

Und dann könnte man im Web auch "pressure" anstatt "reading" ausgeben lassen:
attr Hz_Pressure stateFormat pressure
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Gisbert

Hallo Familienpapi,

das ist ein interessantes Projekt.
Die Hardwareseite = Sensor hab ich soweit verstanden.
Kannst du etwas Weiteres zur Programmierung sagen, sowie zum konkreten Aufbau und Verkabelung?
Ist es denkbar, das der Sensor an einen ESP8266 angeschlossen werden kann und die Signale mit ESPEasy verarbeitet werden können?

Viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Familienpapi

Hallo, Gisbert,

ich kenne und arbeite nicht mit ESP Easy. Ich programmiere meine ESPs individuell selbst mit Arduino 1.6.5 für Windows innerhalb PortableApps und baue die Schaltungen auf Lochrasterplatinen auf. Da der ESP aber nur mit 3,3V arbeitet und alles über 3,6V mit dem Tod quittiert, benötigst Du einen zusätzlichen Spannungsteiler, den Du dann in der Berechnung berücksichtigen müsstest. Es gibt aber auch Zusatzchips, die Dir das analoge Signal schon als fertigen Digitalwert per I2C zur Verfügung stellen. Wäre auch eine Überlegung wert. Auf jeden Fall benötigst Du saubere 5V für den Sensor und 3,3V für den ESP.

Zurück zu meinem Aufbau mit einem Arduino und ConfigurableFirmata:
Die Verkabelung ist ganz einfach: schwarz an Masse, rot an +5V und gelb an den Arduino Eingang Pin. Noch einen Pufferkondensator (1µF Folie) direkt am Sensor um Spitzen abzufangen (ich habe 32 Relais am MEGA mit dran, die 230V schalten. Da entstehen immer wieder Schaltspitzen).

Wie genau kann ich Dir bei der Programmierung weiter helfen? Es sind eigentlich alle notwendigen define's und attr's sowie die Erklärung der Berechnung in meinem Post drin. Was genau möchtest Du wie messen? Was ist Dein Ziel? Gerne helfe ich Dir bei einer konkreten Fragestellung weiter.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

Gisbert

#11
Hallo Familienpapi,

vielen Dank für die rasche Antwort.
Angeregt durch dein Projekt möchte ich den Druck im Verteilerkreis der Fußbodenheizung messen.
Der Druck ist durch ein Überdruckventil auf 3 bar begrenzt, Temperatur dürfte im Bereich von 21 bis max. 35°C liegen.
Der Sensor wird mit 5V betrieben und gibt ein Signal von 0.5 bis 4.5V ab; bei max. 3 bar wären das auf jeden Fall weniger als 3.6V - damit wäre der ESP nicht in Gefahr. Ist der Gedanke soweit richtig?
Das analoge Signal könnte ich auf einen GPIO des ESP's legen und mit ESPEasy an Fhem senden.
Der ESP braucht noch 3.3V an Versorgung.
Ich versuch das mal so umzusetzen, wenn ich die Teile aus China da habe; insbesondere der Drucksensor.
ESPEasy hat den Vorteil, dass man als Anwender nichts zu programmieren braucht, das kommt mir sehr entgegen.

Viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Familienpapi

Hallo, Gisbert,

wenn ich es richtig weiß, kennt der ESP nur einen analogen Port (ADC). Das andere sind digitale Ports bzw. PWM Ports. Im Moment wüsste ich auch nicht, wie ich mit der Arduino SDK den ADC auslesen könnte. LUA kann es wohl. Lasse mich da aber gerne korrigieren.

Viel Erfolg und berichte dann bitte hier.

http://arduino.esp8266.com/versions/1.6.5-1160-gef26c5f/doc/esp12.png
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

bugster_de

Hi,

coole Sache ! Bei uns ging zwei Tage vor dem Urlaub der WW Kessel kaputt und somit natürlich der Druck im Heizkreis nach oben. Ich habe das nur durch Zufall bemerkt und da ich nun eh am Heizkreis beigehen muß, kann ich gleich mal so einen Sensor verbauen. Dann ersetze ich für die Zukunft den Zufall durch Messen und Auswertung in FHEM.

Wie ist die Erfahrung mit dem Sensor? Taugt der?

Er kann ja bis zu 85 Grad, was mein Heizungs Vor- und Rücklauf sowieso nicht erreicht (oder erreichen sollte). Und falls es doch mal so warm wird, dann ist mein kleinstes Problem der Sensor ...

Familienpapi

Hallo, Bugster,

der Sensor funktioniert einwandfrei. Habe etwas Streuung von meinen Spannungsschwankungen drin, aber da kann der Sensor nichts dafür.
Anbei ein Screenshot von soeben mit dem Log des Monats Juli.

Gruß, Familienpapi
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework